login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Sessie probleem

Offline Mokka - 30/05/2005 18:09 (laatste wijziging 30/05/2005 18:23)
Avatar van MokkaOnbekend Ik ben een beetje aan het klooien net met PHP en sessies, maar ver kom ik niet. Om het een beetje te laten zien wat het tot nu toe is geworden hier de code.

Login.php
  1. <?php
  2. if (!empty($_POST))
  3. {
  4. //eventueel nog meer validatie, maar nu even ervan uitgaan dat
  5. //de gegevens correct zijn aangeleverd via het formulier
  6. $username= $_POST["username"];
  7. $wachtwoord= $_POST["wachtwoord"];
  8. session_register("username");
  9. session_register("wachtwoord");
  10. //hiermee stuur je ze door naar de beveiligde pagina
  11. header("Location: geheim.php");
  12. }
  13. ?>
  14. <link rel="stylesheet" type="text/css" href="http://www.sitemasters.be/style.css" />
  15. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  16. <html>
  17. <head>
  18. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  19. <title>Login || Mokka</title>
  20. </head>
  21. <body>
  22. <b>Inloggen:</b>
  23. <hr>
  24. <form name="form1" method="post" action="<?php echo($_SERVER["PHP_SELF"]);?>">
  25. Inlognaam: <input type="text" name="username"> <br>
  26. Wachtwoord: <input type="password" name="wachtwoord"> <br>
  27. <input type="submit" name="Submit" value="Inloggen"> <br>
  28.  
  29. </form>
  30. </body>
  31. </html>


Geheim.php
  1. <?PHP
  2. ?>
  3. <link rel="stylesheet" type="text/css" href="http://www.sitemasters.be/style.css" />
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  8. <title>Beveiligde pagina || Mokka</title>
  9. </head>
  10. <body>
  11. <?php
  12. if (isset($_SESSION["username"])){
  13. echo("<b>Je hebt toegang tot de geheime pagina;</b> <br><br>
  14. je gebruikersnaam is: <b>" .$_SESSION["username"] . "</b><br>");
  15. echo("en jouw wachtwoord is: <b> ". $_SESSION["wachtwoord"] . "</b>");
  16. echo("<hr><a href=\"logout.php\">Uitloggen</a>");
  17. //Hier plaats je dan de overige 'geheime' gevens ^.^
  18. }else{
  19. echo("<b>Je hebt je niet aangemeld, dus jammergenoeg voor jou kun je je niet aanmelden!.<br><hr></b>
  20. je kunt wel nog inloggen door te gaan naar <a href=\"login.php\">Login</a> en je daar te registreren");
  21. }
  22. ?>
  23. </body>
  24. </html>


Logout.php
  1. <?php
  2. session_unset(); //alles vrijgeven
  3. session_destroy(); //sessie afsluiten
  4. ?>
  5. <link rel="stylesheet" type="text/css" href="http://www.sitemasters.be/style.css" />
  6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  7. <html>
  8. <head>
  9. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  10. <title>Uitloggen || Mokka</title>
  11. </head>
  12. <body>
  13. <b>Uitloggen</b>
  14. <hr>
  15. Je bent nu uitgelogd. <br>
  16. De pagina <a href="geheim.php">geheim.php</a> is voor jou niet langer beschikbaar. <br>
  17. Je kunt je hier eventueel opnieuw <a href="login.php">aanmelden</a>
  18. </body>
  19. </html>


Het probleem is het volgende:

Ik kan nu inloggen maar als ik ben ingelogd wordt ik (gelukkig) wel nog verwezen naar geheim.php maar hier zit de fout. Ik krijg dit stuk code dan te zien terwijl ik toch ben ingelogd:

  1. <?php
  2. }else{
  3. echo("<b>Je hebt je niet aangemeld, dus jammergenoeg voor jou kun je je niet aanmelden!.<br><hr></b>
  4. je kunt wel nog inloggen door te gaan naar <a href=\"login.php\">Login</a> en je daar te registreren");
  5. }
  6. ?>


terwijl als het goed is hij dit zou moeten weergeven:
  1. <?php
  2. if (isset($_SESSION["username"])){
  3. echo("<b>Je hebt toegang tot de geheime pagina; je gebruikersnaam is" .
  4. $_SESSION["username"] . "</b>");
  5. echo("en jouw wachtwoord is: <b> ". $_SESSION["wachtwoord"] . "</b>");
  6. echo("<hr><a href=\"logout.php\">Uitloggen</a>");
  7. //Hier plaats je dan de overige 'geheime' gevens ^.^
  8. ?>


Misschien dat een van jullie de (misschien wel supersimpele) fout ziet. Ik ben namelijk nogal een n00b in PHP.

Groeten, Mokka

5 antwoorden

Gesponsorde links
Offline Rens - 30/05/2005 18:11
Avatar van Rens Gouden medaille

Crew algemeen
op geheim.php staat geen session_start();
Als je dit niet doet, zal de pagina ook niet aan de sessie kunnen, en dus ook niet kunnen zien of je wel/niet ingelogd bent.
De session_start(); komt voor alle output, dus voor je <!DOCTYPE...>.

  1. <?PHP
  2. ?>
  3. <!DOCTYPE...>
  4. de rest
Offline Legolas - 30/05/2005 18:12 (laatste wijziging 30/05/2005 18:13)
Avatar van Legolas Onbekend Session_register moet je niet gebruiken, je moet bij login.php gewoon zo doen:
  1. <?
  2. $_SESSION['username'] = $_POST['username'];
  3. $_SESSION['wachtwoord'] = $_POST['wachtwoord'];
  4. ?>

Zoals al eerder gezegd, is session_register oud.
Verder, zo'n noob ben je echt niet hoor;-)
En session_start() bovenaan geheim.php
Offline Mokka - 30/05/2005 18:20 (laatste wijziging 30/05/2005 18:21)
Avatar van Mokka Onbekend ^^ dat doet het. Nu het volgende probleem:

bij uitloggen staat nu de volgende fout:

Citaat:
Parse error: parse error, unexpected T_STRING ... on line 3

Offline Rens - 30/05/2005 18:22
Avatar van Rens Gouden medaille

Crew algemeen
; vergeten bij session_start.
Offline Mokka - 30/05/2005 18:25
Avatar van Mokka Onbekend Danku, hij doet het nu. Topic closed.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.25s