login  Naam:   Wachtwoord: 
Registreer je!
 Forum

probleem met headers

Offline Raze - 02/08/2009 19:56
Avatar van RazePHP beginner Hallo,

ik ben bezig met een help-systeem te maken voor mijn website, en ben nu bezig met het administratiegedeelte.
Ik heb echter een probleem met de foutmelding "headers already sent", met telkens een verwijzing naar de lijn waarop "header('Location: ...');" staat.
Dit is mijn code:

auth.php
  1. <?php
  2.  
  3. include_once('main.class.php');
  4.  
  5. class auth extends main {
  6.  
  7. function __construct() {
  8.  
  9. parent::__construct();
  10.  
  11. if($this->dbc_conn_error_bool == true):
  12.  
  13. exit();
  14.  
  15. endif;
  16.  
  17.  
  18. }
  19.  
  20. public function login($emailadress,$password,$language) {
  21.  
  22. $q = "
  23. SELECT
  24. id
  25. FROM
  26. admin_user
  27. WHERE
  28. email = '".$emailaddress."'
  29. AND
  30. password = '".$password."'
  31. ";
  32. $r = mysqli_query($this->dbc,$q);
  33.  
  34. if(mysqli_num_rows($r) == 1):
  35.  
  36. $data = mysqli_fetch_array($r,MYSQLI_ASSOC);
  37.  
  38. $_SESSION['auth_admin'] = $data['id'];
  39. $_SESSION['auth_admin_time'] = mktime() + 300;
  40.  
  41. header('Location: /help/'.$language.'/admin/main');
  42.  
  43. else:
  44.  
  45. header('Location: /help/'.$language.'/admin/login');
  46.  
  47. endif;
  48. }
  49.  
  50. public function authenticate($language) {
  51.  
  52. if(isset($_SESSION['auth_admin']) && $_SESSION['auth_admin_time'] > mktime()):
  53.  
  54. $_SESSION['auth_admin_time'] = mktime() + 300;
  55.  
  56. else:
  57.  
  58. session_unset($_SESSION['auth_admin']);
  59. session_unset($_SESSION['auth_admin_time']);
  60.  
  61. header('Location: /help/'.$language.'/admin/login');
  62.  
  63. endif;
  64. }
  65.  
  66. public function logout($lang) {
  67.  
  68. session_unset($_SESSION['auth_admin']);
  69. session_unset($_SESSION['auth_admin_time']);
  70.  
  71. header('Location: /help/'.$language.'/admin/login');
  72.  
  73. }
  74. }
  75. ?>


in de klasse main wordt enkel de database-verbinding gemaakt, niets ge-echoëd of geprint ofzo.

login.php
  1. <?php
  2. include_once('class/auth.class.php');
  3. if(isset($_SESSION['auth_admin'])):
  4. header('Location: http://www.hbvl.be/');
  5. endif;
  6. $auth = new auth;
  7. if(isset($_POST['submit'])) {
  8.  
  9. $emailaddress = $_POST['emailaddress'];
  10. $password = $_POST['password'];
  11. $auth->login($emailaddress,$password,$_GET['lang']);
  12. }
  13. switch ($_GET['lang']) {
  14. case nl:
  15. include_once('../lang/dutch.lang.php');
  16. break;
  17. case en:
  18. include_once('../lang/english.lang.php');
  19. break;
  20. default:
  21. include_once('../lang/dutch.lang.php');
  22. break;
  23. }
  24. ?>
  25. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  26. <html xmlns="http://www.w3.org/1999/xhtml">
  27. <head>
  28. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  29. <meta name="keywords" content="netraze,help" />
  30. <meta name="author" content="Netraze" />
  31. <title>Netraze - <?php echo $txt['help']['title']; ?></title>
  32. <!-- CSS -->
  33. <link rel="stylesheet" href="/help/CSS/base.css" type="text/css" />
  34. <!-- CSS -->
  35. <script type="text/javascript">
  36. function setLang(language) {
  37. window.location = '/help/' + language + '/admin/';
  38. }
  39. </script>
  40. </head>
  41.  
  42.  
  43. <body>
  44. <div id="header">
  45. <img src="/icon.png" />
  46. <div id="user"><?php echo $txt['help']['title']; ?></div>
  47. <div id="menu">
  48. <a href="/help/<?php echo $_GET['lang']; ?>/admin/" class="menuitem_selected"><?php echo $txt['help']['admin_login']['login']; ?></a>
  49. </div>
  50. <div id="pagetitle"><?php echo $txt['help']['title']; ?></div>
  51. </div>
  52. <div id="content">
  53. <h1><img src="/pen.png" align="absmiddle"/> <?php echo $txt['help']['admin_login']['title']; ?></h1>
  54. <p><?php echo $txt['help']['admin_login']['text']; ?></p>
  55. <form id="admin_login" name="admin_login" action="" method="post">
  56. <label><?php echo $txt['help']['admin_login']['username']; ?>:</label>
  57. <input type="text" id="emailaddress" name="emailaddress" /><br />
  58. <label><?php echo $txt['help']['admin_login']['password']; ?>:</label>
  59. <input type="password" id="password" name="password" /><br />
  60. <label></label>
  61. <input type="submit" id="submit" name="submit" value="<?php echo $txt['help']['admin_login']['submit']; ?>" />
  62. </form>
  63. </div>
  64. <div id="lang">
  65. <h4><?php echo $txt['help']['language']; ?>:</h4>
  66. <select class="lang_select" onchange="setLang(this.value);">
  67. <option value="<?php echo $_GET['lang']; ?>"><?php echo $txt['help']['select_language']; ?></option>
  68. <option value="<?php echo $_GET['lang']; ?>"></option>
  69. <option value="nl">Nederlands</option>
  70. <option value="en">English</option>
  71. </select>
  72. </div>
  73. </body>
  74. </html>


iemand een idee?

5 antwoorden

Gesponsorde links
Offline Martijn2008 - 02/08/2009 19:59
Avatar van Martijn2008 PHP beginner Zet bovenaan je code:

  1. <?php
  2.  
  3. // hier de rest van jouw code
  4.  
  5. ?>


Waarschijnlijk is nu jouw probleem opgelost  
Offline Raze - 02/08/2009 20:03
Avatar van Raze PHP beginner dan wordt enkel het probleem onderdrukt, niet opgelost, en ik wil het graag opgelost hebben  
Offline djb - 02/08/2009 21:46
Avatar van djb PHP beginner Geef eens de complete foutmelding,

Meestal staat er ongeveer: Header already send (<file1>) in <file2> on line <regel>

Dan staat precies waar er al een output was,,
Want je weet tog wel dat je geen output mag neerzetten voordat je je header verstuurt  ?
Offline Raze - 02/08/2009 22:01
Avatar van Raze PHP beginner Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\help\administration\class\auth.class.php:79) in C:\xampp\htdocs\help\administration\class\auth.class.php on line 46

dus de lijn waar niets staat 
Offline avdg - 02/08/2009 22:47 (laatste wijziging 02/08/2009 22:53)
Avatar van avdg PHP gevorderde wat wordt er geinclude in de langage files?

edit: oh laat maar, kmoet beter kijken :/

noot: die ?> is niet verplicht op het einde van een document, je kunt dat weglaten om spaties/enters daarachter te voorkomen
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.209s