- Magisk
- Milyen okostelefont vegyek?
- Betiltották a Pixel 7-et Japánban
- Google Pixel topik
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Xiaomi 14 - párátlanul jó lehetne
- iPhone topik
- Milyen GPS-t vegyek?
Aktív témák
-
Protezis
őstag
Igen, mert feltettem egy kérdést. Mit nyomtam volna?
Elég komplex probléma. Fájl helyett ajánlanám az adatbázist.
Belépéskor létrehozol sessionöket a névvel, jelszóval, egyezteted az adatbázissal, ha van olyan, átadod a kliensnek a kívánt tartalmat.
Logoutnál minden fordítva. Sütiket még nem használtam.
(komplett megoldásom nincs, ha nem csak copyzni, hanem tanulni is akarsz, ajánlom ezt a kis fórumot: [link], adatbázis használatát egész jól meg lehet érteni belőle) -
Tyrael
senior tag
kihasznalod az embereket.
en se akarom kitanulni a komuves szakmat, de nekem nem segitenek az emberek ingyen bepucolni. :S
nem bantasbol mondom, es altalaban segitek mindenkinek, de te olyan szinten lusta vagy hogy csak na.
Pl utannanezhettel volna a google-vel, mert pl. van egy csomo mail kuldo script, vagy esetleg megprobalhattal volna a lentebb irt vazlat alapjan elkesziteni, de nem: Te varod, hogy valaki megcsinalja helyetted. :S
Tyrael -
Tyrael
senior tag
csinálsz egy megfelelő form-ot, amiben action=''feldolgoz.php'' method=''POST'' (lehetne get is, de többmezős űrlapokat postban kell/lehet).
ezutan mar csak a feldolgoz.php -t kell letrehozni.
a php file-ban, a formbol atadott elemeket a $_POST tombbon keresztul ered el:
pl ha az urlapban volt egy mezod aminek a neve ''email'' volt, akkor a $_POST['email'] -ban ered el a bekuldott adatot.
erdemes ellenorizni, hogy a bekuldott adatok leteznek-e: isset($_POST['email']) illetve, hogy nem uresek-e (elkuld egy ures urlapot, stb) : !empty($_POST['email']) , vagy a masik mod: empty($_POST['email']) === false
Tyrael
[Szerkesztve] -
azzio
aktív tag
ha php-ban dolgozol, használd a mail() függvényt.
pl. mail(''cimzett'',''targy'',''uzenet'');
ez sima plain textet küld, ha html-üzenetet akarsz küldeni, nézd át a php.net-en a mail() függvényre vonatkozó részt, ki tudod alakítani a saját igényeid szerint.
figyelj arra, hogy az ingyenes tárhelyszolgáltatók testreszabják maguknak a mail() függvényt, lehet, hogy az azonosítódat is meg kell adnod parméterben. -
L3zl13
nagyúr
Igen, oda fog ugrani ami az actionben meg van adva.
Ha akarod, a bejelentkező form és a beléptetés lehet ugyan az az oldal is. Ha az actionben nem adsz meg semmit, akkor ez az alapértelmezett.
Persze ez esetben érdemes úgy módosítani, hogy:
<?PHP
session_start();
if (isset($_POST['belepmezőneve'])) {
if($_POST['szövegmezőneve']=='jelszó')
$_SESSION['login']=TRUE;
else unset($_SESSION['login']);
} elseif (isset($_POST['kilepgomb'])) {
unset($_SESSION['login']);
}
if (!isset($_SESSION['login'])) {
?>
BEJELENTKEZŐ FORM KIIRATÁSA
<?PHP
exit();
}
else {
?>
KIJELENTKEZŐ FORM KIIRATÁSA és nincs exit();
<?PHP
}
?>
És ezt minden bejelentkező oldal elejére betenni. Bár a többi oldalra ennyi is elég:
<?PHP
session_start();
if (!isset($_SESSION['login'])) {
?>
BEJELENTKEZŐ FORM KIIRATÁSA
<?
exit();
}
else {
?>
KIJELENTKEZŐ FORM KIIRATÁSA és nincs exit();
<?PHP
}
?>
A PHP kód helye az oldalon belül mellékes, persze mindenképp az oldal védett tartalmának kiratása előtt szükséges a vizsgálat.
Az oldaltól függ, hogy hova érdemes tenni. Ha van valami formázása az oldalnak, akkor arra figyelj, hogy az exit/die függvény után már semmi sem fut le, tehát a megnyitott HTML tagok lezárása sem. Ha ez gond, akkor ne használd ezeket a függvényeket, hanem a védett rész kiiratását egyszerűen tedd az else ágon belülre a kijelentkező form után. A formázás lezáró tagjait, meg az else ág után, hogy a feltételtől függetlenül mindig lefusson. Azaz:
HEAD
BODY
FORMÁZÁS, TÁBLÁK, DIVEK, NEM VÉDETT TARTALOM
<?PHP
session_start();
if (!isset($_SESSION['login'])) {
?>
BEJELENTKEZŐ FORM KIIRATÁSA nincs exit/die
<?PHP
}
else {
?>
KIJELENTKEZŐ FORM KIIRATÁSA
VÉDETT TARTALOM KIIRATÁSA
nincs exit/die
<?PHP
}
?>
FORMÁZÁS, TÁBLÁK, DIVEK lezárása, TOVÁBBI NEM VÉDETT TARTALOM
Így mondjuk keveredik a PHP és a HTML kód, ami nem a leg elegánsabb, de ez a legegyszerűbb.
[Szerkesztve] -
L3zl13
nagyúr
Ha nem akarod, hogy az oldal kódját megnézve kiolvasható legyen a kód, akkor mindenképp egy PHP-s, vagy hasonló szerveroldali megoldást ajánlok.
Ez annyiból áll, hogy kezdő oldalon egy form, egy szövegmező+egy submit.
Fogadó oldalon (ami az actionben meg van adva) pedig:
<?PHP
session_start();
if (isset($_POST['szövegmezőneve']) && $_POST['szövegmezőneve']==''jelszó'')
$_SESSION['login']=TRUE;
else unset($_SESSION['login']);
if (!isset($_SESSION['login'])) die('Először lépjen be!');
?>
És ezt minden bejelentkező oldal elejére betenni. Bár a többi oldalra ennyi is elég:
<?PHP
session_start();
if (!isset($_SESSION['login'])) die('Először lépjen be!');
?>
Persze nem árt még egy kijelentkezés gomb és kijelentkező script is...
Aktív témák
- HP 200W (19.5V 10.3A) kis kék, kerek, 4.5x3.0mm töltők + tápkábel, 928429-002
- Geforce GTX 1050, 1050 Ti, 1060, 1650, 1660 - GT 1030 - Low profile is (LP)
- FSP RAIDER S 750W 80 PLUS Silver táp
- Jo Nesbo: LEOPÁRD (nem olvasott)
- HUAWEI MateBook 13 2020 - Kijelző nélkül - I7-10510U - 16GB - 512GB SSD - Win11 - MAGYAR
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest