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

Форум PHP

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

 

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

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

тема: не передаются сессионные переменные с первого раза
 
 автор: inga   (25.09.2007 в 12:28)   письмо автору
 
 

Авторизация осуществяется с помощью сессионных переменных:

<?php 
if(!$_POST['name']) echo "<HTML><HEAD> 
                <META HTTP-EQUIV='Refresh' CONTENT='0; URL=http://bla.ua/online/registr_ukr/vhod.php'> 
                </HEAD></HTML>"

if(!
$_POST['password']) echo "<HTML><HEAD> 
                <META HTTP-EQUIV='Refresh' CONTENT='0; URL=http://bla.ua/online/registr_ukr/vhod.php'> 
                </HEAD></HTML>"

$name $_POST['name']; 
$pswrd $_POST['password']; 
$user="name"
  
$query "SELECT * FROM users 
            WHERE login = '
$name'"
  
$ath mysql_query($query); 
if(
$ath
  { 
    
$auth mysql_fetch_array($ath); 
    if(
$auth['password'] != $pswrd
    {               
      echo 
"<HTML><HEAD> 
                <META HTTP-EQUIV='Refresh' CONTENT='0; URL=http://bla.ua/online/registr_ukr/vhod.php?error=1'> 
                </HEAD></HTML>"

    } 
    else 
    { 
        
session_start();
          
$_SESSION["metka"]=1;
          
$_SESSION["imja"]=$name;
          
$_SESSION["password"]=$password;
          
$idy session_id();
          
setcookie('idy'$idy) ;
           echo 
"<HTML><HEAD> 
                <META HTTP-EQUIV='Refresh' CONTENT='0; URL=http://bla.ua/online/ukraina.php'> 
                </HEAD></HTML>"



     } 

?> 

Бывают случаии, что приходится дважды вводить логин и пароль (такое происходит всегда при первом открытии браузера). Почему такое происходит? И как это исправить?

   
 
 автор: bronenos   (25.09.2007 в 13:21)   письмо автору
 
   для: inga   (25.09.2007 в 12:28)
 

кэш?

   
 
 автор: inga   (25.09.2007 в 13:32)   письмо автору
 
   для: bronenos   (25.09.2007 в 13:21)
 

я не могу ответить на этот вопрос. что за кеш?

   
 
 автор: sim5   (25.09.2007 в 13:35)   письмо автору
 
   для: inga   (25.09.2007 в 12:28)
 

Наверное потому что изначально $_SESSION["metka"], $_SESSION["imja"], $_SESSION["password"] не только пусты, но и вообще не существуют. Проверять видимо надо, нет - форма ввода, есть - ОК, а у вас этого нет.

   
 
 автор: inga   (25.09.2007 в 15:04)   письмо автору
 
   для: sim5   (25.09.2007 в 13:35)
 

ни че не поняла. конечно же при заходе появляется форма ввода из нее в выше представленный кусок кода передаются логин и пароль, а тут уже если совпадают, создается сессионные пременные. так что же не так у меня?

   
 
 автор: sim5   (25.09.2007 в 15:08)   письмо автору
 
   для: inga   (25.09.2007 в 15:04)
 

Если у вас $_SESSION["metka"] - это признак получения и совпадения идентификации, то проверяйте, установлена ли она еще до отправки формы пользователю, естественно стартуя сессию до этого. Если не установлена - значит форма, если да, то переход через хидер, либо... После этого ну никак не должно лишнего появиться, я так думаю. )

   
Rambler's Top100
вверх

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