Проверка дали потребителя е писал в дадената тема

nom3r1

Registered
Искам този код да го направя така, че потребителите да не може да си давате точки един на друг също така да не може да се дава на друг потребител , който не е писал в темата.

Код:
if (isset($_GET['blagodaria'])){
$bid = $_GET['blagodaria'];
$tid = $_GET['id'];
if($idito == $bid) {
die ('<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php?act=viewtopic&id='.$tid.'">');
}
$k = mysql_query("SELECT * FROM users WHERE id='$bid'") or die(mysql_error());
$l = mysql_fetch_array($k);
$support = $l['tochki'];
$bonusi = $l['bonusi'];
$new_support = ($support + 1);
$new_bonus = ($bonusi + 2);
mysql_query("UPDATE `users` SET tochki='$new_support' WHERE id='$bid'") or die(mysql_error());
mysql_query("UPDATE `users` SET bonusi='$new_bonus' WHERE id='$bid'") or die(mysql_error());
mysql_query("UPDATE `forum_topics` SET bonus='1' WHERE topicid='$tid'") or die(mysql_error());
die ('<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php?act=viewtopic&id='.$tid.'">');
}

във UPDATE `forum_topic` - записвам дали е дадена точка на някой в темата, а с другите две заявки просто правя ъпдейт на точките и бонусите.
 
Само си настрой нещата в $sql променливата!
if (isset($_GET['blagodaria'])){
$bid = $_GET['blagodaria'];
$tid = $_GET['id'];
$sql = "SELECT * FROM tablica_otgovori WHERE ot = '$bid' AND tema = '$tid'";
$res = mysql_query($sql);
$res1 = mysql_num_row($res);
if($res1 = 1) {
if($idito == $bid) {
die ('<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php?act=viewtopic&id='.$tid.'">');
}
$k = mysql_query("SELECT * FROM users WHERE id='$bid'") or die(mysql_error());
$l = mysql_fetch_array($k);
$support = $l['tochki'];
$bonusi = $l['bonusi'];
$new_support = ($support + 1);
$new_bonus = ($bonusi + 2);
mysql_query("UPDATE `users` SET tochki='$new_support' WHERE id='$bid'") or die(mysql_error());
mysql_query("UPDATE `users` SET bonusi='$new_bonus' WHERE id='$bid'") or die(mysql_error());
mysql_query("UPDATE `forum_topics` SET bonus='1' WHERE topicid='$tid'") or die(mysql_error());
die ('<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php?act=viewtopic&id='.$tid.'">');
}
} else {
die ("Вие не сте писали в тази тема!");
}
 
Fatal error: Call to undefined function mysql_num_row() in /home/vb/public_html/forum/viewtopic.php on line 222

Ред:
$res1 = mysql_num_row($s8l);


Код:
if (isset($_GET['blagodaria'])){
$bid = $_GET['blagodaria'];
$tid = $_GET['id'];
$s8l = mysql_query("SELECT * FROM forum_topics WHERE author = '$bid' AND topicid = '$tid'")or die(mysql_error()."<br />ред: ".__LINE__);
$res1 = mysql_num_row($s8l);
if($res1 = 1) {
if($idito == $bid) {
die ('<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php?act=viewtopic&id='.$tid.'">');
}
$k = mysql_query("SELECT * FROM users WHERE id='$bid'") or die(mysql_error());
$l = mysql_fetch_array($k);
$support = $l['tochki'];
$bonusi = $l['bonusi'];
$new_support = ($support + 1);
$new_bonus = ($bonusi + 2);
mysql_query("UPDATE `users` SET tochki='$new_support' WHERE id='$bid'") or die(mysql_error());
mysql_query("UPDATE `users` SET bonusi='$new_bonus' WHERE id='$bid'") or die(mysql_error());
mysql_query("UPDATE `forum_topics` SET bonus='1' WHERE topicid='$tid'") or die(mysql_error());
die ('<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php?act=viewtopic&id='.$tid.'">');
}
} else {
die ("Вие не сте писали в тази тема!");
}
 
Код:
 if (isset($_GET['blagodaria'])){
$bid = $_GET['blagodaria'];
$tid = $_GET['id'];
$sql = mysql_query("SELECT * FROM forum_topics WHERE author = '$bid' AND topicid = '$tid'")or die(mysql_error()."<br />ред: ".__LINE__);
$res1 = mysql_num_rows($sql);
if($res1 = 1) {
if($idito == $bid) {
die ('<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php?act=viewtopic&id='.$tid.'">');
}
$k = mysql_query("SELECT * FROM users WHERE id='$bid'") or die(mysql_error());
$l = mysql_fetch_array($k);
$support = $l['tochki'];
$bonusi = $l['bonusi'];
$new_support = ($support + 1);
$new_bonus = ($bonusi + 2);
mysql_query("UPDATE `users` SET tochki='$new_support' WHERE id='$bid'") or die(mysql_error());
mysql_query("UPDATE `users` SET bonusi='$new_bonus' WHERE id='$bid'") or die(mysql_error());
mysql_query("UPDATE `forum_topics` SET bonus='1' WHERE topicid='$tid'") or die(mysql_error());
die ('<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php?act=viewtopic&id='.$tid.'">');
}
} else {
die ("Вие не сте писали в тази тема!");
}
srry за грешката!
 
Хубаво точката се дава.. но

Ако напиша; /index.php?act=viewtopic&id=2&blagodaria=2

Мога да дам на юзър още 1000 точки ...
 
if (isset($_GET['blagodaria'])){
$bid = $_GET['blagodaria'];
$tid = $_GET['id'];
$sql = mysql_query("SELECT * FROM forum_topics WHERE author = '$bid' AND topicid = '$tid'")or die(mysql_error()."<br />ред: ".__LINE__);
$res1 = mysql_num_rows($sql);
if($res1 = 1) {
$sql = "SELECT FROM supports WHERE tema = '$tid' AND avtor = '$bid'";
$res = mysql_query($sql);
$proverka = mysql_num_rows($res);
if(!($proverka == "0")) {
die("ВЕЧЕ Ви е дадена точка за тази тема!");
}
if($idito == $bid) {
die ('<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php?act=viewtopic&id='.$tid.'">');
}
$k = mysql_query("SELECT * FROM users WHERE id='$bid'") or die(mysql_error());
$l = mysql_fetch_array($k);
$support = $l['tochki'];
$bonusi = $l['bonusi'];
$new_support = ($support + 1);
$new_bonus = ($bonusi + 2);
mysql_query("UPDATE `users` SET tochki='$new_support' WHERE id='$bid'") or die(mysql_error());
mysql_query("INSERT INTO supports (tema, avtor) VALUES ('$tid','$bid')");
mysql_query("UPDATE `users` SET bonusi='$new_bonus' WHERE id='$bid'") or die(mysql_error());
mysql_query("UPDATE `forum_topics` SET bonus='1' WHERE topicid='$tid'") or die(mysql_error());
die ('<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php?act=viewtopic&id='.$tid.'">');
}
} else {
die ("Вие не сте писали в тази тема!");
}
}
Това е единствения начин, но правиш една таблица supports с две полета :
tema и avtor!
Това е! :?:
 
Ако напиша; /index.php?act=viewtopic&id=2&blagodaria=3

Давам точка на потребителя, дори и да не е писал в темата.. Дори и да е писал отново мога да си му дам спокойно точка, ако преди това съм му дал 20 точки :idea:
 
if ($author = $logged[username]) {
echo "Не може да си дадеш точка!";
}

така поне те разбрах че ако потребителя е автор на темата да не може да си дава точка.
 

Back
Горе