header redirect werkt local maar niet op site
<code>
if (isset($_POST['submit'])) {
if ($_POST['delete'] == 'ja')
{
if ($mysqli->query("DELETE FROM bedrijven WHERE id=$id LIMIT 1"))
{
echo $mysqli->affected_rows. " Rij verwijderd";
}
$_SESSION['gedelete'] = "1";
header("Location: adm_zoekresultaat_bedrijven.php");
} elseif ($_POST['delete'] == 'nee') {
header("Location: adm_bedrv_details.php?id=$id");
}
}
</code>
if (isset($_POST['submit'])) {
if ($_POST['delete'] == 'ja')
{
if ($mysqli->query("DELETE FROM bedrijven WHERE id=$id LIMIT 1"))
{
echo $mysqli->affected_rows. " Rij verwijderd";
}
$_SESSION['gedelete'] = "1";
header("Location: adm_zoekresultaat_bedrijven.php");
} elseif ($_POST['delete'] == 'nee') {
header("Location: adm_bedrv_details.php?id=$id");
}
}
</code>
Je hebt hier al output voordat de header plaats vindt. Hierdoor krijg je een output already send error.
Dit kun je oplossen door:
Aan het begin van je script
ob_start();
te plaatsen
en aan het einde van je script
ob_flush();
Dit kun je oplossen door:
Aan het begin van je script
ob_start();
te plaatsen
en aan het einde van je script
ob_flush();
jaa ik had het al door met ob start :)
Zet error_reporting(E_ALL) eens aan.
Toevoeging op 24/10/2012 15:09:29:
Ob is geen nette oplossing.
Je doet toch ook geen ducktape om je fietsband als die lek is.
Toevoeging op 24/10/2012 15:09:29:
Ob is geen nette oplossing.
Je doet toch ook geen ducktape om je fietsband als die lek is.
De nette oplossing is om inderdaad alle ouput weg te halen uit je script voor de redirect. Wat heeft het ook voor zin om iets te echo'en terwijl je toch van die pagina afgaat.\
En aan de andere kant is een nette oplossing ook niet altijd de meest handige. Zo gebruikt bijvoorbeeld nog lang niet iedereen PHP als OO taal als je het dan toch over netjes hebt ;)
En aan de andere kant is een nette oplossing ook niet altijd de meest handige. Zo gebruikt bijvoorbeeld nog lang niet iedereen PHP als OO taal als je het dan toch over netjes hebt ;)
nee met ob doet hij de 'nee' header het wel maar de 'ja' header niet (zie code boven)
ik heb error aangezet dit bovenin gezet:
maar geen errors alleen lege pagina nadat ik ja submit
Toevoeging op 24/10/2012 15:15:42:
maar die echo's zijn noodzakelijk anders heeft redirecte ook geen zin toch
ik heb error aangezet dit bovenin gezet:
maar geen errors alleen lege pagina nadat ik ja submit
Toevoeging op 24/10/2012 15:15:42:
maar die echo's zijn noodzakelijk anders heeft redirecte ook geen zin toch
Haal alle ouput eruit die je doet voor je redirect.
echo $mysqli->affected_rows. " Rij verwijderd";
Die regel bedoel ik.
echo $mysqli->affected_rows. " Rij verwijderd";
Die regel bedoel ik.
heb die echo eruit gehaald geen success maar boven de code heb ik nog ergens echo staan maar die wel echt nodig
<code>
<form action="" method="post">
<input type="radio" name="delete" value="ja">Ja of
<input type="radio" name="delete" value="nee">Nee
<input type="submit" name="submit" value="Submit">
</form>
</code>
<code>
Code (php)
<form action="" method="post">
<input type="radio" name="delete" value="ja">Ja of
<input type="radio" name="delete" value="nee">Nee
<input type="submit" name="submit" value="Submit">
</form>
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['submit'])) {
if ($_POST['delete'] == 'ja')
{
if ($mysqli->query("DELETE FROM bedrijven WHERE id=$id LIMIT 1"))
{
$_SESSION['gedelete'] = "1";
header("Location: adm_zoekresultaat_bedrijven.php");
}
} elseif ($_POST['delete'] == 'nee') {
header("Location: adm_bedrv_details.php?id=$id");
}
}
?>
if (isset($_POST['submit'])) {
if ($_POST['delete'] == 'ja')
{
if ($mysqli->query("DELETE FROM bedrijven WHERE id=$id LIMIT 1"))
{
$_SESSION['gedelete'] = "1";
header("Location: adm_zoekresultaat_bedrijven.php");
}
} elseif ($_POST['delete'] == 'nee') {
header("Location: adm_bedrv_details.php?id=$id");
}
}
?>
</code>
Je structuur klopt niet: Eerst alle php en dan pas html uitvoeren.
Een simpele oplossing is om de php code boven je html te zetten. Op deze manier word er voordat de redirect is gestuurd nog niks naar de browser gestuurd en word er dus ook geen header aangemaakt.
Als je dit probleem vaker hebt probeer dan toch is gebruik te maken van chache. Dan word er nog niks naar de browser gestuurd totdat jij aangeeft dat het verstuurd moet worden.
Als je dit probleem vaker hebt probeer dan toch is gebruik te maken van chache. Dan word er nog niks naar de browser gestuurd totdat jij aangeeft dat het verstuurd moet worden.
ok maar ik include de header (dat is de headerplaatje en menu) en
deze echo <code> echo "Wil u bedrijf ", $row[1], " echt verwijderen?"; </code> moet duidelijk daarna komen
dan kan ik toch sowieso niet alle php code bovenaan zetten
waarom werkt het met xamp wel en niet op de echte server:(
deze echo <code> echo "Wil u bedrijf ", $row[1], " echt verwijderen?"; </code> moet duidelijk daarna komen
dan kan ik toch sowieso niet alle php code bovenaan zetten
waarom werkt het met xamp wel en niet op de echte server:(




