Cannot modify header information - headers already sent by
Niels Veer
09/08/2014 09:13:53Hallo allemaal,
Ik heb een script geschreven voor het opslaan van instellingen.
Hierin zit het bestand functions.php met de volgende functie:
Dit bestand roep ik aan in een ander php bestand waar ik na het versturen van een formulier de pagina wil herladen:
Echter krijg ik na het versturen van het formulier de volgende melding:
Cannot modify header information - headers already sent by....
Ik weet dat dit komt doordat de functie mijn alert al heeft geplaatst, maar hoe kan ik ervoor zorgen dat de pagina toch herladen wordt?
Alvast bedankt!
Groeten,
Niels
Ik heb een script geschreven voor het opslaan van instellingen.
Hierin zit het bestand functions.php met de volgende functie:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
function alert($type, $message) {
echo "
<div class='error-container'>
<div class='alert alert-".$type."' role='alert'>
<b>Melding:</b><br />
".$message."
</div>
</div>
";
}
?>
function alert($type, $message) {
echo "
<div class='error-container'>
<div class='alert alert-".$type."' role='alert'>
<b>Melding:</b><br />
".$message."
</div>
</div>
";
}
?>
Dit bestand roep ik aan in een ander php bestand waar ik na het versturen van een formulier de pagina wil herladen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
if(isset($_POST['form_general'])) {
while($rowGeneral = mysqli_fetch_array($resultGeneral)) {
$sql_update_general="UPDATE nter_settings SET value = '".$_POST[$rowGeneral['name']]."' WHERE name = '".$rowGeneral['name']."'";
$result_update_general = mysqli_query($con, $sql_update_general);
if ( $result_update_general === false ) {
alert("danger", mysqli_error($con));
} else {
alert("success", "Algemene instellingen opgeslagen");
header("Location:".$_SERVER['REQUEST_URI']);
}
}
}
?>
if(isset($_POST['form_general'])) {
while($rowGeneral = mysqli_fetch_array($resultGeneral)) {
$sql_update_general="UPDATE nter_settings SET value = '".$_POST[$rowGeneral['name']]."' WHERE name = '".$rowGeneral['name']."'";
$result_update_general = mysqli_query($con, $sql_update_general);
if ( $result_update_general === false ) {
alert("danger", mysqli_error($con));
} else {
alert("success", "Algemene instellingen opgeslagen");
header("Location:".$_SERVER['REQUEST_URI']);
}
}
}
?>
Echter krijg ik na het versturen van het formulier de volgende melding:
Cannot modify header information - headers already sent by....
Ik weet dat dit komt doordat de functie mijn alert al heeft geplaatst, maar hoe kan ik ervoor zorgen dat de pagina toch herladen wordt?
Alvast bedankt!
Groeten,
Niels
Gewijzigd op 09/08/2014 09:15:08 door Niels Veer
PHP hulp
06/11/2024 00:53:44Ivo P
09/08/2014 09:37:17Volgorde omdraaien?
Eerst bedenken dat je de pagina ververst of doorverwijst.daarna kan de alert achterwege blijven aangezien er toch geen pagina is om op te tonen
Eerst bedenken dat je de pagina ververst of doorverwijst.daarna kan de alert achterwege blijven aangezien er toch geen pagina is om op te tonen
Erwin H
09/08/2014 11:11:46Of, als je de alert wil tonen en na een paar seconden de gebruiker doorlinken naar de volgende pagina, de redirect doen in html en niet al in php.