PHP: вопросы и ответы

Druid

Старожил
Значит всё работает, спасибо.
Так воти читаю, только с MySQL запарка была.

Добавлено спустя 1 час 3 минуты 12 секунд:

Да ёлки палки! Я уже ненавижу SQL и всё, что с ним связано :)
Поставил phpmyadmin, создал папку config, туда config.inc.php, там всё настроил, при входе выдаёт:
Ошибка Ответ MySQL: #1045 - Access denied for user 'root'@'localhost' (using password: NO)
Что же на этот раз? Может всётаки SQL кривой?
 

G1ta0

Старожил
Druid":3144z1i9 сказал(а):
Что же на этот раз? Может всётаки SQL кривой?
написана же ошибка...
кстати, нафик там папка config? config.inc.php вроде должен быть в каталоге со скриптом.
 

Druid

Старожил
Ошибка Ответ MySQL: #1045 - Access denied for user 'root'@'localhost' (using password: NO) phpMyAdmin не может прочитать данные из конфигурационного файла! Возможная причина - синтаксическая ошибка. Вызовите этот файл (config.inc.php) непосредственно из браузера. Если будут сообщения об ошибках - исправьте их. Если пустая страница - все в порядке
------------------------------------------------------
PHP Parse error: syntax error, unexpected T_VARIABLE in C:\\WWW\\phpmyadmin\\config.inc.php on line 36
------------------------------------------------------
Код:
36: $cfg['PmaNoRelation_DisableWarning']  = FALSE;

Добавлено спустя 15 минут 49 секунд:

А что это то значит?
P.S. Вот почему ничего не может запуститься без проблем? Установил, настроил, запустил - всё ок. Нет блин, как с SQL столкнулся - ппц.
 

x00

Старожил
дружище скачай wamp(в гугле "wamp") два раза ткнешь NEXT и у тебя будет apache2+php5+mysql5 и не мучайся..

Добавлено спустя 1 минуту 43 секунды:

PHP Parse error: syntax error, unexpected T_VARIABLE in C:\\WWW\\phpmyadmin\\config.inc.php on line 36
35ую посмотри
 

Druid

Старожил
Всё, заработало. Наконец то нормально пощупаю MySQL.
 

Druid

Старожил
Есть ли тут какя либо ошибка, а то пишет, что проблема в запросе:
Код:
$sql="INSERT INTO $tb(N1, N2, N3, N4) values ('".$_POST['p1']."', '".$_POST['p2']."', '".$_POST['p3']."', now())";
 

x00

Старожил
типы данных (колонок) соответствуют тому что вводишь? $tb - задана и существует?
так то в синтаксие все ок..
 

Druid

Старожил
Да, всё нормально.
Всё, снёс нафиг старую mysql , ставлю новую...
 

Druid

Старожил
Поставил WAMP...удобно.
Кстати, что значит эта ошибка:
Код:
Notice: Undefined index: Text in c:\WAMP\www\k1_code.php on line 11

Notice: Undefined variable: error in c:\WAMP\www\k1_code.php on line 16
Строки:
Код:
11: $_POST['Text']=strip_tags(trim($_POST['Text']));
16: if ($error) {
 

Majik13

Старожил
то, что эти переменные не заданы
можно написать чё-нить типа if (isset($_POST['Text'])) { strip_tags(trim($_POST['Text'])); } вместо первой строки и $error=false; где-нить в начале кода, если так хочется
 

x00

Старожил
обрубай их в php.ini (там вроде даже в примерах указан вариант че то типа E_ALL & ~E_NOTICE)
 

Druid

Старожил
Есть ли какая либо альтернатива функции n12br()?
P.S. Как убрать подчёркивание ссылки? :)
 

Незнайка

Старожил
Есть сервер на котором расположен сайт и есть другой сервер на котором расположены архивы.
Т.к. сервер с архивами удалённый, то заголовки запрашиваем через сокет.
При скачивании архива через браузер всё проходит нормально (скачивание идёт в один поток), архив распаковывается и всё работает. Если качать с помощью FlashGet (несколько потоков), то при скачивании теряется часть файлов и папок находящихся внутри архива. При этом размер скачанного архива тот же, что и у исходного.
Исходный код (часть его отвечающая за закачку):
Код:
<?
// опущена часть кода 

		// Подключаем сокет к серверу
		// Берём заголовки и отключаемся
		// $info - ассоциативный массив заголовков
		// $headers - строка заголовков
		// $tab - размер заголовков (в байтах)
		//mysite.ru - здесь лежат архивы

		$fp = fsockopen ("mysite.ru", 80, $errno, $errstr, 30);
		if(!$fp){
			echo "$errstr ($errno)<br>\n";
		}else{
			fputs ($fp, "GET /$name HTTP/1.0\r\nHost: mysite.ru\r\n\r\nContent-Type: application/rar\r\nConnection: Close");
			$info = Array();
			$headers = '';
			$tab = 0;
			for($i = 0; $i < 9; $i++){
				$str = fgets ($fp,1024);
				$tab += strlen($str);
				$str = substr($str, 0, strlen($str) - 2);
				$headers .= $str ."\n";
				$tmp = explode(": ", $str);
				$info[$tmp[0]] = $tmp[1];
			}
			fclose ($fp);
		}

		// Передаём пользователю заголовки
		// Принимаем файл с сервера и отдаём его юзеру
		$filename = "http://mysite.ru/".$name; //$name - имя архива
		$fsize = $info['Content-Length'];
		

		$ftime = date("D, d M Y H:i:s T", filemtime($filename)); 
		$fd = @fopen($filename, "rb"); 
		if (!$fd){ 
		  header ("HTTP/1.0 403 Forbidden"); 
		  exit; 
		} 
		// Если запрашивающий агент поддерживает докачку 
		if ($_SERVER["HTTP_RANGE"]) { 
		  $range = $_SERVER["HTTP_RANGE"]; 
		  $range = str_replace("bytes=", "", $range); 
		  $range = str_replace("-", "", $range); 
		  if ($range) {fseek($fd, $range);} 
		} 

		if ($range) { 
		  header("HTTP/1.1 206 Partial Content"); 
		} 
		else { 
		  header("HTTP/1.1 200 OK"); 
		} 
		header("Content-Disposition: attachment; filename=$name"); 
		header("Last-Modified: $ftime"); 
		header("Accept-Ranges: bytes"); 
		header("Content-Length: ".($fsize-$range)); 
		header("Content-Range: bytes $range-".($fsize -1)."/".$fsize); 
		header("Content-type: application/octet-stream"); 

		// отдаём файл
		$buffer = '';
			while (!feof($fd)) {
				set_time_limit(0);
				$buffer= fread($fd, 1024*8);
				print $buffer;
				flush(); 
			} 
			fclose($fd);

// опущена часть кода
?>
Понимаю, что проблема с докачкой, но ошибки не вижу. Впечатление что не все потоки правильно передают информацию.
В чём конкретно проблема? Подскажите, плиззз.
 

Druid

Старожил
Прочитал тут одну интересную статью с советами программирования. Так вот появилось пару вопросов:
1) Действительно ли, что php под Windows - это зло, а под *.nix - самое то. Если да, то поясните пожалуйста, почему?
2) Что такое акеселератор?
 

x00

Старожил
Незнайка, а что это за супер технология такая? Почему просто не ставить урлы пользователю прямо на архивы? ну или mod_rewrite использовать если хочешь чтобы ссылки все были внутренними. Зачем каждый файл то качать на сервер c другого при каждом запросе ? O_O
 

n0ip

Старожил
Druid":20xno73a сказал(а):
Прочитал тут одну интересную статью с советами программирования. Так вот появилось пару вопросов: 1) Действительно ли, что php под Windows - это зло, а под *.nix - самое то. Если да, то поясните пожалуйста, почему? 2) Что такое акеселератор?

1) дык кроссплатформенно оно же вроде. не думаю, что интерпретатор под юних чем-то сильно отличается от виндового
2) ускоритель :)
 

Druid

Старожил
Каким образом можно через php программно уменьшить изображение?
 
Верх