За последние 24 часа нас посетили 41313 программистов и 1813 роботов. Сейчас ищут 1178 программистов ...

Сессии

Тема в разделе "PHP для новичков", создана пользователем Andrey5555, 16 окт 2008.

  1. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Есть проблема.

    PHP:
    1. <?php
    2. include ("../include/mysql.php");
    3. $err = "";
    4. $login = $_POST['login'];
    5.   $login = htmlspecialchars ($login, ENT_QUOTES);
    6.   $login = mysql_real_escape_string($login);
    7.   $login = trim ($login);
    8.   $login = substr ($login, 0, 30);
    9. $password = $_POST['password'];
    10.   $password = htmlspecialchars ($password, ENT_QUOTES);
    11.   $password = mysql_real_escape_string($password);
    12.   $password = trim ($password);
    13.   $password = substr ($password, 0, 30);
    14. if (empty ($login)) $err.= "Вы не ввели логин!<br>";
    15. if (empty ($password)) $err.= "Вы не ввели пароль!<br>";
    16.   if (!empty ($login) and ($password))
    17.   {
    18.   $query = mysql_query ("SELECT COUNT(*) FROM admins WHERE login = '$login' and password = '$password'");
    19.   list ($rows) = mysql_fetch_array ($query);
    20.   if ($rows == 0) $err.= "Такого пользователя не существует!";
    21.   }
    22. if ($err == "")
    23. {
    24. $_SESSION['id'] = session_id ();
    25. header ("Location: ../index.php");
    26. }
    27. else
    28. echo "<table align='center' class='error'";
    29. echo "<tr><td>";
    30. echo $err;
    31. echo "</td></tr>";
    32. echo "</table>";
    33. echo "<META HTTP-EQUIV='Refresh' CONTENT='2; URL=index.php'>";
    34. ?>
    При использовании кода на странице выводит ошибки:
    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\localhost\www\ps\admin\auth.php:8) in Z:\home\localhost\www\ps\admin\scripts\auth.php on line 24

    Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\ps\admin\auth.php:8) in Z:\home\localhost\www\ps\admin\scripts\auth.php on line 26

    Если же использовать скрипт, не включая его на страницу, а на прямую. То ошибок нет. FAQ читал. Ничего не помогает.
    Помогите!
     
  2. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    Andrey5555, headers already sent.
    А сессию стартуют до отсылки любых заголовков. Ставьте session_start() в начало скрипта и учите мат часть.. а можно было и поиск юзануть
     
  3. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Так что же мне надо исправить? Помогите пожалуйста
     
  4. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
     
  5. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    отступы убери
     
  6. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    даж я не понял =)
     
  7. Greg1978

    Greg1978 Активный пользователь

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    Странно но здесь сессия начинается до отсылки вообще в браузер чего либо.
    Может это # echo "<META HTTP-EQUIV='Refresh' CONTENT='2; URL=index.php'>"; надо до этого # echo $err;
     
  8. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Поминаете session_start нельзя вызвать до начала всего, потому что $err проходя по скрипту записывает туда ошибки. Если ошибок нет, то должна начаться сесия и перебросить на нужную страницу. Если же ошибки есть, то должны они вывестись и произойти редирект. Как быть?
     
  9. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Пробелом вроде нигде нет. Как быть?? ХЕЛП!
     
  10. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    кодировка файла?
     
  11. Riateche

    Riateche Активный пользователь

    С нами с:
    19 окт 2008
    Сообщения:
    9
    Симпатии:
    0
    Если файл в юникоде, проверьте, что текстовый редактор не записал туда сигнатуру (начальные три байта, которые очень мешают).
     
  12. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Файл индклудиться посреди html кода. Может в этом ошибка? Если да, то как быть? Необходимо что бы выводило среди html кода.
     
  13. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    session_start вынести на самый верх страницы.
     
  14. kuliev

    kuliev Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    Тему нужно перенести в БЛОНДИНКИ