session fejl

Tags:    php

Hej
Jeg har stadig store session's fejl

Nogle gange virker det, men langt, langt de fleste gange blever værdigen i $_SESSION['status'] ikke overført
I kan prøve den på min testside
http://www.riberock.dk
gå til medhjælper.
intast et eller anden brugernavn eller lad være.
tryk på login

login.php
Fold kodeboks ind/udKode 


loggerin.php
Fold kodeboks ind/udKode 





Indlæg senest redigeret d. 02.04.2006 09:47 af Bruger #9660
7 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Kan se at du bruger if($_POST['bruger'] == "")

Der er umidelbart ikke en særlig holdbar måde at tjekke det på...

Brug empty() istedet...

altså:

Fold kodeboks ind/udKode 


Prøv evt. at forklare lidt mere hvad problemet er.

(Der er foresten en fejl i din MySQL når man skriver både pass og user ind...



session_start(); skal stå i toppen af login.php filen i tilfælde af at du bruger cookies sessions. og ved første øjekast er det faktisk den eneste mulighed jeg kan se for hvad fejlen er.

og du kan da lige så godt bruge header til redirect i stedet for at bruge javascript. header('location=login,php'); eller noget i den retning.

og [bruger] fra rådes at bruges begrund af at det bygger på den formodning at der aldrig kommer en eller anden og laver en konstant der heder bruger. man rådes til ['bruger'].



Indlæg senest redigeret d. 01.04.2006 20:10 af Bruger #5620
Du SKAL bruge session_start() i starten af din kode på alle de sider, du kalder eller skriver en session...



Min mening er at du roder ret meget i det du laver.

Når man har submittet sin form og du skal tjekke alt det der, så tjek det der, skriv i sessionsne og så lad det være gyldigt for at de er logget ind..

fx. som dette:

Login.php:
Fold kodeboks ind/udKode 


Og så smid en linie ind ØVERST på alle dine sider hvor man skal være logget ind med denne kode:

Andre sider:
Fold kodeboks ind/udKode 






Kan se at du bruger if($_POST['bruger'] == "")

Der er umidelbart ikke en særlig holdbar måde at tjekke det på...

Brug empty() istedet...

det har du måske ret i, men det er ikke problemmet.

Prøv evt. at forklare lidt mere hvad problemet er.

Hvis du ser min kode, og du prøver min side, vil du se at udanset om du glemmer brugernavn eller password, bliver $_session['status'] tildelt en værdig. Denne værdig bliver ikke overført/gemt til login.php


(Der er foresten en fejl i din MySQL når man skriver både pass og user ind...

Ved jeg godt.



session_start(); skal stå i toppen af login.php filen i tilfælde af at du bruger cookies sessions. og ved første øjekast er det faktisk den eneste mulighed jeg kan se for hvad fejlen er.

bruger ikke cookies

og du kan da lige så godt bruge header til redirect i stedet for at bruge javascript. header('location=login,php'); eller noget i den retning.

ja det er rigtig

og [bruger] fra rådes at bruges begrund af at det bygger på den formodning at der aldrig kommer en eller anden og laver en konstant der heder bruger. man rådes til ['bruger'].

????





Det er IKKE testet, men bare skrevet i min webcoder, så ser det som det virker, evt. fejl kan du jo spørge om hvis du ikke kan løse det :)



t