Autor | Zpráva | ||
---|---|---|---|
kotrba Profil * |
#1 · Zasláno: 11. 1. 2009, 14:46:00
Ahoj mam tento script pro prihlaseni uzivatele:
<?php setcookie('txtjmeno', '', time()); setcookie('txtheslo', '', time()); include "config.php"; // zde je include souboru s konstantami mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD); mysql_select_db(SQL_DBNAME); $sql = "SELECT admin_heslo FROM login WHERE admin_jmeno='{$_REQUEST['txtjmeno']}'"; $vysledek = mysql_query($sql); if (!$vysledek): echo "overeni nelze pouzit"; exit; endif; if (!mysql_num_rows($vysledek)): echo "uzivatel nenalezen"; exit; else: if (mysql_result($vysledek, "admin_heslo") != $_REQUEST['txtheslo']): echo "nespravne heslo"; else: setcookie('txtjmeno'. $_REQUEST['txtjmeno'], time()+3600); setcookie('txtheslo'. $_REQUEST['txtheslo'], time()+3600); endif; endif; ?> 1: Kdyz vyplnim admin jmeno spatne tak me to nepusti dal coz je v poradku, ale jakmile ho vyplnim dobre, tak uz nemusim vyplnovat heslo, a nebo ho staci vyplnit spatne a stejne me to pusti dal. Nevite kde je chyba? 2: A dal bych potreboval poradit jak to osetrit proti sql_injection Dekuji |
||
Kalby Profil |
#2 · Zasláno: 11. 1. 2009, 15:01:30
Dopln sql dotaz :
$sql = "SELECT admin_heslo FROM login WHERE admin_jmeno='{$_REQUEST['txtjmeno']}' AND admin_heslo='{$_REQUEST['txtheslo']}'"; admin_heslo zmen podle nazvu sloupce v databazi |
||
kotrba Profil * |
#3 · Zasláno: 11. 1. 2009, 17:42:34
<?php session_start(); $jmeno = $_POST["txtjmeno"]; $heslo = $_POST["txtheslo"]; if (empty($jmeno) || empty($heslo)) { echo("Nezadali jste jmeno nebo heslo"); Header("Location: index.php"); } else { include ("config.php"); $connect = mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD); mysql_select_db(SQL_DBNAME); $zaznam = mysql_query("SELECT admin_jmeno FROM login WHERE admin_jmeno = '" . $jmeno . "' AND admin_heslo = '" . $heslo . "'", mysql_real_escape_string($jmeno), mysql_real_escape_string($heslo)); $radku = mysql_num_rows($zaznam); if ($radku == 1) { echo('přihlášení úspěšné'); $_SESSION['prihlaseny'] = "1"; Header("Location: admin.php"); } else { Header("Location: index.php"); echo("Neplatne prihlasovaci udaje"); } mysql_close($connect); } ?> Predelal jsem takto script na prihlaseni a zkusil jsem ho osetrit proti sql_injection ale asi tam mam nekde chybu, protoze ted se mi nepodari prihlasit. Zamenil jsem radek: $zaznam = mysql_query("SELECT admin_jmeno FROM login WHERE admin_jmeno = '" . $jmeno . "' AND admin_heslo = '" . $heslo . "'"); Timto: $zaznam = mysql_query("SELECT admin_jmeno FROM login WHERE admin_jmeno = '" . $jmeno . "' AND admin_heslo = '" . $heslo . "'", mysql_real_escape_string($jmeno), mysql_real_escape_string($heslo)); A ted mi to nic nedela mam to osetreni spravne a nebo co mam spatne? Diky |
||
kotrba Profil * |
#4 · Zasláno: 11. 1. 2009, 20:42:59
Mohl by mi prosi nekdo poradit jak to osetrit?
|
||
Časová prodleva: 15 let
|
0