私はPHPの初心者ですので、このログインスクリプトでは多くのセキュリティ上の欠陥が存在します。しかし、心配しないでください。私は一度これを修正すると固定されたものを手に入れます。ここに私のログインPHPスクリプトがあります。PHPログインスクリプトで行が選択されない
<?php
$error='';
if(isset($_POST['submit'])){
if(empty($_POST['username']) || empty($_POST['password'])) {
$error = "Username or Password is Invalid";
echo "<script type='text/javascript'>alert('$error');</script>";
}
else {
$user = $_POST['username'];
$pass = $_POST['password'];
$servername = "localhost";
$username = "id1394453_users";
$password = "password";
$database = "id1394453_users";
$conn = mysqli_connect($servername, $username, $password, $database);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$query = mysqli_query($conn, "SELECT * FROM Users WHERE user='username' AND pass='password'");
$rows = mysqli_query($conn, $query);
if (mysqli_num_rows($rows) == 1) {
header("Location: Home.html");
}
else {
$error = "Username of Password is Invalid";
echo "<script type='text/javascript'>alert('$error');</script>";
echo "<script type='text/javascript'>alert('$user');</script>";
echo "<script type='text/javascript'>alert('$pass');</script>";
echo "<script type='text/javascript'>alert('$rows');</script>";
}
mysqli_close($conn);
}
}
?>
私はそれがMySQLデータベースに接続すると、すべての変数が正しいことだということを確認するためにチェックしています。 (mysqli_num_rows($行)== 1){
は、それが他の経路をとる場合には、ライン26
に達したとき。それは私が望むものではありません。あなたが見ることができるように、私は何値$行があったかを確認するためにチェックし、それは何もなかった。それで、私の注意を25行目にします。
$行= mysqli_query($ conn、$ query);
私はすでに$ connをテストして接続が正しく機能していることを確認しています。これは、行23で定義されている$ query veriableにつながります。
$ query = mysqli_query($ conn、 "SELECT * FROM Users WHERE user = 'username' AND pass = 'password'");
これは私が思うところに問題がある場所です。問題は何が間違っているのか分かりません。テーブルは「ユーザー」と呼ばれ、私が望む列は「ユーザー名」と「パスワード」と呼ばれます。だからええ。私はここで間違って何をしていますか?
あなたが二回 – nogad
私はこの事は、ライブつもりはない願ってクエリを実行します。 *それはありますか?* –