Vraag & Antwoord

Webprogrammeren & scripting

Php/Mysql: header already sent

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

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

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