私がやろうとしているのは、ログイン後、アクセスレベルに基づいて、さまざまなランディングページをセットアップすることです。もちろん、PHPとMySQLについて話している:)
users テーブルを持つデータベースがあり、users テーブルには基本的に 3 つのフィールドがあります。
user,pass,access
そして私は2つの基本アクセスレベルを持っています:
(1=user, 5=admin)
ここでもオンラインでいくつかの例を見つけましたが、何らかの理由でそれを機能させることができませんでした。ここで私が得たもの:
login.php
<form id="form" name="form" method="POST" action="login_engine.php">
<p>Please enter your login information:</p>
<label>User</label><input type="text" name="Username" id="Username" />
<label>Password</label><input type="password" name="Password" id="Password" />
<input name="submit" type="submit" id="submit" value="Login">
</form>
これがエンジンです:
<?php
include "connect.php";
// username and password sent from form
$MyUsername = $_POST['Username'];
$MyPassword = $_POST['Password'];
$sql="SELECT * FROM tbl_users WHERE user=$MyUsername and pass=$MyPassword";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count===1){
// Register $myusername, $mypassword and redirect to file "home.php"
session_register("user");
session_register("pass");
while($row = mysql_fetch_array($result))
{
if($row['access']=='5')
{
header("home1.php");
}
else
{
header("home2.php");
}
}
} else {
echo "Invalid! Please try again PC.";
echo "<br>";
echo $_POST['Username'];
echo "<br>";
echo $MyUsername;
echo "<br>";
echo $_POST['Password'];
echo "<br>";
echo $MyPassword;
echo "<br>";
echo $sql;
echo "<br>";
echo $result;
echo "<br>";
echo $count;
}
//mysql_close();
?>
これは出力です:
Invalid! Please try again PC.
userdemo
userdemo
mypassword
mypassword
SELECT * FROM tbl_users WHERE user=userdemo and pass=mypassword
何かが間違っていることを示す最初の兆候は、変数 $result と $count がエラー メッセージに出力されていないことです (その後、いくつかのメッセージを表示していましたが、コードを大幅に変更したため、何をしたかを見失い、表示を停止しました情報ですが、$result は "... #4" のように表示され、$count は "0" と表示されていたことを覚えています。)
PHPスクリプトの最後に行くので、何かが間違っていることを理解しています.最後のelseですが、$sql
正しいようです(ここで間違っている可能性があります)。
ここで何が間違っているのか誰にも分かりますか?