header redirect werkt local maar niet op site

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Francoi gckx

Francoi gckx

24/10/2012 15:02:21
Quote Anchor link
<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>
 
PHP hulp

PHP hulp

28/03/2024 17:45:26
 
Michel Falke

Michel Falke

24/10/2012 15:05:47
Quote Anchor link
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();
 
Francoi gckx

Francoi gckx

24/10/2012 15:07:12
Quote Anchor link
jaa ik had het al door met ob start :)
 
- SanThe -

- SanThe -

24/10/2012 15:07:30
Quote Anchor link
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.
 
Michel Falke

Michel Falke

24/10/2012 15:12:36
Quote Anchor link
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 ;)
 
Francoi gckx

Francoi gckx

24/10/2012 15:14:50
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php session_start();
error_reporting(E_ALL)

?>


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
 
Michel Falke

Michel Falke

24/10/2012 15:17:28
Quote Anchor link
Haal alle ouput eruit die je doet voor je redirect.

echo $mysqli->affected_rows. " Rij verwijderd";

Die regel bedoel ik.
 
Francoi gckx

Francoi gckx

24/10/2012 15:22:01
Quote Anchor link
heb die echo eruit gehaald geen success maar boven de code heb ik nog ergens echo staan maar die wel echt nodig
<code>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php    

    if ($result = $mysqli->query("SELECT * FROM bedrijven WHERE id=$id"))
    {

        $row = $result->fetch_row();
        echo "Wil u bedrijf ", $row[1], " echt verwijderen?";
    }

    ?>

<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)
PHP script in nieuw venster Selecteer het PHP script
1
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");
        }
    }

?>

</code>
 
- SanThe -

- SanThe -

24/10/2012 15:25:24
Quote Anchor link
Je structuur klopt niet: Eerst alle php en dan pas html uitvoeren.
 
Rick van Riel

Rick van Riel

24/10/2012 15:28:34
Quote Anchor link
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.
 
Francoi gckx

Francoi gckx

24/10/2012 15:37:16
Quote Anchor link
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:(
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.