[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: удаление cookie
plumli
Добрый вечер, вроде все просто, делаем ссылку на файл где лежит следующий код:

<?php
setcookie('user_id','',time() -3600);
setcookie('user_username','',time() -3600);
$home_url = 'index.php';
header ('Location: ' . $home_url);
?>


после чего куки под именем user_id и user_username должны удалиться, но этого не происходят, они продолжают работать, подскажите пожалуйста в чем может быть ошибка?



Спустя 7 минут, 51 секунда (8.10.2011 - 22:34) kovaldm написал(а):
Куки обязаны быть удалены с теми же параметрами, с которыми были установлены.
http://php.su/functions/?f=setcookie&choice=info

Спустя 10 минут, 7 секунд (8.10.2011 - 22:44) plumli написал(а):
вот их установка:

setcookie('user_id', $row['user_id'], time() + (60 * 30 * 1));
setcookie('user_username', $row['username'], time() + (60 * 30 * 1));

Спустя 2 минуты, 33 секунды (8.10.2011 - 22:47) kovaldm написал(а):
setcookie('user_id', '');

Спустя 5 минут, 14 секунд (8.10.2011 - 22:52) plumli написал(а):
пробовал, не прошло

Спустя 3 минуты, 47 секунд (8.10.2011 - 22:56) kovaldm написал(а):
setcookie('user_id','',time()-3600);
setcookie('user_username','',time()-3600);

time()-3600 без пробелов.

Спустя 2 минуты (8.10.2011 - 22:58) kovaldm написал(а):
МБ есть вывод до отправки кук, а вывод ошибок отключен?

Спустя 11 минут, 32 секунды (8.10.2011 - 23:09) plumli написал(а):
пробовал и с пробелами и без, в выводе ошибок были нотисы, но они не относятся к данной проблеме

прям мистика) в одном месте удаляет по этой схеме, а тут - нет

Спустя 12 минут, 56 секунд (8.10.2011 - 23:22) bodja написал(а):
сначала пробуйте отправлять header а потом куки,
далее куки проверяйте не на isset а на empty.
Еще ,в том же скрипте куки в глобальном массиве все равно останутся.Или сносите ,или проверяйте уже после перезагрузки страницы.

Спустя 7 минут, 21 секунда (8.10.2011 - 23:30) kovaldm написал(а):
А разв куки не должны отправляться до хидеров?

Спустя 6 минут, 58 секунд (8.10.2011 - 23:37) plumli написал(а):
вот весь процесс установки куков:

if (!isset($_COOKIE['user_id'])) 
{
if (isset ($_POST['submit']))
{
$dbc = mysqli_connect (DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) or die ('ошибка подключения');
$username = mysqli_real_escape_string($dbc, trim($_POST['username']));
$password = mysqli_real_escape_string($dbc, trim($_POST['password']));
if (!empty($username) && !empty($password))
{
$query = "SELECT * FROM users " . "WHERE username = '$username' AND password = '$password'";
$data = mysqli_query($dbc, $query);
if (mysqli_num_rows($data) == 1)
{
$row = mysqli_fetch_array ($data);
setcookie('user_id', $row['user_id'], time() + (60 * 30 * 1));
setcookie('user_username', $row['username'], time() + (60 * 30 * 1));
$home_url = '?page=forum';
header ('Location: ' . $home_url);
}
else
{
$error_msg = '<p class="atention">Имя или пароль введены не верно</p>';
}
}

else
{
$error_msg = '<p class="atention">Одно или оба поля остались не заполнены, заполните оба поля</p>';
}
}
}

if (empty ($_COOKIE['user_id']))
{
echo '<p>' . $error_msg . '</p>';
?>
<form method="POST" action="?page=forum">
<
center><table width="550" style="padding-top:20px;"><tr>
<
td class="forum_login">Имя пользователя</td>
<
td><input type="text" name="username" maxlength="16" size="16"/></td>
<
td class="forum_login">Пароль</td>
<
td><input type="password" name="password" maxlength="10" size="16"/></td>
<
td><input type="submit" name="submit" value="Войти"></td>
</
tr>
</
table></center>
</
form>
<?php
}
else
{
echo ('<p>Здравствуйте ' . $_COOKIE['user_username'] . ' <a href="forum/logout.php">[Выход]</a></p>');
}

Спустя 10 минут, 53 секунды (8.10.2011 - 23:47) killer8080 написал(а):
plumli
а где mysql_select_db()?
Цитата (kovaldm @ 8.10.2011 - 23:30)
А разв куки не должны отправляться до хидеров?

куки - это то же заголовки.

Спустя 2 минуты, 20 секунд (8.10.2011 - 23:50) killer8080 написал(а):
plumli
пардон тупанул, там же mysqli ph34r.gif


А почему бы не использовать сессии? Они для этого и предназначены.

Спустя 11 минут, 5 секунд (9.10.2011 - 00:01) plumli написал(а):
сессия жива пока открыт браузер, а это не очень удобно, или я ошибаюсь?

Спустя 29 минут, 6 секунд (9.10.2011 - 00:30) killer8080 написал(а):
Цитата (plumli @ 9.10.2011 - 00:01)
сессия жива пока открыт браузер, а это не очень удобно, или я ошибаюсь?

Ошибаешься. Время жизни сессии определяется настройками php. Сессии, обычно, так же работают через куки. К тому же в вашем варианте безопасность на нуле. Что мне помешает подделать куки? Сделаю себе куку user_id со значением id админа, и всё, сайт взломан.
Почитайте про сессии, будет полезно smile.gif

Спустя 53 минуты, 16 секунд (9.10.2011 - 01:23) plumli написал(а):
спасибо, сессии помогли
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.