|
|
|
| Кнопку я сделал она работает и добавляет данные в бд!
1. Как сделать чтоб при нажатии кнопки он проверил что такие данные уже есть и выдал ошибку, чтоб второй раз уже не смогли сказать спасибо?
2 . Или как убрать кнопку после ее нажатия, чтоб пользователь ее больше не видел?
БД:
id------ot_spasibo------komy_spasibo-------id_spasibo
1-------admin-------------user--------------------14
2-------admin-------------user2--------------------8
id_spasibo - это номер страницы с которой было нажатие по кнопке
HTML:
if ($_POST['ot_spasibo'] && $_POST['komy_spasibo'] && $_POST['id_spasibo'])
{
@mysql_query("INSERT INTO `spasibo` (`id`, `ot_spasibo`, `komy_spasibo`, `id_spasibo`) VALUES (NULL , '".$_POST['ot_spasibo']."', '".$_POST['komy_spasibo']."', '".$_POST['id_spasibo']."');");
echo "<meta http-equiv=refresh content=0 url=\"?mod=mod&id=".$r['id']."\">";
}
<form action=\"?mod=mod&id=".$r['id']."\" method=\"post\">
<input type=hidden name=ot_spasibo value=\"{$name}\">
<input type=hidden name=komy_spasibo value=\"{$r['author']}\">
<input type=hidden name=id_spasibo value=\"{$r['id']}\">
<br><br><input type=submit value=\"Сказать спасибо\"></form> | |
|
|
|
|
|
|
|
для: clubxaliav
(18.09.2009 в 00:41)
| | 1. У вас есть таблица с юзерами? Должна быть, и там id наверняка тоже есть. Так вот советовал бы добавлять id пользователя в бд, а не его логин, т.к. потом проблемы лишние могут возникнуть.
2. Все данные перед добавлением в бд надо обрабатывать
3. Сделайте индекс с полями ot_spasibo, komy_spasibo, id_spasibo. Именно один индекс с тремя полями, а не три индекса. Тогда при добавлении, если вместо дескриптора вернется false - будет означать попытку повторно сказать "спасибо" | |
|
|
|
|
|
|
|
для: neadekvat
(18.09.2009 в 00:54)
| | ID пользователей есть,.. не могу вывести по сессии кто отправляет сказать спасибо, по этому сделал по username! Как это сделать я то же умею, но в скрипте много выводов из базы, где уже используеться $uid - в том же месте:
$b = @mysql_query ("SELECT avatar, statususer, reg_date, last_date FROM `users` WHERE id = $uid ");
а вывод сессии у меня такой:
$un=@$_SESSION['uid'];
if( $un!='' )
Поэтому при определении сессии по uid у меня стоит id пользователя из бд, а не кто в данный момент жмет на кнопку! | |
|
|
|
|
|
|
|
для: clubxaliav
(18.09.2009 в 10:14)
| | Я вас не понял. Чесна-чесна.
Если у вас в $_SESSION хранится name юзера, то в чем проблема хранить там еще и его id? | |
|
|
|
|
|
|
|
для: neadekvat
(18.09.2009 в 10:23)
| | так я пока не пойму в чем именно вам не понятно!!
начну заного:
Вы сказали что я храню в бд не id пользователя а username
1. вот так я сейчас использую чтоб добавлялось имя
$un=@$_SESSION['username'];
if( $un!='' )
2. а вот так можно как сказали вы,...
$un=@$_SESSION['uid'];
if( $un!='' )
Оба варианта работают у меня на сайте,...
НО!! 2й вариант на данной странице не работает так как там стоит вывод из базы:
$b = @mysql_query ("SELECT avatar, statususer, reg_date, last_date FROM `users` WHERE id = $uid ");
и $uid - здесь это страница пользователя и на ней установлена кнопка "сказать спасибо"
И если я ставлю 2 вариант то сессия пропадает и он определяет как будто пользователь сам себе кликает по кнопке!!! | |
|
|
|
|
|
|
|
для: clubxaliav
(18.09.2009 в 20:19)
| | Давайте сначала.
"Спасибо" вообще где находится и для чего служит? | |
|
|
|