Jump to content
GSForum - Segélyvonal

Session probléma


Recommended Posts

Posted

Ü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).

Posted

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

Posted

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!)

Posted

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.

Posted

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.

Posted

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.

Posted

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

Posted

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.

Posted

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

 

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

Posted

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.)

Posted
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.

  • 9 months later...
Posted

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ó?

Posted

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:

Posted

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

  • 1 month later...
Posted

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?

Posted

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.

 

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
×
×
  • Create New...