Error: Cannot send session cookie - headers already sent by
Ik ben net begonnen met het aanpassen van wat php scripten gekregen van mijn docent, maar ik loop tegen errors aan (docent niet aanwezig, vandaar dat ik hier op hulp vraag :) ).
Quote:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\Website\index.php:10) in C:\xampp\htdocs\Website\index.php on line 13
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\Website\index.php:10) in C:\xampp\htdocs\Website\index.php on line 13
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\Website\index.php:10) in C:\xampp\htdocs\Website\index.php on line 35
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\Website\index.php:10) in C:\xampp\htdocs\Website\index.php on line 13
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\Website\index.php:10) in C:\xampp\htdocs\Website\index.php on line 35
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<html>
<head>
<title>Welcome by ************!</title>
<link href="cssfile.css" rel="stylesheet" type"text/css" />
</head>
<body>
<div id="banner">
<div id="login">
<?php
if(!EMPTY($_POST))
{
session_start();
$inlog = $_POST['inlognaam'];
$ww = $_POST['wachtwoord'];
$db = mysql_connect("localhost", "root", "")
or die("kan geen verbinding maken: ". mysql_error());
mysql_select_db("website", $db);
$sql = "SELECT *
FROM registratie
WHERE voornaam = '$inlog'
AND achternaam = '$ww'";
$resultaat = mysql_query($sql) or die (mysql_error());
if (mysql_num_rows($resultaat)>0)
{
while($rij = mysql_fetch_array($resultaat))
{
$_SESSION["Voornaam"]=$rij["Voornaam"];
$_SESSION["naam"]=$rij["naam"];
}
header("location: ingelogd.php");
exit();
}
else
{
echo "<br>";
echo "<hr>";
echo "Geen geldige gegevens";
}
mysql_close($db);
}
else
{
?>
<form method="POST" action="<?php echo $_SERVER["PHP_SELF"] ?> ">
Voer gebruikersnaam in: <input type="text" name="inlognaam" size="10" maxlength="7"> <br />
Voer wachtwoord in:     <input type="password" name="wachtwoord" size="10" maxlength="8"> <br />
                                <input type ="submit" value = "inloggen"> <input type ="reset" value = "wissen">
</form>
<?php
}
?>
</div>
</div>
<head>
<title>Welcome by ************!</title>
<link href="cssfile.css" rel="stylesheet" type"text/css" />
</head>
<body>
<div id="banner">
<div id="login">
<?php
if(!EMPTY($_POST))
{
session_start();
$inlog = $_POST['inlognaam'];
$ww = $_POST['wachtwoord'];
$db = mysql_connect("localhost", "root", "")
or die("kan geen verbinding maken: ". mysql_error());
mysql_select_db("website", $db);
$sql = "SELECT *
FROM registratie
WHERE voornaam = '$inlog'
AND achternaam = '$ww'";
$resultaat = mysql_query($sql) or die (mysql_error());
if (mysql_num_rows($resultaat)>0)
{
while($rij = mysql_fetch_array($resultaat))
{
$_SESSION["Voornaam"]=$rij["Voornaam"];
$_SESSION["naam"]=$rij["naam"];
}
header("location: ingelogd.php");
exit();
}
else
{
echo "<br>";
echo "<hr>";
echo "Geen geldige gegevens";
}
mysql_close($db);
}
else
{
?>
<form method="POST" action="<?php echo $_SERVER["PHP_SELF"] ?> ">
Voer gebruikersnaam in: <input type="text" name="inlognaam" size="10" maxlength="7"> <br />
Voer wachtwoord in:     <input type="password" name="wachtwoord" size="10" maxlength="8"> <br />
                                <input type ="submit" value = "inloggen"> <input type ="reset" value = "wissen">
</form>
<?php
}
?>
</div>
</div>
Je moet zorgen dat session_start() (net zoals bijvoorbeeld header()) voor ELKE output staat.
http://php.net/manual/en/function.mysql-real-escape-string.php
- Gebruik geen PHP_SELF.
- HTML is niet valid.
- Bouw foutafhandeling in.
- mysql_close is niet nodig.
- Waar jij je $_SESSIE maakt hoef je het toch niet in een while lus te zetten?
- Mooie voorbeeld voor SQL injectie. - Gebruik geen PHP_SELF.
- HTML is niet valid.
- Bouw foutafhandeling in.
- mysql_close is niet nodig.
- Waar jij je $_SESSIE maakt hoef je het toch niet in een while lus te zetten?
Gewijzigd op 16/12/2010 10:14:20 door - Dave -
Bedankt, ik krijg nu de error niet meer, alleen me inlog script werkt even niet meer :P Daar kijk ik nog wel naar.
@-Dave-
Dit script heb ik gekregen van me docent om mee te kunnen gaan testen. Ik ben me ervan bewust dat niet alles even veilig is :) Maar voordat het ook online komt te staan zorg ik dat ik alles nakijk :)
Allebij bedankt voor jullie informatie :)
Maarja van fouten leer je.
AND achternaam = '$ww'";
Achternaam is een wachtwoord?