Autor | Zpráva | ||
---|---|---|---|
svasik Profil * |
#1 · Zasláno: 18. 11. 2008, 11:32:12
Ahoj, potřebuju udělat obyčejný přihlašovací formulář který bude do session ukládat méno a heslo... zkoušel jsem to... ale poněvadž nemám moc zkušeností, tak sem nejspíše někde udělal chybu :P... nemůžete mi někdo poslat hotový formulář (tabulka jméno uzivatele), nebo mi opravt alespoň řádek u kterého mi to háže chybu :)...:
<?php session_start(); ?> ... hlavička ... <?php include("include.php"); mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD); mysql_query("SET NAMES 'utf8_unicode_ci';"); mysql_select_db(SQL_DBNAME); if(!empty(mysql_query('select * from uzivatele where Jmeno='.$_POST["meno"])) && !empty(mysql_query('select * from uzivatele where heslo='.$_POST["heslo"]))) << v tomhle řádku je chyba :P << { echo "jste přihlášen"; ... pokračující skript ... |
||
zooner Profil |
#2 · Zasláno: 18. 11. 2008, 11:46:20
takhle by to mělo být, upravil jsem uvozovky
if(!empty(mysql_query("select * from uzivatele where Jmeno='$_POST["meno"]'")) && !empty(mysql_query("select * from uzivatele where heslo='$_POST["heslo"]'"))) |
||
bohyn Profil |
#3 · Zasláno: 18. 11. 2008, 12:03:51
svasik
Nevadi ti ze kdyz mas: uzivatel1 | heslo1 uzivatel2 | heslo2 tak se musez prihlasit jako: uzivatel1 | heslo2 ? Pouzij radsi tenhle dotaz: "SELECT jmeno FROM uzivatele WHERE jmeno = '".$_POST["meno"]."' AND heslo = '".$_POST['heslo']."'" |
||
svasik Profil * |
#4 · Zasláno: 18. 11. 2008, 12:53:43
Fatal error: Can't use function return value in write context in admin.php on line 14
... na lince 14 je momentálně toto: if(!empty(mysql_query("SELECT jmeno FROM uzivatele WHERE jmeno = '".$_POST["meno"]."' AND heslo = '".$_POST['heslo']."'"))){ |
||
bohyn Profil |
#5 · Zasláno: 18. 11. 2008, 13:02:53
$result = mysql_query("SELECT jmeno FROM uzivatele WHERE jmeno = '".$_POST["meno"]."' AND heslo = '".$_POST['heslo']."'"); if(mysql_num_rows($result) > 0) { // jste prihlasen } |
||
Wroxman Profil |
#6 · Zasláno: 18. 11. 2008, 13:02:53 · Upravil/a: Wroxman
Zkusil bych toto:
session_start(); $jmeno = $_POST["jmeno"]; $heslo = $_POST["heslo"]; if (empty($jmeno) || empty($heslo)) { exit("Nezadali jste jmeno nebo heslo"); } else { include ("include.php"); $connect = mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD); mysql_select_db(SQL_NAME); $query = mysql_query("SELECT jmeno FROM uzivatele WHERE jmeno = '" . $jmeno . "' AND heslo = '" . $heslo . "'); $radku = mysql_num_rows($radku); if ($radku == 1) { přihlášení úspěšné } else { exit("Neplatne prihlasovaci udaje"); } mysql_close($connect); } |
||
svasik Profil * |
#7 · Zasláno: 18. 11. 2008, 13:18:59
Dekuji vsem (pouzita verze od bohyn), uz je to vyreseno :)
|
||
svasik Profil * |
#8 · Zasláno: 18. 11. 2008, 13:53:19
dobry... naskyta se dalsi problem :)...
je takto spravne zapsane přiřazení do session?: $_SESSION['prihlasen'] = 1; na další stránce, na kterou se odkážu mám podmínku: <?php if($_SESSION['prihlasen'] == 1){ podmínka se ale chová jako by to nebyl pravda :(... což by měla protože přihlášení proběhlo úspěšně |
||
bohyn Profil |
#9 · Zasláno: 18. 11. 2008, 14:18:08
svasik
Na kazdy strance musis mit session_start() nez zacnes pouzivat $_SESSION |
||
jansfabik Profil |
#10 · Zasláno: 18. 11. 2008, 20:01:28
ještě si to ošetřete proti SQL Injection!
co když zadám například tohle: jméno: ' OR 1=1 OR ""=" heslo: " OR ""=' výsledný SQL příkaz: SELECT jmeno FROM uzivatele WHERE jmeno = '' OR 1=1 OR ""="' AND heslo = '" OR ""='' |
||
svasik Profil * |
#11 · Zasláno: 18. 11. 2008, 22:09:13
jak se ošetřim?
|
||
blaaablaaa Profil * |
#12 · Zasláno: 19. 11. 2008, 08:09:21
svasik:
ty se osetruj jak chces, ale proti sql injection pres addslashes |
||
bohyn Profil |
#13 · Zasláno: 19. 11. 2008, 08:30:19 · Upravil/a: bohyn
Osetreni promenych se provadi pres:
$promena = mysql_real_escape_string($promena); pred SQL dotazem, ale az po spojeni s databazi. |
||
Časová prodleva: 16 let
|
0