PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| <? // hier staan wat sql queries /* knip */ if ($currentuserstatus == "Moderator") { $go = "true"; $editstatus = "mod"; } if ($currentuser == $berichtposter) { $go = "true"; $editstatus = "user"; } if ($go != "true") { die("Je hebt het recht niet dit bericht te wijzigen"); } $sql2 = mysql_query("SELECT * FROM f_berichten WHERE id='$id'") or die("Unable to execute query"); $row2 = mysql_fetch_array($sql2); $berichttijd = $row2["unixtime"]; $berichttijd = $berichttijd + 86400; $tijd = time(); if (($editstatus != "mod") && ($tijd > $berichttijd)) { die("Je mag een bericht maar tot 24 uur na het plaatsen wijzigen"); } echo "<p><textarea rows=10 style=\"width:500px;\">$bericht</textarea>"; ?> |
de $berichttijd wordt dus uit de database gehaalt en vergeleken met de time(); maar ook al is de $tijd groter dan de $berichttijd. Hij negeert dat, negeert de die(); en dat is dus niet de bedoeling.
Hoe dit op te lossen?
oja: Het $berichttijd-veld staat nu op int, maar heeft ook al op decimal gestaan. Dat heeft er misschien ook nog wat mee te maken.
Mannen komen van Mars Tweakers, vrouwen van Venus Bokt