Autor | Zpráva | ||
---|---|---|---|
Routh Profil * |
#1 · Zasláno: 14. 7. 2009, 21:50:27
Dobrý den, z netu jsem si sehnal jak dát dohromady registrace a přihlášení, zakomponoval jsem to do sebe, nastavil podmínky a funguje, přihlásím se na obsah který je určen jen přihlášeným. Jen to chci mít vychytané a pokud zadám špatně login, aby mi to vypsalo někde chybu, ale jelikož kód je rozkouskovaný do souborů, tak se mi to nepodařilo.
Zkoušel jsem formulář se skriptem i logoutem dát do jedné stránky, jenže to pak nešel volat logout (nebo to nevím), dobře to by nevadilo nešel by logout, ale zarazilo mě pokud jsem pod formulář dal echo proměné, která se uložila pod podmínkou špatných údajů, že při:" $off = "Špatné údaje"; " mi vůbec strának nenaběhla, browsery FF, IE i Opera nenavázala spojení jen kvulí tomuto. Pokud víte jak na to, přez nějakou funkci, budu rád když poradíte. Jinak kdyby se našel ochota co by mi na tom základ vysvětlil, byl bych moc vděčný, páč z návodů ne a né tomu přijít na kobylku. index.php Obsah + podmínka na postranní panel <? if($_SESSION['prihlaseni']== 1){ include('admin_panel.php'); } else { include('login.php'); } ?> tyto podmínky mám v obou souborech pro obsah: novinky a kontakt, prozatím řeším jen podmínkou přihlášení, dále podle práv. (až tohle zmáknu) includovaný login.php <form action="login_zpracuj.php" method="post"> <tr><td> </td></tr> <tr> <td><input type="text" name="nick"></td> </tr> <tr> <td><input type="password" name="heslo"></td> </tr> <tr> <td><input type="submit" name="submit" value="Přihlásit"> <a href="index.php?s=registrace">Registrace</a></td> </tr> <tr> <td> <!--- ZDE bych chtěl vypisovat hlášku špatných údajů ---> </td> </tr> </form> login_zpracuj.php <?php session_start(); include "connect.php"; $login = $_POST["nick"]; $heslo = $_POST["heslo"]; $md5heslo = md5($heslo); $dotaz = mysql_query("select * from uzivatele where login = '$login' and heslo = '$md5heslo'"); $overeni = mysql_num_rows($dotaz); $row = mysql_fetch_array($dotaz); $_SESSION['prihlaseni'] = 1; if($overeni == 1) { $_SESSION['login'] = $login; $_SESSION['id'] = $row["id"]; header("Location: index.php?s=news"); die(); } else { header("location: logout.php"); } ?> a logout.php <?php session_start(); session_destroy(); header("location: index.php"); ?> |
||
tiso Profil |
#2 · Zasláno: 14. 7. 2009, 22:12:38 · Upravil/a: tiso
login_zpracuj.php riadok 25 zmeň na
header("location: index.php?error=bad_login"); login.php riadok 15 zmeň na <?php if(isset($_GET['error']) AND $_GET['error'] == bad_login){echo 'nesprávné meno nebo heslo';} ?> |
||
joe Profil |
#3 · Zasláno: 14. 7. 2009, 22:58:34
tiso
Nechybí ti tam náhodou uvozovky/apostrofy? $_GET['error'] == 'bad_login' Mimo to, raději to doporučuju ukládat do sessions (pokud fungují :-)) |
||
tiso Profil |
#4 · Zasláno: 14. 7. 2009, 23:02:13
joe: chýbajú
|
||
fuckin Profil |
#5 · Zasláno: 14. 7. 2009, 23:03:27
proc by nefungovali kdyz s nema pracuje? Pres get je to nejidealnejsi, takze souhlasim s Tisem.
|
||
tiso Profil |
#6 · Zasláno: 14. 7. 2009, 23:05:45
fuckin: - som tiso, nie Tiso
|
||
Routh Profil * |
#7 · Zasláno: 14. 7. 2009, 23:13:29
Mno udělla jsme to, ale radši byhc to řešil asi sessionami, když už je tam mam, jinak toto řešení skrze GET nefunguje, i přes špatné údaje to příhlásí :-D
on-line verze ZDE s GET. |
||
tiso Profil |
#8 · Zasláno: 14. 7. 2009, 23:19:05
Routh: $_SESSION['prihlaseni'] = 1; si daj až do vnútra if, a do else si daj $_SESSION['prihlaseni'] = 0;
|
||
joe Profil |
#9 · Zasláno: 14. 7. 2009, 23:33:54
tiso
Já si všiml, jen bych se teď u PHP ničemu nedivil :-) fuckin Protože asi sis nevšiml, ale já tu zakládal dvě diskuse na téma, že mi nefungují, proto jsem to tam prřipsal Se sessions je ta výhoda, že nemusí být v url nic navíc a celkově to řešení se mi líbí víc. Routh Před přesměrování (header) dáš řádek třeba $_SESSION['prihlaseni'] = false; jak píše tiso. A pak na místě, kde je máš vypsat vložíš kód <?php if(isset($_SESSION['prihlaseni']) AND $_SESSION['prihlaseni'] === false){echo 'nesprávné meno nebo heslo'; unset($_SESSION['prihlaseni']); } ?> |
||
Routh Profil * |
#10 · Zasláno: 15. 7. 2009, 09:41:50
A co stím přesměrováním s funkcí GET ?
<?php if(isset($_GET['error']) AND $_GET['error'] == 'bad_login'){echo 'nesprávné meno nebo heslo';} ?> Mohl by tu prosím někdo napsat co to má udělat ? po bodech ? Pak to z toho pochopím, Díky. |
||
tiso Profil |
#11 · Zasláno: 15. 7. 2009, 09:43:19
Routh: veď som ti to napísal v [#2]
|
||
Routh Profil * |
#12 · Zasláno: 15. 7. 2009, 09:44:54
Díky moc, už to funguje, projdu si to, snad to pochopím :-) asi budu googlit, a jinak co říkáte na ten kód ? Dal by jse použít ještě s právy ? Nebo je to nejprimitivnější řešení nezabezpečené ? Díky za Vaše rady a nápady.
|
||
Časová prodleva: 15 let
|
0