login  Naam:   Wachtwoord: 
Registreer je!
 Forum

cookie wordt niet geset???

Offline AgentX - 22/04/2006 08:02 (laatste wijziging 22/04/2006 08:05)
Avatar van AgentXHTML beginner Hallo mensen, ik heb een probleem met een membersysteem.

ik heb hier een stukje van mijn code:
  1. <?php
  2. if(!isset($_POST["submit"])){ // als de submitknop in mijn form niet is aangeraakt.
  3. // formpje: user, pass.
  4. }
  5. elseif(isset($_POST["submit"])){ // submit wel is aan geraakt
  6. $query = mysql_query("SELECT * FROM members WHERE user='" . $_POST["user"] . "' AND pass='" . md5($_POST["pass"]) . "'"); // check de query, user pass klopt of niet.
  7. if(mysql_num_rows($query) != 0){ // als er rows gevonden zijn
  8. $member = mysql_fetch_assoc($query); // selecteren uit db
  9. setcookie("mid",$member["mid"], Time()+60); // cookie (dacht ik)
  10. echo "Cookie is geset";
  11. }
  12. else{ // als de user/pass niet klopt
  13. echo "Foute user/pass";
  14. }
  15. }
  16. ?>


Ik snap niet waarom deze niet werkt...:s

15 antwoorden

Gesponsorde links
Offline Crazed - 22/04/2006 08:41
Avatar van Crazed PHP interesse time moet met een kleine letter...
Offline Tuinstoel - 22/04/2006 08:58
Avatar van Tuinstoel PHP expert Dat maakt niet uit Crazed. Maar wat werkt er dan niet? Je moet wel wat specifieker zijn. Ik raad je trouwens aan om even addslashes(); o.i.d. te gebruiken bij je SQL query.
Offline Thomas - 22/04/2006 10:41 (laatste wijziging 22/04/2006 10:43)
Avatar van Thomas Moderator Je cookie is maar 60 seconden geldig?
Je cookie is ook pas actief nadat je je pagina ververst met header() of wat dan ook.

Daarnaast is het cookie alleen geldig in het pad waarin je je cookie hebt geset. Om je cookie op heel je site geldig te laten zijn moet je een vierde parameter toevoegen, die aangeeft in welke folder(s) het cookie geldig is ("/" wil zeggen: op het hele domein):

  1. setcookie("mid",$member["mid"], Time()+60, "/");


Het kan natuurlijk ook geen kwaad om je cookie wat langer geldig te laten zijn. Ook kunnen verschillen tussen lokale tijd en servertijd ervoor zorgen dat je cookie meteen verlopen is (denk ik)!
Offline AgentX - 22/04/2006 12:35 (laatste wijziging 22/04/2006 20:03)
Avatar van AgentX HTML beginner @tuinstoel,
Ik heb dus een formpje met:

user: ________
pass: ________
[SUBMIT] [REGISTER]

ik heb dit script (dit is niet het hele script) in login.php staan, en die include ik in het menu. (en de \\\\ staan er wel maar worden door de highlight van sima.be weggehaald)...

maar nu zie ik helemaal niets meer!

ik zal wel ff de hele code laten zien:
  1. <?php
  2.  
  3. include("config.php"); // mysql connect etc.
  4.  
  5. if(!isset($_POST["submit"])){ // submitknop in form
  6. echo "<table>";
  7. echo "<tr>";
  8. echo "<td>";
  9. echo "<form action="" . $_SERVER["PHP_SELF"] . "" method="post">"; //formpje
  10. echo "<font size="2">User:</font>";
  11. echo "</td>";
  12. echo "<td>";
  13. echo "<input type="text" name="user" size="20">";
  14. echo "</td>";
  15. echo "</tr>";
  16. echo "<tr>";
  17. echo "<td>";
  18. echo "<font size="2">Pass:</font>";
  19. echo "</td>";
  20. echo "<td>";
  21. echo "<input type="password" name="pass" size="20">";
  22. echo "</td>";
  23. echo "</tr>";
  24. echo "<tr>";
  25. echo "<td colspan="2">";
  26. echo "<input type="button" value="Registreer" style="width: 80px;">";
  27. echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
  28. echo "<input type="submit" name="submit" value="Log in!" style="width: 70px;">";
  29. echo "</td>";
  30. echo "</tr>";
  31. echo "</form>";
  32. echo "</table>";
  33. }
  34. elseif(isset($_POST["submit"])){ // submit wel geset
  35. $query = mysql_query("SELECT * FROM members WHERE user='" . $_POST["user"] . "' AND pass='" . md5($_POST["pass"]) . "'"); // querycheck
  36. if(mysql_num_rows($query) != 0){ // results ja of nee?
  37. $member = mysql_fetch_assoc($query);
  38. setcookie("mid", $member["mid"], Time()+60, "/"); // cookie
  39. header("Location: " . $_SERVER["PHP_SELF"]); // confirm
  40. }
  41. else{ // geen results
  42. echo "Foute user/pass";
  43. }
  44. }
  45.  
  46. ?>


Ik vat het ff niet :'(
Offline Ibrahim - 22/04/2006 16:42
Avatar van Ibrahim PHP expert elseif(isset($_POST["submit"])){ // submit wel geset

verander eens in else 
Offline Xtent - 22/04/2006 17:08 (laatste wijziging 22/04/2006 20:41)
Avatar van Xtent Onbekend Na het commentaar van Proximus maar veranderd naar dit.

Regels 7 t/m. 33 in dit veranderen:
  1. ?>
  2. <table>
  3. <tr>
  4. <td>
  5. <form action="<?=$_SERVER["PHP_SELF"]?>" method="post">
  6. <font size="2">User:</font>
  7. </td>
  8. <td>
  9. <input type="text" name="user" size="20">
  10. </td>
  11. </tr>
  12. <tr>
  13. <td>
  14. <font size="2">Pass:</font>
  15. </td>
  16. <td>
  17. <input type="password" name="pass" size="20">
  18. </td>
  19. </tr>
  20. <tr>
  21. <td colspan="2">
  22. <input type="button" value="Registreer" style="width: 80px;">
  23. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  24. <input type="submit" name="submit" value="Log in!" style="width: 70px;">
  25. </td>
  26. </tr>
  27. </form>
  28. </table>
  29. <?php
Offline Reflexes - 22/04/2006 18:00
Avatar van Reflexes Nieuw lid post heel je login.php is op pastebin.be is er meer overzicht voor ons 
Offline Gerard - 22/04/2006 18:07
Avatar van Gerard Ouwe rakker
Citaat:
Je had alles in aparte echo's gepropt terwijl het ook gewoon in 1 echo kon en je vergat de 'ontsnappingstekens'.


Waarom uberhaupt alle HTML gaan echoën. Waarom niet even je php tags afsluiten en gewoon als HTML erin gooien, op die manier hoeft PHP het hele zaakje ook niet te parsen.

Dus:
  1. <?php
  2. if ($waarde == $value) {
  3. ?>
  4. <b>Jesj</b>
  5. <?php
  6. } else {
  7. ?>
  8. <i>Jammer</i>
  9. <?php
  10. }
  11. ?>
Offline AgentX - 22/04/2006 20:08 (laatste wijziging 23/04/2006 10:39)
Avatar van AgentX HTML beginner @siliecom14
maakt niks uit hoor, heb ik al geprobeert...

@Xtent
kan, wat betekend:
  1. <?php=$_SERVER["PHP_SELF"]?>


pastebin.be, best hij staat op:
http://pastebin.be/958/

Edit:
de nieuwe staat op http://pastebin.be/960/
Offline Xtent - 22/04/2006 20:27
Avatar van Xtent Onbekend <?=$_SERVER["PHP_SELF"]?>

Doet gewoon hetzelfde als

<?php
echo $_SERVER["PHP_SELF"];
?>
Offline Ultimatum - 22/04/2006 20:27 (laatste wijziging 22/04/2006 20:28)
Avatar van Ultimatum PHP expert als je dat niet weet , raad ik je even aan deze tutorial door te lezen, word heel veel wijzer van 

http://www.site...amp;id=141
(punt 3 geeft antwoord over jou vraag )

edit: @Xtent, volgens mij bedoelt hij $_SERVER["PHP_SELF"]; en niet <?= (kan het ook mis hebben )
Offline Xtent - 22/04/2006 20:38
Avatar van Xtent Onbekend @ Ultimatum:
Gok erop dat hij dat alwel begreep, aangezien ik dat uit zijn eigen script had gehaald.
Offline AgentX - 22/04/2006 20:50
Avatar van AgentX HTML beginner jah ik wou weten of <?=$_SERVER["PHP_SELF"] ?> het zelfde was als <?php echo 'etc..' ?>.

Maar ehm.... waarom werkt dit nou eigenlijk niet?;-)
Offline Xtent - 22/04/2006 21:22
Avatar van Xtent Onbekend Wat gebruik je nu precies?
Nogsteeds wat hierstaat?
http://pastebin.be/958/

Of heb je daar nog wat aan veranderd.

Als je nog niets anders hebt gemaakt daaraan vervang die regels 7 tot 33 dan eens met wat ik zei.

Of dat het enige is wat fout is weet ik zo snel niet.
Offline AgentX - 23/04/2006 10:50 (laatste wijziging 23/04/2006 17:31)
Avatar van AgentX HTML beginner de nieuwe staat op http://pastebin.be/960/

het probleem is dus dat als ik op submit klik en de user en pass zijn niet correct zegt ie: "foute user/pass" en als ik de juiste gegevens neerzet gaat ie terug naar het form. (cookie wordt dus volgensmij niet geset)

--- EDIT ---

Acht laat ook maar, ik ben nu bezig met een nieuw systeem.
Sluit dit topic maar! 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.254s