PDA

Просмотр полной версии : Не работает Header


blaga
11.07.2006, 19:36
У меня вот такая проблемка. Делаю скриптик авторизации и наткнулся на такой косяк. После того как я ввел логин и пароль, если они верны, то тогда меня должно перекидывать на другую страницу. Реализовывал это с помощью Header("Location: admin.php");
но на него появляется такая ошибка Warning: Cannot modify header information - headers already sent by (output started at z:\home\kom\www\adm\index.php:15) in z:\home\kom\www\adm\index.php on line 32
Кто знает в чем дело подскажите пожалуйста. Заранее благодарен.
Вот на всякий случай сам скрипт:

<?php
session_name("admin_session");
session_start();
?>
<html><head><title>Вход в Админку Комменты.</title>

</head><body>
<table border="0"><tr>
<td>
Логин:
</td><td><form action="index.php?go=yes" method="post">
<input name="user_t" type="text" ></td></tr>
<tr><td>Пароль: </td><td><input name="pass_admin_t" type="password"></td></tr>
<tr><td>&nbsp;</td><td><input type="submit" value="Далее"></form></td></tr></table>
<?php
Error_reporting(7);

include "../config.php";

$_POST['user_t'] = $user_t;
$_POST['pass_admin_t'] = $pass_admin_t;

if (!$go)
{
exit();
}
if($user_t==user and $pass_admin_t==pass_admin)
{
$_SESSION["user_t"]=$user_t;
$_SESSION["admin_pass_t"]=$admin_pass_t;

Header("Location: admin.php");

}
else {
echo "Неверно!!!" ;
}
?>

</body></html>

nerezus
11.07.2006, 19:48
хидер нельзя посылать после вывода текста.

Крайне не рекоммендую начинать с пхп, сначала стоит разобраться, как работает интернет.

blaga
11.07.2006, 20:05
Я стараюсь в процессе. А если буду еще и разбираться как инет работает то я до пхп вообще не дойду... Ну а все таки как тогда положение исправлять?

r0
11.07.2006, 20:25
фу блин , клинит =)
просто создай второй блок
те
if ( $user_t !== user and $pass_admin_t !== pass_admin ) {
echo "еррор.пепец тебе";
exit;
}

else {
делай что хочешь();
}


Ясен смысл , мною вкладываемый? =)

r0
11.07.2006, 20:34
Да кстати ты пишешь с register_globals on/off ?

blaga
11.07.2006, 20:39
registr_globals=on

blaga
11.07.2006, 20:44
Смысл ясен тока не работает ниче.( Есть еще предложения? Заранее благодарен.

r0
11.07.2006, 20:48
Ну как не работает? Всё нормально. это составляющая какого файла? :)
registr_globals=on
=) +если на серваке так же будет = скажи как выложишь свое творение в Сети = я побалуюсь в админке ;)

blaga
11.07.2006, 20:58
Так не будет... И не работает... Голова уже болит от него.

DIAgen
11.07.2006, 21:06
Просто создай в начале функцию которая использует код с Header, затем уже при помощи if проверяй в теле скрипта, если все ок, значит не вызывай функцию, а если нет тогда надо! Я так делал когда писал CMS на заказ!!!
Попоже могу выложить твой скрипт уже готовый, просто сейчас я не дома!!!

nerezus
11.07.2006, 21:22
registr_globals=on Открой php.ini и смени на Off

r0
11.07.2006, 21:39
Открой php.ini и смени на Off
+ перезапусти апач. ;) ;) ;)

SMiX
11.07.2006, 23:25
это чтобы не доатсвала ошибка с хеадером
<?php
session_name("admin_session");
session_start();

Error_reporting(7);

include "../config.php";

$_POST['user_t'] = $user_t;
$_POST['pass_admin_t'] = $pass_admin_t;

if (!$go)
{?>
<html><head><title>Вход в Админку Комменты.</title>

</head><body>
<table border="0"><tr>
<td>
Логин:
</td><td><form action="index.php?go=yes" method="post">
<input name="user_t" type="text" ></td></tr>
<tr><td>Пароль: </td><td><input name="pass_admin_t" type="password"></td></tr>
<tr><td>&nbsp;</td><td><input type="submit" value="Далее"></form></td></tr></table>

<?
exit();
}
if($user_t==user and $pass_admin_t==pass_admin)
{
$_SESSION["user_t"]=$user_t;
$_SESSION["admin_pass_t"]=$admin_pass_t;

Header("Location: admin.php");

}
else {
echo "Неверно!!!" ;
}
?>

</body></html>
А, чтобы не зависеть от register_globals, делай так:

$go=$_GET['g'];
$user=$_GET['go']
//и т.п.