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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Проблема с куками...

Сообщения:  [1-10]   [11-16] 

 
 автор: DEM   (07.08.2011 в 17:04)   письмо автору
 
   для: Drago   (07.08.2011 в 16:51)
 

Ясно, спасибо, буду смотреть :)

  Ответить  
 
 автор: Drago   (07.08.2011 в 16:51)   письмо автору
 
   для: DEM   (07.08.2011 в 15:51)
 

Значит опять что-то не так делаете. Если в $path стоит корень веб-сервера, куки должны быть доступны в любом каталоге, любом файле.

  Ответить  
 
 автор: DEM   (07.08.2011 в 15:51)   письмо автору
 
   для: DEM   (07.08.2011 в 12:49)
 

Только еще один вопрос: а как обращаться к кукам из файла API.php? А то он перестал его видеть :( Я, к счастью, храню это всё еще и в сессии, но на будущее знать было бы полезно :)

  Ответить  
 
 автор: DEM   (07.08.2011 в 12:49)   письмо автору
 
   для: Drago   (07.08.2011 в 11:31)
 

О! Теперь всё работает! Спасибо большое!
Раньше просто никогда не работал с $path и $domain и поэтому столкнулся с такой проблемой :)

Еще раз спасибо!

  Ответить  
 
 автор: DEM   (07.08.2011 в 12:49)   письмо автору
 
   для: Drago   (07.08.2011 в 11:31)
 

О! Теперь всё работает! Спасибо большое!
Раньше просто никогда не работал с $path и $domain и поэтому столкнулся с такой проблемой :)

Еще раз спасибо!

  Ответить  
 
 автор: Drago   (07.08.2011 в 11:31)   письмо автору
 
   для: DEM   (07.08.2011 в 06:56)
 

Конечно не поможет, потому что ничего не изменилось.

У вас проблема в том, что вы ставите куки в файле /class/API.php, а проверяете в /index.php. Без указания параметра $path, куки устанавливаются для всех файлов текущего каталога и вложенных в него. Если указать в $path корень веб-сервера "/", куки будут доступны в любом месте.

Параметр $domain там тоже неспроста, но об этом вам уже Хеопс намекал.

  Ответить  
 
 автор: DEM   (07.08.2011 в 06:56)   письмо автору
 
   для: Drago   (06.08.2011 в 15:01)
 

Поставил везде так:
setcookie('id', $user->info['id'], time()+604800, "", ""); (для логина и пароля тоже)

Но не помогло(((

  Ответить  
 
 автор: Drago   (06.08.2011 в 15:01)   письмо автору
 
   для: DEM   (06.08.2011 в 14:28)
 

http://php.net/setcookie
Параметр $path.

  Ответить  
 
 автор: DEM   (06.08.2011 в 14:28)   письмо автору
 
   для: DEM   (06.08.2011 в 14:06)
 

Проверил, вроде всё нормально(((
Вот код jQuery:

$('#AuthButt').live('click', function(){
    // varLoad = $(this).parent().html("<div>Загрузка...</div>");
    $.post("class/API.php", 
          {method: "Auth", 
          login: $('#login').val(),
          pass: $('#pass').val()},
          function(html){             
                if(html!=""){
                    alerter(2, html);                                         
                } else {
                    alerter(0, 'Произошла ошибка!'); 
                }            
          });      

   
});


А вот метод, который отвечает за авторизацию (при обращении к API.php идёт проверка отправленой переменной $_POST['method'] и если всё норм - вызывается определённый метод):

public function Auth($login, $pass){
    global $db;  //Знаю что это устарело, как исправлю баг с авторизацией, сразу исправлю
        $pass = md5($pass);      
        $num = $db->query("SELECT * FROM `users` 
                            WHERE `login`=" . $db->quote($login) . " 
                            AND `pass`='" . $pass . "'");    
            
        if($num->rowCount() == 1){            
            $user = $num->fetch(PDO::FETCH_ASSOC);
            $_SESSION['login'] = $user['login'];
            $_SESSION['pass'] = $user['pass'];
            $_SESSION['id'] = $user['id'];            
            setcookie('login', $user['login'], time()+604800);
            setcookie('pass', $user['pass'], time()+604800);
            setcookie('id', $user['id'], time()+604800);        
            echo "Вы удачно авторизировались!";
        } else {
            session_destroy();
            setcookie('login');
            setcookie('pass');
            setcookie('id'); //на всякий случай удаляю данные, мало ли...
            echo "Такой пользователь не найден!";            
        }
    }

  Ответить  
 
 автор: DEM   (06.08.2011 в 14:06)   письмо автору
 
   для: cheops   (06.08.2011 в 13:58)
 

А вот это мысль, как буду дома проверю.
Спасибо!

  Ответить  

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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