Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Сессии


Автор: sanchos14931 10.2.2009, 17:02
Здравствуйте.

Я сделал не большой скрипт регистрации, вот файл проверки
(подключение к базе есть!!!)
Код

<?
if (isset($_POST['login'])) {
   $passwordHash = md5($_POST['password']);
   $login = $_POST['login'];
   // Проверка логина на плохие смиволы
   if (!preg_match("/^\w{3,}$/", $login)) {
      die('Неправильный логин!');
   }
   $link = mysql_connect('localhost','******','******');
   if (!$link) {
      die('Не удалось соединиться с БД');
   }else{
      mysql_select_db('authorize', $link);
      $res = mysql_query("SELECT status FROM users WHERE login='$login'", $link);
      // Есть ли пользователь с таким логином?
      if (mysql_num_rows($res) < 1) {
         mysql_close($link);
         die('Такого пользователя нет!');
      }
      // Какой статус у пользователя?
      if (mysql_result($res, 0) != 1) {
         mysql_close($link);
         die('Логин не активирован!');
      }
      // Стартуем сессию и записываем логин в суперглобальный массив $_SESSION
      session_start();
      $_SESSION['user'] = $login;
      mysql_close($link);
      // Если определена страница с которой мы пришли,
      // на нее и переадресуем, либо на главную
      if (isset($_SERVER['HTTP_REFERER'])) {
         header ("location: ".$_SERVER['HTTP_REFERER']);
      }else {
         header ("location: index.php");
      }
   }
}
?>


при воходе мне пишут 
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/swsarumi/public_html/registr/login.php:15) in /home/swsarumi/public_html/registr/login.php on line 40

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/swsarumi/public_html/registr/login.php:15) in /home/swsarumi/public_html/registr/login.php on line 40

Warning: Cannot modify header information - headers already sent by (output started at /home/swsarumi/public_html/registr/login.php:15) in /home/swsarumi/public_html/registr/login.php on line 46

что надо исправить???


Автор: pizzz 10.2.2009, 17:11
убрать вывод до  session_start(); в файле  /home/swsarumi/public_html/registr/login.php на 40 строке

Автор: SergXP 10.2.2009, 17:12
header и session_start() необходимо использовать до каких либо выводов информации на экран...

Автор: sanchos14931 12.2.2009, 16:27
не могли бы вы переделать под правильный smile 

Автор: SneG0K 12.2.2009, 17:09
А че переделывать? smile 
Перемести вызов session_start() в начало скрипта

Автор: sanchos14931 12.2.2009, 17:29
Ой с тупил, признаю  smile  smile  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)