Autor | Zpráva | ||
---|---|---|---|
cernajs Profil |
#1 · Zasláno: 2. 1. 2012, 17:34:29
Zdravím prosím vás sem úplný začátečníka potřeboval bych na stránky udělat přihlášení třeba pomocí souboru a nevím jak na to tak jestli by mi někdo byl ochotný napsat jak to má být. Mockrát děkuji.
|
||
Alphard_ Profil * |
#2 · Zasláno: 2. 1. 2012, 17:45:27
Pomocí souborů je to obtížnější než s databází. Řešení s db je v místním FAQ, ale jen to přihlášení, registraci si musíte udělat sám (ale je to jen jednoduchý insert).
|
||
cernajs Profil |
#3 · Zasláno: 2. 1. 2012, 17:49:08
Mě by stačilo jenom do textáku napsat třeba jméno heslo a tím by se daná osoba přihlásila ale nevím jak an to vůbec.
|
||
martin1312 Profil |
#4 · Zasláno: 3. 1. 2012, 14:32:02
Pred 2 dnami som nieco take riesil, na nete je vela dostupnych rieseni ale nic mi nevyhovovalo tak som si nakodil nieco sam. Potreboval som to na prihlasenie do administracie jednej mojej stranky, takze je to urcene iba pre jedneho pouzivatela. Nemam to nejak specialne testovane na blbovzdornost, ale kedze to pouzivam iba ja, tak mi to staci.
A teraz nieco blizsie ku scriptu: -prihlasovanie a overovanie, ci je uzivatel prihlaseny je riesene pomocou SESSION -heslo a uzivatelske meno su ulozene v subore config.php -stranka prihlasenie.php obsahuje prihlasovaci formular, ten sa spracuje suborom login.php. Ak heslo suhlasi, presmeruje na stranku index.php - tajna stranka, ktoru mozu vidiet iba prihlaseny ludia. - ak login.php vyhodnoti zadane udaje ako nespravne, presmeruje spat na stranku prihlasenie.php a tam sa objavi aj upozornenie cervenou farbou, ze su zadane zle prihlasovacie udaje. -ak chces mat viac stranok, ktore mozu vidiet iba prihlaseny ludia, kazdu stranku uprav ako je upraveny index.php (hore je php kod na overenie platnosti session) -po odchode zo stranky je potrebne sa odhlasit. Odhlasit sa mozes aj na stranke prihlasenie.php (tam sa overuje, ci je uzivatel prihlaseny alebo nie) alebo aj na hociakej inej stranke, pridaním odkazu s linkom www.svojastranka.sk/login.php?odhlasit zdrojaky: prihlasenie.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Prihlasenie</title> <style type="text/css"> <!-- .red {color: #FF0000} --> </style> </head> <body> <?php session_start(); $error = htmlspecialchars($_GET['error']); if($error == '1') echo '<p class="red">Nezadali ste správne prihlasovacie údaje</p>'; $logout = htmlspecialchars($_GET['logout']); if($logout == '1') echo '<p class="red">Boli ste odhlásený.</p>'; if((isset($_SESSION["prihlaseny"])) && $_SESSION["prihlaseny"]===1) { echo '<p class="red">Ste prihlásený:</p>'; echo '<p>- <a href="http://'.$_SERVER["HTTP_HOST"].'/login.php?odhlasit">Odhlásiť</a></p>'; echo '<p>- <a href="http://'.$_SERVER["HTTP_HOST"].'/index.php">Utajená stránka</a></p>'; } ?> <form action="login.php" method="post"> <label for="meno">Prihlasovacie meno: </label> <input type="text" name="user_meno" id="meno" /> <label for="heslo">Heslo: </label> <input type="password" name="user_heslo" id="heslo"/> </p> <p> <input type="hidden" name="action" value="login" /> <input name="submit" id="odoslat" type="submit" value="Prihlásiť sa" /> </p> </form> </body> </html> login.php <?php session_start(); include 'config.php'; //obsahuje prihlasovacie meno a spravne heslo $user_meno = htmlspecialchars($_POST['user_meno']); //osetrenie vstupu z formularu pred nebezpecnymi znakmi $user_heslo = htmlspecialchars($_POST['user_heslo']); //osetrenie vstupu z formularu pred nebezpecnymi znakmi if(isset($_POST["submit"])){ //ak je odoslany formular if($_POST["action"] == 'login'){ //kontrola hidden imputu if($user_meno!='' && $user_heslo!=''){ //ak nie su prazdne polia mano a heslo if(($user_meno == $uzivatel) && ($user_heslo == $heslo)){ //ak je meno zhodne s prihlasovacim menom, a heslo so spravnym heslom session_regenerate_id(); //ochrana pred utokom na session $_SESSION["prihlaseny"]=1; header("Location: http://".$_SERVER["HTTP_HOST"]."/index.php"); //presmeruje sa na index stranku administracie exit; } else { header("Location: http://".$_SERVER["HTTP_HOST"]."/prihlasenie.php?error=1"); //ak nie je spravne meno a heslo, presmeruje spat na prihlasovaci formular (tam sa vypise chybova hlaska) exit; } } else { header("Location: http://".$_SERVER["HTTP_HOST"]."/prihlasenie.php?error=1"); // -||- exit; } } else { header("Location: http://".$_SERVER["HTTP_HOST"]."/prihlasenie.php?error=1"); // -||- exit; } } if(isset($_GET["odhlasit"])){ //odhlasenie session_destroy(); header("Location: http://".$_SERVER["HTTP_HOST"]."/prihlasenie.php?logout=1"); //ak sa odhlasuje, presmeruje na prihlasovaci formular, nastavi prem. logout exit; } ?> config.php <?php $uzivatel = "nejake_uzivatelske_meno"; //uzivatel $heslo = "123"; //heslo uzivatela ?> index.php <?php session_start(); if(!isset($_SESSION['prihlaseny'])) die ('Nepovoleny pristup');?> <!--kontrola, ci si stranku pozera prihlaseny clovek--> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Stránka dostupná iba pre prihlásených</title> </head> <body> <h1>Stránka dostupná iba pre prihlásených </h1> <p>Nejaký tajný obsah </p> </body> </html> |
||
cernajs Profil |
#5 · Zasláno: 3. 1. 2012, 17:08:16
martin1312:
Díky moc sice už mám něco přes setcookie ale to není nějak ošetřeno takže určitě si mi moc pomohl s tímhle. Ještě jednou díky :-) |
||
Joker Profil |
#6 · Zasláno: 3. 1. 2012, 17:15:54
cernajs:
Poznámka, v Nejčastějších potížích s PHP je skript pro registraci a přihlašování uživatelů, včetně obsáhlých komentářů. Ten nevyhovuje? |
||
cernajs Profil |
#7 · Zasláno: 3. 1. 2012, 17:17:52
Joker:
Nechtěl sem to dělat přes db kvůli jednomu člověku kdyby jich tam mělo mít přihlášení více tak bych to přes ní udělal. |
||
martin1312 Profil |
#8 · Zasláno: 3. 1. 2012, 17:37:50
cernajs:
jasne, da sa to aj cez COOKIE. To by si potom overoval ci je nastavena premenna $_COOKIE['nieco'] . V podstate by to vyzera tak isto ako to moje so session, akurat by si to ponahradzal premennou cookie. Podla mna je ale pouzitie Session bezpecnejsie, preto to mam tak, ako mam. A som rad, ze ti to pomohlo. Joker: aj ked to nebolo adresovane mne, ale pomohol si mi :D take prihlasovanie s registraciou som hladal (na ine vyuzitie, ako ten co som dal ja). |
||
Joker Profil |
#9 · Zasláno: 3. 1. 2012, 18:19:15 · Upravil/a: Joker
martin1312:
„aj ked to nebolo adresovane mne, ale pomohol si mi“ Svým způsobem bylo :-) Jsem zastáncem toho psát do příspěvků i informace, které sice nejsou nezbytné k řešení aktuálního problému aktuálního tazatele, ale nejspíš by tazateli pomohly se vyvarovat dalších problémů, anebo se vyhnout stejnému problému příště, anebo by byly užitečné jiným lidem se stejným problémem. Těší mě, že to funguje. edit: No fuj, hrubka. Opraveno. |
||
martin1312 Profil |
#10 · Zasláno: 3. 1. 2012, 20:18:37
aj tak dik :)
ak mozem jednu otazku ohladom prihlasovania a ukadania hesla do databazy. je nejaky rozdiel medzi tym, ked v php urobim MD5($heslo) a to poslem to db alebo mam v db stlpec MD5'heslo' ? Niekde som to takto videl, ale uz to neviem najst. |
||
Časová prodleva: 12 let
|
0