vidarebefodra websida i php

Tråden skapades och har fått 8 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Lund
  • 2004-03-27 23:08

Skapar ett enkelt litet php-forum som övning för att lära mig mer om php. Nu är problemet att jag vill att sidan först ska köra post-scriptet där ett nytt inlägg skrivs till och sedan automatiskt uppdatera sig själv för att läsa ut det nya inlägget. Har provat använda header("Location: xxx"); överst (innan html-taggen) men det fungarade inte.. Vill helst slippa använda javascript. Något tips?

klagar han på "output already sent" när du användar header()? medmindre du kör en output buffer innan måste du skicka header() innan du skickar annan info till webbläsaren..

  • Medlem
  • Lund
  • 2004-03-28 14:23

Jepps det är "output already sent" som krånglar..
så här står det exakt i php-sidan överst:
<?php
if (!empty($note)) {
header("Location: '.$data.'.php");
}
?>
Vad ska jag ändra?

  • Medlem
  • Stockholm
  • 2004-03-28 16:18
Ursprungligen av Jånte:

Jepps det är "output already sent" som krånglar..
så här står det exakt i php-sidan överst:
<?php
if (!empty($note)) {
header("Location: '.$data.'.php");
}
?>
Vad ska jag ändra?

Om det där är hela början på php-scriptet (och <?php ligger på första raden utan något som helst innan) så skulle jag föreslå att du testar att skriva om ditt anrop till header():

header('Location: http://' . $_SERVER['HTTP_HOST'] . '/' . $data . '.php');

En Location-header ska egentligen vara fullständig, inkl. protokoll. T.ex.:

Location: http://99mac.se/forum/newreply.php?do=newreply&p=351017

Sen verkar dina enkel- och dubbelfnuttar ha ställt till det lite. Om $data hade innehållit strängen "foo" skulle din Location ha blivit:

Location: '.foo.'.php

Vilket väl ändå inte var vad du hade tänkt dig? Tänk på att allt inom dubbelfnuttar (") kommer att variabelsubstitueras, och allt inom enkelfnuttar (') kommer att tolkas exakt som det står. Båda varianterna måste förekomma parvis.

  • Medlem
  • Lund
  • 2004-03-28 19:43
Ursprungligen av peterj:

Om det där är hela början på php-scriptet (och <?php ligger på första raden utan något som helst innan) så skulle jag föreslå att du testar att skriva om ditt anrop till header():

header('Location: http://' . $_SERVER['HTTP_HOST'] . '/' . $data . '.php');

En Location-header ska egentligen vara fullständig, inkl. protokoll. T.ex.:

Location: http://99mac.se/forum/newreply.php?do=newreply&p=351017

Sen verkar dina enkel- och dubbelfnuttar ha ställt till det lite. Om $data hade innehållit strängen "foo" skulle din Location ha blivit:

Location: '.foo.'.php

Vilket väl ändå inte var vad du hade tänkt dig? Tänk på att allt inom dubbelfnuttar (") kommer att variabelsubstitueras, och allt inom enkelfnuttar (') kommer att tolkas exakt som det står. Båda varianterna måste förekomma parvis.

provade skriva om som du föreslog, men samma fel:

Warning: Cannot add header information - headers already sent by (output started at /home/jonte/public_html/forum/24.php:2) in /home/jonte/public_html/forum/24.php on line 4

Så här står det nu i php-filen:

<?php
if (!empty($note)){
header('Location: http://' . $_SERVER['HTTP_HOST'] . '/24.php');
}
?>

  • Medlem
  • Stockholm
  • 2004-03-28 20:14
Ursprungligen av Jånte:

provade skriva om som du föreslog, men samma fel:

Warning: Cannot add header information - headers already sent by (output started at /home/jonte/public_html/forum/24.php:2) in /home/jonte/public_html/forum/24.php on line 4

Så här står det nu i php-filen:

<?php
if (!empty($note)){
header('Location: http://' . $_SERVER['HTTP_HOST'] . '/24.php');
}
?>

Okej, och det är i samma fil som du har header()-anropet, allt ligger i 24.php? Det ser ut som det ligger ett mellanslag precis innan <?php men det kanske bara blev så här i forumet?

Annars kanske det är $note som slänger ut en varning, är det ett argument du förväntar dig via GET/POST? Men då borde du få en varning innan header-meddelandet...

  • Medlem
  • Lund
  • 2004-03-28 20:38

haha attans! visst var det ett mellanslag innan <?php!!! tog bort det och nu fungerar det felfritt. tack så mkt för hjälpen! är säker på att jag aldrig hittat det felet själv.. Föresten finns det någon bra smidig och gratis php-editor till att ladda ner? Textredigeraren vägrar låta mig spara i php-format.

  • Medlem
  • Stockholm
  • 2004-03-28 20:43
Ursprungligen av Jånte:

haha attans! visst var det ett mellanslag innan <?php!!! tog bort det och nu fungerar det felfritt. tack så mkt för hjälpen! är säker på att jag aldrig hittat det felet själv.. Föresten finns det någon bra smidig och gratis php-editor till att ladda ner? Textredigeraren vägrar låta mig spara i php-format.

SubEthaEdit är riktigt trevlig, annars är ju BBEdit en klassiker men den kostar lite väl mycket om man bara hackar lite på fritiden tycker jag.

  • Medlem
  • Göteborg
  • 2004-03-29 08:56

Nästan gratis

Ursprungligen av Jånte:

haha attans! visst var det ett mellanslag innan <?php!!! tog bort det och nu fungerar det felfritt. tack så mkt för hjälpen! är säker på att jag aldrig hittat det felet själv.. Föresten finns det någon bra smidig och gratis php-editor till att ladda ner? Textredigeraren vägrar låta mig spara i php-format.

Inte helt gratis men nästan; skEdit, kostar $20. Har använt programmet några dagar och tycker det verkar smidigt. Man kan ladda ner och prova det gratis i 30 dagar.

skEdit på Versiontracker

1
Bevaka tråden