Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: session_start ei toimi, ”headers already sent”

vilpertti90 [17.11.2015 16:48:32]

#

olen tehnyt pienen sivuston php koodilla jonka keskustana on index.php. Sen alussa ennen yhtään merkkiä tai väliä on seuraava koodi

<?php
session_start();
?>

index sivun avautuessa on muuta koodia aiheeseen liittyen muutamassa kohdassa koodilla

if (isset($_SESSION['suomi']))

mutta vasta tiettyjä linkkejä painamalla asetetaan tuo $_SESSION['suomi'].
koko sivusto pyörii includen avulla ja aina tietystä linkistä hyppää tietty materiaali keskelle index.php:tä.

koodi ei anna mitään virheilmoituksia kun pyörii wamp:issa mutta nettiin laittaessa tulee välittömästi etusivulle:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/villehei/public_html/index.php:1) in /home/villehei/public_html/index.php on line 2

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/villehei/public_html/index.php:1) in /home/villehei/public_html/index.php on line 2

mahtaako vika olla hostissa vai käytänkö session starttia väärin vai missä vika?

Oskuz [17.11.2015 17:45:05]

#

Oletko varma ettei selaimelle lähetetä mitään ennen session starttia? Poista välilyönnit ja rivinvaihdot ennen <?php tagia ja tarkista ettei oo BOM:ia sivun alussa (jos käytät UTF-8 enkoodausta).

vilpertti90 [18.11.2015 08:22:20]

#

Kyllä ensimmäisenä tarkistin nuo välilyönnit ja muut.

Lebe80 [18.11.2015 09:59:51]

#

Olisiko tapa, jolla siirrät tiedostot palvelimelle syynä virheeseen?

Ja voisiko jossain includella liitettävässä tiedostossa olla jotain, mikä tulostaa sivuille jotain?

vilpertti90 [18.11.2015 17:01:55]

#

Nyt lähti sivun ylhäältä varotukset pois ku vaihoin koodaukseks uft8(WITHOUT BOM) mutta header() koodin ilmestyessä valittaa edellee että headers already sent :/ saako sitä millää pois? ku on nappi jolla lopetan session ja ohjaan takas etusivulle

Metabolix [18.11.2015 17:43:23]

#

Samat ohjeet edelleen pätevät: suorita header ennen mitään tulostuksia. Virheilmoituksessa lukee, missä tiedostossa ja millä rivillä tulostus on aloitettu, joten vian löytäminen on erittäin helppoa.

Usein include index.php:ssä on huono tapa sivuston toteuttamiseen. Kannattaa vähintäänkin laittaa sivun yläosa ja alaosa funktioihin, ellei ole kiinnostusta jonkin hienomman sivupohjasysteemin kehittelyyn.

Vastaus

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

Tietoa sivustosta