Не работает Header

Discussion in 'PHP' started by blaga, 11 Jul 2006.

  1. blaga

    blaga Elder - Старейшина

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    У меня вот такая проблемка. Делаю скриптик авторизации и наткнулся на такой косяк. После того как я ввел логин и пароль, если они верны, то тогда меня должно перекидывать на другую страницу. Реализовывал это с помощью
    Code:
    Header("Location: admin.php");
    но на него появляется такая ошибка
    Code:
    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  
    Кто знает в чем дело подскажите пожалуйста. Заранее благодарен.
    Вот на всякий случай сам скрипт:
    Code:
    <?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>
    
     
  2. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    хидер нельзя посылать после вывода текста.

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

    blaga Elder - Старейшина

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    Я стараюсь в процессе. А если буду еще и разбираться как инет работает то я до пхп вообще не дойду... Ну а все таки как тогда положение исправлять?
     
  4. r0

    r0 Elder - Старейшина

    Joined:
    17 Jul 2005
    Messages:
    450
    Likes Received:
    149
    Reputations:
    147
    фу блин , клинит =)
    просто создай второй блок
    те
    Ясен смысл , мною вкладываемый? =)
     
    #4 r0, 11 Jul 2006
    Last edited: 11 Jul 2006
  5. r0

    r0 Elder - Старейшина

    Joined:
    17 Jul 2005
    Messages:
    450
    Likes Received:
    149
    Reputations:
    147
    Да кстати ты пишешь с register_globals on/off ?
     
  6. blaga

    blaga Elder - Старейшина

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    registr_globals=on
     
  7. blaga

    blaga Elder - Старейшина

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    Смысл ясен тока не работает ниче.( Есть еще предложения? Заранее благодарен.
     
  8. r0

    r0 Elder - Старейшина

    Joined:
    17 Jul 2005
    Messages:
    450
    Likes Received:
    149
    Reputations:
    147
    Ну как не работает? Всё нормально. это составляющая какого файла? :)
    =) +если на серваке так же будет = скажи как выложишь свое творение в Сети = я побалуюсь в админке ;)
     
  9. blaga

    blaga Elder - Старейшина

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    Так не будет... И не работает... Голова уже болит от него.
     
  10. DIAgen

    DIAgen Banned Life!

    Joined:
    2 May 2006
    Messages:
    1,055
    Likes Received:
    376
    Reputations:
    460
    Просто создай в начале функцию которая использует код с Header, затем уже при помощи if проверяй в теле скрипта, если все ок, значит не вызывай функцию, а если нет тогда надо! Я так делал когда писал CMS на заказ!!!
    Попоже могу выложить твой скрипт уже готовый, просто сейчас я не дома!!!
     
  11. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Открой php.ini и смени на Off
     
    1 person likes this.
  12. r0

    r0 Elder - Старейшина

    Joined:
    17 Jul 2005
    Messages:
    450
    Likes Received:
    149
    Reputations:
    147
    + перезапусти апач. ;) ;) ;)
     
  13. SMiX

    SMiX Elder - Старейшина

    Joined:
    25 Jul 2005
    Messages:
    227
    Likes Received:
    55
    Reputations:
    29
    это чтобы не доатсвала ошибка с хеадером
    PHP:
    <?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, делай так:
    PHP:
    $go=$_GET['g'];
    $user=$_GET['go']
    //и т.п.
     
    2 people like this.