0

こんにちは、簡単なログイン システムを作成しようとしました。(mysqlなし)。私のコードの何が問題なのかわからないので、誰かが私を助けてくれるかどうか疑問に思っていました.

<?php
$user=" ";
$password=" ";
if(isset($_POST['submit'])){

if(($_POST['user'] == $user) and ($_POST['password'] == $password)){
    echo "successful login!";
    }
    else
    {
    echo "Bad Login.";
    }
}
?>
<html>
    <input type="text" name = "user" value = "username" />
    <br>
    <input type="password" name = "password" value = "password" />
    <br>
    <input type="submit" name = "submit" value = "login"/ >
</html>

ログインボタンをクリックしても何も起こりません。ありがとうございました

4

5 に答える 5

3

=同等性 ( ) をチェックするのではなく、値( ) を割り当てています==。交換してみる

$_POST['user'] = $user 
$_POST['password'] = $password

$_POST['user'] === $user
$_POST['password'] === $password

また、間違ったログインと間違ったパスワードに対して異なるエラーを出力していないため、チェックを 1 行にまとめることができます。

if ($_POST['user'] === $user && $_POST['password'] === $password) {
    echo "Bad Login.";
} else {
    //Your other output here
}
于 2013-03-12T20:08:12.443 に答える
1
if($_POST['password'] = $password)

次のようにする必要があります。

if($_POST['password'] == $password)

if($_POST['user'] = $user)

する必要があります:

if($_POST['user'] == $user)

単一の等号は値を割り当てますが、2 はそれらを比較します。

それに HTML フォームもありません。

<html>
<form method="POST">
<input type="text" name = "user" value = "username" />
<br>
<input type="password" name = "password" value = "password" />
<br>
<input type="submit" name = "submit" value = "login"/ >
</form>
</html>
于 2013-03-12T20:07:38.183 に答える
1

既にご存じのとおり、==代わりに を使用する必要があり=ます。しかし、ここにコメントがあります(コメントではコードをインデントできないため、回答として投稿します)

使わない理由

if(($_POST['user'] == $user) and ($_POST['password'] == $password)){
  echo 'success';
  }
else{
  echo 'Bad login';
  }
于 2013-03-12T20:11:30.697 に答える
0

PHP と、IF を使用することがわかっているすべての言語では、2 つの等号 (==) を使用します。ちょうど代入演算子です。したがって、コードは次のようになります。

<?php
    $user="teamhijack";
    $password="@#@#Password@#@#";
    if(isset($_POST['submit'])){

    if($_POST['user'] == $user){

    if($_POST['password'] == $password){
        echo "successful login!";
        }
        else
        {
        echo "Bad Login.";
        }
        }
        else
        {
        echo "Bad Login.";
        }
    }
    ?>
    <html>
        <input type="text" name = "user" value = "username" />
        <br>
        <input type="password" name = "password" value = "password" />
        <br>
        <input type="submit" name = "submit" value = "login"/ >
    </html>

常に 1 つが等しいことを覚えておいてください。IE: ($a = "こんにちは、世界!";)

2 つの等号は等号演算子です。IE: ("d" == "d") の場合

于 2013-03-12T20:10:24.950 に答える
0

HTML フォームがありません。

<form method="POST">
  <input type="text" name = "user" value = "username" />
  <br>
  <input type="password" name = "password" value = "password" />
  <br>
  <input type="submit" name = "submit" value = "login"/ >
</form>

さらに、未定義のインデックス通知を受け取っていない場合..エラー報告をオンにするerror_reporting(E_ALL);と、確かに..

isset();このステートメントを使用して、これらの通知を最小限に抑えます。

if (isset($_POST['submit']))
{
 // Carry on the login
} 

==さらに、演算子を使用して、if ステートメントとのより正確な一致を探します。

if($_POST['user'] == $user){
于 2013-03-12T20:11:08.927 に答える