Autor Zpráva
diesel_girl
Profil
Zdravím..
Podle návodu http://blog.tukni.cz/tvorba-www-stranek-php-mysql/jednoduche-prihlaseni-pomoci-php-a-mysql-2-2/ jsem si udělala jednoduché přihlášení do adminu.. Pokaždé když se pokusím přihlásit, vyhodí mi to hlášky:


Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampplite\htdocs\m2e\admin\login.php on line 8

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampplite\htdocs\m2e\admin\login.php on line 9


Kód (login.php):

<?php
require "pripojit.php";/* připojení k databázi */
$login = mysql_real_escape_string($_POST["jmeno"]);/* nick zadaný ve formuláři pro přihlašování */
$heslo = mysql_real_escape_string($_POST["heslo"]);/* heslo zadané ve formuláři pro přihlašování */
$md5heslo = md5($heslo);/* Pomocí funkce md5() heslo zahashujeme */
/* — DOTAZ K MYSQL PRO OVĚŘENÍ PŘIHLAŠOVACÍCH DAT — */
$dotaz = mysql_query("select * from zakaznici where login = '$login' and heslo = '$heslo'");
$overeni = mysql_num_rows($dotaz);
$row = mysql_fetch_array($dotaz);
if($overeni == 1) {
    session_start();
    $_SESSION['login'] = stripslashes($login);
    $_SESSION['id'] = $row["id"];
    header("Location: admin.php");
    die();
} else {

    echo"Zadal jsi špatný login nebo heslo!";
}
?>

Kde mám chybu?
pcmanik
Profil
diesel_girl:
Chyba je v tom sql dotaze. Skus si ho vypisat, ci je tam to co ocakavas.
diesel_girl
Profil
Aha... bylo to tam.. zaměnila jsem název sloupce v tabulce.. Díky
Šéva
Profil
Ahoj,
když tak koukám na ten kód tak zaheshovani hesla pomocí MD5 je tam zbytečné, když s tím pka dále nikde v dotazu nepracuješ...
nemělo být spíše takto?

<?php
require "pripojit.php";/* připojení k databázi */
$login = mysql_real_escape_string($_POST["jmeno"]);/* nick zadaný ve formuláři pro přihlašování */
$heslo = mysql_real_escape_string($_POST["heslo"]);/* heslo zadané ve formuláři pro přihlašování */
$heslo = md5($heslo);/* Pomocí funkce md5() heslo zahashujeme */
/* — DOTAZ K MYSQL PRO OVĚŘENÍ PŘIHLAŠOVACÍCH DAT — */
$dotaz = mysql_query("select * from zakaznici where login = '$login' and heslo = '$heslo'");
...
diesel_girl
Profil
Já jsem to smazala protože jsem zkoušela v čem je chyba a přepisovala jsem hesla ručně.. teď už mám zpátky..

require "pripojit.php";/* připojení k databázi */
$login = mysql_real_escape_string($_POST["jmeno"]);/* nick zadaný ve formuláři pro přihlašování */
$heslo = mysql_real_escape_string($_POST["heslo"]);/* heslo zadané ve formuláři pro přihlašování */
$md5heslo = md5($heslo);/* Pomocí funkce md5() heslo zahashujeme */
/* — DOTAZ K MYSQL PRO OVĚŘENÍ PŘIHLAŠOVACÍCH DAT — */
$dotaz = mysql_query("select * from zakaznici where login = '$login' and heslo = '$md5heslo'");

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: