Har frågor kring detta med säkerheten..
Läste PHPPortalens suveräna artikel om detta och använder nu:
if(!$HTTP_SESSION_VARS['username']) för att kolla om användare är inloggad.
Då jag registrerar sessionsvariabeln och ger den ett värde i en funktion, så undrar jag:
Hur gör jag den global? Är den det av default?
Hur är det säkerhetsmässigt med globala variabler? Kan någon obehörig komma åt dessa..?
Låt säga att jag i funktionen sätter: global $username;
Hur är detta rent säkerhetsmässigt?
Hur är det säkerhetsmässigt med globala variabler? Kan någon obehörig komma åt dessa..?
Låt säga att jag i funktionen sätter: global $username;
Hur är detta rent säkerhetsmässigt?
Nej, globala variabler är bara åtkomliga i det script som de finns i. Däremot är de på alla andra tänkbara vis extremt dåliga.
Tack för berömmet, det var jag som skrev den artikeln!
En sessionsvariabel är global by default, precis som du säger. Ur säkerhetssynpunkt är det ingen fara, för jag antar att du menar globala variabler i det aktuella dokumentet? Det är det som global används till, för man kan inte sätta globala variabler över flera dokument - utom med sessioner.
Vad menar du egentligen med global $username? Eftersom att en sessionvariabel är global, så kan du använda den utan problem i funktioner. Dock kan du inte sätta värden på den globala, associativa arrayen, utan du måste registrera en ny sessionvariabel, förslagsvis med samma namn, med det nya värdet.
Det är inte alls säkert för fem öre, eftersom att ( Enligt php.net ) alla globala, associativa arrayer har värden i sig. Man måste alltså kolla så att platsen inte är tom. Dvs:
if ( $HTTP_SESSION_VARS['username'] != "" )...
En variabel för $HTTP_SESSION_VARS är alltid satt, därför funkar inte not-operatorn.
Tack för svaren..
Lärt mig nåt nytt har jag!
Jag fick det inte att funka utan att sätta global $username i funktionen..
Har en "kolla-användare-funktion" som initialt kollar om en sessionsvariabel existerar. Gör den det inte, så "reggar" jag och sätter den, om nu användaren finns.
Vid "hoppande" mellan adminsidorna så kollas bara om den skapade sessionsvariabeln existerar.
Det är denna sessionsvariabel jag inte fick att funka om jag utelämnade just: global $username
Har för övrigt aldrig direkt använt mig av sessionsvariabler.. en newbie alltså!
Får välan se över mitt "fulhack"..
Tjaba../Micke
272 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a