webForumDet fria alternativet

Skriva kommentar en gång var 30 sekund

PHP

5 svar · 221 visningar · startad av Melea

Medlem sedan juli 20033 147 inlägg
Frågan#1

Hejsan!

Byggde ett kommentarsystem till nyheterna igår och nu vill förhindra spam. Dvs. Besökarna ska enbart kunna skriva en kommentar var 30:de sekund.

Har gjort såhär än sålänge, men det vill inte riktigt funka... den hoppar över If mysql num rows satsen...

$datum = date("Y-m-d H:i:s", date("U") - 30);

$SQL = ... SELECT FROM * comments where refid = $_POST[refid] AND ip = '$ip' AND written < '$datum' ...

if(mysql_num_rows($SQL) <> 0) {
    Header("Location: ../default.php?i=info&type=news&comments=true&id=$_POST[refid]");
}

Tack på förhand

Mvh

Medlem sedan aug. 20002 975 inlägg
#2

Ska dina punkter föreställa att du kör mysql_query ?

$SQL = mysql_query("SELECT FROM * comments where refid = $_POST[refid] AND ip = '$ip' AND written < '$datum'");

Testa if-satsen så här istället:

if(mysql_num_rows($SQL) != 0) {

Det normala teckenkombinationen i PHP för "skilt från" är !=.
Är inte helt 100 på att <> fungerar i PHP.

Medlem sedan juli 20033 147 inlägg
#3

Ja precis... jag satt i skolan när jag skrev frågan och hade lite brådis så jag fick köra en snabb lösning :)

Prövade din lösning med != men det vill fortfarande inte funka. Jag kan skriva hur många kommentarer jag vill fortfarande.

Såhär ser hela altet ut just nu:

$ip = getenv("REMOTE_ADDR");
$datum = date("Y-m-d H:i:s", time("U") - 30);
	
$SQL = mysql_query("SELECT * FROM comments where ip = '$ip' AND written < '$datum' AND refid = $_POST[refid]") or die (mysql_error());
	
if(mysql_num_rows($SQL) != 0) {
	Header("Location: ../default.php?i=info&type=news&comments=true&id=$_POST[refid]");
}
Medlem sedan aug. 20002 975 inlägg
#4

Ska din SQL-fråga plocka fram poster som är skrivna senaste halvminuten; borde det då inte vara written > '$datum' ?

Medlem sedan aug. 20002 975 inlägg
#5

Ska din SQL-fråga plocka fram poster som är skrivna senaste halvminuten; borde det då inte vara
written > '$datum'
?

Medlem sedan juli 20033 147 inlägg
#6

Hm.. jo, kanske det. Aldrig förstått logiken i < och > tecknena.

Hur som helst, funkar fortfarande inte :(

/red

Nu fick jag igång det... Jag löste det med

} else {
...
}

PHP är allt skumt :OO

267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)