Страница 1 из 1

Перейти на страничку в PHP

Добавлено: 2008-01-15 11:44:03
manefesto
Дома у меня вот такая связка работает...

Код: Выделить всё

<?php 
				$dbcon=pg_connect("port=5432 dbname=videoteka user=pgsql password=******") or die("Error connect");
				$stat=pg_connection_status($dbcon);
				if ($stat === 0) { echo "Связь с базой видеотеки установлена\n";} 
					else { echo "Связь с базой видеотеки не установлена\n";}
				$query="select username,password,(select role_name from role where role=id_role) from users where username='".$_POST['Login_name']."' and password='".$_POST['password']."';";
				$result=pg_query($dbcon,$query);
				$rows_count=pg_num_rows($result);
				print "<span style ='color: rgb(255,0,0)'>".$rows_count."</span>";
				print "<span style ='color: rgb(255,0,0)'>".$_POST['Login_name']."</span>";

//				echo "pg_fetch_array($result,$i,PGSQL_ASSOC)";
			$line=(pg_fetch_row($result,$i));
			if (strlen($_POST['Login_name'])!=0){
				Header('Location: '.trim($line[2]).".php");
			}
			print "<span style ='color: rgb(0,0,255)'>-=".strlen(trim($line[2]))."=-</span>";
			print "<span style ='color: rgb(0,0,255)'>-=".$line[2]."=-</span>";

			?>
когда тоже самое пытаюсь сделать на работе, то ругается на страничке
Warning: Cannot modify header information - headers already sent by (output started at /usr/home/manefesto/www/index.php:4) in /usr/home/manefesto/www/index.php on line 38
как можно перейти на другую страницу не используя

Код: Выделить всё

Header('Location: '.trim($line[2]).".php");

Re: Перейти на страничку в PHP

Добавлено: 2008-01-15 16:04:04
zg
manefesto писал(а):когда тоже самое пытаюсь сделать на работе, то ругается на страничке
Warning: Cannot modify header information - headers already sent by (output started at /usr/home/manefesto/www/index.php:4) in /usr/home/manefesto/www/index.php on line 38
как можно перейти на другую страницу не используя

Код: Выделить всё

Header('Location: '.trim($line[2]).".php");
в самом начале файла стваишь ob_start() и всё в ажуре

Re: Перейти на страничку в PHP

Добавлено: 2008-01-15 16:08:37
zg

Re: Перейти на страничку в PHP

Добавлено: 2008-01-15 17:07:44
kmb
лучше условие:

Код: Выделить всё

         if (strlen($_POST['Login_name'])!=0){
            Header('Location: '.trim($line[2]).".php");
         }
Перенести в самый верх, вообщем посылка заголовков должна быть первой...

Re: Перейти на страничку в PHP

Добавлено: 2008-01-15 17:12:28
kmb
а можно узнать, что ты этим условием проверяешь? И куда ты затем посылаешь? :))

Re: Перейти на страничку в PHP

Добавлено: 2008-01-15 17:23:31
zg
manefesto писал(а):Дома у меня вот такая связка работает...
хорошо пока хоть дома

Код: Выделить всё

 $query="select username,password,(select role_name from role where role=id_role) from users where username='".$_POST['Login_name']."' and password='".$_POST['password']."';";
очень рекомендую посмотреть Хакера несколько стандратных взломов, прежде чем давать этому скрипту жизнь

Re: Перейти на страничку в PHP

Добавлено: 2008-01-15 19:49:37
Alex Keda
да нормальный скрипт.
если маджик квотес включен - долго жить будет
опять же - откуда ты знаешь, может он первой строкой своего скрипта разбирает все массивы и слэшит их?
я так делаю - потом не парясь использую как хочу переменные...

Re: Перейти на страничку в PHP

Добавлено: 2008-01-16 13:47:54
zg
lissyara писал(а):опять же - откуда ты знаешь, может он первой строкой своего скрипта разбирает все массивы и слэшит их?
я так делаю - потом не парясь использую как хочу переменные...
какой функцией "слэшишь", addslashes?

addslashes();
addcslashes();
escapeshellarg();
escapeshellcmd();
htmlentities();
htmlspecialchars();
htmlspecialchars_decode();
html_entity_decode();
strip_tags();
stripcslashes();
stripslashes();
mysql_real_escape_string();
mysql_escape_string();
pg_escape_bytea();
pg_escape_string();

и как потом используешь? если ты делаешь вывод в html, то addslashes не поможет, там экранирвание совершенно другое, если вставляешь в запрос, то далеко не все специальные символы SQL экранируются С-стилем экранирования, если формируешь команду для шелла, то там свои тонкости.

Re: Перейти на страничку в PHP

Добавлено: 2008-01-16 14:01:07
Alex Keda
а у меня всё в БД идёт.
поэтому под мусю слэшу.

Re: Перейти на страничку в PHP

Добавлено: 2008-01-16 16:49:13
zg
lissyara писал(а):а у меня всё в БД идёт.
поэтому под мусю слэшу.
:) понятно

но я всё-таки очень рекомендую использовать функции mysql_real_escape_string() и pg_escape_string() непосредственно при составлении запроса, то есть

Код: Выделить всё

$sql = 'SELECT * FROM `mytable` WHERE `id`="'. mysql_real_escape_string($id) .'"';
иначе гарантий нет, что запрос будет правильным.

Re: Перейти на страничку в PHP

Добавлено: 2008-01-16 20:24:27
Alex Keda
у меня и так запросы на полстраницы...
тут ещё функции лепить...