[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Прошу помощи или подсказки с $_SESSION
m4a1fox
Добрый день уважаемые эксперты. Не очень разбираюсь в $_SESSION. Есть вот такой скриптик
if(isset($_POST['like']))
{
$like = mysql_query("UPDATE `you_mail` SET `like` = `like` + 1 WHERE `id` = {$view}");
}

if(isset($_POST['unlike']))
{
$unlike = mysql_query("UPDATE `you_mail` SET `unlike` = `unlike` + 1 WHERE `id` = {$view}");
}

Как сделать что бы он не заносил в БД +1 при F5 на странице?



Спустя 3 минуты, 30 секунд (1.03.2011 - 20:35) Evilsoul написал(а):
header('Location:'.$_SERVER['PHP_SELF']);
exit;

Спустя 3 минуты, 35 секунд (1.03.2011 - 20:38) m4a1fox написал(а):
Evilsoul
ээээээ а куда это вставлять?

Спустя 1 минута, 29 секунд (1.03.2011 - 20:40) Evilsoul написал(а):
после того как всё что нужно выполнится

Спустя 6 минут, 15 секунд (1.03.2011 - 20:46) m4a1fox написал(а):
if(isset($_POST['like']))
{
$like = mysql_query("UPDATE `you_mail` SET `like` = `like` + 1 WHERE `id` = {$view}");
}

if(isset($_POST['unlike']))
{
$unlike = mysql_query("UPDATE `you_mail` SET `unlike` = `unlike` + 1 WHERE `id` = {$view}");
}
header('Location:'.$_SERVER['PHP_SELF']);
exit;

Так не получается. Бесконечная цикличность.

Спустя 1 минута, 18 секунд (1.03.2011 - 20:47) Evilsoul написал(а):
а где у тебя цикл?

Спустя 1 минута, 10 секунд (1.03.2011 - 20:48) m4a1fox написал(а):
Evilsoul
Так как то и нет цикла - то.... Блин! К сожалению убегать надо. Но через 40 минут вернусь!

Спустя 4 минуты, 9 секунд (1.03.2011 - 20:53) inpost написал(а):
по смыслу когда редирект должен быть? После внесения данных в таблицу, или просто так на ровном месте?

Спустя 28 минут, 41 секунда (1.03.2011 - 21:21) m4a1fox написал(а):
inpost
Наверно после... Это та штука что Вы вчера помогали делать ночью... Ну нравится ил не нравится...

Спустя 5 минут, 37 секунд (1.03.2011 - 21:27) m4a1fox написал(а):
А если так?

if(isset($_POST['like'])) $like = $_POST['like'];
if(isset($_POST['unlike'])) $unlike = $_POST['unlike'];

if($like)
{
if(!isset($_SESSION['like'][$like])){
mysql_query("UPDATE `you_mail` SET `like` = `like` + 1 WHERE `id` = {$view}");
$_SESSION['like'][$like] = $like;
}
}

Спустя 22 минуты, 38 секунд (1.03.2011 - 21:49) Lenarfate написал(а):
а при чем тут сессия, если тебе нужен редирект?

Спустя 6 минут, 30 секунд (1.03.2011 - 21:56) m4a1fox написал(а):
Lenarfate
Редирект? Например?

Спустя 1 минута, 43 секунды (1.03.2011 - 21:58) m4a1fox написал(а):
Причем здесь редирект. Мне нужно, что бы при F5 после нажатия на кнопку, еще один плюс не заносился в БД.

Спустя 2 минуты, 56 секунд (1.03.2011 - 22:01) inpost написал(а):
m4a1fox
вроде норм.

Спустя 3 минуты, 41 секунда (1.03.2011 - 22:04) m4a1fox написал(а):
inpost
Это вы к чему? И еще вопрос могут ли быть на одной странице 2 сессии?

Спустя 6 минут, 40 секунд (1.03.2011 - 22:11) inpost написал(а):
m4a1fox
нет, она одна, но сессия - это обычный массив =) Так что для тебя ответ "да, может", но по грамотному - это всё одна сессия =)

Спустя 1 час, 47 минут, 7 секунд (1.03.2011 - 23:58) m4a1fox написал(а):
А если применить cookies к такой штуке? Это вообще реально?!

Спустя 10 минут, 30 секунд (2.03.2011 - 00:09) m4a1fox написал(а):
почитал про cookies и понял. Не - то! Может все таки кто нибудь будет так добр и подскажет как реализовать следующую задачу. есть кнопки -
<input type="submit" class="like" name="like" value="" title="поставить автору +">
<input
type="submit" class="unlike" name="unlike" value="" title="поставить автору -">


вот их обработчик.
if(isset($_POST['like']))
{
mysql_query("UPDATE `you_mail` SET `like` = `like` + 1 WHERE `id` = {$view}");
}

if(isset($_POST['unlike']))
{
mysql_query("UPDATE `you_mail` SET `unlike` = `unlike` + 1 WHERE `id` = {$view}");
}

Задача такова, что бы пользователь мог только один раз нажать, ту или иную кнопку. То есть что бы при обновлении, запрос не повторялся. Спасибо.

Спустя 25 минут, 40 секунд (2.03.2011 - 00:34) inpost написал(а):
Отдельная таблица, структура: `id`,`ip`,`comment` , где id - просто инкремент никому не нужный, `ip` - АйПи пользователя, который плюсует. Коммент - ID из таблицы комментов, для которого июёт плюс ( у тебя это содержится в $view. Перед добавлением проверяешь, если нет записи IP-COMMENT, тогда добавляешь, в противном случае - пишешь, что "Вы уже голосовали."

Спустя 12 минут, 6 секунд (2.03.2011 - 00:46) m4a1fox написал(а):
inpost
Я сейчас как собака )) Понимать то понимаю... А вот выполнить ))) Может есть где про такой пример почитать...

Спустя 7 минут, 9 секунд (2.03.2011 - 00:54) inpost написал(а):
m4a1fox
Что именно не понятно? Как создать таблицу, как занести в таблицу данные через INSERT, или как проверить, есть ли в таблице эти данные? Уже 4 месяца на форуме, такие мелочи должен как орешки щелкать

Спустя 9 минут, 27 секунд (2.03.2011 - 01:03) m4a1fox написал(а):
inpost
Как проверить?!

Спустя 1 минута, 33 секунды (2.03.2011 - 01:05) inpost написал(а):
2 варианта (оба):
// #1

$row = mysql_query("SELECT `id` FROM `dat_correspondence`");
if(mysql_num_rows($row)>0)

// #2

$row = mysql_query("SELECT COUNT(*) AS `cnt` FROM `dat_correspondence`");
if(mysql_result($row, 0) > 0)

Спустя 9 минут, 59 секунд (2.03.2011 - 01:14) m4a1fox написал(а):
inpost
Извините, чего туплю... Это я в курсе. Другое интересно. При проверки ip с БД, будет образовываться массив с ip из БД, и поочередно сравниваться?! Так же?

Спустя 17 минут, 17 секунд (2.03.2011 - 01:32) inpost написал(а):
Нет, каждая запись!
WHERE `ip`= $_POST['ip'] AND `post`= $_POST['post'], как-то так.
Один в один по аналогии с WHERE `login` = $_POST['login'] AND `password` = $_POST['password'], думаю, ты уже прошел курсы на Ирбисе по регистрации.

Спустя 2 минуты, 48 секунд (2.03.2011 - 01:35) m4a1fox написал(а):
inpost
В принципе, понял... Но хотелось бы посмотреть, если есть такое в уроках каких нибудь.

Спустя 6 минут, 47 секунд (2.03.2011 - 01:41) inpost написал(а):
m4a1fox
один в один с регистрацией, и такого нету, самому делать надо, потому что это аналогия, не зачем разжевывать одно и то же постоянно =)
Быстрый ответ:

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