ugrás a tartalomhoz

Fejlécküldés megtalálása

Thoer · 2007. Aug. 21. (K), 14.26
Sziasztok!

Van egy fájlom (legyen read.php), ami egy másik szerverről olvas be egy fájlt, majd a tartalmat berakja nekem egy tömbbe, nem ír ki semmit. (CURL-t használok és FTP a protokol) Ez eddig rendben is működött, de most be kell include-olnom ezt a fájlt máshova (legyen login.php), ahol a kivett adatok alapján kellene felhasználókat beléptetni.

Ha sikerült a beléptetés akkor szeretném a session_regenerate_id()-t meghívni, amire azt a választ kapom, hogy már elküldtem egy fejlécet amikor meghívtam a read.php-t, mégpedig az első sorban. Ellenben én ilyet legjobb tudomásom szerint nem tettem, az első sorban meg pláne nincs semmi csak egy '<?php'.

Készítettem egy teszt fájlt ami ugyanaz, mint a read.php csak a végére írtam egy echo-t és utána egy session_start()-ot, ekkor azt kaptam, hogy a session_start() nem fut le, mert az echoval már küldtem fejlécet, ez gondolom azt jelenti, hogy előtte tényleg nem küldtem. Tudna valaki segíteni, hogy hol keressem a hibát?
 
1

Whitespace

Török Gábor · 2007. Aug. 21. (K), 14.56
Mindazon függvények meghívása előtt nem lehet semmilyen adatot küldeni a böngészőnek, amelyek a headerbe írnak. Ilyen adat lehet pl. akár csak egy darab szóköz is a <?php előtt.
2

Köszönöm, hogy válaszoltál

Thoer · 2007. Aug. 21. (K), 15.49
de sajnos nem oldotta meg a problémát. A read.php a '<?php' -el kezdődik és '?>'-el fejeződik be, a kettő között csak értékadások. Hibaüzenet nincs, ha kiveszem a login.php-ból a session id regenerálást akkor minden ok.

Viszont megnéztem megint a kódot és fogalmam sincs miért mondtam, hogy ftp-zik, amikor simán csak beolvas. Nem tudom ez segít-e valamit, de így néz ki a CURL rész:
$ch = curl_init(/*WEBCÍM*/);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);
Ha bárkinek van tippje, kérem ne tartsa magában!
3

bom?

zila · 2007. Aug. 21. (K), 15.53
Az UTF-8 fileoknál a BOM szokott ilyen hibákat okozni, nézd meg egy hexa editorral, hogy tényleg nincs semmi a <?php előtt... Illetve, ha használsz include fileokat, akkor azokban sem lehet semmi kimenet (ezeknél érdekes lehet a ?> mögött lévő space/enter is...)
4

Erre még tényleg nem gondoltam!

Thoer · 2007. Aug. 21. (K), 16.12
Szerzek gyorsan egy hexa editort, bár hogy őszinte legyek azt se tudom eszik-e vagy isszák. Remélem látom majd benne amit látnom kell! :)

Minden esetre köszi a tippet!
6

van más eszköz is...

zila · 2007. Aug. 21. (K), 16.23
Nem kell feltétlenül hexa editor, egy parancssori type file.php is jó lehet az ellőrzésre, ha látsz valami kis kriksz-krakszot a kezdő <?php előttt, vagy a total commander file nézegetője is tud hexa módban megjeleníteni. (a hexa az a hexadecimális rövidítése, ami ugye a 16-os számrendszert jelenti, egy programozónak illene ismerni a jelentését...)
7

illene? :)

Thoer · 2007. Aug. 21. (K), 16.49
Köszi, de nem hexadecimálissal volt gondom, hanem azzal, hogy nem szoktam fájlokat sem bináris sem hexadecimális módban vizsgálni és lövésem nem volt hogy mit várjak egy utf-8-ban kódolt fájlban, mint whitespace karakter. :)

(Ja, és tudom hogy 'illene', de assemblyben sem programoztam soha, pedig c64-re írtam az első programomat... :) )

Azért még egyszer köszönöm!
8

elnézést

zila · 2007. Aug. 21. (K), 17.45
Félreértettem a postodat :)
5

Sikerült!

Thoer · 2007. Aug. 21. (K), 16.20
Köszönöm a segítséget mindkettőtöknek!
9

erre egy egyszerű notepad is jó

amonrpg · 2007. Aug. 21. (K), 18.41
vagy bármely olyan program, ami nem ismeri a BOM-ot, vagy éppen ki van kapcsolva benne. Pl. notepad++ is tökéletes, bár az kódolásra is. :D
10

Hasznos infó!

Thoer · 2007. Aug. 21. (K), 19.12
Notepad++ úgy is van mindenhol, bár nem az az első számú szerkesztőm...