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


Автор: Yaz0n 10.6.2004, 12:19
$user_login=$_POST['login'];
$user_pass=$_POST['pass'];

$find1="select * from $reg where login='$user_login'";
$find2=mysql_query($find1);
$rows=mysql_num_rows($find2);
if ($rows != 0)
{
$password=mysql_result ($find2, 0, 'pass');
if ($password==$user_pass)
{
$email=mysql_result ($find2, 0, 'email');
session_name("entered_user");
session_start();
session_register("user_login");
session_register("email");
if ( isset($_SESSION['user_login'] ) ) {
echo "$_SESSION['user_login'] - $user_login"
"; }
.......................................


КОРОЧЕ - говорит, что user_login в строке где $_SESSION ... не определен, но тем не менее
if выполняет - печатает [описание ошибки] - [значение $user_login]

Пробовал и так и сяк - но не пашет, а ошибки не вижу! Помогите кто чем может.
[b][/b][b]
Добавлено @ 12:21
Пробовал ставить session_start() и в начало - не помогло

Автор: Master 10.6.2004, 12:39
как это... не определен... если isset($_SESSION['user_login']) = true, то он не может быть не определен.
что он печатает у тебя при echo "$_SESSION['user_login'] - $user_login";?

Автор: Yaz0n 10.6.2004, 13:58
ЕЩЕ РАЗ:
$user_login=$_POST['login'];
$user_pass=$_POST['pass'];

$find1="select * from $reg where login='$user_login'";
$find2=mysql_query($find1);
$rows=mysql_num_rows($find2);
if ($rows != 0)
{
$password=mysql_result ($find2, 0, 'pass');
if ($password==$user_pass)
{

session_start();
$logged_user=$user_login;
$email=mysql_result ($find2, 0, 'email');
session_register("logged_user");
session_register("email");
echo "$_SESSION['logged_user']"; (line 22)
}
else
{
echo "incorrect password!";
}
}
else
{
.............................


ERROR:
Notice: Undefined index: 'logged_user' in ... :\.....................\registration\go.php on line 22


И надо ли мне писать start_session() в следующем документе, чтобы получить переменную?
notify.gif

Автор: yUAC 10.6.2004, 21:31
Мдяя.. session_start() нужно прописывать ВСЕГДА!

Автор: IZ@TOP 11.6.2004, 10:47
Дело в том, что когда ты пишешь сессию, то при выполнении скрипта, записанные значения не будут видны как и кука, пока юзер не обновит страницу, или ты не сделаешь редирект. Это помоему относится только когда ты регистрируешь переменные с помощью session_register(mixed var).

Автор: Kefir 11.6.2004, 12:32
www.php.net:
If you want your script to work regardless of register_globals, you need to instead use the $_SESSION array as $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where the PHP directive register_globals is disabled.

If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered(), and session_unregister().

так что завязывай с session_register wink.gif

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