これは、ユーザがユーザ名でログインするユーザログインのコードラインです。私は電子メールIDまたはユーザー名の両方からユーザーがログインできるように編集したいと思う。私は2つの名前を使用する必要があると思うが、構文は正しいとは思わない。そうする方法を教えてください。入力タイプに複数の名前を使用する
if (isset($_POST["user_login"]) && isset($_POST["password_login"])) {
$user_login = preg_replace('#[^A-ZA-z0-9]#i', '',$_POST["user_login"]); //filter everything but numbers and letters
$password_login = preg_replace('#[^A-ZA-z0-9]#i', '',$_POST["password_login"]);//filter everything but number and letter
$password_login_md5 = md5($password_login);
$sql = mysql_query("SELECT id FROM users WHERE username='$user_login' AND password='$password_login_md5'LIMIT 1");//query whether user exists
//Check for their existence
$userCount = mysql_num_rows($sql);//Count the number of rows entered
if ($userCount ==1){
while ($row =mysql_fetch_array($sql)) {
$id = $row["id"];
}
$_SESSION["id"] = $id;
$_SESSION["user_login"] = $user_login;
$_SESSION["password_login"] = $password_login;
header("location: welcome.php");
exit();
}else {
echo 'Information is incorrect, try again';
exit();
}
}
?>
<div style="width: 800px; margin: 0px auto 0px auto;">
<table>
<tr>
<td width="60%" valign="top">
<form action="index.php" method="POST">
<input type="text" name="user_login" size="25" placeholder="Username"><br>
<input type="password" name="password_login" size="47" placeholder="Password"><br><br>
<input type="submit" name="login" value="Login">
</form>
</td>
変更する必要があるコードは、HTMLだけではありません。ログインを処理するクエリを含め、バックエンドを変更する必要があります。 –
は、この問題をフォームページではなく処理ページで処理します。データに@が含まれている場合は、strpos()を使用してチェックを行うことができます。そうであれば、適切な電子メール構文をチェックし、有効であればユーザー名ではなく電子メールと見なしてください。 – Abela
バックエンドのものが残っているこのコード行には – sanchit