login  Naam:   Wachtwoord: 
Registreer je!
 Forum

cookies

Offline Lolltopop - 08/03/2007 18:40
Avatar van LolltopopNieuw lid Een fout 

  1. Invalid cookie data (Error 1). Please clear cookies and log in again.


cookies
  1. <?php // cookies.php :: Handles cookies. (Mmm, tasty!)
  2.  
  3. function checkcookies() {
  4.  
  5. include('config.php');
  6.  
  7. $row = false;
  8.  
  9. if (isset($_COOKIE["dkgame"])) {
  10.  
  11. // COOKIE FORMAT:
  12. // {ID} {USERNAME} {PASSWORDHASH} {REMEMBERME}
  13. $theuser = explode(" ",$_COOKIE["dkgame"]);
  14. $query = doquery("SELECT * FROM {{table}} WHERE username='$theuser[1]'", "users");
  15. if (mysql_num_rows($query) != 1) { die("Invalid cookie data (Error 1). Please clear cookies and log in again."); }
  16. $row = mysql_fetch_array($query);
  17. if ($row["id"] != $theuser[0]) { die("Invalid cookie data (Error 2). Please clear cookies and log in again."); }
  18. if (md5($row["password"] . "--" . $dbsettings["secretword"]) !== $theuser[2]) { die("Invalid cookie data (Error 3). Please clear cookies and log in again."); }
  19.  
  20. // If we've gotten this far, cookie should be valid, so write a new one.
  21. $newcookie = implode(" ",$theuser);
  22. if ($theuser[3] == 1) { $expiretime = time()+31536000; } else { $expiretime = 0; }
  23. setcookie ("dkgame", $newcookie, $expiretime, "/", "", 0);
  24. $onlinequery = doquery("UPDATE {{table}} SET onlinetime=NOW() WHERE id='$theuser[0]' LIMIT 1", "users");
  25.  
  26. }
  27.  
  28. return $row;
  29.  
  30. }
  31.  
  32. ?>


config:

  1. <?php // config.php :: Low-level app/database variables.
  2.  
  3. $dbsettings = Array(
  4. "server" => "localhost", // MySQL server name. (Default: localhost)
  5. "user" => "sanniiie", // MySQL username.
  6. "pass" => "********", // MySQL password.
  7. "name" => "sanniiie_03", // MySQL database name.
  8. "prefix" => "dk", // Prefix for table names. (Default: dk)
  9. "secretword" => ""); // Secret word used when hashing information for cookies.
  10.  
  11. ?>


Wat heb ik fout gedaan? Waarschijnlijk komt het door het secretword wie kan me helpen?

6 antwoorden

Gesponsorde links
Offline Stijn - 08/03/2007 18:47
Avatar van Stijn PHP expert Probeer het eens door zo je cookie te zetten:
  1. setcookie ("dkgame", $newcookie, $expiretime);
Offline Lolltopop - 08/03/2007 18:58
Avatar van Lolltopop Nieuw lid Nee er blijft hetzelfde staan
Offline Stijn - 08/03/2007 21:02
Avatar van Stijn PHP expert lol, ik dacht dat het een foutmelding van php was. Oké doe het volgende:

  1. $query = doquery("SELECT * FROM {{table}} WHERE username='".$theuser[1]."'", "users");


Het kan ook zijn dat de query meerdere resultaten returnt.

stijn
Offline Lolltopop - 10/03/2007 19:07
Avatar van Lolltopop Nieuw lid Werkt nog niet
Offline Ibrahim - 10/03/2007 19:40
Avatar van Ibrahim PHP expert script eens wat netter 

probeer eens

  1. if( mysql_num_rows( $query ) == 0 ) { die('GEEN RESULTATEN');
Offline Stijn - 10/03/2007 19:43
Avatar van Stijn PHP expert Het moet aan die query liggen hoor. doe eens het volgende onder die $query...

  1. <? //toevoegen aan lijn 14
  2. echo 'aantal rijen:' . mysql_num_rows( $query );
  3. echo '<br>';
  4. echo "<pre>";
  5. var_dump( $theuser );
  6. echo "</pre>";
  7. echo "<br>";
  8. echo 'query: ' . $query;
  9. echo "<br>";
  10. echo "mysql error: " . mysql_error();
  11. echo "<br>";
  12. ?>


nu zou je een paar extra errors zien op je scherm. copy/paste die eens en je ziet meteen waar het zit.

groeten
stijn
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.384s