hulp bij 'headers already sent error'
<center>
<form method="post" action="?page=leden/login">
<table border="1" width="30%" cellspacing="0" cellpadding="0">
<tr>
<td width="50%">Gebruikersnaam</td>
<td width="50%"><input type="text" name="gebruikersnaam" value="Gebruikersnaam" onclick="gebruikersnaam.value=''" size="20"></td>
</tr>
<tr>
<td width="50%">Wachtwoord</td>
<td width="50%"><input type="password" name="wachtwoord" value="Wachtwoord" onclick="wachtwoord.value=''" size="20"></td>
</tr>
<tr>
<td width="50%">Cookie</td>
<td width="50%"><select size="1" name="dagen">
<option selected value="1">1 Dag</option>
<option value="2">2 Dagen</option>
<option value="7">7 Dagen</option>
<option value="14">2 Weken</option>
<option value="28">1 Maand</option>
<option value="178">6 Maand</option>
<option value="356">1 Jaar</option>
</select></td>
</tr>
<tr>
<td width="100%" colspan="2"><input type="submit" name="login" value="Login"></td>
</tr>
</table>
</form>
</center>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
if( isset($_POST["login"]))
{
$query = mysql_query("select * from leden where gebruikersnaam='".$_POST["gebruikersnaam"]."'");
$row = mysql_fetch_object($query);
$wachtwoord1 = md5($_POST["wachtwoord"]);
if($wachtwoord1 == $row->wachtwoord && $_POST["gebruikersnaam"] == $row->gebruikersnaam)
{
setcookie ("login", $_POST["gebruikersnaam"],time()+3600*$dagen);
echo "U bent ingelogt.";
echo "<META HTTP-EQUIV='REFRESH' CONTENT='1; URL=?page=home'>";
}
else
{
echo "Fout bij het inloggen. probeer opnieuw.";
}
}
?>
if( isset($_POST["login"]))
{
$query = mysql_query("select * from leden where gebruikersnaam='".$_POST["gebruikersnaam"]."'");
$row = mysql_fetch_object($query);
$wachtwoord1 = md5($_POST["wachtwoord"]);
if($wachtwoord1 == $row->wachtwoord && $_POST["gebruikersnaam"] == $row->gebruikersnaam)
{
setcookie ("login", $_POST["gebruikersnaam"],time()+3600*$dagen);
echo "U bent ingelogt.";
echo "<META HTTP-EQUIV='REFRESH' CONTENT='1; URL=?page=home'>";
}
else
{
echo "Fout bij het inloggen. probeer opnieuw.";
}
}
?>
de code login.php.
ik gebruik de link ?page=leden/login als ik wil inloggen geeft die de volgende error.
Warning: Cannot modify header information - headers already sent by (output started at /home/thevissi/public_html/computerplanet/index.php:5) in /home/thevissi/public_html/computerplanet/leden/login.php on line 38
weet iemand de fout te zitten?
gr. jeffrey
zie php [faq]2[/faq]
Cookies moeten altijd voor html code komen te staan.
Voor meer info: http://nl.php.net/manual/nl/function.setcookie.php
Edit:
Webmakerij was me al voor
Gewijzigd op 22/12/2004 16:17:00 door Tobias
ik heb gelezen bij de PHP FAQ dat de setcookie functie op de verkeerde plaats staat maar waar moet die dan?
Let op! een spatie is ook al output!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
if( isset($_POST["login"]))
{
$query = mysql_query("select * from leden where gebruikersnaam='".$_POST["gebruikersnaam"]."'");
$row = mysql_fetch_object($query);
$wachtwoord1 = md5($_POST["wachtwoord"]);
if($wachtwoord1 == $row->wachtwoord && $_POST["gebruikersnaam"] == $row->gebruikersnaam)
{
setcookie ("login", $_POST["gebruikersnaam"],time()+3600*$dagen);
echo "U bent ingelogt.";
echo "<META HTTP-EQUIV='REFRESH' CONTENT='1; URL=?page=home'>";
}
else
{
echo "Fout bij het inloggen. probeer opnieuw.";
}
}
?>
if( isset($_POST["login"]))
{
$query = mysql_query("select * from leden where gebruikersnaam='".$_POST["gebruikersnaam"]."'");
$row = mysql_fetch_object($query);
$wachtwoord1 = md5($_POST["wachtwoord"]);
if($wachtwoord1 == $row->wachtwoord && $_POST["gebruikersnaam"] == $row->gebruikersnaam)
{
setcookie ("login", $_POST["gebruikersnaam"],time()+3600*$dagen);
echo "U bent ingelogt.";
echo "<META HTTP-EQUIV='REFRESH' CONTENT='1; URL=?page=home'>";
}
else
{
echo "Fout bij het inloggen. probeer opnieuw.";
}
}
?>
<center>
<form method="post" action="?page=leden/login">
<table border="1" width="30%" cellspacing="0" cellpadding="0">
<tr>
<td width="50%">Gebruikersnaam</td>
<td width="50%"><input type="text" name="gebruikersnaam" value="Gebruikersnaam" onclick="gebruikersnaam.value=''" size="20"></td>
</tr>
<tr>
<td width="50%">Wachtwoord</td>
<td width="50%"><input type="password" name="wachtwoord" value="Wachtwoord" onclick="wachtwoord.value=''" size="20"></td>
</tr>
<tr>
<td width="50%">Cookie</td>
<td width="50%"><select size="1" name="dagen">
<option selected value="1">1 Dag</option>
<option value="2">2 Dagen</option>
<option value="7">7 Dagen</option>
<option value="14">2 Weken</option>
<option value="28">1 Maand</option>
<option value="178">6 Maand</option>
<option value="356">1 Jaar</option>
</select></td>
</tr>
<tr>
<td width="100%" colspan="2"><input type="submit" name="login" value="Login"></td>
</tr>
</table>
</form>
</center>
---einde code------
nu krijg ik nog die error alleen een andere regels nummer.
Welke regel?
nummer 9
en waar begon volgens php de output (geef aub de hele fout)
echo '<META HTTP-EQUIV="REFRESH" CONTENT="1; URL=?page=home">';
zijn.
dit is nu de error:
Warning: Cannot modify header information - headers already sent by (output started at /home/thevissi/public_html/computerplanet/index.php:5) in /home/thevissi/public_html/computerplanet/leden/login.php on line 9
<offtopic>
Meta moet eigenlijk is de head van de pagina.
En de pagina moet eigenlijk beginnen met <html>
</offtopic>
edit: je was me voor
nu heb ik gedaan. de html ect tags toegevoegt maar het blijft als nog
/home/thevissi/public_html/computerplanet/index.php:5) HIER DOE JE EENECHO
Vreemd... en dat is de enige output op die pagina?
nu doe ik in het menu index.php?page=leden/login
is dat de fout dan?
dat ik hem dan zeg maar include?
Is ie niet geincluded?
maar ik doe nu ?page=leden/login
die code die ik hierboven gaf is de hele code van login.php
De fout zit in Index.php, dus niet in de code van bestand dat je ons gaf.
moet ik index.php geven?