Ich versuche, eine Seite zu machen, um ein Passwort in der Datenbank zu ändern. ich das Formular aus, und das ist der PHP-Code:PHP mysqli_query() zu PDO
if(isset($_POST['btn-newpass']))
{
$username = strip_tags($_POST['username']);
$password = md5(strip_tags($_POST['password']));
$password_new = md5(strip_tags($_POST['password_new']));
$password_new_conf = md5(strip_tags($_POST['password_new_conf']));
$password_in_db= mysqli_query("SELECT password FROM utilizatori WHERE username='$username'");
if(!$password_in_db)
{ echo "The entered username doesn't exist";}
elseif($password!=$password_in_db)
{ echo "The current password is wrong";}
if($password_new == $password_new_conf)
{$sql = mysqli_query("UPDATE utilizatori SET password='$password_new' WHERE username='$username'");}
if($sql)
{ echo "Changed successfully!";}
else
{ echo "The passwords do not match";}
}
Wenn ich versuche, ein Passwort ich folgende Fehlermeldungen erhalten zu ändern:
Warning: mysqli_query() expects at least 2 parameters, 1 given in A:\XAMPP\htdocs\testing\change_password.php on line 10
The entered username doesn't exist
Warning: mysqli_query() expects at least 2 parameters, 1 given in A:\XAMPP\htdocs\testing\change_password.php on line 18
Passwords do not match
In connection.php Ich habe den folgenden Code:
class Database
{
private $host = "localhost";
private $db_name = "atlx";
private $username = "root";
private $password = "";
public $conn;
public function dbConnection()
{
$this->conn = null;
try
{
$this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $exception)
{
echo "Connection error: " . $exception->getMessage();
}
return $this->conn;
}
}
Könnte jemand mich darauf hinweisen, was hier falsch ist?
EDIT:
erkannte ich die Verbindung zur Datenbank wird über PDO erfolgen. Wie kann ich den PHP-Code konvertieren, um mit PDO zu arbeiten?
versuchen, die Dokumentation zu lesen: http: //php.net/manual/de/mysqli.query.php – Jens
Bitte nicht __Rollen Sie Ihr eigenes Passwort hashing.PHP bietet [ 'password_hash()'] (http://php.net/manual/en/function.password-hash.php) und [ 'password_verify()'] (http://php.net/manual/ en/function.password-verify.php) benutze sie bitte. Und hier sind einige [gute Ideen über Passwörter] (https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet) Wenn Sie eine PHP-Version vor 5.5 verwenden [gibt es ein Kompatibilitätspaket hier] (https : //github.com/ircmaxell/password_compat) – RiggsFolly
Einige sinnvolle Codeeinrückung wäre eine gute Idee. Es hilft uns, den Code zu lesen und, was noch wichtiger ist, es wird Ihnen helfen ** Sie debuggen Ihren Code ** [Werfen Sie einen Blick auf einen Kodierungsstandard] (http://www.php-fig.org/psr/psr-2/) zu Ihrem eigenen Vorteil. Sie werden möglicherweise aufgefordert, diesen Code in ein paar Wochen/Monaten zu ändern, und Sie werden mir am Ende danken. – RiggsFolly