login  Naam:   Wachtwoord: 
Registreer je!
 Forum

header allready sent error

Offline excius - 17/01/2005 20:19 (laatste wijziging 17/01/2005 21:28)
Avatar van exciusNieuw lid ik krijg bij mijn loginscript een eader allready sent error, nu had ik ergens gezien dat iemand aanrade om ob_start(); voor de code te zetten, nu krijg ik dus geen header allready sent error, maar hij logt echter ook niet in, hij blijft terug gaan naar het login scherm.

9 antwoorden

Gesponsorde links
Offline Jeroen - 17/01/2005 20:21
Avatar van Jeroen Onbekend *zucht*. Deze topics moeten automatish worden verwijdert!

http://www.site...ngen#err_1
Offline remy - 17/01/2005 20:21 (laatste wijziging 17/01/2005 20:22)
Avatar van remy PHP ver gevorderde kon hij toch ook niet weten? hij is nieuw:D

kun je je code eens posten?

volgens mij heb je controlestatements binnen een andere controlestatement staan
Offline excius - 17/01/2005 20:25 (laatste wijziging 17/01/2005 21:20)
Avatar van excius Nieuw lid
  1. <?php
  2. require("connect.php");// connectie met database maken en database selecteren
  3. session_start();// start een sessie of zet een sessie voort
  4.  
  5. // controleer hier of iemand inlogt - dit moet _voor_ de <HTML>-tag gebeuren gebeuren
  6. if(isset($_POST['login'])) {
  7. if(trim($_POST['naam']) <> "" && trim($_POST['wacht']) <> "") {
  8. // naam en wachtwoord zijn ingevuld. Haal het (versleutelde) wachtwoord en
  9. // het gebruikersniveau dat bij deze gebruikersnaam hoort uit de database op
  10. // en vergelijk dit wachtwoord met het in het formulier opgegeven wachtwoord.
  11.  
  12. $naam = $_POST['naam'];
  13. $wacht = md5($_POST['wacht']);
  14. $res = mysql_query("SELECT id, pass, level FROM users where name='".$naam."'") or die(mysql_error());
  15.  
  16. // Als er een resultaat is, oftewel er bestaat een gebruiker met de naam $naam
  17. if(mysql_num_rows($res) > 0) {
  18. $row = mysql_fetch_assoc($res);
  19. // aanname: het wachtwoord in de database is eenmalig gehashed mbv de functie md5()
  20. // vergelijk het opgehaalde wachtwoord met een versleutelde versie van het in het
  21. // formulier opgegeven wachtwoord
  22. if(!strcmp($wacht, $row['pass'])) {
  23. // alle gegevens kloppen
  24.  
  25. // v1.2 extra functionaliteit, onthouden login
  26. // wil de gebruiker zijn gegevens onthouden ?
  27. if(isset($_POST['memory'])) {
  28. // set cookie (voor 2 maanden) en onthoud het IP
  29. // gebruik hierbij het id van de gebruiker
  30. setcookie("login_cookie", $row['id'].";".$row['pass'], time()+3600*24*31*2, "/");
  31. $ip = $_SERVER['REMOTE_ADDR'];
  32. mysql_query("UPDATE users SET last_ip='".$ip."' WHERE id=".$row['id']) or die(mysql_error());
  33. }
  34.  
  35. // vul sessievariabelen
  36. $_SESSION['suser'] = $naam; // gebruikersnaam van ingelogd persoon
  37. $_SESSION['slevel'] = $row['level']; // bijbehorende gebruikersniveau
  38. $_SESSION['stime'] = time(); // de huidige tijd
  39. $_SESSION['smaxidle'] = 60 * 60; // het aantal seconden inactiviteit
  40. } else {
  41. // wachtwoorden komen niet overeen, breek de sessie weer af
  42. $_SESSION = array();
  43. }
  44. // geef de resultaten van deze query weer vrij
  45. unset($row);
  46. }
  47. // ververs, of de gebruikersnaam/wachtwoord combinatie nou klopt of niet, de pagina
  48. header("Location: loginzakelijk.php");
  49. }
  50. }
  51. ?>
  52. <html>
  53. <head>
  54. <link rel="stylesheet" type="text/css" href="website.css">
  55.  
  56. </head>
  57.  
  58. <body leftmargin="0" topmargin="0" marginheight="0" marginwidth="0">
  59. <table class="header" cellpadding="0" cellspacing="0" width="100%" style="margin-bottom: 0px">
  60. <tr>
  61. <td width="500"><img src="http://www.allesoverparket.nl/layout/afb/logo1.jpg" border="0" alt="Allesoverparket.nl" width="500" height="120"></td>
  62. <td align="center" valign="baseline" style="background-image: url()">&nbsp;</td>
  63. </tr>
  64. </table>
  65. <!--hieronder volgt de top link-->
  66. <table width="100%" height="30px" border="0" cellpadding="0" cellspacing="0" class="hoofdmenu" style="margin-top: 0px">
  67. <tr style="background-image: url(http://www.allesoverparket.nl/layout/afb/menubalk.jpg);">
  68. <td align="center" style="border-right: 1px solid #FFB503">&nbsp;</td>
  69. <td width="13%" class="menu_item" style="border-right: 1px solid #FFB503" valign="bottom"><a href="index.php">Home</a></td>
  70. <td width="13%" class="menu_item" style="border-right: 1px solid #FFB503" valign="bottom"><a href="index.php?particulier=nieuws&item=1">Nieuws</a></td>
  71. <td width="13%" class="menu_item" style="border-right: 1px solid #FFB503" valign="bottom"><a href="index.php?particulier=agenda&maanden=1">Agenda</a></td>
  72. <td width="12%" class="menu_item" style="border-right: 1px solid #FFB503" valign="bottom"><a href="http://www.allesoverparket.nl/" target="_blank">Forum</a></td>
  73. <td width="13%" class="menu_item" style="border-right: 1px solid #FFB503" valign="bottom"><a href="index.php?particulier=faq&vraag=1">Vraag&amp;Antw.</a></td>
  74. <td width="13%" class="menu_item" style="border-right: 1px solid #FFB503" valign="bottom"><a href="index.php?particulier=contact&form=2">Contact</a></td>
  75. <td width="13%" class="menu_item" style="border-right: 1px solid #FFB503" valign="bottom"><a href="index.php">
  76. </a></td>
  77. <td class="menu_item" valign="bottom">&nbsp;</td>
  78. </tr>
  79. </table>
  80. <?php
  81. include "navigatie.inc";
  82. ?>
  83. <td valign="top" class="main">
  84. <!--hieronder volgt de pagina inhoud banner-->
  85. <table class="tablehead" cellpadding="0" cellspacing="0" width="100%">
  86. <tr><td class="mainbalk"><p>Informatie</p></td>
  87. <td class="mainbalk" align="right"><p>Allesoverparket.nl &nbsp;</p></td></tr>
  88. <!--hieronder volgt de pagina inhoud-->
  89. <tr><td><p>
  90. <?php
  91. // als de (een willekeurige) sessievariabele suser in het sessie-array nog geen waarde heeft
  92. // (dus als iemand nog niet is ingelogd)
  93. if(!isset($_SESSION['suser'])) {
  94. ?>
  95. <form action="loginzakelijk.php" method="post">
  96. naam <input type="text" name="naam" size="15"><br />
  97. wachtwoord <input type="password" name="wacht" size="15"><br />
  98. <!-- v1.2 extra functionaliteit, login onthouden -->
  99. <input type="checkbox" name="memory" value="1"> onthoud mijn login (gebruikt cookie)<br />
  100. <input type="submit" name="login" value="log in"><br />
  101. </form>
  102. <?php
  103. } else {
  104. // de gebruiker is ingelogd - geef een welkomstboodschap oid
  105. // hier kun je tevens kijken of alle sessievariabelen de goede
  106. // waarden hebben (debugging)
  107. ?>
  108. Hi <b><?= $_SESSION['suser'] ?></b>,<br />
  109. <a href="voorbeeld.php">voorbeeld pagina</a><br />
  110. <a href="logout.php">uitloggen</a><br />
  111. <?php
  112. }
  113. ?>
  114.  
  115. </p></td></tr>
  116.  
  117. </table>
  118.  
  119.  
  120. <td class="rechtermenu" valign="top" width="120">
  121. <table width="150px" border="0" cellspacing="0" cellpadding="1" bgcolor="#FFFFF0" style="border:1px solid #800000; width: 150px" align="center">
  122. <tr class="headertable" style="background-image: url(http://www.allesoverparket.nl/layout/afb/menubalk.jpg);" width="150px">
  123. <!--hieronder volgt rechter menu 1-->
  124. <td>Houtsoorten</td>
  125.  
  126. </tr>
  127.  
  128. <td><iframe src="testframe.php" height="200" scrolling="auto" bgcolor="#FFFFF0" style="border:1px solid #800000; width: 150px" align="center"></iframe>
  129. </td>
  130.  
  131.  
  132. </table>
  133.  
  134. <table width="150px" border="0" cellspacing="0" cellpadding="1" bgcolor="#FFFFF0" margin-top: 5px" align="center" style="border:1px solid #800000;">
  135. <tr class="headertable" style="background-image: url(http://www.allesoverparket.nl/layout/afb/menubalk.jpg);" width="150px">
  136. <!--hieronder volgt rechter menu 2-->
  137. <td>Inloggen</td>
  138. </tr>
  139. <tr>
  140. <td>
  141.  
  142.  
  143.  
  144. </td>
  145. </tr>
  146.  
  147.  
  148. <?php
  149. include "rechternavigatie.inc";
  150. ?>
  151. <?php
  152. include "footer.inc";
  153. ?>
  154. </body>
  155. </html>


dit is zonder obstart(); dus met de header allready sent lfoutmelding boven aan de pagina werkt hij wel. Zosnel ik obstart(); toevoeg blijf ik echter het login scherm krijgen en gaat hij niet door naar het 2e stuk van het loginscript
Offline Thomas - 18/01/2005 08:46
Avatar van Thomas Moderator Staan de wachtwoorden gehashed (met MD5) in je database ?
Offline excius - 18/01/2005 10:07
Avatar van excius Nieuw lid ja die staan gehashed, maar het script zelf werkt, ik heb namelijk een werkend script waar ik html tussen heb gezet (de tabellen in bovenstaande script) en sinds dien logt hij niet meer in met obstart();
hij blijft het login scherm laden zonder naar de else functie over te springen. Als ik de werkende pagina pak en ik log in en laad dan bovenstaande script dan gaat hij wel over naar de else functie.
Offline Thomas - 18/01/2005 10:14
Avatar van Thomas Moderator Vreemd.
Het is overigens ob_start(), niet obstart().

Weet je zeker dat je sessie niet telkens wordt weggegooid en opnieuw wordt aangemaakt ? Dump de gegevens van je sessie eens met print_r($_SESSION) ? Dump je queries eens en kijk of daar iets vreemds in staat ? Voer de queries in je database uit en kijk of ze goed gaan en resultaten opleveren ?

Ik weet zo gauw niet waar het aan kan liggen, maar je zou de bovenstaande dingen kunnen proberen.
Offline excius - 18/01/2005 10:22 (laatste wijziging 18/01/2005 10:28)
Avatar van excius Nieuw lid Wat ik niet snap is dat ik gewoon een werkende script gebruik, daar heb ik html in toegevoegt en sindsdien werkt hij gewoon niet meer.. ik heb de code wel 10 keer gecheckt of hij precies zoals op de werkende staat. Ik denk zelf dat hij op 1 of andere manier de sessies idd niet onthoud maar waarom werkt het wel als ik op een ander script inlog en dan deze pagina laad.

En waarom werkt het dan wel zonder ob_start(); 
Offline excius - 18/01/2005 10:43
Avatar van excius Nieuw lid zou het werken als ik een functie zou maken en hem dan op de juiste plaats aanroep? zo ja hoe zou ik dan de volgende functie aan moeten roepen?
  1. function herlaad() {
  2. header ("location: loginzakelijk.php");
  3. }
Offline zwobbel - 18/01/2005 11:16
Avatar van zwobbel PHP gevorderde @remy
Er bestaat zoiets als zoek functie!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.202s