Toon posts:

[PHP] Cannot add header information - headers...

Pagina: 1
Acties:

Verwijderd

Topicstarter
Foutmelding:

Warning: Cannot add header information - headers already sent
code:
1
2
3
4
5
6
7
if ($submit) {
    $query2 = "update links set url='$url', omschr='$omschr' where id='$id'";
    mysql_db_query($db,$query2);    
    mysql_close();
    Header("Location: showsites.php");
    exit;
}

Waarschijnlijk heeft het ook hiermee maken:
code:
1
<form name="links" method="post" action="<? $PHP_SELF ?>">

Het gaat er mij iig om dat ik na die actie op een andere pagina terecht wil komen.

Anyone?

Tnx a lot!

  • tomato
  • Registratie: November 1999
  • Niet online
www.php.net/header

[edit]
En dan vooral dit stukje:
Remember that header() must be called before any actual output is sent, either by normal HTML tags blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.

Verwijderd

Topicstarter
Heb ik gekeken, maar niets gevonden

Behalve dit

"Remember that header() must be called before any actual output is sent, either by normal HTML tags blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file."

Maar daar kom ik niet echt verder mee...

Verwijderd

Topicstarter
kun je ook berichten verwijderen... |:(


alhoewel ik er niet echt uitkom verder

Verwijderd

Op donderdag 03 januari 2002 18:11 schreef djkappi het volgende:
kun je ook berichten verwijderen... |:(


alhoewel ik er niet echt uitkom verder
Met het knopje Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/tweakers/images/icons/edit.gif kun je berichten binnen 24 uur wijzigen.

Maar met dat stukje wat je daar zelf neerzette kom je al een heel eind, daar staat het in uitgelegd :)

Vrije, globale vertaling:
Onthoudt goed dat je header() moet gebruiken voordat je door een andere procedure iets laat vrijgeven, bijvoorbeeld een stuk tekst, maar ook een lege regel o.i.d. is een zogeheten 'output'. Dat kan door middel van een HTML tag of door een PHP-commando gebeuren. Het komt vaak voor dat je deze error krijgt als je ergens een file invoegt met behulp van include() of require(), bepaalde fuctie of een andere manier waardoor je header() via een 'omweg' in je script kunt krijgen.
code:
1
2
3
4
5
6
7
if ($submit) {
    $query2 = "update links set url='$url', omschr='$omschr' where id='$id'";
    mysql_db_query($db,$query2);    
    mysql_close();
    Header("Location: showsites.php");
    exit;
}

Zet dit eens HELEMAAL bovenaan je file. Dus niet als je al ergens <form name="links" method="post" action="<? $PHP_SELF ?>"> oid hebt staan, want dat is dus een output, ookal is hij misschien niet zichtbaar voor de gebruiker :)

Verwijderd

Header("Location: showsites.php");
Dit is de boosdoener. Hij stuurt je naar een pagina, maar er zijn al gegevens naar de browser gestuurd, en dan kun je de locatie niet zomaar aanpassen. Zorg dus dat Header("Location: showsites.php"); Zo ver bovenaan de pagina komt te staan, dat er helemaal geen HTML meer voor staat.

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<html>
<?php
$host = "localhost";
$user = ......;
$password = ....;
$db = .....;
$table = "links";
mysql_connect($host,$user,$password);
if ($submit) {
    $query2 = "update links set url='$url', omschr='$omschr' where id='$id'";
    mysql_db_query($db,$query2);    
    mysql_close();
    Header("Location: showsites.php");
    exit;
?>
<head>

....blaat...


<form name="links" method="post" action="<? $PHP_SELF ?>">
<table width="500" class="standard" border="0" cellspacing="0" cellpadding="0">

<?php

$query1 = "select * from links where id = '$id'";

$result1 = mysql_db_query($db, $query1);

while($row = mysql_fetch_object($result1)) {
.....
}

.....

?>

<input type="submit" name="submit" method="post" value="Voer wijziging door">

...en het werkt nog niet.

Wel al bedankt voor de nuttige tips!

Maar toch, ik verstuur dus niets voor die "Header"....

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op donderdag 03 januari 2002 18:27 schreef djkappi het volgende:

..<html>..

Maar toch, ik verstuur dus niets voor die "Header"....
joh
ik heb laten staan wat er fout is

Doet iets met Cloud (MS/IBM)


  • Quibus
  • Registratie: November 2000
  • Laatst online: 12-09 20:25
Nu is het natuurlijk wel een inkoppertje, als je nu <html> onder het eerste stukje php code zet moet hij het doen.
(<html> is ook al output namelijk, dit vergat ik vroeger ook nog wel eens)

Verwijderd

Topicstarter
idd, ik dacht dat die [html] er sowieso boven moest...

het werkt! bedankt


....another problem has risen... zien we dan wel weer ;(

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op donderdag 03 januari 2002 18:35 schreef djkappi het volgende:
idd, ik dacht dat die [html] er sowieso boven moest...

het werkt! bedankt


....another problem has risen... zien we dan wel weer ;(
die tekst is dus al je output naar de browser

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
de header functie is nu goed, maar als-ie dus niet 'exit', voert-ie daaronder alleen nog maar de regels uit de html uit en niet de <?php ... ?> gedeeltes...

dat heeft weer te maken met die [html] die niet meer bovenaan staat?

  • Quibus
  • Registratie: November 2000
  • Laatst online: 12-09 20:25
DAt komt omdat exit; ervoor zorgt dat de rest van het php script niet meer wordt uitgevoerd, html is geen php script dus dat wordt wel gewoon op de pagina getoond. Als je nu eens zorgt dat je je if.... else statement netjes verzorgt moet dit geen problemen opleveren. (ik bedoel de "{" en "}", die staan namelijk niet ideaal. Denk hier zelf maar eens over na.).

/edit
typfoutje

Verwijderd

Topicstarter
idd, het was gewoon slordig, de '}' STOND er niet eens.

alles werkt nu helemaal toppie, dus iedereen heel erg bedankt!

[topic closed] 8-)

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Op donderdag 03 januari 2002 18:47 schreef Quibus het volgende:
DAt komt omdat exit; ervoor zorgt dat de rest van het php script niet meer wordt uitgevoerd, html is geen php script dus dat wordt wel gewoon op de pagina getoond.
Dit is niet waar ;). Ook html-output na een exit; wordt niet meer getoond :)

  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 07:06

DizzyWeb

Ondertiteld

moet je $PHP_SELF ook niet ff printen of echo'en oid? :?
Pagina: 1