login  Naam:   Wachtwoord: 
Registreer je!
 Forum

inlogsysteem fout

Offline Designick - 31/03/2009 19:07
Avatar van DesignickNieuw lid Hallo,

Ik heb een inlogsysteem voor users,
als deze inloggen doet dat het. Als ze daarna op een link klikken bijvoorbeeld: nieuws toevoegen: krijgen ze nogmaals dit inlogscherm.

Na deze 2e keer inloggen onthoud hij wel je gegevens.

Weet iemand een oplossing voor dit probleem?
  1. <?
  2. }else{
  3. if(isset($_COOKIE['user_id'])) {
  4. // Cookie uitlezen, sessie aanmaken
  5. $sql = "SELECT id,status,wachtwoord,actief FROM gebruikers WHERE id='".$_COOKIE['user_id']."'";
  6. $query = mysql_query($sql);
  7. $rij = mysql_fetch_object($query);
  8. $id = htmlspecialchars($rij->id);
  9. $status = htmlspecialchars($rij->status);
  10. $dbpass = htmlspecialchars($rij->wachtwoord);
  11. $actief = htmlspecialchars($rij->actief);
  12. if($dbpass == $_COOKIE['user_password'] AND $actief == 1) {
  13. $_SESSION['user_id'] = $id;
  14. $_SESSION['user_status'] = $status;
  15. ?>
  16. Er is weer een sessie aangemaakt. Je wordt doorverwezen.
  17. <script language="Javascript" type="text/javascript">
  18. location.href='<?= $loginpage ?>';
  19. </script>
  20. <?
  21. }else{
  22. echo "Je cookie klopt niet met wat er in de database staat of je account is niet geactiveerd. Mogelijk heb je je wachtwoord veranderd.<br />\nJe oude cookies zijn verwijderd.";
  23. setcookie("user_id", "", time() - 3600);
  24. setcookie("user_password", "", time() - 3600);
  25. }
  26. }else{
  27. if(isset($_POST['submit'])) {
  28. // Inloggen
  29. $sql = "SELECT id,naam,wachtwoord,status,actief FROM gebruikers WHERE naam='".$_POST['user']."'";
  30. $query = mysql_query($sql);
  31. $rij = mysql_fetch_object($query);
  32. $dbpass = htmlspecialchars($rij->wachtwoord);
  33. $userpass = md5($_POST['pass']);
  34. $userid = htmlspecialchars($rij->id);
  35. $userstatus = htmlspecialchars($rij->status);
  36. $useractief = htmlspecialchars($rij->actief);
  37. if($dbpass == $userpass) {
  38. if($useractief == 1) {
  39. $_SESSION['user_id'] = $userid;
  40. $_SESSION['user_status'] = $userstatus;
  41. if($_POST['cookie'] == "do") {
  42. setcookie("user_id", $userid, time() + 365 * 86400);
  43. setcookie("user_password", $dbpass, time() + 365 * 86400);
  44. }
  45. ?>
  46. Je bent succesvol ingelogd.<br />
  47. Je wordt doorgestuurd, indien er niets gebeurd <a href="<?= $loginpage ?>">klik dan hier</a>.
  48.  
  49. <script language="Javascript" type="text/javascript">
  50. location.href='<?= $loginpage ?>';
  51. </script>
  52. <?
  53. }else{
  54. echo "Je account is niet geactiveerd. Activeer deze, door op de link in de verzonden e-mail te klikken.<br />\n<a href=\"javascript:history.back()\">&laquo; Ga terug</a>";
  55. }
  56. }else{
  57. echo "Het door jouw ingevoerd wachtwoord klopt niet voor de gebruiker '".$_POST['user']."'.<br />\n<a href=\"javascript:history.back()\">&laquo; Ga terug</a>";
  58. }
  59. }else{
  60. // Inlogform
  61. ?>
  62. <form method="post" action="inloggen.php">
  63. <table style="margin-top:12px">
  64. <tr>
  65. <td><input name="user" type="text" value="Gebruikersnaam" size="14" style="background-color:transparent; border:solid 1px;font-family:Arial, Helvetica, sans-serif; color:#a10c4f; border-color:#da015d; font-size:11px;"/></td>
  66. <td><input name="pass" type="password" size="13" style="background-color:transparent; border:solid 1px;font-family:Arial, Helvetica, sans-serif; color:#ffffff; border-color:#da015d; font-size:11px;"/></td>
  67. <td><input type="checkbox" name="cookie" value="do" style="border: 0px;" /><font size="-2" color="#333333" face="Arial, Helvetica, sans-serif"></font></td><td><input type="submit" name="submit" value="&rarr;" style="font-size:12px; background-color:transparent; border:none; cursor:pointer;"/><a class="active" href="waarom.php"><b style="color:#333333; font-weight:lighter">&nbsp;?</b></a></td>
  68. </tr>
  69. </table>
  70. </form>
  71. <?
  72. }
  73. }
  74. }
  75. include("htmlbottom.php");
  76. ?>

7 antwoorden

Gesponsorde links
Offline svghosting - 31/03/2009 19:30
Avatar van svghosting Lid #
setcookie("user_id", "", time() - 3600);
#
setcookie("user_password", "", time() - 3600

JE hebt een cookie ingesteld met de tijd dat mensen ingelogd blijven, deze tijd is wel erg kort...
Offline svghosting - 31/03/2009 19:47
Avatar van svghosting Lid @ Konijnsnuf,

Sorry dat ik een reactie plaats op jou reactie. Maar je hebt absoluut geen verstand van php. Waarom reageer je dan?


Verder...

Designnick heb je je tijd al veranderd in je code?
Offline Designick - 31/03/2009 19:48 (laatste wijziging 31/03/2009 19:49)
Avatar van Designick Nieuw lid Nee helemaal niet :O

Ik heb m zo van het internet, al 2 jaar en altijd gewerkt.

Moet ik proberen deze te veranderen?

Heb niet veel verstand van die cookies ;)
Offline Filip - 31/03/2009 19:58
Avatar van Filip IRC guru
svghosting schreef:
#
setcookie("user_id", "", time() - 3600);
#
setcookie("user_password", "", time() - 3600

JE hebt een cookie ingesteld met de tijd dat mensen ingelogd blijven, deze tijd is wel erg kort...


Deze setcookie is juist om hem te verwijderen...

  1. setcookie("user_id", $userid, time() + 365 * 86400);
  2. setcookie("user_password", $dbpass, time() + 365 * 86400);


Deze zijn de SET, blijkbaar ken je zelf er ook niet echt zo veel van he... 
Offline svghosting - 31/03/2009 20:01
Avatar van svghosting Lid Ja wel iets maar evrgeleken met konijnsnuf ben ik expert  
Offline Whazor - 31/03/2009 20:13
Avatar van Whazor Nieuw lid 1. Je geeft iemand de optie om geen cookies te gebruiken, terwijl je er toch om vraagt bij het kijken of iemand is ingelogd.
2. Je stopt de cookie direct in de query en zo is het mogelijk voor iemand om in te loggen als bijvoorbeeld een admin; of het verwijderen van je database.

Als je dit ECHT zelf hebt gemaakt (wat ik betwijfel) zou ik als ik jou was gaan kijken naar PDO.

Dit is een alternatief voor MySQL, en veel sneller (en ook veiliger als je het goed gebruikt).

Verder raad ik je aan om het script te herschrijven en je verdiepen in cookies+sessions.
Offline Designick - 31/03/2009 20:30
Avatar van Designick Nieuw lid Ik heb ook niet gezegd dat ik het zelf geschreven heb!
Ik vrag alleen of mensen weten toevallig een oplossing weet.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.267s