Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Сессия

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Windows and Linux
ЯД
Отправлено: 20 Февраля, 2008 - 10:29:51
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Янв. 2008  
Откуда: Санкт-Петербург


Помог: 0 раз(а)

[+]


Люди, у меня такая проблема. Когда мой сайт находится на Windows сервере, все хорошо сессия держится и не слетает, но на Linux сервере сессия слетает постоянно!
Подскажите как исправить данное неудобство!
 
 Top
evgenijj
Отправлено: 20 Февраля, 2008 - 10:53:24
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




ЯД пишет:
но на Linux сервере сессия слетает постоянно!

Блин, на клей посади.

Давай уж подробненько. Что за скрипт, какие настройки для сессии в php.ini и т.п.
 
 Top
Mister
Отправлено: 20 Февраля, 2008 - 11:12:31
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2007  
Откуда: Сухиничи Калуж.обл.


Помог: 0 раз(а)

[+]


А нельзя ли код скрипта посмотреть?


-----
..я не специалист, а только учусь
 
 Top
ЯД
Отправлено: 20 Февраля, 2008 - 11:22:22
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Янв. 2008  
Откуда: Санкт-Петербург


Помог: 0 раз(а)

[+]


Вот часть скрипта авторизации, в других скриптах просто стартует сессия и проверяется наличие $_SESSION['user_id'].
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include ('mysql.php');
  3. if (isset($_GET['logout']))
  4. {
  5.         if (isset($_SESSION['user_id']))
  6.                 unset($_SESSION['user_id']);
  7.                
  8.         // и переносим его на главную
  9.         header('Location: index.php');
  10.         exit;
  11. }
  12.  
  13. if (isset($_SESSION['user_id']))
  14. {
  15.         // юзер уже залогинен, перекидываем его отсюда на закрытую страницу
  16.         header("Location:closed.php?id=".$_SESSION['user_id']);
  17.         exit;
  18. }
  19.  
  20. if (!empty($_POST))
  21. {
  22.         $email = (isset($_POST['email'])) ? mysql_real_escape_string($_POST['email']) : '';
  23.        
  24.         $query = "SELECT `salt`
  25.                                 FROM `users`
  26.                                 WHERE `email`='{$email}'
  27.                                 LIMIT 1";
  28.         $sql = mysql_query($query) or die(mysql_error());
  29.        
  30.         if (mysql_num_rows($sql) == 1)
  31.         {
  32.                 $row = mysql_fetch_assoc($sql);
  33.                
  34.                 // итак, вот она соль, соответствующая этому логину:
  35.                 $salt = $row['salt'];
  36.                
  37.                 $password = md5(md5($_POST['password']) . $salt);
  38.                
  39.  
  40.                 $query = "SELECT `id`
  41.                                         FROM `users`
  42.                                         WHERE `email`='{$email}' AND `password`='{$password}'
  43.                                         LIMIT 1";
  44.                 $sql = mysql_query($query) or die(mysql_error());
  45.  
  46.                 // если такой пользователь нашелся
  47.                 if (mysql_num_rows($sql) == 1)
  48.                 {
  49.  
  50.                         $row = mysql_fetch_assoc($sql);
  51.                         $_SESSION['user_id'] = $row['id'];
  52.                         $_SESSION['email']= $row['email'];
  53.                        
  54.                         $time = 86400; // ставим куку на 24 часа
  55.                        
  56.                         if (isset($_POST['remember']))
  57.                         {
  58.                                 setcookie('email', $email, time()+$time, "/");
  59.                                 setcookie('password', $password, time()+$time, "/");
  60.                         }
  61.  
  62.                        
  63.                         header("Location:closed.php?id=".$_SESSION['user_id']);
  64.                         exit;
 
 Top
RomAndry Администратор
Отправлено: 20 Февраля, 2008 - 11:40:57
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


Помог: 6 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. header("Location:closed.php?id=".$_SESSION['user_id']);
  3.  

непонятно зачем такой финт, если user_id в сессии?
 
My status
 Top
evgenijj
Отправлено: 20 Февраля, 2008 - 11:51:59
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




first.php
PHP:
скопировать код в буфер обмена
  1.  
  2. $_SESSION['someVar'] = 'someValue';
  3. echo '<a href="second.php">Next</a>';
  4.  

second.php

Если вот это работает - тогда ищи ошибку в логике. Если нет - будем разбираться дальше. Думаю, надо будет посмотреть session.save_path и проверить права доступа к этой директории.
 
 Top
Gor
Отправлено: 20 Февраля, 2008 - 12:54:53
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Окт. 2007  
Откуда: Спб


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. if (isset($_SESSION['user_id']))
  2. {
  3.     // юзер уже залогинен, перекидываем его отсюда на закрытую страницу
  4.     header("Location:closed.php?id=".$_SESSION['user_id']);
  5.     exit;
  6. }


$_SESSION['user_id'] - есть изнечально.
Юзер всегда залогинен. Всегда "на выход".
isset() - проверяет на существование переменной.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB