Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Php/Mysql: header already sent

_arno_
5 antwoorden
  • Ik ben bezig met de cursus "programeren voor internet" in computertotaal! van sept/okt/nov/dec 2003.
    Ik heb in het forum naar alle vragen en antwoorden gekeken die hierover waren. En uitgeprobeerd. Ik kom er niet uit.
    Probleem met de header functie:
    Als ik de [b:750d32ce89]q[/b:750d32ce89] niet print (echo("q") ga ik niet naar plaatsbericht.php en gebeurt er niets (tenminste ik zie geen nieuwe records verschijnen). Print ik de [b:750d32ce89]q[/b:750d32ce89] wel krijg ik de volgende foutmelding
    [list:750d32ce89]Warning: Cannot modify header information - headers already sent by (output started at /usr/local/psa/home/vhosts/levisestudio.nl/httpdocs/plaatsbericht.php:6) in /usr/local/psa/home/vhosts/levisestudio.nl/httpdocs/plaatsbericht.php on line 21[/list:u:750d32ce89]

    Kan iemand mij helpen?
    Bedankt alvast

    code test02.php =
    [list:750d32ce89]
    <html>
    <head>
    <title>Test PHP</title>
    </head>
    <body>
    <p><strong>Hieronder kun je een record toevoegen</strong></p>
    <form action="plaatsbericht.php" method="POST">
    Uw naam: <input type="text" name="voornaam" />
    Uw achternaam: <input type="text" name="achternaam" /><br />
    Uw adres: <input type="text" name="adres" />
    Uw woonplaats <input type="text" name="woonplaats" /><br />
    Uw geboortedatum <input type="text" name="geboortedatum" /><br />
    <input type="submit" value="plaats in adres bestand">
    </form>
    <p><strong>Laat records zien</strong></p>
    <?php
    $db=mysql_connect("localhost","levises","studiol");
    mysql_select_db("LeviseWork");
    $berichten_query=mysql_query("
    SELECT voornaam, achternaam, geboortedatum, adres, woonplaats FROM adressen ORDER BY geboortedatum DESC LIMIT 5");
    while($record=mysql_fetch_assoc($berichten_query))
    {
    echo("voornaam: {$record['voornaam']}<br>");
    echo("achternaam: {$record['achternaam']}<br>");
    echo("geboortedatum: {$record['geboortedatum']}<br>");
    echo("adres: {$record['adres']}<br>");
    echo("woonplaats: {$record['woonplaats']}<br>");
    echo("<br>");
    }
    ?>
    </body>
    </html> [/list:u:750d32ce89]
    code plaatsbericht =
    [list:750d32ce89]
    <?php
    if( (strlen($_POST["voornaam"])<1) || (strlen($_POST["achternaam"])<1) )
    {
    echo("vul voor- EN achternaam in. Ga terug");
    }else{
    echo("q");

    $db=mysql_connect("localhost","levises","studiol");
    mysql_select_db("LeviseWork");
    $voornaam=mysql_escape_string(strip_tags($_POST['voornaam']));
    $achternaam=mysql_escape_string(strip_tags($_POST['achternaam']));
    $adres=mysql_escape_string(strip_tags($_POST['adres']));
    $woonplaats=mysql_escape_string(strip_tags($_POST['woonplaats']));
    $geboortedatum=mysql_escape_string(strip_tags($_POST['geboortedatum']));

    mysql_query("
    INSERT INTO adressen
    (voornaam,achternaam,geboortedatum,adres, woonplaats)
    VALUE
    ('{$voornaam}', '{$achternaam}', '{$geboortdatum}', '{$adres}','{$woonplaats}')
    ");
    header("Location: http://www.levisestudio.nl/test02.php");
    }
    ?>
    [/list:u:750d32ce89]
  • De laatste regel bevat het commando header(), welke alleen aangeroepen kan worden vóórdat er output naar de client (browser) is gestuurd. Vandaar de foutmelding.

    - Bas
  • Ja maar waar? Ik had al begrepen dat header() bovenaan moet staan. Zoals jij zegt: vóórdat er output naar de client (browser) is gestuurd. Maar waar?

    1) In plaatsbericht.php direct bovenaan… werkt niet
    2) In plaatsbericht.php direct na else… werkt niet
    3) In test02.php?, direct na begin php-code… werkt niet

    Ben bang dat ik het niet snap.

    Louise
  • Je zult moeten kiezen: óf de header die mensen doorverwijst naar de andere pagina óf een tekst weergeven. Een combinatie is niet mogelijk. Als alternatief zou je een meta refresh kunnen plaatsen die na een x aantal seconden naar de andere pagina doorlinkt.

    Waarom de code geen records toevoegt aan de db weet ik niet, de code ziet er op zich niet verkeerd uit. Alleen moet je jezelf aanwennen variabelen altijd buiten de quotes te halen, dat scheelt enorm in performance.

    - Bas
  • Een antwoord om over na te denken. Ga hier mee aan de slag. Denk dat ik later (volgende week ) nog wel vragen heb of zelfs, er nog niet uit ben. Ik snap het principe van het in en out niet.
    Tot dan. Louise

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.