login  Naam:   Wachtwoord: 
Registreer je!
 Forum

require_once probleem? niet once?

Offline descartes - 10/02/2006 14:44
Avatar van descartesNieuw lid Hallo, ik zit al uren te '....' maar elke keer als ik op de submit button klik, keer ik telkens terug naar de login. wat doe ik fout? heel het formulier wordt steeds opnieuw geopend met login. thanks

  1. <?php
  2. require_once('login.inc.php');
  3. ?>
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  7. <title>Remote</title>
  8. </head>
  9. <body>
  10. <?php
  11. if (isset($_POST['actie']))
  12. {
  13.  
  14. // Uit te voeren actie bepalen:
  15. $actie = $_POST['actie'];
  16.  
  17. if ($actie == "Lamp 1 aan")
  18. {
  19. echo 'Lamp is aan!';
  20. }
  21. }
  22. ?>
  23. <form method="post">
  24. <table border="0" cellpadding="0" cellspacing="2">
  25.  
  26. <tr>
  27. <td align="center" nowrap>
  28. <input class="knop " name="actie" type="submit" value="Lamp 1 aan">
  29.  
  30.  
  31. </td>
  32. </tr>
  33. </table>
  34. </form>
  35. </body>
  36. </html>


Login code:
  1. <?
  2. // Associatieve array met gebruikers (gebruikersnaam => wachtwoord):
  3. $gebruikers = array(
  4. "Administrator" => "test",
  5. "root" => "test",
  6. "user" => "test"
  7. // enzovoorts ...
  8. );
  9.  
  10. // Gebruikersnaam en wachtwoord controleren:
  11. if (isset($_REQUEST['gn'])) {
  12. // Gebruikersnaam lezen uit een formulier of cookie:
  13. if (isset($_POST['gn'])) {
  14. $gebruikersnaam = $_POST['gn'];
  15. } elseif (isset($_COOKIE['gn'])) {
  16. $gebruikersnaam = $_COOKIE['gn'];
  17. } else {
  18. inloggen();
  19. }
  20. $gebruikersnaam = trim(strip_tags($gebruikersnaam));
  21. // Controleren of de gebruikersnaam bestaat:
  22. if (array_key_exists($gebruikersnaam, $gebruikers)) {
  23. // Wachtwoord lezen uit een formulier of cookie:
  24. if (isset($_POST['ww'])) {
  25. $wachtwoord = $_POST['ww'];
  26. } elseif (isset($_COOKIE['ww'])) {
  27. $wachtwoord = $_COOKIE['ww'];
  28. } else {
  29. inloggen($gebruikersnaam);
  30. }
  31. $wachtwoord = trim(strip_tags($wachtwoord));
  32. // Het wachtwoord bij deze gebruikersnaam controleren:
  33. if ($gebruikers[$gebruikersnaam] == $wachtwoord) {
  34. // Cookie verloopt na 30 dagen = 2592000 seconden:
  35. $verloopt_op = time() + 2592000;
  36. // Gebruikersnaam opslaan in een cookie:
  37. setcookie("gn", $gebruikersnaam, $verloopt_op);
  38. // Wachtwoord naar keuze opslaan in een cookie:
  39. if (isset($_POST['wo'])) {
  40. if ($_POST['wo'] == 1) {
  41. setcookie("ww", $wachtwoord, $verloopt_op);
  42. }
  43. }
  44. } else {
  45. inloggen($gebruikersnaam);
  46. }
  47. } else {
  48. inloggen($gebruikersnaam);
  49. }
  50. } else {
  51. inloggen();
  52. }
  53. //echo "<script>location.href='remote.php'</script>";
  54. // Webpagina met een formulier en instructies weergeven:
  55. function inloggen($gebruikersnaam = '')
  56. {
  57. ?>
  58. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  59. <html lang="nl">
  60. <head>
  61. <meta http-equiv="Content-Language" content="nl">
  62. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  63. <title>Inloggen</title>
  64. <link href="windows.css" rel="stylesheet" type="text/css">
  65. </head>
  66. <body lang="nl">
  67. <h1>Inloggen</h1>
  68. <p>De pagina die u probeert te openen, is uitsluitend toegankelijk voor geregistreerde gebruikers.<br>
  69. Voer uw gebruikersnaam en wachtwoord in en klik op Inloggen.</p>
  70. <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
  71. <table border="0" cellpadding="0" cellspacing="2">
  72. <tr>
  73. <td>
  74. <label for="gn"><span style="text-decoration: underline">G</span>ebruikersnaam:</label>
  75. </td>
  76. </tr>
  77. <tr>
  78. <td><input accesskey="g" id="gn" name="gn" type="text" value="<?php echo $gebruikersnaam; ?>"></td>
  79. </tr>
  80. <tr>
  81. <td>
  82. <label for="ww"><span style="text-decoration: underline">W</span>achtwoord:</label>
  83. </td>
  84. </tr>
  85. <tr>
  86. <td><input accesskey="w" id="ww" name="ww" type="password"></td>
  87. </tr>
  88. <tr>
  89. <td>
  90. <label for="wo">
  91. <input accesskey="s" id="wo" name="wo" type="checkbox" value="1"> Wachtwoord op<span style="text-decoration: underline">s</span>laan
  92. </label>
  93. </td>
  94. </tr>
  95. <tr>
  96. <td><input class="knop" type="submit" value="Inloggen"></td>
  97. </tr>
  98. </table>
  99. </form>
  100. </body>
  101. </html>
  102. <?php
  103.  
  104. }
  105. ?>

8 antwoorden

Gesponsorde links
Offline superlol - 10/02/2006 14:48
Avatar van superlol PHP interesse mss moet je dit : <form method="post"> veranderen in dit :
<form method="post" action="blaat.php?actie=bla">
Offline descartes - 10/02/2006 14:58
Avatar van descartes Nieuw lid Ik heb nu dit
  1. <form method="post" action="beveiligd1.php?actie=beveiligd1.php">
maar werkt nog niet steeds weer login?
Offline timo - 10/02/2006 15:09
Avatar van timo PHP ver gevorderde miss moet je zeggen welke actie er op actie=... moet gebeuren, verder: zet bovenaan je script: session_start(); dan laat hij nm sessies doorlopen... en miss alleen de pagina laten zien als de cookies bestaan?
Offline Rens - 10/02/2006 15:30
Avatar van Rens Gouden medaille

Crew algemeen
Timo, zie jij ergens in het script staan dat hij gebruikt maakt van sessies?
Hij gebruikt cookies, geen sessies dus is session_start(); niet nodig.
Offline descartes - 10/02/2006 15:56 (laatste wijziging 11/02/2006 11:24)
Avatar van descartes Nieuw lid Nee dat met die punten maakt niet uit. Maar ik vind het nog steeds vreemd dat ik nu zo door mijn inlogscherm heen kan klikken. zie laatste code onder. Waarschijnlijk ligt het aan <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="POST"> in het login.php script dat het script zonder invoer wordt uitgevoerd. Als ik <?
require_once("login.php");?> boven aan zet spring ik constant terug naar de login.php. dus if ($_SERVER['REQUEST_METHOD'] != "POST")
require("login.php"); werkt prima alleen nu hoef ik alleen maar op login te klikken zonder invoer??
Nog maar eens wat uurtjes aan besteden, maar hulp is welkom. gr henk.

code dat login.php aanroept.
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. <title>Remote</title>
  5. </head>
  6. <body>
  7. <?php
  8.  
  9. if ($_SERVER['REQUEST_METHOD'] != "POST")
  10. require("login.php");
  11.  
  12.  
  13. if (isset($_POST['actie']))
  14. {
  15.  
  16. // Uit te voeren actie bepalen:
  17. $actie = $_POST['actie'];
  18.  
  19. if ($actie == "Lamp 1 aan")
  20. {
  21. echo 'Lamp is aan!';
  22. }
  23. }
  24. ?>
  25. <form method="post"action="<? echo $_SERVER['PHP_SELF']; ?>">
  26. <table border="0" cellpadding="0" cellspacing="2">
  27.  
  28. <tr>
  29. <td align="center" nowrap>
  30. <input class="knop " name="actie" type="submit" value="Lamp 1 aan">
  31.  
  32.  
  33. </td>
  34. </tr>
  35. </table>
  36. </form>
  37.  
  38. </body>
  39. </html>
  40. ----------------
  41. login.php
  42. ----------------
  43. <?
  44. // Associatieve array met gebruikers (gebruikersnaam => wachtwoord):
  45. $gebruikers = array(
  46. "Administrator" => "test123",
  47. "henk" => "test456",
  48. "user" => "test789"
  49. // enzovoorts ...
  50. );
  51.  
  52. // Gebruikersnaam en wachtwoord controleren:
  53. if (isset($_REQUEST['gn'])) {
  54. // Gebruikersnaam lezen uit een formulier of cookie:
  55. if (isset($_POST['gn'])) {
  56. $gebruikersnaam = $_POST['gn'];
  57. } elseif (isset($_COOKIE['gn'])) {
  58. $gebruikersnaam = $_COOKIE['gn'];
  59. } else {
  60. inloggen();
  61. }
  62. $gebruikersnaam = trim(strip_tags($gebruikersnaam));
  63. // Controleren of de gebruikersnaam bestaat:
  64. if (array_key_exists($gebruikersnaam, $gebruikers)) {
  65. // Wachtwoord lezen uit een formulier of cookie:
  66. if (isset($_POST['ww'])) {
  67. $wachtwoord = $_POST['ww'];
  68. } elseif (isset($_COOKIE['ww'])) {
  69. $wachtwoord = $_COOKIE['ww'];
  70. } else {
  71. inloggen($gebruikersnaam);
  72. }
  73. $wachtwoord = trim(strip_tags($wachtwoord));
  74. // Het wachtwoord bij deze gebruikersnaam controleren:
  75. if ($gebruikers[$gebruikersnaam] == $wachtwoord) {
  76. // Cookie verloopt na 30 dagen = 2592000 seconden:
  77. $verloopt_op = time() + 2592000;
  78. // Gebruikersnaam opslaan in een cookie:
  79. setcookie("gn", $gebruikersnaam, $verloopt_op);
  80. // Wachtwoord naar keuze opslaan in een cookie:
  81. if (isset($_POST['wo'])) {
  82. if ($_POST['wo'] == 1) {
  83. setcookie("ww", $wachtwoord, $verloopt_op);
  84. }
  85. }
  86. } else {
  87. inloggen($gebruikersnaam);
  88. }
  89. } else {
  90. inloggen($gebruikersnaam);
  91. }
  92. } else {
  93. inloggen();
  94. }
  95. //echo "<script>location.href='remote.php'</script>";
  96. // Webpagina met een formulier en instructies weergeven:
  97. function inloggen($gebruikersnaam = '')
  98. {
  99. ?>
  100. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  101. <html lang="nl">
  102. <head>
  103. <meta http-equiv="Content-Language" content="nl">
  104. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  105. <title>Inloggen</title>
  106. <link href="windows.css" rel="stylesheet" type="text/css">
  107. </head>
  108. <body lang="nl">
  109. <h1>Inloggen</h1>
  110. <p>De pagina die u probeert te openen, is uitsluitend toegankelijk voor geregistreerde gebruikers.<br>
  111. Voer uw gebruikersnaam en wachtwoord in en klik op Inloggen.</p>
  112. <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="POST">
  113. <table border="0" cellpadding="0" cellspacing="2">
  114. <tr>
  115. <td>
  116. <label for="gn"><span style="text-decoration: underline">G</span>ebruikersnaam:</label>
  117. </td>
  118. </tr>
  119. <tr>
  120. <td><input accesskey="g" id="gn" name="gn" type="text" value="<?php echo $gebruikersnaam; ?>"></td>
  121. </tr>
  122. <tr>
  123. <td>
  124. <label for="ww"><span style="text-decoration: underline">W</span>achtwoord:</label>
  125. </td>
  126. </tr>
  127. <tr>
  128. <td><input accesskey="w" id="ww" name="ww" type="password"></td>
  129. </tr>
  130. <tr>
  131. <td>
  132. <label for="wo">
  133. <input accesskey="s" id="wo" name="wo" type="checkbox" value="1"> Wachtwoord op<span style="text-decoration: underline">s</span>laan
  134. </label>
  135. </td>
  136. </tr>
  137. <tr>
  138. <td><input class="knop" type="submit" value="Inloggen"></td>
  139. </tr>
  140. </table>
  141. </form>
  142. </body>
  143. </html>
  144. <?php
  145. exit;
  146.  
  147. }
  148. ?>
Offline timo - 11/02/2006 11:27
Avatar van timo PHP ver gevorderde haal die exit; onderaan je script eens weg... want zo krijg je dat als je het script uitvoert en die functie hij op het eind van de functie (wat eigenlijk alleen maar HTML is) de pagina beeindigd
Offline descartes - 11/02/2006 13:08
Avatar van descartes Nieuw lid @Timo, geprobeerd, maar nu start hij dus direct op, hoef ik helemaal niet meer in te loggen zie 2x inlogscherm en dan direct het beveiligde gedeelte.? gr
Offline Ibrahim - 11/02/2006 19:40
Avatar van Ibrahim PHP expert je gebruikt inloggen(); maar maakt em eronder pas aan ?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.23s