login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Script werkt in Firefox, Safari maar niet in Explorer...?

Offline JLT - 28/08/2006 21:58
Avatar van JLTPHP interesse Ik zit met een super irritant probleem. En ik denk dat ik iets stoms over het hoofd zie maar ik kan het niet vinden...!

Probleem.
Het script werk super in Safari, firefox (op de Mac) en in Firefox op de PC maar niet in Explorer (zowel Mac als PC) en dat is toch (helaas) nog een belangrijke brozer...

Dit script wordt in elke pagina geinclude en vergelijkt de ingevoerde gebruikersnaam en wachtwoord met elkaar...

Alvast bedankt voor de moeite!!

het script
  1. <?php
  2.  
  3. if ($remember == 'not') {
  4. setcookie("remember", '', time()-31537000) ;
  5. } else {
  6. setcookie("remember", $nickname, time()+31536000) ;
  7. }
  8.  
  9. require "header.php" ;
  10. require "mysqldb.php" ;
  11.  
  12. $nicknamerem = $_COOKIE["remember"] ;
  13.  
  14.  
  15. // functie om de gegevens te controleren
  16. function controle ($naam, $wachtwoord, $admin) {
  17. if ($admin == false) {
  18.  
  19. $naam = addslashes($naam) ;
  20.  
  21. $sql = "SELECT gebruiker_ID, nickname, wachtwoord FROM gebruiker WHERE nickname='$naam'" ;
  22. } else {
  23. $sql = "SELECT gebruiker_ID, nickname, wachtwoord FROM gebruiker LIMIT 0,1" ;
  24. }
  25.  
  26. $result = mysql_query($sql) ;
  27. if (mysql_num_rows($result) > 0) {
  28. $password = mysql_result($result, 0, "wachtwoord");
  29. $gebruikerid = mysql_result($result, 0, "gebruiker_id");
  30. if ($wachtwoord != $password) {
  31. return false ;
  32. } else {
  33. return $gebruikerid ;
  34. }
  35. } else {
  36. return false ;
  37. }
  38. }
  39. if (isset($_POST['verzonden'])) {
  40. $nickname = $_POST['nickname'];
  41. $wachtwoord = md5($_POST['wachtwoord']);
  42. $gebruikerid = controle($nickname, $wachtwoord, $admin);
  43.  
  44. if ($gebruikerid != false) {
  45. $_SESSION['nickname'] = $nickname ;
  46. $_SESSION['wachtwoord'] = $wachtwoord ;
  47. $_SESSION['gebruikerid'] = $gebruikerid ;
  48. }
  49. }
  50.  
  51.  
  52. if (controle($_SESSION['nickname'],$_SESSION['wachtwoord'],$admin) == false) {
  53. ?>
  54. <body>
  55. <table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%">
  56. <tr>
  57. <td>
  58. <form action="<?=$_SERVER['PHP_SELF']?>" method="post">
  59. <div align="center">
  60. <?php reset($_GET);
  61. while($getvar = each($_GET)) {
  62. $varnaam = $getvar['key'];
  63. $varinhoud = $getvar['value'];
  64. echo "$varnaam=$varinhoud&";
  65. }
  66. ?>
  67. <table width="238" border="0" cellspacing="0" cellpadding="0">
  68. <tr>
  69. <td colspan="3"><img src="http://www.mosessole.nl/deskanizer/images/deskanizer_login_03.gif" alt="" height="58" width="239"></td>
  70. </tr>
  71. <tr height="10">
  72. <td width="16" height="10"></td>
  73. <td height="10"></td>
  74. <td width="17" height="10"></td>
  75. </tr>
  76. <tr>
  77. <td colspan="3"><img src="http://www.mosessole.nl/deskanizer/images/deskanizer_login_06.gif" alt="" height="15" width="240"></td>
  78. </tr>
  79. <tr>
  80. <td rowspan="7" width="16" background="http://www.mosessole.nl/deskanizer/images/deskanizer_login_08.gif"></td>
  81. <td><strong><font size="2" face="Helvetica, Geneva, Arial, SunSans-Regular, sans-serif">Username:</font></strong></td>
  82. <td rowspan="7" width="17" background="http://www.mosessole.nl/deskanizer/images/deskanizer_login_10.gif"></td>
  83. </tr>
  84. <tr>
  85. <td><input type="text" name="nickname" value="<?php echo $nicknamerem ; ?>"size="24" width="24" />
  86. </td>
  87. </tr>
  88. <tr>
  89. <td><strong><font size="2" face="Helvetica, Geneva, Arial, SunSans-Regular, sans-serif">Password:</font></strong></td>
  90. </tr>
  91. <tr>
  92. <td><input type="password" name="wachtwoord" size="24" />
  93. </td>
  94. </tr>
  95. <tr height="19">
  96. <td height="19"><input type="checkbox" name="remember" value="not" /><font size="2" face="Helvetica, Geneva, Arial, SunSans-Regular, sans-serif"> Do not remember me </font></td>
  97. </tr>
  98. <tr height="19">
  99. <td height="19"></td>
  100. </tr>
  101. <tr>
  102. <td><font size="2" face="Helvetica, Geneva, Arial, SunSans-Regular, sans-serif">No account?<a href="http://www.mosessole.nl/deskanizer/scripts/register.php"> Register</a> for free <br>
  103. </font></td>
  104. </tr>
  105. <tr height="10">
  106. <td colspan="3" height="10"><img src="http://www.mosessole.nl/deskanizer/images/deskanizer_login_11.gif" alt="" height="14" width="239"></td>
  107. </tr>
  108. <tr height="10">
  109. <td width="16" height="10"></td>
  110. <td height="10">
  111. </td>
  112. <td width="17" height="10"></td>
  113. </tr>
  114. <tr>
  115. <td width="16"></td>
  116. <td>
  117. <div align="right">
  118. <input type=image name="verzonden" value="Log in" src="http://www.mosessole.nl/deskanizer/images/deskanizer_login_15.gif" border="0" height="42" width="95"/></div>
  119. </td>
  120. <td width="17"></td>
  121. </tr>
  122. <tr>
  123. <td width="16"></td>
  124. <td><?php
  125. if ($admin =="true") {
  126. echo "<p>-- Admin status vereist!";
  127. }
  128. ?></td>
  129. <td width="17"></td>
  130. </tr>
  131. </table>
  132. </div>
  133. </form>
  134. </td>
  135. </tr>
  136. </table>
  137. <p></p>
  138. </body>
  139. </html>
  140. <?php
  141. }
  142.  
  143. ?>

15 antwoorden

Gesponsorde links
Offline marten - 28/08/2006 22:38
Avatar van marten Beheerder ik denk een cookie probleem
Ik zie nameljik zo snel geen fouten in je script. Controleer je browsers eens hoe ze cookies afhandelen. Misschien staat er wel een paar geblokt ofzo
Offline JLT - 29/08/2006 12:41
Avatar van JLT PHP interesse Ik heb de beveiliging helemaal omlaag gegooid maar nog steeds werkt het niet..? Kan het misschien zijn omdat ik dit script require ipv include in de index (en alle andere pagina's)...

Ik heb even gekeken maar geen enkel formulier doet het in *** explorer!???
Offline Rex - 29/08/2006 13:08
Avatar van Rex Nieuw lid Je haalt twee dingen door elkaar: server-side en client-side. Als je nu eerst eens uitlegt WAT er niet werkt? Cookies? Inloggen? Je query?
Offline JLT - 29/08/2006 14:14 (laatste wijziging 29/08/2006 16:14)
Avatar van JLT PHP interesse Ja sorry misschien wel handig. Het inloggen werkt niet. Je kan een gebruikersnaam en wachtwoord invullen (die goed zijn) maar dan blijf je op deze pagina hangen. En je behoort natuurlijk naar de gevraagde pagina te gaan...

Volgens mij komt het doordat explorer mijn variabelen niet begrijpt ofzo. Ik krijg deze foutmelding:

mijn sessies:
$_SESSION["nickname"]
$_SESSION["wachtwoord"]

Dit is de foutmelding:
Notice: Undefined index: nickname in /usr/local/psa/home/vhosts/mosessole.nl/httpdocs/deskanizer/include/authenticatie.php on line 44

Notice: Undefined index: wachtwoord in /usr/local/psa/home/vhosts/mosessole.nl/httpdocs/deskanizer/include/authenticatie.php on line 44

Waarom zou Explorer dit niet snappen en al die andere browsers wel?? Of doe ik iets verkeerd? Dit zou heel goed kunnen dat de fout is want daarom stuurt ie me telkens teurg naar het formulier.

Alvast bedankt voor de moeite!!

jelte

Ps lijn nummer 44 komt nu overheen met lijn 53
Offline Rex - 29/08/2006 17:05
Avatar van Rex Nieuw lid En waar staat de code die er voor zorgt dat je naar een andere pagina gaat?

Met alle respect: je gebruikt zowel $var, $_GET, $_POST, $_COOKIE en $_SESSIE door elkaar. Probeer eerst eens een formuliertje te maken, waarvan je de geposte waarden op het scherm print.
Stap 2 is dan om wat met die geposte waarden te doen, bijvoorbeeld een wachtwoord controle.
Stap 3 is wegschrijven naar een cookie.
Stap 4 idem naar een sessie.
Offline Rik - 29/08/2006 17:05
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Dan ligt het wss niet aan je browser maar aan het script zelf.
Dat in Firefox en Safari de sessies nog wel bestaan en in IE niet.
Offline Rex - 29/08/2006 17:12 (laatste wijziging 29/08/2006 17:17)
Avatar van Rex Nieuw lid Nuttige toevoeging 

Je checkt WHERE nickname='$naam'

Waar komt $naam vandaan? Die bestaat nog niet, dus je controle zal altijd een fout opleveren.

Idem voor gebruiker_ID en gebruiker_id. Uppercase en lowercase moet je niet mixen.
Offline jensen - 29/08/2006 17:34 (laatste wijziging 29/08/2006 17:34)
Avatar van jensen Nieuw lid @Rex:
  1. <?php
  2. function controle ($naam, $wachtwoord, $admin) {
  3. if ($admin == false) {
  4.  
  5. $naam = addslashes($naam) ;
  6.  
  7. $sql = "SELECT gebruiker_ID, nickname, wachtwoord FROM gebruiker WHERE nickname='$naam'" ;
  8. } else {
  9. $sql = "SELECT gebruiker_ID, nickname, wachtwoord FROM gebruiker LIMIT 0,1" ;
  10. }?>
Ik zie daar anders wel een $naam declaratie voor zijn SQL statement staan.
Offline Rex - 29/08/2006 17:50
Avatar van Rex Nieuw lid En waar komt die $naam vandaan?
Offline JLT - 29/08/2006 18:03 (laatste wijziging 29/08/2006 18:21)
Avatar van JLT PHP interesse wordt er helemaal gek van. Ik ga hem wel opnieuw schrijven! Ik heb dit script trouwens uit een boek "leer jezelf makkelijk PHP" maar heb al vaker problemen gehad met scripts uit dit boek Grr 
Offline jensen - 29/08/2006 19:33
Avatar van jensen Nieuw lid @Rex: al eens aan een brilletje gedacht ?
  1. <?php
  2. if (controle($_SESSION['nickname'],$_SESSION['wachtwoord'],$admin) == false...
  3. ?>
Offline Jellestg - 30/08/2006 09:17
Avatar van Jellestg Lid ik heb het ook nog gehad hoor, dat mijn inloggen niet werkt in IE.. tis nu eenmaal een *** browser 

trouwens, een boek 'leer snel php'? php moet je niet snel willen leren, doe dat stap voor stap zodat je alles begrijpt ;) neem er gerust je tijd voor, en ik moet zeggen, de tutorials op sitemasters zijn behoorlijk volledig!
Offline Clemens32 - 30/08/2006 09:33
Avatar van Clemens32 PHP interesse @offtopic
Ik heb zelf ook het boek "leer jezelf ....." gelezen en ik vond het erg onduidelijk allemaal.
Veel te beknopte omschrijvingen, veel fouten en veel te weinig "belangrijke" dingen als scriptbeveiligingen.
Even 1 klein voorbeeld:

if ($zoek) {

ipv

if (!empty($zoek)) {

Ik ben zelf ook net een maandje bezig met php hoor, maar het meeste heb ik geleerd van de tutorials op de verschillende php-gerelateerde sites, dingen proberen, veel vragen en ik heb "Het complete Handboek PHP5 en MySQL" van Academic Services erbij gekocht.
Mooi naslagwerk ook.

Succes!!!
Offline JLT - 30/08/2006 11:28
Avatar van JLT PHP interesse Stomme vraag misschien Jensen maar vertel eens waarom ik een brilletje nodig heb? Ik zie hier niks verkeerds aan maar dan ben ik ook nog een beginner.

En betreft dat boek... tsja het is een opstapje en het heeft me wel een beetje geholpen. Maar moet zeggen dat ik al veel meer geleerd heb op o.a. deze site!
Offline jensen - 30/08/2006 11:36
Avatar van jensen Nieuw lid Dat was ook niet tegen u JLT, maar tegen Rex. Die zich bleef afvragen vanwaar die $naam komt, terwijl jij die toch duidelijk meegeeft aan de controle functie die je in je if() aanroept.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.201s