Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: header

Sivun loppuun

Vasta_alkaja [12.01.2009 10:48:18]

#

Mistä johtuu että

header("location:./sivu.php");

ei toimi PHP 4 versiossa.

Lebe80 [12.01.2009 10:53:48]

#

Miten tuo "ei toimi"?

Muistaakseen dokkareissa kehoitetaan käyttämään absoluuttista polkua.

Grez [12.01.2009 11:57:43]

#

Todistettavasti se toimii PHP 4:ssa.

Ja miksi ihmeessä "location:./sivu.php" eikä "location:sivu.php"

testi.php

<?php header("location:./sivu.php"); ?>

sivu.php

<html><body><p>Tämä on sivu.php</p>
PHP versio: <?php echo phpversion(); ?>
</body></html>

Lebe80 [12.01.2009 12:04:10]

#

Veikkaan että Vasta_alkajalla on jokin muu säätö, minkä vuoksi tuota headeria ei koskaan ajeta, tai eteen on tullut surullisen kuuluisa headers_already_sent!

edit:
<offtopic>
eli ei välttämättä juuri tähän ongelmaan liity, mutta...

Mitenköhän on, ettei nykyään muuten debugata? Tuntuu, että ensimmäisenä juostaan foorumeille, ja valitetaan valmiiden funktioiden toimimattomuutta, ennen kuin on oma koodi tarkistettu.

</offtopic>

Grez [12.01.2009 12:16:45]

#

Tuohon offtopiciin. Varmaan >99,9% ohjelmoijista debuggaa omatoimisesti, mutta jos joka tuhanneskin ryntää ensimmäisenä foorumeille kysymään, niin kysyjiä on monta.

Vasta_alkaja [12.01.2009 12:53:44]

#

Jep. Olette aivan oikeassa turhasta kyselystä.
Cannot modify header information - headers already sent by (output started
siinä se vika on, eli pitää käyttää ob_start functiota.

PS. Sori vaivasta.

Lebe80 [12.01.2009 13:01:46]

#

ei tämä turha kysymys ollut, mutta seuraavalla kerralla voisi kertoa hieman tarkemmin kuin "ei toimi".

Eli virheilmoitus auttaisi auttajia huomattavasti.

punppis [12.01.2009 17:04:57]

#

"Ja miksi ihmeessä "location:./sivu.php" eikä "location:sivu.php"".

Koska itsellä ei ainakaan joskus toiminut ilman tuota ./. Riippuu varmaan alustasta ja PHP-versiosta.

"Veikkaan että Vasta_alkajalla on jokin muu säätö, minkä vuoksi tuota headeria ei koskaan ajeta, tai eteen on tullut surullisen kuuluisa headers_already_sent!"

PHP5 ei ainakaan itsellä anna tuosta headers already sent -erroria, vaikka olen muutamaan otteeseen tuollaista ratkaisua käyttänyt. PHP4 herjaa ja varmaan vanhemmatkin.

Grez [12.01.2009 17:49:14]

#

punppis kirjoitti:

Koska itsellä ei ainakaan joskus toiminut ilman tuota ./. Riippuu varmaan alustasta ja PHP-versiosta.

Ei varmaan riipu vähäisintäkään tippaa alustasta tai PHP-versiosta, koska PHP tunkee tuon headerin ihan vaan sellaisenaan selaimen suuntaan ja selain pohtii sitten mitä tekee.

Ihan nyt vaan että ei tulisi ihmisille väärää käsitystä asioita.

Eli jos ./sivu.htm toimisi, mutta sivu.htm ei niin kyseessä olisi omituinen selain. Suositus olisi käyttää täydellistä polkua, mutta nuo ovat molemmat suhteellisia, eikä tuo ./ ainakaan ole parempi (kun kuitenkaan ei ole Unixin komentorivistä kyse :D )

Kokeilin FF/IE/Opera ja kaikilla toimi kumpi vaan. HTTP-speksin mukaan toki pitäisi olla http://koko.osoite.com/sivu.php

temu92 [12.01.2009 17:58:24]

#

punppis kirjoitti:

PHP5 ei ainakaan itsellä anna tuosta headers already sent -erroria, vaikka olen muutamaan otteeseen tuollaista ratkaisua käyttänyt. PHP4 herjaa ja varmaan vanhemmatkin.

Se johtuu vain yksinkertaisesti siitä kun headerit on jo lähetetty, johan se selviää tuosta virheilmoituksesta. Eli ei ole mitenkään kyse PHP:n versiosta. Sama virheilmoitus on mahdollista saada ja tuleekin PHP viitosellakin. Blazen kuuluisa sivu liian usein kysytyistä kysymyksistä: http://pp.kpnet.fi/blaze/codefaq/#headerssent

Ja jos tarkoitat sitä ettei PHP herjaa siitä virheestä vaikka väärin ollaan tehty niin silloin on menty vähän muuttelemaan PHP:n asetuksia virheiden reportoinnista.

Blaze [12.01.2009 18:36:12]

#

punppis kirjoitti:

PHP5 ei ainakaan itsellä anna tuosta headers already sent -erroria, vaikka olen muutamaan otteeseen tuollaista ratkaisua käyttänyt. PHP4 herjaa ja varmaan vanhemmatkin.

Vitos-PHP:s on siis konffattu bufferoimaan tulostus oletuksena. Version kanssa tuolla ei oo mitään tekemistä, php.inin asetusten kanssa sitäkin enemmän.

Vasta_alkaja [12.01.2009 22:10:35]

#

Kiitoksia sivistyksestä.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta