Сессия: изменение значения переменной

aidan

Guest
Сессия: изменение значения переменной

Есть функция авторизации:
PHP:
function auth_user()          {
         
         global $_POST,$link,$base;
         $_POST['login']=prepareSlashes($_POST['login']);
         $_POST['password']=prepareSlashes($_POST['password']);

         if (!empty($_POST['login']) and !empty($_POST['password']))
             {
             $_SESSION['user']=@mysql_num_rows(mysql_query("SELECT login FROM users WHERE login='$_POST[login]' AND password='$_POST[password]'", $link));
             $logg=@mysql_fetch_array(mysql_query("SELECT id FROM users WHERE login='$_POST[login]' AND password='$_POST[password]'", $link));
             $_SESSION['id']=$logg['id'];

             }

         if (@$_SESSION['user'] !=1)
              {
              echo "<meta http-equiv=\"refresh\" content=\"0;url=http://$base/index.php\">"; exit();
              }
         }
после ее выполнения переменная $_SESSION['id']=4

если далее по тексту встречается:

$id=44; require '_members.php';

то значение $_SESSION['id'] становится равным 44
($_SESSION['id'] выводится в _members.php')

Такое может быть или у меня где-то логическая ошибка?
 

aidan

Guest
если его включить то такого не произойдет?

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

aidan

Guest
если в выше описанном примере убрать $id=44

а в строке адреса дописать ?id=44
будет ли $_SESSION устанавливаться = 44 ?
Или же на значение $_SESSION[id] может повлиять $id=44 указанная только внутри файла со скриптом?
 

aidan

Guest
проверял. не передает. А параноя не унимается :)
 

Фанат

oncle terrible
Команда форума
а для того, чтобы переменные не перемешивались, желательно индексы массива SESSION делать уникальными, не совпадающими именами глобальных переменных.
Ну, или отключить регистер глобалс.
 
Сверху