login  Naam:   Wachtwoord: 
Registreer je!
 Forum

probleem met sessions

Offline riekele - 09/07/2005 11:54 (laatste wijziging 09/07/2005 11:57)
Avatar van riekelePHP beginner hallo,
Ik ben gister begonnen met sessions maar ik loop tegen een probleem. ik heb even een simpel inlog script geschreven en er komt wel ingelogd te staan maar als ik naar de volgende pagina ga staat er dat ik niet ingelogd ben.
dit is mijn inlog script
  1. <?
  2. include('session.inc.php');
  3. include('config.php');
  4. $aangemeld == "false";
  5. if(IsSet($_POST['submit']))
  6. {
  7. if(IsSet($_POST['nickname']) && IsSet($_POST['password']))
  8. {
  9. $nickname = addslashes($_POST['nickname']);
  10. $query = mysql_query("SELECT * FROM forumlidjes WHERE nickname='".$nickname."'") or die(mysql_error());
  11. $bestaat = mysql_num_rows($query);
  12. if($bestaat == 1)
  13. {
  14. $row = mysql_fetch_assoc($query);
  15. if(md5($_POST['password']) == $row['password'])
  16. {
  17. $aangemeld == "true";
  18. session_register("aangemeld");
  19. session_register("nickname");
  20. echo "Ingelogd<br>";
  21. echo "<a href=\"forum.php?topic_id=1\">verder</a>";
  22. }
  23. else
  24. {
  25. echo "Uw ingevoerde wachtwoord en gebruikersnaam komen niet overeen!";
  26. }
  27. }
  28. else
  29. {
  30. echo "Deze gebruikersnaam bestaat niet";
  31. }
  32. }
  33. }
  34. ?>

en dit het gedeelte of hij checkt of je ingelogd bent
  1. <?
  2. include('session.inc.php');
  3. if($aangemeld == "true")
  4. {
  5. echo "oke";
  6. }
  7. else
  8. {
  9. echo "niet ingelogd";
  10. }
  11. ?>

8 antwoorden

Gesponsorde links
Offline Rens - 09/07/2005 12:04 (laatste wijziging 09/07/2005 12:04)
Avatar van Rens Gouden medaille

Crew algemeen
Wat dacht je van session_start(); bovenaan je pagina?
Dus boven ALLE output.
vb:

Fout:
  1. <?PHP
  2. echo "Hallo";
  3. ?>


Fout:
  1. <html>
  2. <head>
  3. <title>fout</title>
  4. </head>
  5. <body>
  6. hallo
  7. <?PHP
  8. ?>
  9. </body>
  10. </html>


Goed:
  1. <?PHP
  2. ?>
  3. <html>
  4. <head>
  5. <title>fout</title>
  6. </head>
  7. <body>
  8. hallo
  9. </body>
  10. </html>
Offline riekele - 09/07/2005 12:06
Avatar van riekele PHP beginner ja dat staat in de include..
include('session.inc.php');
Offline Rens - 09/07/2005 12:09
Avatar van Rens Gouden medaille

Crew algemeen
Gebruik superglobals.
session_register(); is oud.
En wat je doet in dat 2e stukje code klopt ook niet.
$aangemeld, PHP denkt dat dit een gewone var is.
En je behandeld true als een gewone string, maar true is een bool (net als false) en hoeft niet tussen quotes.

1e stukje
Fout:
  1. session_register("aangemeld");
  2. session_register("nickname");


Goed:
  1. $_SESSION['aangemeld'] = TRUE;
  2. $_SESSION['nickname'] = $nickname;


2e stukje
Fout:
  1. if($aangemeld == "true")
  2. {
  3. echo "oke";
  4. }
  5. else
  6. {
  7. echo "niet ingelogd";
  8. }


Goed:
  1. if($_SESSION['aangemeld'] === true)
  2. {
  3. echo "oke";
  4. }
  5. else
  6. {
  7. echo "niet ingelogd";
  8. }
Offline riekele - 09/07/2005 12:10
Avatar van riekele PHP beginner oke bedankt ik volgde een tut op phpfreakz en daar stond het nog zo
Offline Martijn1989 - 09/07/2005 12:17
Avatar van Martijn1989 PHP ver gevorderde
Citaat:
Goed:

[..code..]


tog maar 2 == ?
Offline Rens - 09/07/2005 13:00
Avatar van Rens Gouden medaille

Crew algemeen
=== was voor booleans dacht ik.
== voor strings.

Correct me if I'm wrong, maar k heb dat ooit ergens gelezen en k krijg nooit een error met ERROR_REPORTING(E_ALL); als ik === gebruik...
Offline riekele - 09/07/2005 13:23
Avatar van riekele PHP beginner hmm met === werkt het iig en er zijn geen fouten met de error_reporting dus 't zou wel kloppen:P
Offline flance - 10/07/2005 11:38
Avatar van flance HTML interesse
Citaat:
=== was voor booleans dacht ik.
== voor strings.

Nee,

== staat voor is_equal
=== staat voor is_identical

Het verschil is dat === ook controleert op het datatype (string,array,resource,object,integer,double).

De meeste notices komen van het feit dat er een variabele gebruikt word waarvan niet gecontroleerd word of de variabele bestaat. Dus gebruik ook in je if statement de functie isset()
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.273s