Egy elmés megoldás az alábbiakra?
A weboldalamon szeretném azt megoldani, hogy:
ha be van jelentkezve akkor mondjuk opcio1.php -t includoljuk be, ha nincs akkor meg az opcio2.php -t.
Ezt hogy oldanátok meg?
Session -k ilyesmik:
$_SESSION['username']=$username;
$_SESSION['loggedin']="true";
--------------------------------------------
PHP -hoz alap szinten értek.. De gyorsan tanulok! :)
--------------------------------------------
ha más kérdés lenne a kódommal kapcsolatban válaszolok!
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
if(loggedin){
include(opc1.php)
}else{
include(opc2.php)
}
Vagy
$opcio = 'opc1.php';
if(logged) $opcio = 'opc2.php';
include($opcio);
de ha az opciót úgy érted, hogy a vendégnek login screen van csak, akkor
if(loggedin) redirect(..)
else{
bejelentkezés/reg
}
a vizsgálást én úgy csinálnám, hogy if(isset($_SESSION['username']))
nem tudom miért kell a loggedin logikai változó, sok helyen látom, ha valaki tudja hogy mire jó/tényleg felesleges, az világosítson fel :)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
> ha be van jelentkezve akkor mondjuk opcio1.php -t includoljuk be, ha nincs akkor meg az opcio2.php -t.
#1-es kódja pont ezt csinálja, amit leírtál. Miért nem jó?
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
#3 -as: Mindkettő felesleges. :-)
Ha igazán jót akarunk csinálni, akkor belépéskor egy adatbázisba tároljuk a PHPSESSID -t, user ID -t, belépés idejét, utolsó frissítést, és mondjuk IP címét.
Majd mikor oldal lekérdezés történik adatbázisban össze vetjük a PHPSESSID -t a táblával, és ha van aktív login, akkor user ID -vel társítva, kitudjuk hámozni ki van belépve.
Ha meg kilép jelőljük hogy kijelentkezet és hogy nem érvényes a belépés.
Így ha vissza kell nézni a felhasználó honnan volt belépve, meg lesz egyből az IP címe.
kliens oldalon pedig semmi nincs ami véletlen is rozskezekbe kerülhetne :-)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Azt figyeltem meg, hogy a legtöbben nem gondolják át mi is a cél, és milyen módon is kellene azt elérni.
Célszerű a programozási feladatokhoz lejegyezni a folyamatokat. A legjobb, ha felvázolsz egy folyamatábrát, amin végigköveted, hogy mik a fontosabb lépések, amiknek az eredményeihez el akarsz jutni.
Esetünkben:
// INICIALIZÁCIÓ
1. indítsuk/folytassuk a munkafolyamatot (session_start())
2. létezik már a 'logged' session? ha nem létezik állítsd 0 értékre.
// KIÉRTÉKELÉSEK
3. érkeztek post adatok a bejelentkezési űrlapról (ez csak $_SESSION['logged'] == 0 esetén állhat fenn)
3.a. ha érkeztek adatok, akkor ellenőrizd, ha valid, akkor a user ID-jét töltsük a 'logged' session-be
4. érkeztek kijelentkezési adatok?
4.a. ha érkeztek, a 'logged' session-t állítsuk 0-ra
// MEGJELENÍTÉSI RÉSZ
5. ha a 'logged' 0, mutasd a bejelentkezési űrlapot
6. ha a 'logged' nem 0, mutasd a bejelentkezett adatait, a kijelentkezés gombot, esetleg egyéb tartalmakat
A folyamatleírás alapján már viszonylag egyszerű elkészíteni a bejelentkezést, arra kell csupán figyelni, hogy az inicializáció és kiértékelési részeket minden alkalommal betöltse a honlap függetlenül attól, hogy be van-e jelentkezve vagy nincs. Ezeket külön fájlban is meg lehet oldani, és az index elején egy include_once() hívással beágyazhatjuk.
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!