Jump to content
GSForum - Segélyvonal

Session probléma


google
 Share

Recommended Posts

google

Üdv!

 

Sajnos elég kellemetlen problémába ütköztem.

Szakdolgozatom már majdnem kész van, és úgy gondoltam, itt az ideje kipróbálni egy másik gépen is (Win XP Prof). Feltelepítettem az Easyphp-t, létrehoztam egy új felhasználót, majd megnéztem az oldalamat.

 

Tele van session-hibákkal, a következõt írja kb.: A sessiont nem lehet elindítani, mert a fejléc már elküldésre került. És line akárhányadik (ahol a session kezdõdik).

 

Tanárom azt mondta, szerinte a sessionnek mindent meg kell elõznie a kódban. Ezzel viszont az a gondom, hogy van, ahol csak az oldal közepén indítanám el a sessiont, tehát elég nehézkes volna átpakolni. És az az érdekes, hogy ilyen kóddal már tettem fel weboldalt tárhelyre, és most is minden gond nélkül mûködik minden része. Meg persze nálam is, egy árva sor hibajelzést nem ad. Ellenben, ha máshova telepítem fel, azonnal beleköt a sessionökbe.

 

Miért van ez? Miért, hogy nálam (és a netes szerveren) nincs hiba, máshol meg temérdek? Mit kell beállítani ahhoz, hogy ezzel ne foglalkozzon?

(Tudtommal semmit nem konfiguráltam az Easyphp-n sem).

Link to comment
Share on other sites

Mezofi

Szerintem a gond ott van, hogy olyan sessiont is fogadsz, amely még nem került elküldésre. Nálam legalább is akkor reklamál a szerver (de csak a fizetős bérelt szerverem!). Ezt megelőzendő, minden egyes session fogadáskor megvizsgálom, a session létezik-e.

 

if(isset($_SESSION["akarmi"])) { 
$akarmi=$_SESSION["akarmi"];
}

Ezzel nekem megszüntek a problémáim. Sessiont indítani és fogadni is lehet bárhonnan a programban, szerintem. Csak a session_start()-nak kell a lap legtetején lennie!

 

A gond még akkor is fenn áll, ha valahol Location: valami.php parancs áll, és már kiirattál valamit az oldalra. (De ez nem ide tartozik). De ha így sem jó, akkor be lehet állítani az easy-t, hogy a hibákat ne ilyen durván figyelje. Tehát a php.ini fájlban alapban, ha jól emlékszem ez van:

 

error_reporting = E_ALL

 

Ezt én átírtam erre:

error_reporting = E_ALL & ~E_NOTICE

 

Mert különben állandó reklamációt kaptam.

 

Egyébként hasonlítsd össze a két környezeted php információit, ezt a sort keresd: error_reporting nálam ez 2039. De minden hiba beállításnál ez más-más számot ad.

 

A php info kiíratása.

echo phpinfo();

 

Hú, most kiírtam magam! :D

Link to comment
Share on other sites

ocsi

Tegnap este óta gondolkozom olyan szituáción, amiben fontos lehet, hogy ne a file eléjén nyissuk meg a sessiont... még nem találtam ilyet.... nálam a session-ös php file-okban a 2. sor a session_start(). Ez nálad miért nem jó? (Ha egy problémát nem tudunk megoldani: kerüljük meg!)

Link to comment
Share on other sites

arpsoft

Így van! ;)

Link to comment
Share on other sites

google

Köszönöm, amint hazaértem, kipróbálom õket, mert rendkívül fontos, hogy megoldódjon ez a probléma záros határidõn belül! Köszönöm a gyors és alapos segítségeket! Visszajelzek, ha rendben van.

Link to comment
Share on other sites

google

Session-probléma megoldva! Az elejére írtam át, azért már nem szól.

 

De! :( Minden küldött változóért igen! $HTTP_POST_VARS['valtozo'] az neki undefined index! Mindenhol!

Ezzel mit lehet tenni?

 

@ Mezofi: Az a probléma, hogy ezt egy szûz, Easyphp-s localhostos környezetben kell bemutatnom, ahol nincs lehetõségem buherálni a php inijét. :(

Különben nem érdekelne, mert ha szerveren van a neten, akkor semmi baja nincs.

Link to comment
Share on other sites

Mezofi

Ez nem fog sokat segíteni, de van nekem egy dátum, névnap php scriptem, amely szûz easyphp-vel mindig errorokat írt ki, amíg át nem állítottam a php init.

Link to comment
Share on other sites

google

Végülis azt meg lehet szerintem csinálni, hogy a feltelepítés után felülírom az init egy elõre megbuherált fájllal. Ezt nem tiltja meg senki.

 

De reméltem, hogy ehhez nem kell folyamodnom, mert alapbeállításként van olyan normális, hogy nem veszi hibának azt, ami nem az. :S

Link to comment
Share on other sites

lamip

Szerintem azt kellene ellenõrizned hogy nincs-e a fájl elején véletlenül szóköz, mert én nem keveset szívtam már így.

Link to comment
Share on other sites

google

Milyen fájl elején, és hol pontosan?

 

@ Mezofi: Köszi, máris megnézem. :)

Link to comment
Share on other sites

lamip

Rögtön a session függvényt tartalmazó fájl elején, a "<?php" előtt.

 

Egyébként utána néztem a problémádnak. Te süti alapú munkameneteket használsz és a sütik beállítása az oldal fejlécében történik. Amikor kiküldöd az első karaktert az oldaladon akkor kerülnek kiküldésre a headerek, és ezután már ezen nem tudsz változtatni. Részletesen itt van leírva.

 

Esetleg azt sem ártana ellenőrizned hogy a böngészőben engedélyezve vannak-e a sütik.

 

De használhatsz URL alapú munkameneteket a következő képpen:

<?php
session_start();
?>
<a href="masik_lap.php?<?php print SID ?>">Másik lap</a>

(Illetve a kettő kombinációját is használhatod.)

Link to comment
Share on other sites

google
Esetleg azt sem ártana ellenõrizned hogy a böngészõben engedélyezve vannak-e a sütik.

Köszönöm a segítségedet. Úgy látszik, hogy a session elején indításával minden probléma megoldódik.

De kipróbáltam, letiltottam az összes cookie-t, és szemrebbenés nélkül mûködik.

Link to comment
Share on other sites

  • 9 months later...
Biszke

Sziasztok!

 

Egy tárhely-szolgáltató le tudja tiltani a session használatát? És ha letiltja, van valami megoldás, amivel ez a probléma orvosolható?

Link to comment
Share on other sites

Mezofi

Sajnos az extra.hu letiltotta! Ha jól emlékszem, úgy próbálták megoldani az emberkék, akik oda rakták lapjaikat, hogy sütiben tárolt a dolgaikat, az user gépén (cookie).

 

De ahol letiltják, az egy tré hely, szerintem.

:gonosz:

Link to comment
Share on other sites

Biszke

Nekem az ATW-nél van letiltva. :nemoké:

Link to comment
Share on other sites

  • 1 month later...
csabanova

Sziasztok!

Van egy képfeltöltõm aminek egy plusz funkciója, hogy át is nevezi a fájlt. Viszont ha túl nagy a fájl ergo túl sokáig tart neki a feltöltés, akkor mindig elfelejti, hogy mire neveztem át. Szóval hogyan lehet megoldani, hogy ne zárja a sessiont?

Link to comment
Share on other sites

Mezofi

Nem próbáltam, csak hallottam róla, hogy ezt a szerver konfigurációban kell megadni. (Az idõt). Tehát, ha nem saját szervered van akkor felejtsd el.

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...