Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: проблема с сессией при авторизации
 
 автор: amsun   (30.11.2005 в 11:36)   письмо автору
 
 

кусок кода скрипта авторизации, где я попытался начать сессию:

if($_POST['submit'])
{
 if (!$passwordfrombase)
 {
 echo "error";
 exit;
 }
 elseif ($passwordfrombase['password']==$enteredpassword)
 {
  session_start();
  $logged_user = $user;
  $_SESSION['logged_user']='logged_user';
  $_SESSION['authorized'] = true;
  $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
  header("Location: foruser.php");
  exit;
 }
 else
 {
  echo "error";
  exit;
 }
}
}


кусок в странице foruser.php, куда и надо попасть:

7. <?php
8.  
unset($logged_user);
9.
10.  session_start
();
11.
12.  
if (!isset($_SESSION['logged_user']))
13.  {
14.    header("Location: forguest.php");
15.    exit;
16.  }
17. ?>


после успешной авторизации выдает мне страницу, но ругается:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at c:\Test\localhost\www\foruser.php:7) in c:\Test\localhost\www\foruser.php on line 10

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at c:\Test\localhost\www\foruser.php:7) in c:\Test\localhost\www\foruser.php on line 10


в чем проблема? спасибо

   
 
 автор: Lelik   (30.11.2005 в 12:19)   письмо автору
 
   для: amsun   (30.11.2005 в 11:36)
 

/

   
 
 автор: DDK   (30.11.2005 в 14:04)   письмо автору
 
   для: amsun   (30.11.2005 в 11:36)
 

Регистрировать переменные сессий, так же как и куки нужно ДО вывода любой информации в браузер. Т.е. так прокатит:

<?
session_start
();
session_register("username");
echo 
"Любой текст, выводимый в браузер";
?>

А так уже не прокатит:

<?
echo "Любой текст, выводимый в браузер";
session_start();
session_register("username");
?>

Объяснил на пальцах, надеюсь понятно.

   
 
 автор: Lelik   (30.11.2005 в 14:08)   письмо автору
 
   для: DDK   (30.11.2005 в 14:04)
 

Не обязательно, там у него ошибку выдает из-за хедера, пусть может его заменит на эчо "хттп://урл.файл"

   
 
 автор: DDK   (30.11.2005 в 14:18)   письмо автору
 
   для: Lelik   (30.11.2005 в 14:08)
 

Мало что понял из вашего высказывания (велик и могуч русс. яз., ага...). Автор темы привёл только кусок кода, я на 100% уверен, что перед этим куском у него в скрипте есть хоть один оператор echo...

   
 
 автор: Lelik   (30.11.2005 в 14:22)   письмо автору
 
   для: DDK   (30.11.2005 в 14:18)
 

сорри, ступил, полность с вами согласен

   
 
 автор: cheops   (30.11.2005 в 15:59)   письмо автору
 
   для: amsun   (30.11.2005 в 11:36)
 

До 7 строки foruser.php у вас идёт вывод в браузер до вызова session_start - его необходимо устранить
1.<?php
2.  session_start
();
3.?>
....
10.<?php
unset($logged_user);
...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования