login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Geen toegang dmv sessie

Offline derrtyones - 15/09/2008 15:23 (laatste wijziging 15/09/2008 15:24)
Avatar van derrtyonesNieuw lid Ik heb 3 pagina's:

home.php
login.php
profile.php

Als je op de site gaat kom je meteen op home.php. Daar is een formulier waarin je kan inloggen.

  1. <?php
  2. ?>
  3. <html>
  4. <head></head>
  5. <body>
  6. <p>Welcome!</p>
  7. <form name="form1" method="post" action="index.php?module=login">
  8. <div align="left"></div>
  9. <table width="200" border="0" align="left" cellpadding="0" cellspacing="0">
  10. <tr>
  11. <td><span class="style1">Loginname:</span></td>
  12. <td><input name="loginname" type="text" id="loginname" size="15"></td>
  13. </tr>
  14. <tr>
  15. <td><span class="style1">Password:</span></td>
  16. <td><input name="password" type="password" id="password" size="15"></td>
  17. </tr>
  18. <tr>
  19. <td colspan="2">&nbsp;</td>
  20. </tr>
  21. <tr>
  22. <td colspan="2"><div align="center">
  23. <input type="image" name="submit" value="Submit" src="images/submit.png">
  24. </div></td>
  25. </tr>
  26. </table>
  27. </form></td>
  28. </tr>
  29. </table>
  30. </body>
  31. </html>


Als ik ben ingelogt ben ik op login.php (formulier verwijst je door naar login.php)
Die ziet er zo uit:


  1. <?php
  2. ?>
  3.  
  4. <?php
  5. require ("connection.php");
  6. $gebruikersnaam = $_POST['loginname'];
  7. $wachtwoord2 = $_POST['password'];
  8. $DBNaam = 'databasenaam';
  9. $opdracht = "SELECT * FROM portfolio WHERE password = '$wachtwoord2' AND loginname = '$gebruikersnaam'";
  10. mysql_select_db($DBNaam);
  11. $result = mysql_query($opdracht);
  12. If ($Rij = mysql_fetch_array($result)){
  13. $_SESSION['gebruikersnaam'] = $_POST['loginname'];
  14. echo "<br> Welcome: ". $Rij['firstname']."";
  15. echo "<br> You are logged in as:<br> ".$Rij['loginname']."";
  16. echo "<br><a href='index.php?module=profile'>Click here to view your profile</a>";
  17. }
  18. Else { echo "Your username and/or password do not match!";}
  19.  
  20.  
  21. ?>


Als eenmaal alles goed gaat krijg je daar je loginnaam en voornaam te zien en een link waar je naar de profile.php kunt. Hier is het probleem van profile.php:


  1. <?php
  2. if(!isset($_SESSION['gebruikersnaam'])){
  3. echo "NO PERMISSION!";
  4. }else{
  5. ?>
  6. <html>
  7. <head>
  8. </head>
  9.  
  10. <body>
  11. <?php
  12. require ("connection.php");
  13.  
  14. $gebruikersnaam = $_POST['loginname'];
  15. $tabelnaam="portfolio";
  16. $opdracht = "SELECT * FROM portfolio WHERE loginname = '".$_SESSION['gebruikersnaam']."'";
  17. $result = mysql_query($opdracht);
  18.  
  19. echo ("<TABLE width=100% border=1 cellspacing=0
  20. cellpadding=0 bordercolor=#333333>
  21. <TR>
  22. <TD> Name: </TD>
  23. <TD> Age: </TD>
  24. <TD> Location: </TD>
  25. </TR>");
  26.  
  27. while ($Rij = mysql_fetch_array($result)){
  28. echo "<tr>";
  29. echo ("<td bgcolor=CCCCCC align=left> $Rij[name] </td>\n");
  30. echo ("<td bgcolor=CCCCCC align=left> $Rij[age] </td>\n");
  31. echo ("<td bgcolor=CCCCCC align=left> $Rij[location] </td>\n");
  32. echo ("</tr>\n");
  33. }
  34. echo ("</TABLE>");
  35. mysql_close ($Verbinding);
  36. ?>
  37. </body>
  38. </html>
  39.  
  40. <?php
  41. }
  42. ?>


Ik kreeg altijd NO PERMISSION op profile.php ik neem aan dat die sessie gewoon niet mee gaat ofzo of dat ie verkeerd staat. Wie wilt me helpen?

12 antwoorden

Gesponsorde links
Offline marten - 15/09/2008 15:25
Avatar van marten Beheerder In het eerste bestand moet de session_start() helemaal boven aan staan. Mag geen witruimte voor zitten.
Offline derrtyones - 15/09/2008 15:27
Avatar van derrtyones Nieuw lid Er zit geen witruimte voor. In alle pagina's begint het gewoon met


Offline roelh - 15/09/2008 22:14 (laatste wijziging 15/09/2008 22:16)
Avatar van roelh PHP gevorderde maak van dit

  1. $_SESSION['gebruikersnaam'] = $_POST['loginname'];


eens

  1. $_SESSION['gebruikersnaam'] = $_Rij['loginname'];


en in je query, variable BUITEN quotes!!!

'$wachtwoord2' meot dus worden '".$wachtwoord2."'
Offline djb - 16/09/2008 07:50
Avatar van djb PHP beginner zo te zien heb je alles via een index bestand gedaan (index.php?module=login) staat in je eerste code  
staat er op index.php ook bovenaan session_start()?

groetjes  
Offline derrtyones - 17/09/2008 13:53
Avatar van derrtyones Nieuw lid Ja bovenaan de index.php (is de home.php in eerste post) staat session_start().

Ik heb die veranderingen aangebracht van roelh maar het werkt nog nicht. Ik krijg nog steeds die melding NO PERMISSION.
Offline pimvdmolen - 17/09/2008 14:26 (laatste wijziging 17/09/2008 14:37)
Avatar van pimvdmolen Nieuw lid Probeer anders dit eens:

  1. <?php session_start();
  2.  
  3. require ("connection.php");
  4. $gebruikersnaam = $_POST['loginname'];
  5. $wachtwoord2 = $_POST['password'];
  6. $DBNaam = 'databasenaam';
  7. mysql_select_db($DBNaam);
  8.  
  9. $result = mysql_query ("SELECT * FROM portfolio WHERE password = '".$wachtwoord2."' AND loginname = '".$gebruikersnaam."'");
  10.  
  11. if (mysql_num_rows($result) == 1) //Als er een resultaat is gevonden dan sessie aanmaken etc.
  12. {
  13. $Rij = mysql_fetch_array($result);
  14. $_SESSION['gebruikersnaam'] = $_POST['loginname'];
  15. echo "<br> Welcome: ". $Rij['firstname']."";
  16. echo "<br> You are logged in as:<br> ".$Rij['loginname']."";
  17. echo "<br><a href='index.php?module=profile'>Click here to view your profile</a>";
  18. }
  19. Else //Geen resultaat gevonden.. foutmelding!
  20. {
  21. echo "Your username and/or password do not match!";
  22. }
  23. ?>
Offline Abbas - 17/09/2008 14:32
Avatar van Abbas Gouden medaille

Crew .NET
Ik zie dat je je paswoord niet hasht/encrypt. Staat het paswoord gehasht/ge-encrypt in de DB? Zo ja, dan moet je die hash ook gebruiken om de gegevens op te halen. Anders gaat hij nu nooit een sessie aanmaken.
Offline derrtyones - 17/09/2008 16:53
Avatar van derrtyones Nieuw lid @Pim, ik heb je code geprobeerd als login.php. Nog steeds als ik op "Click here to view your profile" klik en naar profile.php gaat krijg ik de melding NO PERMISSION.

@Tiljes, nee hij's zowel als in PHP als in de DB niet encrypt.
Offline pimvdmolen - 17/09/2008 17:12
Avatar van pimvdmolen Nieuw lid
derrtyones schreef:
@Pim, ik heb je code geprobeerd als login.php. Nog steeds als ik op "Click here to view your profile" klik en naar profile.php gaat krijg ik de melding NO PERMISSION.

@Tiljes, nee hij's zowel als in PHP als in de DB niet encrypt.


kreeg je wel bij mijn code op de pagina deze tekst te zien:
Click here to view your profile

ofniet ??
Offline derrtyones - 18/09/2008 16:07
Avatar van derrtyones Nieuw lid Ja Pim die melding kreeg ik wel. Maar zodra ik daar op klik en dus naar de profile pagina gaat krijg ik de melding NO PERMISSION.
Offline pimvdmolen - 19/09/2008 17:03
Avatar van pimvdmolen Nieuw lid Dan zou ik onderstaande eens proberen en ik heb er een regel bij toegevoegd waar die bij aangeeft wat de gebruikersnaam is.. komt daar dan iets te staan ofniet?

dus achter de regel:
Uw gebruikersnaam is: [Hier hoort een naam te komen staan]

  1. <?php session_start();
  2.  
  3. require ("connection.php");
  4. $gebruikersnaam = $_POST['loginname'];
  5. $wachtwoord2 = $_POST['password'];
  6. $DBNaam = 'databasenaam';
  7. mysql_select_db($DBNaam);
  8.  
  9. $result = mysql_query ("SELECT * FROM portfolio WHERE password = '".$wachtwoord2."' AND loginname = '".$gebruikersnaam."'");
  10.  
  11. if (mysql_num_rows($result) == 1) //Als er een resultaat is gevonden dan sessie aanmaken etc.
  12. {
  13. $Rij = mysql_fetch_array($result);
  14. echo "Uw gebruikersnaam is: " . $_POST['loginname'];
  15. $_SESSION['gebruikersnaam'] = $_POST['loginname'];
  16. echo "<br> Welcome: ". $Rij['firstname']."";
  17. echo "<br> You are logged in as:<br> ".$Rij['loginname']."";
  18. echo "<br><a href='index.php?module=profile'>Click here to view your profile</a>";
  19. }
  20. Else //Geen resultaat gevonden.. foutmelding!
  21. {
  22. echo "Your username and/or password do not match!";
  23. }
  24. ?>
Offline derrtyones - 21/09/2008 12:57
Avatar van derrtyones Nieuw lid Hoi Pim,

Nu snap ik er werkelijk niets meer van. Dit zijn de stappen dat ik gemaakt heb:

Je script gekopieert en als login.php opgeslagen en ge-upload. Getested maar kreeg geen melding van "Uw gebruikersnaam is:". Nogmaal ge-upload en zelfde verhaal. Browsergeschiedenis en cookeis verwijderd, opnieuw geupload en nogmaal geprobeert en ik krijg:

Uw gebruikersnaam is: [loginname]
Welcome: [firstname]
You are logged in as: [loginname]
Click here to view your profile

Dat werkte dus. Ik ga naar profile en NO PERMISSION. Daarna niets aan de login.php verandert maar nog een keer ge-upload. Toen weer geprobeert om in te loggen en dan krijg ik weer geen melding van "Uw gebruikersnaam is:" maar wel die andere 3. Ik klik op de link om naar de profile te gaan en ja hoor, ik krijg een resultaat. Nogmaal browsergeschiedenis en cookies verwijdert, nogmaal login.php ge-upload en nu krijg ik nog steeds niet die melding van "uw gebruikersnaam is" maar wel die andere 3 en weer de NO PERMISSION melding.

Die fout moet toch ergens anders liggen. 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.277s