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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Кнопка "сказать спасибо"
 
 автор: clubxaliav   (18.09.2009 в 00:41)   письмо автору
 
 

Кнопку я сделал она работает и добавляет данные в бд!

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>

  Ответить  
 
 автор: neadekvat   (18.09.2009 в 00:54)   письмо автору
 
   для: clubxaliav   (18.09.2009 в 00:41)
 

1. У вас есть таблица с юзерами? Должна быть, и там id наверняка тоже есть. Так вот советовал бы добавлять id пользователя в бд, а не его логин, т.к. потом проблемы лишние могут возникнуть.
2. Все данные перед добавлением в бд надо обрабатывать
3. Сделайте индекс с полями ot_spasibo, komy_spasibo, id_spasibo. Именно один индекс с тремя полями, а не три индекса. Тогда при добавлении, если вместо дескриптора вернется false - будет означать попытку повторно сказать "спасибо"

  Ответить  
 
 автор: clubxaliav   (18.09.2009 в 10:14)   письмо автору
 
   для: 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 пользователя из бд, а не кто в данный момент жмет на кнопку!

  Ответить  
 
 автор: neadekvat   (18.09.2009 в 10:23)   письмо автору
 
   для: clubxaliav   (18.09.2009 в 10:14)
 

Я вас не понял. Чесна-чесна.
Если у вас в $_SESSION хранится name юзера, то в чем проблема хранить там еще и его id?

  Ответить  
 
 автор: clubxaliav   (18.09.2009 в 20:19)   письмо автору
 
   для: 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 вариант то сессия пропадает и он определяет как будто пользователь сам себе кликает по кнопке!!!

  Ответить  
 
 автор: neadekvat   (18.09.2009 в 22:04)   письмо автору
 
   для: clubxaliav   (18.09.2009 в 20:19)
 

Давайте сначала.
"Спасибо" вообще где находится и для чего служит?

  Ответить  
Rambler's Top100
вверх

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