Miért fut le hamarabb az unset parancs?
van egy ilyen függvényem
function register_message(){
if (isset($_SESSION["success"]))
echo "<ul>".$_SESSION["success"]."</ul>";
unset($_SESSION["valami"]);
}
ha ezt meghívom nem írja ki a $_SESSION["success"]-t
próbáltam ezer féle képpen már és így függvényben egyszerűen nem akar működni valahogy az usnet hamarabb lefut minthogy kiírná a success tartalmát a program....
ha az unset-et a függvényhívás után rakom be közvetlen már működik a dolog... valami ötlet?
Segítséget vársz, bepostolsz egy kódot, amiről azt sem tudjuk, hogy hívja meg és ehhez képest elég nagy az arcod.
Namost: a függvény meghívása előtt ha simán beírod az
echo "<ul>".$_SESSION["success"]."</ul>";
sort, akkor kiírja? Ha nem, akkor már eleve nincs meg a session változó a függvényhívás előtt. Biztos vagyok benne, hogy nem ebben a függvényben van a hiba, hanem valahol máshol.
"Persze, csahogy itt az echo az elso parancs, az lefut, majd unset es kesz.
Nem tudom mit akar elerni, de ez igy tuti nem azt csinalja, amit a kerdezo akar tole."
pont ezt akarom tőle mit nem lehet ezen érteni? de nem ír ki semmit mert az echo parancs nem fut le... de ha az usnet nincs benne akkor lefut ilyen egyszerű
igen kiírja próbáltam sokféleképpen és a helyzet az hogy csak így függvényben nem működik a dolog... mondom ha a függvényből kiveszem az unset-et és függvényhívás után rakom be úgyis működik... tehát megjelenik az üzenet de ha lefrissítem az oldalt már nincs... mivel kiíratás után lefutott az usnet megsemmisült a succes session
gyakran használnám ezt az echo-unset dolgot ezért akartam függvényben hogy szebb legyen ennyi... de sztem ennyit nem ér ez a kis apróság ha senkinek nincs ötlete zárjuk légszives a témát
Ne viccelődj már! Komolyan 2 sorból kellene debuggolnunkna problémát? Hát jól van. Kipróbáltam locahoston. Mind a két sort. Tökéletesen működött. Szóval vagy az apache szervereddel van a gond vagy a gépeddel. Biztos zárlatos a processzor egyik áramköre. Naponta előfordul. Vegyél új gépet, és tökéletesen működni fog. Vagy telepítsd újra az apache-t. Vagy a windowst. De az is lehet hogy a legújabb php frissítésben van a hiba. A béna fejlesztők még azt sem tudják hogy az utasításokat nem sorban hajtjuk végre, hanem úgy ahogy kedvünk tartja.
(Egyébként mintha tényleg lenne valami hasonló programnyelv :)
Na jó kérdező, valóban vegyél vissza.
"Bemásoltál" 4 sort, amiben kapásból 2 elég komoly hiba van, ami miatt szar lehet az egész, ezeket megtaláltuk és jeleztük.
Vagy dobd fel pastebinre az egészet és linkeld be, vagy oldd meg a dolgot, mert így baromira nem jutunk sehova.
Már az hatalmas előrelépés lenne, ha ezt a 4 sort NORMÁLISAN be tudnád másolni, nem tele hibákkal...
"a helyzet az hogy csak így függvényben nem működik a dolog... mondom ha a függvényből kiveszem az unset-et és függvényhívás után rakom be úgyis működik."
Szia, már írtam!
Valahol korábban is meghívod a függvényt!
Kizárólag csak így lehetséges az általad tapasztalt hiba!
Hogy hol történik meg ez, azt max fájlokba való kereséssel tudod meg.
De csak tippként, nincs véletlen a regisztrációt végre hajtó PHP -ban, amiről tovább irányítod!?
A header('Location: /..'); utáni rész is lefut, ha nincs exit();
Ez egy tipikus hiba amit sokan elfelejtenek!
Itt még kicsi a problémát okozhat, de láttam már olyant, hogy admin felületen megnézte a jogosultságot, majd ha nem volt joga php headerrel átirányította, de nem állította le, így lefutott az utána lévő kód is, azaz látszólag vissza küldte a login -ra, de bármit belehetett adni vele.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!