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
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?
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).
Kyllä ensimmäisenä tarkistin nuo välilyönnit ja muut.
Olisiko tapa, jolla siirrät tiedostot palvelimelle syynä virheeseen?
Ja voisiko jossain includella liitettävässä tiedostossa olla jotain, mikä tulostaa sivuille jotain?
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
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.