Задать вопрос
  • Какой самый простой-быстрый способ написать андроид приложение с доступом к uart?

    CodeByZen
    @CodeByZen
    php, js, my/mssql, sqlite, html, css, it-consult
    Android Studio, я рекомендую kotlin в качестве языка и читать про uart тут https://developer.android.com/things/sdk/pio/uart
    Ответ написан
    2 комментария
  • Вывод данных из базы данных на страницу сайта. Как сделать?

    CodeByZen
    @CodeByZen
    php, js, my/mssql, sqlite, html, css, it-consult
    $mysqli = @new mysqli('localhost', 'name', 'pass', 'bd');
      $result_set = $mysqli->query('SELECT * FROM autoobuv_spb');
      while ($row = $result_set->fetch_assoc()) {
        foreach($row as $v=>$k) {
            echo $k.': '.$v.'<br>';
        }   
      }
      $result_set->close();
      $mysqli->close();
    Ответ написан
    7 комментариев
  • Аномальное поведение php?

    CodeByZen
    @CodeByZen
    php, js, my/mssql, sqlite, html, css, it-consult
    $url = "https://domain.com/catalog/sales/";
    
    var_dump(
        get_headers($path)
    );

    Почему вы определяете url а в функцию get_headers передаёте аргумент path? Видимо проблема в том, что надо аргумент url передавать.
    Ответ написан
    Комментировать
  • Шифрование PHP JS, не могли бы вы дать ссылки на классы или руководства?

    CodeByZen
    @CodeByZen
    php, js, my/mssql, sqlite, html, css, it-consult
    Комментировать
  • Кто знает где можно достать класс RSA PHP?

    CodeByZen
    @CodeByZen
    php, js, my/mssql, sqlite, html, css, it-consult
    Комментировать
  • Psi+ как склеить чаты с пользователем использующем разные устройства?

    CodeByZen
    @CodeByZen Автор вопроса
    php, js, my/mssql, sqlite, html, css, it-consult
    В заголовке, где написан его JID в окне чата, нажать правой кнопкой и сказать "turn autojid on"
    Ответ написан
    Комментировать
  • Как экранировать символы для javascript в php?

    CodeByZen
    @CodeByZen
    php, js, my/mssql, sqlite, html, css, it-consult
    Самое простое это обернуть в addcslashes search('<?= addcslashes($search,"'");?>');
    Ответ написан
  • Где ошибка .htaccess в laravel 5?

    CodeByZen
    @CodeByZen
    php, js, my/mssql, sqlite, html, css, it-consult
    С корня у тебя все передается в паблик. А настраивать наверное надо внутри скриптов. Ты же пути там прописываешь?
    Ответ написан
  • Траффик и img src?

    CodeByZen
    @CodeByZen
    php, js, my/mssql, sqlite, html, css, it-consult
    Видимо не обрабатывается JS который приходит от счетчика. Сделай iFrame 1х1
    Ответ написан
    Комментировать
  • Как исправить кодировку MySQL и PHP?

    CodeByZen
    @CodeByZen
    php, js, my/mssql, sqlite, html, css, it-consult
    Для начала попробуй header('Content-Type:text/html;charset=UTF-8', true); в каждом php файле, потом ты попробуй PDO использовать, а не mysql_connect и все будет хорошо.
    Например (это не идеал, но подойдет):
    header('Content-Type:text/html;charset=UTF-8', true);
    
    function errorHandler($code, $message, $file, $line) {
    	debug(array('Error'=>$code,'Message'=>$message,'In file'=>$file,'On line'=>$line));
    	exit();
    }
    
    function fatalErrorShutdownHandler() {
    	$last_error = error_get_last();
    	if ($last_error['type'] === E_ERROR) {
    	// fatal error
    		errorHandler(E_ERROR, $last_error['message'], $last_error['file'], $last_error['line']);
    	}
    }
    
    set_error_handler('errorHandler');
    register_shutdown_function('fatalErrorShutdownHandler');
    
    function logError($msg) {
    	global $cfg;
    	if (isset($cfg['realpath'])) {
    		// если в конфиге есть
    		$logFile = $cfg['realpath'].'/logs/log.txt'; 
    	} else {
    		// если в корне есть
    		if (file_exists('./logs') && is_dir('./logs')) {
    			$logFile = './logs/log.txt'; 
    		} else {
    			// если на уровень выше есть
    			if (file_exists('../logs') && is_dir('../logs')) { 
    				$logFile = '../logs/log.txt'; 
    			}	
    		}
    		
    	}
    	if (file_exists($logFile)) file_put_contents($logFile, date("Y/m/d H:i.s",time())."\n-------------------\n".$msg."\n\n",FILE_APPEND);
    }
    
    // дебаг
    function debug($arr, $backtrace=false, $log2file=false) {
    	echo "<pre style='border:3px dashed red;border-radius:10px;padding:10px;text-transform:none;'>";
    	ob_start();
    		if ($backtrace==true) debug_print_backtrace();
    		print_r($arr);
    	$out = ob_get_contents();
    	ob_end_flush();
    	echo "</pre>\n\n";
    	if ($log2file==true) logError($out);
    }
    
    class dbClass {
    
    	private $link;
    	private $callsCount=0;
    	private $callsDebug=Array();
    	private $rawDebug = false; // put all queryes to log
    	private $cache = array(); // local cache
    
    	// функция соединения с БД
    	function connect($dbdata) {
    		$driver = $dbdata[ "dbdriver" ];
    		$dsn = "${driver}:";
    		$user = $dbdata[ "dbuser" ] ;
    		$password = $dbdata[ "dbpassword" ] ;
    		$options = $dbdata[ "dboptions" ] ;
    		$attributes = $dbdata[ "dbattributes" ] ;
    		
    		// перечитываем аттрибуты
    		foreach ( $dbdata[ "dsn" ] as $k => $v ) { $dsn .= "${k}=${v};"; }
    		
    		try {
    			// стараемся создать подключение
    			$this->link = new PDO ( $dsn, $user, $password, $options );
    			// устанавливаем аттрибуты
    			foreach ( $attributes as $k => $v ) {
    				$this->link -> setAttribute ( constant ( "PDO::{$k}" ), constant ( "PDO::{$v}" ) ) ;
    			}
    			
    		} catch(PDOException $e) {
    			// если что-то не так, то вываливаем ошибку	
    			errorHandler(0,$e -> getMessage(),__FILE__,__LINE__);
    			
    		}
    	}
    
    	function __construct($cfg) {
    		$this->connect($cfg);
    	}
    
    	function uncommentSQL($sql) {
    		$sqlComments = '@(([\'"]).*?[^\\\]\2)|((?:\#|--).*?$|/\*(?:[^/*]|/(?!\*)|\*(?!/)|(?R))*\*\/)\s*|(?<=;)\s+@ms';
    		/* Commented version
    		$sqlComments = '@
    		    (([\'"]).*?[^\\\]\2) # $1 : Skip single & double quoted expressions
    		    |(                   # $3 : Match comments
    		        (?:\#|--).*?$    # - Single line comments
    		        |                # - Multi line (nested) comments
    		         /\*             #   . comment open marker
    		            (?: [^/*]    #   . non comment-marker characters
    		                |/(?!\*) #   . ! not a comment open
    		                |\*(?!/) #   . ! not a comment close
    		                |(?R)    #   . recursive case
    		            )*           #   . repeat eventually
    		        \*\/             #   . comment close marker
    		    )\s*                 # Trim after comments
    		    |(?<=;)\s+           # Trim after semi-colon
    		    @msx';
    		*/
    		$uncommentedSQL = trim( preg_replace( $sqlComments, '$1', $sql ) );
    		preg_match_all( $sqlComments, $sql, $comments );
    		$extractedComments = array_filter( $comments[ 3 ] );
    		//var_dump( $uncommentedSQL, $extractedComments );
    		return $uncommentedSQL;
    	}
    	
    	function parseQuery($q) {
    		$q = $this->uncommentSQL($q);
    		$q = str_replace("\n", " ", $q);
    		$q = str_replace("\r", " ", $q);
    		$q = str_replace("\t", " ", $q);
    		$q = preg_replace("/\/\*.*\*\//Uis",'',$q);
    		$q = preg_replace("/\s+/is",' ',$q);
    		$q = trim($q);
    		$type = explode(" ",$q);
    		$type = trim(mb_strtoupper($type[0],"UTF-8"));
    		return $type;
    
    	}
    	
    	// простой запрос к базе
    	function query($query,$cache=false) {
    		global $cfg;
    		// разбираем запрос
    		$type = $this->parseQuery($query);
    		$pureQuery = $this->uncommentSQL($query);
    		
    		if ($cfg['debug']==true) { $this->callsDebug[]=array("hash"=>md5($pureQuery),'query'=>str_replace("\t","",$query)); }
    		
    		// кеширование
    		if (isset($this->cache[md5($pureQuery)]) && in_array($type,array('SELECT', 'SHOW'))) {
    			return $this->cache[md5($pureQuery)];
    		}
    		// выполняем запрос
    		try {
    			$result=$this->link->query($query);
    			
    			// получаем результаты 
    			if (in_array($type,array('SELECT', 'SHOW'))) {
    				$result->setFetchMode(PDO::FETCH_OBJ);
    				//TODO: если в запросе есть INTO OUTFILE то $result->fetch() бросает ошибку т.к. нечего возвращать надо научиться ловить пустой результат
    				while($row = $result->fetch()) {
    					$res[]=$row;
    				}
    			} elseif(in_array($type,array('INSERT'))) {
    				$res=$this->link->lastInsertId(); 
    			}
    			
    			// увеличиваем счетчик запросов
    			$this->callsCount++;
    			// если дебаг включен то добавляем запрос в лог
    			if ($this->rawDebug == true) { logError($query); }
    			
    		} catch(PDOException $e) {
    			errorHandler(0, $e -> getMessage()."\n".$query, __FILE__,__LINE__);
    		}
    		// кеширование
    		if ($cache==true) $this->cache[md5($pureQuery)] = (isset($res[0])) ? $res : false;
    		return (isset($res[0])) ? $res : false;
    	}
    	
    	function queryInsertBinary($query, $binarray) {
    		$pdoLink = $this->link;
    		$stmt = $pdoLink->prepare($query);
    		foreach($binarray as $key=>$value) {
    			/*
    			$db->queryInsertBinary(
    					"INSERT INTO tbl VALUES(NULL, :SOME_ID, :BINARY_DATA);",
    					array(
    						'SOME_ID'		=> array('data'=>123,'param'=>array(PDO::PARAM_STR,sizeof('123'))), 
    						'BINARY_DATA'	=> array('data'=>$binary_data,'param'=>array(PDO::PARAM_LOB,sizeof($binary_data))),
    					)
    			);
    			*/
    			$stmt->bindParam(":".$key, $value['data'], $value['param'][0], $value['param'][1]); //PDO::PARAM_STR || PDO::PARAM_LOB, sizeof($binary)
    		}
    		$stmt->execute();
    		return $pdoLink->lastInsertId();
    	}
    	
    	
    	function getVar($var) {
    		return $this->$var;
    	}
    	
    	function analizeUnCache(){
    		$uncached = array();
    		foreach($this->callsDebug as $cdk=>$cdv) {
    			if (!isset($this->cache[$cdv['hash']])) {
    				if (isset($uncached[$cdv['hash']])) $uncached[$cdv['hash']]++; else $uncached[$cdv['hash']]=1;
    			}
    		}
    		return $uncached;
    	}
    	
    	function analizeAll(){
    		$queryAnalizer=array();
    		foreach($this->callsDebug as $k=>$v) {
    			if (isset(	$queryAnalizer[$v['hash']]	)) {
    				$queryAnalizer[$v['hash']]++;
    			} else {
    				$queryAnalizer[$v['hash']] = 1;
    			}
    		}
    		return $queryAnalizer;
    	}
    	
    }
    
    $cfg = array(
    	'db' =>
    	array(
    		'dbdriver' => 'mysql',
    		'dbuser' => 'root',
    		'dbpassword' => 'root',
    		'dsn' =>
    		array(
    			'host' => 'localhost',
    			'dbport' => '3306',
    			'dbname' => 'simple_db_name',
    			'charset' => 'utf8',
    		),
    		'dboptions' =>
    		array(
    			'PDO::MYSQL_ATTR_INIT_COMMAND' => 'set names utf8',
    		),
    		'dbattributes' =>
    		array(
    			'ATTR_ERRMODE' => 'ERRMODE_EXCEPTION',
    		),
    	),
    	'debug' => true,
    	'siteurl' => (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on" ? 'https://' : 'http://') . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost'),
    	'realpath' => dirname(dirname(__FILE__)),
    );
    
    
    $db = new dbClass($cfg['db']);
    Ответ написан
    Комментировать
  • Сколько максимум строк можно содержать в таблице без больших потерь скорости выборки из нее?

    CodeByZen
    @CodeByZen
    php, js, my/mssql, sqlite, html, css, it-consult
    Walt Disney почти правильно все сказал, но основа в том какие запросы.
    Если таблица вида ID|VALUE и выборка делается SELECT `value` FROM tbl WHERE `id` = 123; то главное чтобы индекс на id был. И тогда уже зависимости от скорости диска, и мощности CPU. А если у тебя запрос с "тремя JOINами" то надо смотреть.
    Ответ написан
    Комментировать
  • Почему не работает код php?

    CodeByZen
    @CodeByZen
    php, js, my/mssql, sqlite, html, css, it-consult
    $text = "http://api.vk.om/blank.html#access_token=575f714c20a057167c57a6957eed15cee0ab78e7d8950e0f3641d5c2faa65904ae8ee065adffcc484dcrr&expires_in=1&user_id=339190333";
    $text = "575f714c20a057167c57a6957eed15cee0ab78e7d8950e0f3641d5c2faa65904ae8ee065adffcc484dcrr&expires_in=0&user_id=339190333";
    $segments = explode('=', $text);
    $segments = explode('&', $segments[1]);
    $a = $segments[0];
    if($a == "0") {
      $segments = explode('=', $text);
      $segments = explode('&', $segments[0]);
      $a = $segments[0];		
    }
    echo $a;
    Ответ написан
  • И снова о short_open_tag: переписывать код или нет?

    CodeByZen
    @CodeByZen
    php, js, my/mssql, sqlite, html, css, it-consult
    Я все пишу на длинных тегах, если попадается что-то на коротких то меняю <? на <?php, а <?= на <?php echo и все. Это достаточно просто, а тестировщики потом проверят везде ли все корректно отрабатывает. Ну или сам проверяю.
    Ответ написан
  • В чем отличие iPad mini MD543RS/A от MF450RS/A?

    CodeByZen
    @CodeByZen
    php, js, my/mssql, sqlite, html, css, it-consult
    MD543RS/A - белый
    MF450RS/A - черный
    Ответ написан
    Комментировать
  • Как отобразить на сайте услугу "массовый/оптовый пошив одежды"?

    CodeByZen
    @CodeByZen
    php, js, my/mssql, sqlite, html, css, it-consult
    Ответ написан
    Комментировать
  • Что нужно знать для того, чтобы создать страницу редактирования пользователей?

    CodeByZen
    @CodeByZen
    php, js, my/mssql, sqlite, html, css, it-consult
    Для начала надо понять что такое html в общем и формы с таблицами в частности. Потом надо понять как работают POST/GET запросы.
    И в конце концов изучить работу PHP (обработка запросов, глобальные переменные) и MySQL вставка,удаление,обновление,выборка.
    Ответ написан
  • Какая цена будет справделивой?

    CodeByZen
    @CodeByZen
    php, js, my/mssql, sqlite, html, css, it-consult
    15 страниц верстки? Вы что там такое делаете?
    За то, что вы описали мы бы взяли от 30т.р. И это минималка.
    Ответ написан
    7 комментариев
  • Как грамотно обрезать текст для анонса?

    CodeByZen
    @CodeByZen
    php, js, my/mssql, sqlite, html, css, it-consult
    Смотри двойной перенос, потом считай сколько от начала текста до этой точки символов. Если устраивает, то отрезаем все, что после. Если много, то дели то, что осталось по точкам. И смотри сколько там символов. Если там нет ни точек ни абзацев то дели по запятым если они есть. Если нет ничего то обрезай по кол-ву символов.
    Ответ написан
    Комментировать
  • Событие на onSend jquery ajax?

    CodeByZen
    @CodeByZen
    php, js, my/mssql, sqlite, html, css, it-consult
    Лог сработает до того как запрос будет отпрпавлен или во время отправки. Т.к. запрос асинхронный. Т.е. либо делать синхронный запрос (потеряешь в скорости на клиенте если запросов будет много/несколько) либо делать вот так:

    $.ajax({
    		url: 'URL',
    		dataType: "JSON",
    		method: "POST",
    		data: {
    			var1: arg1,
    		},
    		statusCode: {
    			200: function() {
    				if (console!==undefined) console.log('Request send but not data not parsed yet!'); // то что тебе надо
    			},
    			500: function() {
    				if (console!==undefined) console.log('Server error 500!');
    			},
    			404: function() {
    				if (console!==undefined) console.log('Server error 404!');
    			}
    		},									
    		success: function(data) {
    			if (console!==undefined) console.log(data);
    		},
    		error: function(v1,v2,v3) {
    			if (console!==undefined) console.log(v1,v2,v3);
    		}
    	});
    Ответ написан
    2 комментария
  • Где купить шнур для Блока питания, который находится внутри корпуса?

    CodeByZen
    @CodeByZen
    php, js, my/mssql, sqlite, html, css, it-consult
    Гугли:
    Кабель питания компьютерный угловой
    и
    Кабель питания для UPS
    Ответ написан
    Комментировать