hallo,
ik zal vast niet de 1e zijn met dit probleem. ik heb ook al gegoogeld maar ik kan niet tot een oplossing komen.
ik krijg dit probleem in login.php

Warning: Cannot modify header information - headers already sent by (output started at /home/dennis/domains/havefunteam.com/public_html/jona/php/header.php:15) in /home/dennis/domains/havefunteam.com/public_html/jona/php/login.php on line 26

<?php
session_start();


if(file_exists('setup.php')){
exit("<h1>Error</h1>\n<p>You must delete <strong>setup.php</strong> first.</p>\n");
}

require_once('config.php');

if(isset($_SESSION['name'])){
header('Location: '.$pagina);
}

if($_SERVER['REQUEST_METHOD'] == 'POST'){
 
    if(!empty($_POST['login_name']) AND !empty($_POST['login_pass']) AND file_exists('members/' . htmlentities($_POST['login_name'], ENT_QUOTES) . '.php')){
        $login['name'] = htmlentities($_POST['login_name'], ENT_QUOTES);
        $login['pass'] = md5($_POST['login_pass']);
  
          require_once('members/' . htmlentities($login['name'], ENT_QUOTES) . '.php');
  
          if($password == $login['pass']){
               $_SESSION['name'] = htmlentities($login['name'], ENT_QUOTES);
               $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
   
               header("Location: " . $pagina);
           }else {
               echo "<h1>Error</h1>\n<p>Wrong password.</p>\n";
           }
    }else{
          echo "<h1>Error</h1>\n<p>Login incorrect, please try again!</p>\n";
    }
}else{

?>

<form method="post" action="#">

 <h1>Login</h1>
 <p>Username:<input type="text" name="login_name" maxlength="20" /></p>
 <p>Password:<input type="password" name="login_pass" maxlength="20" /></p>
 <p><input type="submit" name="submit" value="Login" /></p>

</form>
<?php
}
?>



geprobeerde oplossing


<?php
ob_start();

if(file_exists('setup.php')){
exit("<h1>Error</h1>\n<p>You must delete <strong>setup.php</strong> first.</p>\n");
}

require_once('config.php');

if(isset($_SESSION['name'])){
header('Location: '.$pagina);
}

if($_SERVER['REQUEST_METHOD'] == 'POST'){
 
    if(!empty($_POST['login_name']) AND !empty($_POST['login_pass']) AND file_exists('members/' . htmlentities($_POST['login_name'], ENT_QUOTES) . '.php')){
        $login['name'] = htmlentities($_POST['login_name'], ENT_QUOTES);
        $login['pass'] = md5($_POST['login_pass']);
  
          require_once('members/' . htmlentities($login['name'], ENT_QUOTES) . '.php');
  
          if($password == $login['pass']){
               $_SESSION['name'] = htmlentities($login['name'], ENT_QUOTES);
               $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
   
header("Location: " . $pagina);
           }else {
               echo "<h1>Error</h1>\n<p>Wrong password.</p>\n";
           }
    }else{
          echo "<h1>Error</h1>\n<p>Login incorrect, please try again!</p>\n";
    }
}else{

?>

<form method="post" action="#">

 <h1>Login</h1>
 <p>Username:<input type="text" name="login_name" maxlength="20" /></p>
 <p>Password:<input type="password" name="login_pass" maxlength="20" /></p>
 <p><input type="submit" name="submit" value="Login" /></p>

</form>
<?php
	ob_end_flush();
}
?>

Je echo-ed in de exit() al html code. Misschien wordt die of een ander al ingevoerd oid. Maar header moet je altijd gebruiken helemaal aan het begin van een document, mag ook nog geen <html> geopent zijn oid. Het moet de eerste output van een heel document zijn.

(dus als je het misschien include dan staat er op de andere pagina al wel output en werkt het dus ook niet)
Ricardo schreef op 06.09.2009 12:23
Je echo-ed in de exit() al html code.

STOP!
Denk eens na, wat doet [php]exit[/php]? Ja, die stopt het script. Het script komt dus helemaal niet aan die error toe. (Wel is het niet zo netjes deze manier).
Ricardo schreef op 06.09.2009 12:23
Misschien wordt die of een ander al ingevoerd oid. Maar header moet je altijd gebruiken helemaal aan het begin van een document, mag ook nog geen <html> geopent zijn oid. Het moet de eerste output van een heel document zijn.

Aan het begin van het document? Gewoon voor de output. Dus kan best op regel 134 nog een header staan. Hij moet iig staan voordat er iets naar de browser is gestuurd.

Ricardo schreef op 06.09.2009 12:23
(dus als je het misschien include dan staat er op de andere pagina al wel output en werkt het dus ook niet)

Dat klopt als een bus.
Als er tekst, een BOM karakter of weetikveel in de include zit, dan zorgt die voor problemen.
Als je debugt en er is een include, dan zou je die er eigenlijk bij in moeten verzinnen.
In dit script zit de fout rond regel 6 van config.php.
Karl schreef op 06.09.2009 12:29
[quote='Ricardo schreef op 06.09.2009 12:23']Je echo-ed in de exit() al html code.

STOP!
Denk eens na, wat doet [php]exit[/php]? Ja, die stopt het script. Het script komt dus helemaal niet aan die error toe. (Wel is het niet zo netjes deze manier).
[/quote]

Owja niet aan gedacht haha...
dit is mijn config.php. zit niet eens een regel 6 in :P

<?php
 $website = "Nathan Benjamin";
 $afzender = "[email protected]";
 $pagina = "index.php";
 ?>
ik heb een andere login script geprobeerd maar ik blijf het krijgen
zit er niet gewoon een fout in mijn header.php

Gelieve Niet Bumpen:

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.

In headers.php op regel 15 geef je output zegt de error.
hier staat mijn header


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link type="text/css" href="style.css" rel="stylesheet" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Nathan Benjamin StreetMagician</title>
</head>
<body>
<div id="hd">
<div class="main">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><img src="images/hd_02.gif" width="800" height="150" alt="0"/></td>
</tr>
</table>
</div>
</div>
<div class="menu">
<table width="800" border="0" cellpadding="00" cellspacing="0" >
<tr>
<td>
<table width="800" border="0" cellpadding="00" cellspacing="0" >
<tr>
<td><img src="images/nav_03.gif" width="50" height="21" alt="0" /></td>
<td><img src="images/nav_04.gif" width="83" height="21" alt="0" /></td>
<td><img src="images/nav_05.gif" width="60" height="21" alt="0" /></td>
<td><img src="images/nav_06.gif" width="98" height="21" alt="0" /></td>
<td><img src="images/nav_07.gif" width="102" height="21" alt="0" /></td>
<td><img src="images/nav_08.gif" width="83" height="21" alt="0" /></td>
<td><img src="images/nav_09.gif" width="125" height="21" alt="0" /></td>
<td><img src="images/nav_10.gif" width="122" height="21" alt="0" /></td>
<td><img src="images/nav_11.gif" width="77" height="21" alt="0" /></td>
</tr>
</table>
</td>
</tr>
</table>
<head>
<link type="text/css" href="style.css" rel="stylesheet" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Nathan Benjamin StreetMagician</title>
</head>
moet dat alleen in me header?
winkelhof schreef op 06.09.2009 19:12
hier staat mijn header


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
........

Dat is allemaal output, dus logisch dat je een error krijgt.

Reageren