Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Ongelma redirectissä (PHP)

Sivun loppuun

TeNDoLLA [27.05.2011 15:33:40]

#

Alkuperäinen posti, osaiskohan täällä joku antaa neuvoja tuohon?

http://mureakuha.com/keskustelut/2?18558

The Alchemist [27.05.2011 15:48:55]

#

Oikea vastaus on, että olet tulostanut jo jotain ennen headereiden lähettämistä, joten niitä ei enää voi lähettää. Toisella palvelimella on käytössä bufferointi, joten headerit voidaan lähettää vielä senkin jälkeen, kun tulostetta on jo jonossa. Hyvin yleinen aloittelijan virhe on se, että <?php-tagin eteen jättää rivinvaihdon.

Laitahan kehitysympäristöösi virheraportointi päälle. Ihan tolkutonta yrittää koodata, jos tekemistään virheistä ei saa mitään palautetta. Olisi tämäkin ratkennut jo ennen kuin kerkesit edes ihmetellä sitä.

TeNDoLLA [27.05.2011 15:55:08]

#

Enpä oikein usko, että olisi tulostettu mitään. Joku näkymätön merkki jos on ni sitten ehkä. Kuinkas tuon bufferi homman voi tarkistaa servereiltä, jotta varmistuis sekin onko semmosia?

EDIT: noista errorien näytöstä niin onko jotain näiden lisäksi vielä mistä en ole tietoinen?

error_reporting(E_ALL);
ini_set('display_errors', 1);

EDIT2: ja dev servuun en pääse käsiksi ja henkilö, joka pääsee ei ole paikalla tänään.

The Alchemist [27.05.2011 15:58:04]

#

Eipä mennä perse edellä puuhun. Ensin laitat sen virheraportoinnin päälle laittamalla seuraavan koodirivin skriptin "juuritiedoston" (eli sen, joka on mainittu selaimen osoitekentässä) alkuun seuraavan rivin:

error_reporting(E_ALL | E_STRICT);

TeNDoLLA [27.05.2011 16:00:48]

#

Siellä on ihan alussa nyt näin, lisäsinn tuon E_STRICTIN aikasemmasta poiketen

<?php
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);

Sama homma.. tulee tyhjä sivu kuvan poiston jälkeen.

The Alchemist [27.05.2011 16:06:12]

#

Sittenpä ei tule oikein muutakaan mieleen kuin että vastaanottava sivu tekee jotain väärin ja näyttää tyhjää.

TeNDoLLA [27.05.2011 16:07:39]

#

Sehän tässä onkin kun ei mitään virhettä tule ja koodin puolestakaan ei pitäs olla mitään vikaa. Ja kaiken kukkuraksi se toimii vielä toisella serverillä.

-tossu- [27.05.2011 17:36:20]

#

Oletko vertaillut oman serverin ja dev-serverin selaimelle lähettämää dataa? Jos et, niin vertailu onnistuu kätevästi vaikka Operan Dragonflyllä.

TeNDoLLA [27.05.2011 18:22:29]

#

Eikös firebug aja saman asian kuin tuo dragonfly? Ja mihinkäs dataan tuolla pitäisi kiinnittää huomiota? Näyttää aika samalta mitä nyt tuossa oon tutkaillut.

Metabolix [27.05.2011 18:30:14]

#

Tutkipa ensin perinteisellä echo- tai die-debuggauksella, mihin asti koodissa päästään. Tarkista myös palvelimen virheloki.

TeNDoLLA [27.05.2011 18:33:40]

#

Jooh, kosahtaa tuohon header kohtaan. Odoteltava maanantaihin, että pääsen käsiksi palvelimen logeihin.

Metabolix [27.05.2011 19:16:31]

#

Tarkista sitten vielä, mitä funktio headers_sent palauttaa juuri ennen header-riviä. Jos sieltä tulee true, tarkista myös tiedosto ja rivi, jotka saat samaisella funktiolla selville. Kovasti vaikuttaa siltä, että The Alchemist oli jo aluksi aivan oikeassa virheen suhteen.

Tulosteen puskurointia voi säätää PHP:n asetuksista.

Jos ohjelmistossa on itse kyhätty virheenkäsittelijä, voi olla, ettei virheilmoitusasetuksista ole mitään apua, vaan kaikki virheet tungetaan väkisin palvelimen lokiin.

Muuten, tietojen muuttaminen (esim. poistaminen) kuuluisi hyvän tavan mukaan tehdä POST-pyynnöllä eikä GET-pyynnöllä.


Sivun alkuun

Vastaus

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

Tietoa sivustosta