Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2012, 21:39   #1
troyan32
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 31
Вопрос Почему не работает данный скрипт

Не устанавливаются куки. Объясните почему.

Весь скрипт:
Код:
<?php
require_once('db.php');
$user = $_POST['email'];// Получаем значение из формы
$pass = md5($_POST['pass']);// Получаем и хешируем значение из формы
//Если заполнены не все поля переводим на страницу ошибки
if ($user == '' || $_POST['pass'] == ''){ echo('<meta http-equiv="refresh" content="0;http://'.$_SERVER['SERVER_NAME'].'/?e=polya" />');}
//Делаем запрос к базе данных
$query = mysql_fetch_array(mysql_query('SELECT * FROM `users` WHERE `email`=\''.$user.'\' AND `pass`=\''.$pass.'\''));
//Проверяем нашлось ли что-то
if (isset($query['ID']))
{
    setcookie('ID',$query['ID'],time()+60*60*24*3);
    setcookie('email',$query['email'],time()+60*60*24*3);
    setcookie('name',$query['name'],time()+60*60*24*3);
    header('Location:http://'.$_SERVER['SERVER_NAME'].'/profile/');
}
else
{
    echo('<meta http-equiv="refresh" content="0;http://'.$_SERVER['SERVER_NAME'].'/?e=data" />');
}
?>
В принципе, всё работает и условие дает TRUE и переводится на страницу профиля, но там проверяются куки, а их нет. В браузере включена их поддержка. Проверял просто устанавливать куки без всего - всё работает.

Последний раз редактировалось troyan32; 08.03.2012 в 21:49.
troyan32 вне форума Ответить с цитированием
Старый 08.03.2012, 21:51   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от troyan32 Посмотреть сообщение
Не устанавливаются куки. Объясните почему.
Поиск ошибок и отладка -> Быстрые рекомендации -> п.1
Какие ошибки выводятся после выполнения этого пункта?
Andkorol вне форума Ответить с цитированием
Старый 08.03.2012, 21:55   #3
troyan32
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 31
По умолчанию

Никаких всё чисто.
troyan32 вне форума Ответить с цитированием
Старый 08.03.2012, 21:56   #4
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

Код:
<?php
ob_start();
require_once('db.php');
$user = $_POST['email'];// Получаем значение из формы
$pass = md5($_POST['pass']);// Получаем и хешируем значение из формы
//Если заполнены не все поля переводим на страницу ошибки
if ($user == '' || $_POST['pass'] == ''){ echo('<meta http-equiv="refresh" content="0;http://'.$_SERVER['SERVER_NAME'].'/?e=polya" />');}
//Делаем запрос к базе данных
$query = mysql_fetch_array(mysql_query('SELECT * FROM `users` WHERE `email`=\''.$user.'\' AND `pass`=\''.$pass.'\''));
//Проверяем нашлось ли что-то
if (isset($query['ID']))
{
    setcookie('ID',$query['ID'],time()+60*60*24*3);
    setcookie('email',$query['email'],time()+60*60*24*3);
    setcookie('name',$query['name'],time()+60*60*24*3);
    header('Location:http://'.$_SERVER['SERVER_NAME'].'/profile/');
}
else
{
    echo('<meta http-equiv="refresh" content="0;http://'.$_SERVER['SERVER_NAME'].'/?e=data" />');
}
$content = ob_get_contents();
ob_end_clean();
echo $content;
?>
а вообще стоит почитать об установке cookies.
Самый перспективный framework Yii (c)
TranceSmile вне форума Ответить с цитированием
Старый 08.03.2012, 22:01   #5
troyan32
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 31
По умолчанию

Цитата:
Сообщение от TranceSmile Посмотреть сообщение
а вообще стоит почитать об установке cookies.
Читал ничего нового для себя не нашёл, то что вы дали так же не работает.

Последний раз редактировалось troyan32; 08.03.2012 в 22:04.
troyan32 вне форума Ответить с цитированием
Старый 08.03.2012, 22:06   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

var_dump($query); после запроса к БД - что выводит?
Andkorol вне форума Ответить с цитированием
Старый 08.03.2012, 22:10   #7
troyan32
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 31
По умолчанию

Очень странно, но выводит
Код:
bool(false)
Значит запрос не правильный или Нет подключения, но как видно есть и подключение(оно точно работает- одно для всего сайта) и запрос, вроде, правильный.
troyan32 вне форума Ответить с цитированием
Старый 08.03.2012, 22:14   #8
troyan32
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 31
По умолчанию

А нет всё работает нормально
Код:
array(8) { Здесь информация из базы }
Подключение и выборка есть, а куки все равно не хотят устанавливаться
troyan32 вне форума Ответить с цитированием
Старый 08.03.2012, 22:42   #9
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от troyan32 Посмотреть сообщение
Подключение и выборка есть, а куки все равно не хотят устанавливаться
Покажите код, в котором вы работаете с этими cookies.

Цитата:
Проверял просто устанавливать куки без всего - всё работает.
Т.е. если в этом же коде (без условия) сделать setcookie('test','test value',time()+60*60*24*3); - то всё работает, и эта cookie ставится без проблем?
Andkorol вне форума Ответить с цитированием
Старый 13.03.2012, 21:35   #10
troyan32
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 31
По умолчанию

Дело в установки времени. Если создавать без времени(сеанс), то работает, а если указать с временем ни в какую не хочет. Не подскажите в чем может быть загвоздка?
troyan32 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
почему скрипт в модуле работает, а в листе нет? gramp Microsoft Office Excel 8 23.05.2011 23:56
Почему не работает скрипт ser70 JavaScript, Ajax 11 03.10.2010 17:09
Изучаю javascript не пойму почему не работает скрипт 4e4en JavaScript, Ajax 8 11.09.2010 19:17
Подскажите, почему не работает скрипт void656 HTML и CSS 5 12.01.2010 15:16
Почему не работает данный код? C# byte916 Помощь студентам 4 11.12.2009 21:19