Lo allen,
Ik heb een klein serialize probleempje. Ik heb een vote script voor downloads. Mensen kunnen een cijfer geven aan een bepaalde download (volledig legaal voor mensen gaan klagen, het gaat hier om mods voor GP3/4
). Om te voorkomen dat mensen 2 keer stemmen wordt een cookie aangemaakt. Het is niet ultiem veilig, maar er vallen ten slotte geen prijzen mee te winnen dus zo erg is het niet als er gefraudeerd wordt.
Wanneer er gevote wordt, wordt op de volgende manier cookies aangemaakt:
En zo gecheckt of er al gevote is op een bepaalde download met id nummer:
Het probleem zit 'm er dus in dat het geen array wordt met unserialize terwijl dat volgens mij wel het geval zou moeten zijn. echo $voted; geeft gewoon nix (ook niet 'array' dus). Wat doe ik fout?
edit: sorry voor de puinhoop, na een edit heeft het hele forum me mooie layout verneukt
.
edit2: nu beter?
Ik heb een klein serialize probleempje. Ik heb een vote script voor downloads. Mensen kunnen een cijfer geven aan een bepaalde download (volledig legaal voor mensen gaan klagen, het gaat hier om mods voor GP3/4
Wanneer er gevote wordt, wordt op de volgende manier cookies aangemaakt:
PHP:
1
| <?function addvote($id, $rating){[hier stond de query] global $HTTP_COOKIE_VARS; if ( isset( $HTTP_COOKIE_VARS[voted] )) //is al eerder gevote dus { $old = unserialize( $HTTP_COOKIE_VARS[voted] ); //$old wordt weer een array $old[] = $id; //array krijgt extra element van nieuwe id $ids = serialize( $old ); //en wordt weer geserialized } else { $id[0] = $id; //of er wordt een nieuwe array gemaakt $ids = serialize( $id ); } setcookie("voted", $ids, time()+7776000); echo "<html><head><title>Stem toegevoegd</title></head><body onload=\"opener.location.reload(true);\"><font size=2 face=verdana>"; echo "Bedankt voor je stem!";}?> |
En zo gecheckt of er al gevote is op een bepaalde download met id nummer:
PHP:
1
| <?if ( isset( $HTTP_COOKIE_VARS[voted] )) { $voted = unserialize( $HTTP_COOKIE_VARS[voted] ); foreach ( $voted AS $value ) { if ($value == $id) { echo "<html><head><title>Fraud detected :)</title></head><body><font size=2 face=verdana>"; echo "Sorry, je mag maar één keer stemmen!</font></body></html>"; $valid = "N"; } } } if ( $valid != "N" && !isset( $valid ) ) { include("functions.php"); addvote($id, $rating); //das bovenstaande functie dus }?> |
Het probleem zit 'm er dus in dat het geen array wordt met unserialize terwijl dat volgens mij wel het geval zou moeten zijn. echo $voted; geeft gewoon nix (ook niet 'array' dus). Wat doe ik fout?
edit: sorry voor de puinhoop, na een edit heeft het hele forum me mooie layout verneukt
edit2: nu beter?