login  Naam:   Wachtwoord: 
Registreer je!
 Forum

login script van FangorN

Offline Bbart - 15/01/2005 14:38
Avatar van BbartNieuw lid nou die andere leden systeem mislukt maar deze ook ik snap niet waar elke keer de fouten in szitten hoor.

Warning: Cannot modify header information - headers already sent by (output started at /usr/local/psa/home/vhosts/groepclub.nl/httpdocs/connect.php:16) in /usr/local/psa/home/vhosts/groepclub.nl/httpdocs/login.php on line 50

5 antwoorden

Gesponsorde links
Offline riekele - 15/01/2005 14:40
Avatar van riekele PHP beginner plaats even een gedeelt vam je code
Offline Dennisvb - 15/01/2005 14:41
Avatar van Dennisvb MySQL ver gevorderde ob_start();

bovenaan zetten. Kijkeens in de FAQ hier
Offline Bbart - 15/01/2005 14:42 (laatste wijziging 15/01/2005 14:47)
Avatar van Bbart Nieuw lid
  1. <?php
  2. require("connect.php"); // connectie met database maken en database selecteren
  3. ob_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: login.php");
  49. }
  50. }
  51. ?>
  52. <html>
  53. <head>
  54. <title>sessies · login</title>
  55. </head>
  56.  
  57. <body>
  58. <?php
  59. // als de (een willekeurige) sessievariabele suser in het sessie-array nog geen waarde heeft
  60. // (dus als iemand nog niet is ingelogd)
  61. if(!isset($_SESSION['suser'])) {
  62. ?>
  63. <form action="login.php" method="post">
  64. naam <input type="text" name="naam" size="15"><br />
  65. wachtwoord <input type="password" name="wacht" size="15"><br />
  66. <!-- v1.2 extra functionaliteit, login onthouden -->
  67. <input type="checkbox" name="memory" value="1"> onthoud mijn login (gebruikt cookie)<br />
  68. <input type="submit" name="login" value="log in"><br />
  69. </form>
  70. <?php
  71. } else {
  72. // de gebruiker is ingelogd - geef een welkomstboodschap oid
  73. // hier kun je tevens kijken of alle sessievariabelen de goede
  74. // waarden hebben (debugging)
  75. ?>
  76. Hi <b><?= $_SESSION['suser'] ?></b>,<br />
  77. <a href="voorbeeld.php">voorbeeld pagina</a><br />
  78. <a href="logout.php">uitloggen</a><br />
  79. <?php
  80. }
  81. ?>
  82. </body>
  83. </html>


admin-edit: code tags gebruiken aub
Offline twopeak - 15/01/2005 14:51
Avatar van twopeak Gouden medaille

PHP ver gevorderde
als je ff moeite had gedaan vond je dat in de tuts; onder andere in de tut 'debugging'

als je dat probleem tegenkomt is dat omdat je uitvoer hebt, voor een header() functie, en dat mag niet!

door ob_start() voor je uitvoer te zetten, zul je die fout vermijden.
Offline Thomas - 15/01/2005 16:30
Avatar van Thomas Moderator Warning: Cannot modify header information - headers already sent by (output started at /usr/local/psa/home/vhosts/groepclub.nl/httpdocs/connect.php
:16
) in /usr/local/psa/home/vhosts/groepclub.nl/httpdocs/login.php on line 50

Er staan regels / enters / spaties buiten het PHP-blok op regel 16 of daaromtrent in connect.php, en dat mag niet.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.225s