login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Loginsysteem

Offline finduilas - 24/09/2005 17:34 (laatste wijziging 24/09/2005 17:35)
Avatar van finduilasPHP gevorderde Halo,

Ik heb nu een werkend loginsysteem.Maar hoe kan ik nu pagina's beveiligen voor niet members en als ze geen members zijn naar index.php gaan.Dus niet met ook een login op die pagina.
Dit is het inlog met de hoofdpagina:
  1. <?php
  2. //Hoe lang de bezoeker mag ingelogged blijven:
  3. $expiredate = time()+60*60*24*7; //ingesteld op 1 week
  4.  
  5. if ($logout == 1)
  6. { setcookie("username");
  7. setcookie("passgecodeerd");
  8. header("location:index.php");
  9. }
  10.  
  11. if ($_POST["username"] && $_POST["password"])
  12. { // password coderen
  13. $passgecodeerd = md5($_POST["password"]);
  14. $username = $_POST["username"];
  15.  
  16. // variabelen in een cookie zetten
  17. setcookie("username",$username,$expiredate);
  18. setcookie("passgecodeerd",$passgecodeerd,$expiredate);
  19. header("location:$_SERVER[REQUEST_URI]");
  20.  
  21. }
  22.  
  23. $controle == FALSE;
  24. $level = 1;
  25. $jeid = "";
  26. include ("login.php");
  27. $controle = password($username, $passgecodeerd);
  28.  
  29. if ($controle == TRUE)
  30. { $query = "SELECT * FROM member where id='$jeid'";
  31. $resultaat = mysql_query($query) or die (mysql_error());
  32. while ($obj = mysql_fetch_object($resultaat))
  33. { $nickname ="$obj->nickname";
  34. $jeid="$obj->id";
  35. $level="$obj->level";
  36. }
  37. include ('config.php');
  38. }
  39. if ($_POST['Login'] && $controle == TRUE)
  40. echo "Je bent succesvol ingelogged";
  41. elseif ($_POST['Login'] && $controle != TRUE)
  42. echo "Fout wachtwoord en/of gebruikersnaam";
  43. ?>
  44. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 ...>
  45. <html>
  46. <head>
  47. <meta http-equiv="content-type" content="text/html; charset=...">
  48. <title>Login</title>
  49. </head>
  50. <body>
  51. <?php
  52. if ($controle != TRUE)
  53. { ?><form method="post" action="">
  54. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  55. <tr><td>Username:</td></tr>
  56. <tr><td><input type="text" name="username"></td></tr>
  57. <tr><td>Password:</td></tr>
  58. <tr><td><input type="password" name="password"></td></tr>
  59. <tr><td><input type="submit" value="Login" name="Login"></td></tr>
  60. </table>
  61. </form>
  62. <?php
  63. } elseif ($controle == TRUE) {
  64. echo "Welkom $jenickname op de memberpagina's van SFC.Hier komen extra pagina's enkel voor leden";
  65. } ?>

10 antwoorden

Gesponsorde links
Offline nemesiskoen - 24/09/2005 17:40
Avatar van nemesiskoen Gouden medaille

PHP expert
  1. <?php
  2. function is_ingelogd() {
  3. $q = mysql_query("SELECT id FROM leden WHERE naam ='". addslashes($_COOKIE['naam']) ."' AND pass = '". addslashes($_COOKIE['pass']) ."'");
  4. return (mysql_num_rows($q) == 1);
  5. }
  6. ?>


  1. <?php
  2. if(is_ingelogd()) {
  3. ...
  4. } else {
  5. inlogge!
  6. }
  7. ?>
Offline finduilas - 24/09/2005 18:12
Avatar van finduilas PHP gevorderde Werkt niet:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /vhost/usr/sfc/members/regels.php on line 8
Log je eerst in!

  1. <?php
  2.  
  3. mysql_connect ("localhost","db_sfc","passwoord");
  4. mysql_select_db("db_sfc");
  5.  
  6. function is_ingelogd() {
  7. $q = mysql_query("SELECT id FROM member WHERE naam ='". addslashes($_COOKIE['naam']) ."' AND pass = '". addslashes($_COOKIE['pass']) ."'");
  8. return (mysql_num_rows($q) == 1);
  9. }
  10. ?>
  11. <?php
  12. if(is_ingelogd()) {
  13. echo ("Hello world");
  14. } else {
  15. echo ("Log je eerst in!");
  16. }
  17. ?>
Offline Rens - 24/09/2005 18:52
Avatar van Rens Gouden medaille

Crew algemeen
gebruik error handling bij het uitvoeren van je query!!!
Offline finduilas - 24/09/2005 19:34 (laatste wijziging 24/09/2005 21:01)
Avatar van finduilas PHP gevorderde En dat is?Ben nog een noob hierin.
Offline Rens - 25/09/2005 02:09
Avatar van Rens Gouden medaille

Crew algemeen
script
Offline finduilas - 25/09/2005 13:48
Avatar van finduilas PHP gevorderde
  1. <?php
  2.  
  3. mysql_connect ("localhost","db_sfc","passwoord");
  4. mysql_select_db("db_sfc");
  5.  
  6. function is_ingelogd() {
  7. $q = mysql_query("SELECT id FROM member WHERE naam ='". addslashes($_COOKIE['naam']) ."' AND pass = '". addslashes($_COOKIE['pass']) ."'");
  8. return (mysql_num_rows($q) == 1);
  9. if(!$rResult = MySQL_Query($sQuery))
  10. {
  11. // nee, er is een fout dus roepen we de functie aan
  12. // de waarden spreken voor zich lijkt me, maar toch even beetje uitleg
  13.  
  14. // MySQL_Error() = bevat de SQL error
  15. // MySQL_Errno() = bevat het nummer v.d. error
  16. // __FILE__ = bevat de bestandsnaam
  17. // __LINE__ = bevat het regelnummer
  18. // $sQuery = bevat de query (optioneel)
  19. echo MySQL_Error_Report(MySQL_Error(), MySQL_Errno(), __FILE__, __LINE__, $sQuery);
  20. } else
  21. {
  22. // de query is succesvol uitgevoerd
  23. echo "Uitgevoerd!";
  24. }
  25. ?>
  26.  
  27. ?>
  28. <?php
  29. if(is_ingelogd()) {
  30. echo ("Hello world");
  31. } else {
  32. echo ("Log je eerst in!");
  33. }
  34. ?>

Er moet ergens een } tekort zijn want ik krijg een error Parse error: parse error, unexpected $ in /vhost/usr/sfc/members/regels.php on line 35.Alleen vind ik niet waar
Offline vinTage - 25/09/2005 13:55 (laatste wijziging 25/09/2005 13:57)
Avatar van vinTage Nieuw lid regel 27 ?> ?
je function is_ingelogd() is ook niet afgesloten
Offline finduilas - 25/09/2005 14:03
Avatar van finduilas PHP gevorderde Het is daar dat ik denk?Maar waar moet ik hem juist afsluiten?
Offline vinTage - 25/09/2005 14:06 (laatste wijziging 25/09/2005 14:06)
Avatar van vinTage Nieuw lid
  1. <?php
  2.  
  3. mysql_connect ("localhost","db_sfc","passwoord");
  4. mysql_select_db("db_sfc");
  5.  
  6. function is_ingelogd() {
  7. $q = mysql_query("SELECT id FROM member WHERE naam ='". addslashes($_COOKIE['naam']) ."' AND pass = '". addslashes($_COOKIE['pass']) ."'");
  8. return (mysql_num_rows($q) == 1);
  9. if(!$rResult = MySQL_Query($sQuery))
  10. {
  11. // nee, er is een fout dus roepen we de functie aan
  12. // de waarden spreken voor zich lijkt me, maar toch even beetje uitleg
  13.  
  14. // MySQL_Error() = bevat de SQL error
  15. // MySQL_Errno() = bevat het nummer v.d. error
  16. // __FILE__ = bevat de bestandsnaam
  17. // __LINE__ = bevat het regelnummer
  18. // $sQuery = bevat de query (optioneel)
  19. echo MySQL_Error_Report(MySQL_Error(), MySQL_Errno(), __FILE__, __LINE__, $sQuery);
  20. } else
  21. {
  22. // de query is succesvol uitgevoerd
  23. echo "Uitgevoerd!";
  24. }
  25. }
  26. ?>
  27.  
  28. <?php
  29. if(is_ingelogd()) {
  30. echo ("Hello world");
  31. } else {
  32. echo ("Log je eerst in!");
  33. }
  34. ?>
Offline finduilas - 25/09/2005 14:06 (laatste wijziging 25/09/2005 16:52)
Avatar van finduilas PHP gevorderde Ok,Thanks

:s Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /vhost/usr/sfc/members/regels.php on line 8
Log je eerst in!

EDIT:Heb al die "zever" eruit verwijdert en de oude or die(mysql_error()); gebruikt.

Oplossing:Unknown column 'naam' in 'where clause'

EDIT2:Het moest nickname zijn en password.Nu krijg ik al geen errors meer.
EDIT3:Ik heb me ingelogd in index.php.Alles word opgeslagen in een cookie.Alleen krijg ik toch Log je eerst in! op de pagina met het script van hierboven.

Iemand die weet wat er fout is?Word dezelfde cookie niet geladen?Of iets anders?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2026 Sitemasters.be - Regels - Laadtijd: 0.234s