我的问题是在登录php中,bind_param()中缺少一个参数/元素,但是我已经阅读了很多时间的代码而且我100%认为代码应该可以工作!要求学校的朋友查看代码,但即使他说代码应该有效。 问题儿童"是$ stmt - > bind_param(" ss",$ benutzername,$ password); 整个代码在
之下<?php
session_start();
require_once "db.inc.php";
require_once "redirect.inc.php";
$benutzername ="";
$password = "";
$err_message ="";
// Es wurde auf den submit Button geklickt
if (isset($_GET['submit'])) {
if (isset($_GET['benutzername']))
{
$benutzername = $_GET['benutzername'];
}
else {
$err_message .= 'Wert für Feld Benutzername fehlt.\r\n';
}
if (isset($_GET['password']))
$password = $_GET['password'];
else
$err_message .= 'Wert für Feld Passwort fehlt.\r\n';
//trim löscht leeren string
$benutzername = trim($benutzername);
$password = trim($password);
if ($benutzername == "")
$err_message.= 'Das Feld Benutzername darf nicht leer sein.\r\n';
if ($password =="" )
$err_message.= 'Das Feld Passwort darf nicht leer sein.\r\n';
if ($err_message =="") {
// Verbindung zur Datenbank herstellen
$conn = new mysqli($db_server, $db_user, $db_password, $db_name);
// SQL Statemet definieren
$sql = "SELECT user_benutzername, user_passwort FROM u_user WHERE user_benutzername= '?' AND user_passwort= '?'";
// Prüfen ob das Herstellen der Verbindung geklappt hat
if ($conn -> connect_error) {
trigger_error('Database connection failed: ' . $conn -> connect_error, E_USER_ERROR);
} else {
// Zeichensatz ändern wegen ö, ü, ä, ß, usw.
$conn -> set_charset("utf8");
$result = $conn->query($sql) or die($conn->error);
// Datenbankoperation definieren
if ($stmt = $conn -> prepare($sql)) {
// Variablen an ? in SQL Kommando binden
//$md1password = hash('sha256',$password);
//$md5password = md5($password);
$stmt -> bind_param("ss", $benutzername, $password);
// Datenbankoperation ausführen
$stmt -> execute();
$result = $stmt -> get_result();
$row = $result -> fetch_assoc();
echo $row;
// Datenbank Attribute an Variablen binden
$stmt -> close();
if($benutzername == 'chef')
{
redirect('anzeigeadmin.php');
}
if ($row=="") {
$err_message.= 'Falsche Anmeldedaten';
} else {
$_SESSION['benutzername']=$benutzername;
redirect('anzeige.php');
}
} else {
trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $conn -> error, E_USER_ERROR);
}
$conn -> close();
}
} else {
// Die Seite wird nochmals angezeigt, wobei der Wert von Login eingesetzt wird.
//redirect('index.html');
echo $err_message;
}
}
?>