管理者 (管理者フォーム) としてログインすると、エラー: 管理者ログインが表示され続けます。顧客はまだテーブル (db_table_customers) を持っていません。
編集:Wampを使用すると、これが得られます
( ! ) Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\dev6\login.php on line 36
Call Stack
# Time Memory Function Location
1 0.0003 692264 {main}( ) ..\login.php:0
2 0.0121 710400 mysqli_num_rows ( ) ..\login.php:36
36行目は$rows = mysqli_num_rows($result);
また、var_dump() で $result と $row を実行すると、Web ブラウザーに次のように出力されます。
ブール偽
ヌル
これは、login.php が、db_table_admins テーブルの admin に提供されたログインと一致しないことを意味します。しかし、私は管理者に正しいログイン情報を提供しています。何度もチェック。
形
<form name="admin_login" method="POST" action="login.php">
<h3>Admin:</h3>
Username: <input type="text" id="username" name="admin_login[username]"><br>
Password: <input type="password" id="password" name="admin_login[password]"><br>
<input type="submit" name="admin_submit" value="Login">
</form>
<form name="customer_login" method="POST" action="login.php">
<h3>Customer:</h3>
Username: <input type="text" id="username" name="customer_login[username]"><br>
Password: <input type="password" id="password" name="customer_login[password]"><br>
<input type="submit" name="customer_submit" value="Login">
</form>
ログイン.php
<?php
require('connection.inc.php');
$username = null;
$password = null;
$administrator = false;
$result = null;
$link = mysqli_connect($db_host, $db_username, $db_password, $db_database) or die("Can't connect");
if(isset($_POST['admin_submit'])){
$administrator = true;
$username = $_POST['admin_login']['username'];
$passname = $_POST['admin_login']['password'];
}else{
$username = $_POST['customer_login']['username'];
$passname = $_POST['customer_login']['password'];
}
if($administrator){
$query = "SELECT * FROM $db_table_admins WHERE username='$username' AND password='$password'";
$result = mysqli_query($link, $query);
$rows = mysqli_num_rows($result);
if($rows == 1){
$_SESSION['admin'] = true;
header("location:login_success.php");
}else{
echo "Error: admin login";
}
}else{
$query = "SELECT * FROM $db_table_customers WHERE username='$username' AND password='$password'";
$result = mysqli_query($link, $query);
$rows = mysqli_num_rows($result);
if($rows == 1){
$_SESSION['admin'] = false;
header("location:login_success.php");
}else{
echo "Error: customer login";
}
}
?>