2

ユーザー名とパスワードの2つのオプションのみを含むPHPとMySQLを使用して、単純なユーザーログインページを作成しています....そのためのコードは次のとおりです。

<form id="form1" name="form1" method="post" action="verify_user.php">
    <p align="center">Username :
        <input type="text" name="name" id="name" />
    </p>
    <p align="center">Password :
        <input type="password" name="pass" id="pass" />
    </p>
    <p align="center">
        <input type="submit" name="submit" id="submit" value="Login" />
    </p>
</form>
<h3 align="center" class="para">
<?php
if(isset($_GET['id'])) {
    echo $_GET['id'];
}
?>
</h3>

そして、これはユーザーのログイン/登録を行うverify_user.phpのコードです:

<?php
$uname = $_POST['name'];
$pass  = $_POST['pass'];
$qry   = mysql_query("SELECT * FROM login WHERE user='$uname'", $con);
if(!$qry) {
    die("Query Failed: ". mysql_error());
} else {

    $row=mysql_fetch_array($qry);

    if ($uname==$row['user']) {
        if($uname=='' || $pass=='') {
            header("Location:login.php?id=Some fields are empty");
        } else if($uname==$row['user'] && $pass==$row['password']) {
            header("Location: welcome.php?id=$uname");
        } else {
            header("Location:login.php?id=username already taken or your password is incorrect. Please try again");
        }
    } else {
        mysql_query("alter table login auto_increment = 1;");
        $qry_name=mysql_query("INSERT INTO login(user,password) VALUES('$uname','$pass')");
        header("Location: welcome.php?id=$uname");
    }
}

このコードの唯一の問題は、ユーザーがフィールドを空のままにしておくと、「いくつかのフィールドが空です」というエラーが発生する必要があることです...ユーザーがユーザー名を空のままにしておくと機能しますが、パスワードに対しては機能しません。 ..それで私を助けてください。

4

5 に答える 5

2

if条件を一番上に置く

$uname=$_POST['name'];
$pass=$_POST['pass'];
if($uname=='' || $pass=='')
{
    header("Location:login.php?id=Some fields are empty");
}
于 2013-03-30T10:41:11.443 に答える
1

<form id="form1" name="form1" method="post" action="verify_user.php" onsubmit="return Validate()">

Javascript 関数

function Validate()
{

var x=document.forms["form1"]["pass"].value;
if(x==null||x=='')
{
alert("Enter Password");
return false;
}
于 2013-03-30T10:45:36.303 に答える
0

コードを少し変更する

<?php
$uname=$_POST['name'];
$pass=$_POST['pass'];
if($uname=='' || $pass=='')
{
        header("Location:login.php?id=Some fields are empty");
}

$qry=mysql_query("SELECT * FROM login WHERE user='$uname'", $con);
if(!$qry)
{
die("Query Failed: ". mysql_error());
}
else
{
   $row=mysql_fetch_array($qry);
if($uname==$row['user'])
{
    else if($uname==$row['user'] && $pass==$row['password'])
    {
            header("Location: welcome.php?id=$uname");    
    }
    else
    {
                header("Location:login.php?id=username already taken or your password is incorrect. Please try again");
        }
    }
else
{   mysql_query("alter table login auto_increment = 1;");
    $qry_name=mysql_query("INSERT INTO login(user,password) VALUES('$uname','$pass')");
    header("Location: welcome.php?id=$uname");
    }    
  }
  ?>
于 2013-03-30T10:43:15.517 に答える