login  Naam:   Wachtwoord: 
Registreer je!
 Forum

PHP cookies werken niet...

Offline spookfietser - 20/03/2006 21:40 (laatste wijziging 20/03/2006 21:42)
Avatar van spookfietserNieuw lid Hallo,

Ik heb een probleem met mijn PHP script,
ik heb een profielenscript met de pagina's "inloggen.php" en "wijzigen.php"

Als ik wil inloggen gaat er soms iets niet goed met de cookies...
Dan geeft ie de error dat je niet bent ingelogd...

Wie kan me even helpen?

Alvast bedankt!

Met vriendelijke groet,

Michel

De scripts:

Inloggen.php:

  1. <link rel="stylesheet" type="text/css" href="../css.css">
  2. <?
  3. ob_start(); // We laten weten dat we met cookies gaan werken
  4. include("global.inc.php"); // eerst includen we global.inc.php weer
  5.  
  6. if(isset($_GET['actie']) AND $_GET['actie'] == "controleren"){ // Er is op inloggen geklikt
  7.  
  8. $fout = "";
  9.  
  10. if(empty($_POST['gebruikersnaam'])){
  11. $fout.="Er is <i>geen</i> gebruikersnaam ingevoerd.<br>";
  12. }
  13.  
  14. if(empty($_POST['wachtwoord'])){
  15. $fout.="Er is <i>geen</i> wachtwoord ingevoerd.<br>";
  16. }
  17.  
  18. if(isset($fout) AND $fout == TRUE){
  19.  
  20. begintabel("Error");
  21.  
  22. echo "".$fout."";
  23.  
  24. eindetabel();
  25.  
  26. } else { // Alles is ingevuld dan:
  27.  
  28. $select = @mysql_query("SELECT * FROM leden WHERE gebruikersnaam='".$_POST['gebruikersnaam']."' AND wachtwoord='".md5($_POST['wachtwoord'])."'"); // we selecteren een lid met de opgegeven gegevens.
  29. $aantal = @mysql_num_rows($select);
  30. $Show = @mysql_fetch_assoc($select);
  31. if($aantal == TRUE){ // Bestaat er een lid met de opgegeven gegevens dan:
  32.  
  33. $hash = rand(9999, 99999); // we maken een hash code dit is voor de veiligheid
  34. $hash1 = md5($hash); // de hash code wordt in md5 omgezet
  35. @mysql_query("UPDATE leden SET hash='".$hash1."' WHERE id='".$Show['id']."'"); // de hash code wordt geupdate
  36.  
  37. setcookie("userid", $Show['id'], time()+$_POST['tijdingelogd']); // er wordt een cookie voor userid
  38. setcookie("wachtwoord", $Show['wachtwoord'], time()+$_POST['tijdingelogd']); // er wordt een cookie gemaakt met wachtwoord
  39. setcookie("hash", $hash1, time()+$_POST['tijdingelogd']); // Er wordt een cookie gemaakt met hash. Dit is voor de veiligheid
  40.  
  41. header("location:wijzigen.php"); // het lid wordt dooorgewezen
  42.  
  43. } else { // Zijn de gegevens verkeer dan :
  44.  
  45. begintabel(" - Inloggen - Error"); // Het begin van een tabel.
  46. echo "Gebruikersnaam en/of wachtwoord onjuist!";
  47. eindetabel(); // Het einde van een tabel
  48. } // afsluiten
  49. } // ook afsluiten
  50. } else {
  51. // Nu maken we een formulier om in te loggen
  52.  
  53. begintabel(" - Inloggen");
  54. echo "<form action='inloggen.php?actie=controleren' method='POST'>
  55. <table width='100%' border='0' cellpadding='0' cellspacing='0'>
  56. <tr><td width='50%' height='24'>Gebruikersnaam</td>
  57. <td width='50%' height='24'><input type='text' name='gebruikersnaam'> <a href='aanmelden.php'>Aanmelden</a></td>
  58. </tr><tr>
  59. <td width='50%' height='24'>Wachtwoord</td>
  60. <td width='50%' height='24'><input type='password' name='wachtwoord'> <a href='wwvergeten.php'>wachtwoord vergeten?</a></td>
  61. </tr><tr>
  62. <td width='50%' height='24'></td>
  63. <td width='50%' height='24'><input type='submit' value='Inloggen'></td>
  64. </tr>
  65. </table>";
  66. eindetabel(); // en weer afsluiten
  67. }
  68.  
  69. ?>


Wijzigen.php:

  1. <link rel="stylesheet" type="text/css" href="../css.css">
  2. <?php
  3. include "global.inc.php"; // includen
  4.  
  5. if($ingelogd == 0) { // het persoon is niet ingelogd en kan zijn profiel dus iet wijzigen
  6.  
  7. begintabel(" - Profiel wijzigen - Error"); // Het begin van een tabel.
  8. echo "U moet ingelogd zijn om u profiel te wijzigen.";
  9. eindetabel(); // Het einde van een tabel.
  10.  
  11. } else {
  12.  
  13. if($_POST['submit']){ // er is op submit gedrukt
  14. if(empty($_POST['naam']) || empty($_POST['email'])){ // controleren of er een naam en een e-mail adres is ingevuld
  15. begintabel(" - Profiel Wijzigen - Error"); // zo nee even zeggen dat ze dat zijn vergeten
  16. echo "U moet een naam en een e-mail adres invullen";
  17. eindetabel();
  18. } else {
  19. mysql_query("UPDATE leden SET land = '".$_POST['land']."', woonplaats = '".$_POST['woonplaats']."', naam = '".$_POST['naam']."', email='".$_POST['email']."', type='".$_POST['type']."', bouwjaar='".$_POST['bouwjaar']."', kleur='".$_POST['kleur']."', motor='".$_POST['motor']."', uitlaat='".$_POST['uitlaat']."', velgen='".$_POST['velgen']."', binnenkant='".$_POST['binnenkant']."', overige='".$_POST['overige']."', toekomstige='".$_POST['toekomstige']."' WHERE id = '" . $_COOKIE['userid'] . "'");
  20.  
  21. // de dingen updates van de gebruiker die hij heeft ingevoerd
  22.  
  23. begintabel("sucsesvol gewijzigd"); // natuurlijk even weergeven dat alles goed is gegaan.
  24. echo "Uw profiel is succesvol gewijzigd.";
  25. echo "<br>U wordt naar uw profiel doorgestuurd.";
  26. echo "<META HTTP-EQUIV='refresh' CONTENT='1; URL=profiel.php?id=" . $_COOKIE['userid'] . "'>"; // doorsturen na 1 seconden naar het profiel van de gebruiker
  27. eindetabel();
  28. }
  29. } else {
  30.  
  31. begintabel(" - Controle Panel"); // even een titel maken
  32. include "leden_menu.php"; // Nu halen we het leden menu erbij
  33. eindetabel(); // en weer even de tabel afsluiten
  34.  
  35. // Hier weergeven we een forumulies met alle opties van het profiel
  36.  
  37. echo' <form method="post" action="wijzigen.php" name="bericht">';
  38.  
  39. $sql = @mysql_query("SELECT * FROM leden WHERE id='".$_COOKIE['userid']."'"); // we selecteren de dingen van het lid
  40. $list = @mysql_fetch_object($sql); // eerst wat dingen selecteren van de gebruiker.
  41.  
  42. begintabel("Algemeen"); // hier staan de algemene dingen naam , e-mail
  43. echo'<TABLE width="100%">'; // We maken even een mooie tabel.
  44. echo'<TD width="25%">Naam:</TD>
  45. <TD width="75%"><input type="text" name="naam" size="40" maxlength="80" value="' . $list->naam . '"></TD><TR>';
  46. echo'<TD width="25%">Email:</TD>
  47. <TD width="75%"><input type="text" name="email" size="40" maxlength="80" value="' . $list->email . '"></TD><TR>';
  48. echo'<TD width="25%">Woonplaats:</TD>
  49. <TD width="75%"><input type="text" name="woonplaats" size="40" maxlength="80" value="' . $list->woonplaats . '"></TD><TR>';
  50. echo'<TD width="25%">Type Polo</TD>
  51. <TD width="75%"><input type="text" name="type" size="40" maxlength="80" value="' . $list->type . '"></TD><TR>';
  52. echo'<TD width="25%">Bouwjaar</TD>
  53. <TD width="75%"><input type="text" name="bouwjaar" size="40" maxlength="80" value="' . $list->bouwjaar . '"></TD><TR>';
  54. echo'<TD width="25%">Kleur</TD>
  55. <TD width="75%"><input type="text" name="kleur" size="40" maxlength="80" value="' . $list->kleur . '"></TD><TR>';
  56. echo'<TD width="25%">Motor</TD>
  57. <TD width="75%"><input type="text" name="motor" size="40" maxlength="80" value="' . $list->motor . '"></TD><TR>';
  58. echo'<TD width="25%">Uitlaat</TD>
  59. <TD width="75%"><input type="text" name="uitlaat" size="40" maxlength="80" value="' . $list->uitlaat . '"></TD><TR>';
  60. echo'<TD width="25%">Velgen</TD>
  61. <TD width="75%"><input type="text" name="velgen" size="40" maxlength="80" value="' . $list->velgen . '"></TD><TR>';
  62. echo'<TD width="25%">Binnenkant</TD>
  63. <TD width="75%"><input type="text" name="binnenkant" size="40" maxlength="80" value="' . $list->binnenkant . '"></TD><TR>';
  64. echo'<TD width="25%">Overige</TD>
  65. <TD width="75%"><input type="text" name="overige" size="40" maxlength="160" value="' . $list->overige . '"></TD><TR>';
  66. echo'<TD width="25%">Toekomstige</TD>
  67. <TD width="75%"><input type="text" name="toekomstige" size="40" maxlength="160" value="' . $list->toekomstige . '"></TD><TR>';
  68. echo'<TD width="25%">Land:</TD>
  69. <TD width="75%">';
  70.  
  71. $land [1] = "";
  72. $land [2] = "";
  73. $land [3] = "";
  74. $land [4] = "";
  75. $land [5] = "";
  76. $land [$list->land] = " selected"; // we kijken waar de selected moet komen bij Land
  77.  
  78. echo "<select size='1' name='land'>
  79. <option value='1'".$land[1].">Nederland</option>
  80. <option value='2'".$land[2].">Duitsland</option>
  81. <option value='3'".$land[3].">Belgie</option>
  82. <option value='4'".$land[4].">Frankrijk</option>
  83. <option value='5'".$land[5].">Anders...</option>
  84. </select>"; // we zetten het in een mooie tabel met een dropdown
  85. echo '</TD><TR>';
  86. echo'</TABLE>'; // einde van dde tabel en we sluiten af met </TABLE>
  87.  
  88. eindetabel();
  89.  
  90. begintabel("Foto's"); // hier staan de forum dingen onderschrift , ondertitel
  91. echo'<TABLE width="100%" height="100%">'; // We maken even een mooie tabel.
  92. echo'<TD width="25%">Fotos:<br>
  93. LET OP!
  94. Uw afbeeldingen mogen niet groter zijn dan 60kb en niet groter dan 300x225!<br><br>
  95. Uw afbeeldingen hebben de naam pic1.jpg, pic2.jpg, pic3.jpg. Zorg dat uw plaatjes ook zo noemt!</TD><td>';
  96. echo'<iframe src="upload.php" name="foto" width="100%" height="500"frameborder=0></iframe>';
  97. echo'</TD></TR>';
  98. echo'</TABLE>'; // einde van dde tabel en we sluiten af met </TABLE>
  99.  
  100. eindetabel();
  101.  
  102. echo'<input type="submit" name="submit" value="Wijzigen">'; // We maken even een button om op te klikken als je klaar bent
  103.  
  104. eindetabel();
  105. } // afsluiten
  106. } //afsluiten

4 antwoorden

Gesponsorde links
Offline Thomas - 20/03/2006 21:43 (laatste wijziging 20/03/2006 21:44)
Avatar van Thomas Moderator Gebruik je verschillende folders voor je script?
setcookie heeft een 4e parameter - "/" - nodig om aan te geven dat je cookie(s) geldig zijn in je hele domein, i.p.v. enkel in de folder waarin het cookie is geset...

Zie de cookie tutorial...
Offline spookfietser - 20/03/2006 21:47
Avatar van spookfietser Nieuw lid Hij geld alleen binnen de map ledensysteem, normaal gesproken als je inlogd, dan stuurt inloggen.php je door naar wijzigen.php, en wijzigen.php geeft dan aan dat je niet bent ingelogd...
Offline Thomas - 20/03/2006 22:06
Avatar van Thomas Moderator Ik zie nergens $_POST['tijdingelogd'] staan... Je cookies verlopen meteen...
Offline vinTage - 20/03/2006 23:28
Avatar van vinTage Nieuw lid
  1. <link rel="stylesheet" type="text/css" href="../css.css">
  2. <?
  3. ob_start(); // We laten weten dat we met cookies gaan werken


dat lijkt me ook niet helemaal te kloppen ?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.219s