Diskuze: Přihlášení uživatele z databáze
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 8 zpráv z 8.
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
The mysql extension has been deprecated since PHP 5.5. The mysqli or PDO extension should be used instead. The deprecation has been decided in mysql_deprecation, where a discussion of the reasons behind this decision can be found.
Od verze PHP 7.0 jsou funkce mysql_
odstraněny.
Můžeš se podívat na následující seriál, používá se tam PDO.
https://www.itnetwork.cz/php/databaze
Zdravím,
místo
$pripojeni = mysqli_connect('localhost', 'root', '', 'sablona');
zadej
$pripojeni = mysqli_connect('127.0.0.1', 'root', '', 'sablona');
dále přepiš všechny mysql_real_escape_string na
mysqli_real_escape_string
a u mysql_num_rows:
$query = "SELECT * ....";
$dotaz = mysqli_query($con, $query);
$overeni = mysqli_num_rows($dotaz);
píšu z hlavy, kdyby to házelo další chybu, napiš
Děkuji, ale každopádně to háže warning a po zadání jména a hesla mě to nepřepojí na další stránku.
Warning:
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\sablona\sign.php on line 44
Zadal jsi špatný login nebo heslo!
<?php
$pripojeni = mysqli_connect('127.0.0.1', 'root', '', 'sablona');
$login = mysqli_real_escape_string($pripojeni,$_POST["jmeno"]);
$heslo = mysqli_real_escape_string($pripojeni,$_POST["heslo"]);
$query ="(SELECT * FROM uzivatele WHERE jmeno = ".$_POST["jmeno"]."','".$_POST["heslo"]."')";
$dotaz = mysqli_query($pripojeni, $query);
$overeni = mysqli_num_rows($dotaz);
if($overeni == 1) {
session_start();
$_SESSION['jmeno'] = stripslashes($login);
header("Location: administrace.php");
die();
} else {
echo"Zadal jsi špatný login nebo heslo!";
}
?>
s touhle hláškou mám pořád problém, vždy na to zapomenu. Řešení zde:
$dotaz = mysqli_query($pripojeni, $query) or die(mysqli_error($pripojeni));
Děkuji moc Hláška
zmizla, ale naskočila hned další
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '','123456')' at line 1
Chyba bude nejspíše zde
$query ="(SELECT * FROM uzivatele WHERE jmeno = ".$_POST["jmeno"]."','".$_POST["heslo"]."')";
Tentokrát zkus smazat ty závorky, nevím, jestli to k něčemu bude, ale
já je tam nepoužívám. Taky, jak se dívám, máš tam napsané, že hledáš
jméno, které odpovídá odeslaným datům, ale zároveň i heslu. Nemělo by
tam spíš být jmeno="..." AND heslo="..."? Jak máš v db název položky pro
heslo?
Taky může být chyba v syntaxi spojování řezezce $_POST, dej je do
proměnné a následně zapiš jmeno='$promenna'
Funkční.
Chyba byla v tom spojování řetězce. Napsal jsem to takto a funguje.
$promenalogin = $_POST["jmeno"];
$promenaheslo = $_POST["heslo"];
$query ="SELECT * FROM uzivatele WHERE jmeno = '$promenalogin' AND heslo='$promenaheslo'";
Mockrát děkuji
Zobrazeno 8 zpráv z 8.