Cannot modify header information - headers already sent by
Heb een login/register script draaien.
Alleen zodra ik hem in mijn huidige layout wil importeren komt de melding:
Cannot modify header information - headers already sent by ....
naar voren.
Waar kan dit aan liggen?
Alvast bedankt! :-)
Heb je al gezocht? Dit is al erg vaak besproken ;-)
Het is dat ik net bij de kapper ben geweest anders had ik m'n haren er inmiddels uitgetrokken..
Zou jij kunnen helpen?
Waar importeer je het script?
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
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
<?php # Script 16.8 - login.php
// Dit is de login pagina
require_once ('includes/config.inc.php');
$page_title = 'Inloggen';
include ('includes/header.html');
if (isset($_POST['submitted'])) {
require_once (MYSQL);
// Valideer het emailadres:
if (!empty($_POST['email'])) {
$e = mysqli_real_escape_string ($dbc, $_POST['email']);
} else {
$e = FALSE;
echo '<p class="error">Geen emailadres ingevuld!</p>';
}
// Valideer het wachtwoord:
if (!empty($_POST['pass'])) {
$p = mysqli_real_escape_string ($dbc, $_POST['pass']);
} else {
$p = FALSE;
echo '<p class="error">Geen wachtwoord ingevuld!</p>';
}
if ($e && $p) { // Als alles OK is.
// Query de database:
$q = "SELECT user_id, first_name, user_level FROM users WHERE (email='$e' AND pass=SHA1('$p')) AND active IS NULL";
$r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));
if (@mysqli_num_rows($r) == 1) { // Match is gemaakt.
// Register en redirect:
$_SESSION = mysqli_fetch_array ($r, MYSQLI_ASSOC);
mysqli_free_result($r);
mysqli_close($dbc);
$url = BASE_URL . 'index.php'; // URL:
ob_end_clean(); // verwijder de buffer.
header("Location: $url");
exit(); // Stopt script.
} else { // Geen match gemaakt.
echo '<p class="error">Het emailadres/wachtwoord klopt niet. Of uw account is nog niet geactiveerd.</p>';
}
} else { // Niet ok.
echo '<p class="error">Probeer het nogmaals.</p>';
}
mysqli_close($dbc);
}
// End of SUBMIT conditional.
?>
// Dit is de login pagina
require_once ('includes/config.inc.php');
$page_title = 'Inloggen';
include ('includes/header.html');
if (isset($_POST['submitted'])) {
require_once (MYSQL);
// Valideer het emailadres:
if (!empty($_POST['email'])) {
$e = mysqli_real_escape_string ($dbc, $_POST['email']);
} else {
$e = FALSE;
echo '<p class="error">Geen emailadres ingevuld!</p>';
}
// Valideer het wachtwoord:
if (!empty($_POST['pass'])) {
$p = mysqli_real_escape_string ($dbc, $_POST['pass']);
} else {
$p = FALSE;
echo '<p class="error">Geen wachtwoord ingevuld!</p>';
}
if ($e && $p) { // Als alles OK is.
// Query de database:
$q = "SELECT user_id, first_name, user_level FROM users WHERE (email='$e' AND pass=SHA1('$p')) AND active IS NULL";
$r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));
if (@mysqli_num_rows($r) == 1) { // Match is gemaakt.
// Register en redirect:
$_SESSION = mysqli_fetch_array ($r, MYSQLI_ASSOC);
mysqli_free_result($r);
mysqli_close($dbc);
$url = BASE_URL . 'index.php'; // URL:
ob_end_clean(); // verwijder de buffer.
header("Location: $url");
exit(); // Stopt script.
} else { // Geen match gemaakt.
echo '<p class="error">Het emailadres/wachtwoord klopt niet. Of uw account is nog niet geactiveerd.</p>';
}
} else { // Niet ok.
echo '<p class="error">Probeer het nogmaals.</p>';
}
mysqli_close($dbc);
}
// End of SUBMIT conditional.
?>
<center><h1>Inloggen</h1>
<form action="login.php" method="post">
<fieldset>
<p><b>Emailadres:</b> <input type="text" name="email" size="21" maxlength="40" /></p>
<p><b>Wachtwoord:</b> <input type="password" name="pass" size="20" maxlength="20" /></p>
<div align="center"><input type="submit" name="submit" value="Inloggen" /></div>
<input type="hidden" name="submitted" value="TRUE" />
</fieldset>
</form></center>
Mark van Slooten op 09/12/2011 14:47:21:
Ja heb ik.. Alleen ik kom er gewoon niet uit..
Het is dat ik net bij de kapper ben geweest anders had ik m'n haren er inmiddels uitgetrokken..
Zou jij kunnen helpen?
Het is dat ik net bij de kapper ben geweest anders had ik m'n haren er inmiddels uitgetrokken..
Zou jij kunnen helpen?
je hebt een setcookie(), session_start() of header() in je script, en daar gaat door je aanpassing blijkbaar HTML of een witruimte aan vooraf, en dat mag niet.
Je zult je header moeten verplaatsen naar boven, en daarbij de logica van het script aanpassen.
Die ob_start() heb je verder nergens voor nodig.
Gewijzigd op 09/12/2011 14:57:46 door - Ariën -
hij werkte probleem loos.
alleen zodra ik mn orginele css sheet erin ging bouwen failed hij.. zucht
De fout zal hem in regel 6 zitten, daar roep je een html bestand aan, met waarschijnlijk html headers.
Een simpelere ombouw is gewoon om een JS-redirect te gebruiken, i.p.v. een header.
Regel 6 op regel 56 zetten kan ook wel eens helpen ;-)
Hij geeft nu een error in de header.html
Error gevonden in: '/home/mvs/domains/mvs-designs.nl/public_html/login/includes/header.html' on line 1: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent
Heb de session_start op de 1e regel gezet, op deze manier:
Op deze manier werkte het eerst wel, maar nu niet meer....
Dus je probeert twee keer een header te versturen en dat kan niet. Via die session_start en via regel 46 in je script (met header());
(Boven de require_once dus)
Alleen nu werkt het inloggen niet meer...
Wat gebeurt er dan?
Hij herkend nu m'n login.php niet.
wat versta je onder 'herkent'?
hij gaat plotseling naar een heel ander pad zoeken als opgegeven
relevante code? welk pad? Na welke aanpassing?
krijg ik een witte pagina. Zonder foutmelding.
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
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
<?php # Script 16.8 - login.php
// This is the login page for the site.
require_once ('../login/includes/config.inc.php');
$page_title = 'Inloggen';
if (isset($_POST['submitted'])) {
require_once (MYSQL);
// Validate the email address:
if (!empty($_POST['email'])) {
$e = mysqli_real_escape_string ($dbc, $_POST['email']);
} else {
$e = FALSE;
echo '<p class="error">Geen emailadres ingevuld!</p>';
}
// Validate the password:
if (!empty($_POST['pass'])) {
$p = mysqli_real_escape_string ($dbc, $_POST['pass']);
} else {
$p = FALSE;
echo '<p class="error">Geen wachtwoord ingevuld!</p>';
}
if ($e && $p) { // If everything's OK.
// Query the database:
$q = "SELECT user_id, first_name, user_level FROM users WHERE (email='$e' AND pass=SHA1('$p')) AND active IS NULL";
$r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));
if (@mysqli_num_rows($r) == 1) { // A match was made.
// Register the values & redirect:
$_SESSION = mysqli_fetch_array ($r, MYSQLI_ASSOC);
mysqli_free_result($r);
mysqli_close($dbc);
$url = BASE_URL . 'index.php'; // Define the URL:
ob_end_clean(); // Delete the buffer.
exit(); // Quit the script.
} else { // No match was made.
echo '<p class="error">Het emailadres/wachtwoord klopt niet. Of uw account is nog niet geactiveerd.</p>';
}
} else { // If everything wasn't OK.
echo '<p class="error">Probeer het nogmaals.</p>';
}
mysqli_close($dbc);
} // End of SUBMIT conditional.
include ('../login/includes/header.html');
?>
// This is the login page for the site.
require_once ('../login/includes/config.inc.php');
$page_title = 'Inloggen';
if (isset($_POST['submitted'])) {
require_once (MYSQL);
// Validate the email address:
if (!empty($_POST['email'])) {
$e = mysqli_real_escape_string ($dbc, $_POST['email']);
} else {
$e = FALSE;
echo '<p class="error">Geen emailadres ingevuld!</p>';
}
// Validate the password:
if (!empty($_POST['pass'])) {
$p = mysqli_real_escape_string ($dbc, $_POST['pass']);
} else {
$p = FALSE;
echo '<p class="error">Geen wachtwoord ingevuld!</p>';
}
if ($e && $p) { // If everything's OK.
// Query the database:
$q = "SELECT user_id, first_name, user_level FROM users WHERE (email='$e' AND pass=SHA1('$p')) AND active IS NULL";
$r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));
if (@mysqli_num_rows($r) == 1) { // A match was made.
// Register the values & redirect:
$_SESSION = mysqli_fetch_array ($r, MYSQLI_ASSOC);
mysqli_free_result($r);
mysqli_close($dbc);
$url = BASE_URL . 'index.php'; // Define the URL:
ob_end_clean(); // Delete the buffer.
exit(); // Quit the script.
} else { // No match was made.
echo '<p class="error">Het emailadres/wachtwoord klopt niet. Of uw account is nog niet geactiveerd.</p>';
}
} else { // If everything wasn't OK.
echo '<p class="error">Probeer het nogmaals.</p>';
}
mysqli_close($dbc);
} // End of SUBMIT conditional.
include ('../login/includes/header.html');
?>
<center><h1>Inloggen</h1>
<form action="../login/login.php" method="post">
<fieldset>
<p><b>Emailadres:</b> <input type="text" name="email" size="21" maxlength="40" /></p>
<p><b>Wachtwoord:</b> <input type="password" name="pass" size="20" maxlength="20" /></p>
<div align="center"><input type="submit" name="submit" value="Inloggen" /></div>
<input type="hidden" name="submitted" value="TRUE" />
</fieldset>
</form></center>
Gewijzigd op 09/12/2011 16:12:31 door Mark van Slooten
Toevoeging op 09/12/2011 16:19:39:
Bij een witte pagina, gebruik bovenaan: