- Samsung Galaxy S23 Ultra - non plus ultra
- Vivo X200 Pro - a kétszázát!
- Xiaomi 14T Pro - teljes a család?
- Okosóra és okoskiegészítő topik
- Motorola Edge 30 Neo - wake up, Jr...
- Hivatalos a OnePlus 13 startdátuma
- Samsung Galaxy Fit 3 - keveset, de jól
- Huawei Mate X6 - keleti oldal, nyugati oldal
- Samsung Galaxy A56 - megbízható középszerűség
- Milyen okostelefont vegyek?
Új hozzászólás Aktív témák
-
krisz67
tag
válasz
krisz67 #18422 üzenetére
pl: profil.php
<?php
$errmsg_arr = array();
$errmsg_arr[] = 'A folytatáshoz jelentkezz be!';
$errflag = true;
if($errflag) {
$_SESSION['LoginForm'] = $errmsg_arr;
session_write_close();
header("location: index.php");
exit();
};
?>És aztán kell még átmenteni valami PHP kódot, vagy csak a HTMl részét, de viszont így a védett rész, látható mindig, mert ugye ha nincs benne a php kód, vagy az elején úgyis egyből átírányítja a főoldalra, hiába nyitja meg valaki a profil.php-t?
-
SUPREME7
őstag
válasz
krisz67 #18418 üzenetére
Bár nekem sem sok közöm van a "webfejlesztéshez" csak hobbikókányoló vagyok, de erről eszembe jutott, hogy mikor elkezdtem tanulgatni akkor én is miket ollóztam össze innen-onnan
Kegyetlen.
http://data.hu/get/9866952/php.rar
Szimplán amit el akarsz rejteni azt tedd:
<?php if(isset($_SESSION['user_info']) && is_array($_SESSION['user_info'])) { ?>
A fenti feltétel azt jelenti, hogy "HA BE VAN JELENTKEZVE"
Akkor ezt a szöveget látja<?php }else{ ?>
HA NINCS akkor pedig ezt.
<?php } ?>
-
fordfairlane
veterán
válasz
krisz67 #18415 üzenetére
A munkamenet két részből áll. A kliens kap egy munkamenet-azonosítót, amit aztán valamiféle cookieban tárol le. A szerveroldalon ugyanezen azonosító alatt vannak a $_SESSION-ba belerakott adatok.
A munkamenet addig él, amíg vagy a kliens- vagy a szerveroldalon nem tűnik el a kettő közül valamelyik.
A kliensen egy cookie sokmindentől eltűnhet. Az ún. session cookie olyan, ami nem kap lejárati dátumot. Ezek azok a cookiek, amiket a böngésző a RAM-ban tárol, és amelyek a böngésző bezárásakor törlődnek. Be lehet állítani, hogy a PHP session-kezelője olyan cookiet küldjön a böngészőnek, amely permanensen tárolódik a böngészőben, ameddig a lejárati dátum le nem jár, de ehhez emlékeim szerint a php.ini-hez kell tudni hozzáférni. Persze ha a böngészőben törlöd a cookiekat, akkor is elveszik a dolog.
A szerveren a PHP session kezelőben van egy szemétgyűjtő-eljárás. Ez a hosszú ideje inaktív munkamenet-bejegyzéseket törli. Itt is lehet lejárati dátumot adni, hogy mik azok, amik kimehetnek a szemétbe.
Igen, ezek közül bármelyik eltűnik, onnantól kezdve elvesznek a munkamenetben tárolt adatok, és ezeket újra fel kell vinni. Ezeket a lejárati dátumokat kezelni kell tudni.
Egy valamit nem értek. Többször írtál php fájl-írásról. Nem tudom, miféle elképzelés van emögött, de ez semmiféle védelmet nem nyújt. Abban a pillanatban, amint a config.php-ban fizikailag beleíródnak a kapcsolódáshoz szükséges adatok, mindenki hozzáférhet az adatbázishoz, aki ismeri az oldal url-jét. Teljesen mindegy, hogy hogyan írod felül. FTP fájlfeltöltéssel, SSH-val, egyik php átírja a másik php-t a kiszolgálón stb... A webkiszolgálók így működnek. A php script könyvtár osztott erőforrás. Minden változás az össze kliensnél jelentkezik. Ezért nem értem, miért akarsz te php scripteket felülírni. Ez nem járható út. Nincs olyan, hogy php scripteket írsz felül X gépről egy webkiszolgálón, úgy, hogy másnál nem lesz látható ez a változtatás.
-
sztanozs
veterán
válasz
krisz67 #18415 üzenetére
Kérdés, hogy mire kellenek a kapcsolódási adatok. Felhasználónkét változhat a szerver, vagy az adatbázis? Vagy csak a felhasználónevet és jelszót kell bekérni? Miért nem lehet egyszer megadni (vagy miért nem paraméterezett, ha szeretnéd a felhasználónevet vagy jelszót beilleszteni a connection string-be).
-
fordfairlane
veterán
válasz
krisz67 #18412 üzenetére
Szerintem munkamenetbe mentsd el. A munkamenetbe mentett adatok megmaradnak egészen addig, amíg a böngésző be nem zárul.
A munkamenet használata nagyon zanzásítva a következő:
Minden oldalon el kell indítani a PHP beépített munkamenet-kezelőjét. Ez ha nem automatikus, már pedig alapból nem szokott, akkor minden oldal futtatását egy
session_start();
-tal kell indítani. Ezután a PHP scripted hozzáfér egy $_SESSION nevű tömbhöz. Ezt a tömböt úgy használhatod, mint egy szimpla assszociatív PHP arrayt-t. Tehát mondjuk beleírod azt, hogy
$_SESSION["felhasznalonev"] = $_POST["felhasznalonev"];
Egy másik PHP script elején kiadod a session_start()-ot, utána máris ellenőrizheted, hogy a $_SESSION-ben benne vannak-e a szükséges adatok. Ha nincsenek, akkor át lehet irányítani az adatbekérő-formra.
-
fordfairlane
veterán
válasz
krisz67 #18407 üzenetére
Szerintem egyszerűbb lenne, hogyha leírnád emberi nyelven, hogy mit akarsz, mert az edit.php feltölti a connect.php-t, a form. php meg feltölti a connect.php hiányzó részeit, ez első ránézésre úgy rossz, ahogy van. Az egész koncepciót hibásnak érzem.
Szóval a kérdés, mit szeretnél megvalósítani? Miért akarsz egy formon keresztül adatbázishozzáférési adatokat bekérni?
-
GG888
senior tag
válasz
krisz67 #18404 üzenetére
<form method="post" action="connect.php">
<input type="text" name="felhasznalonev" placeholder="Felhasználónév">
...
</form>connect:
$_POST['felhasznalonev']
-ként fogod tudni majd elérni.
De jó lenne ha validálnál, meg vizsgálnád miket küldenek át.Valami ilyesmit akartál? Vagy írjuk meg az egészet?
Új hozzászólás Aktív témák
Hirdetés
- Azonnali készpénzes Apple Macbook Air felvásárlás személyesen / csomagküldéssel korrekt áron
- ÁRGARANCIA! Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- Bowers/Wilkins Px7 S2 fejhallgatók
- Dell Latitude 5495 Full HD IPS Ryzen 5 pro 2500u Radeon Vega Mobile Gfx i5-8350u verő Bp MPL Foxpost
- BESZÁMÍTÁS! VALVE Steam Deck LCD 1TB SSD kézikonzol garanciával hibátlan működéssel
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest