以下のコードは私のユーザーログインフォームです。しかし、ユーザー名とパスワードが一致してページがリダイレクトされた後、[ユーザー名に[未定義のインデックス] [パス] 'というエラーが表示されます。ユーザーがPHPのログインフォームからログインした後にデータが正しく表示されない
<?php
session_start();
require_once "dbreg.php";
$errormsg = array();
$errorcount = 0;
if (!empty($_POST)) {
if (empty($_POST['username'])) {
$errormsg[] = "Enter valid username";
$errorcount++;
}
if(empty($_POST['password'])) {
$errormsg[] = "Please enter password";
$errorcount++;
}
if(!empty($_POST['username'])) {
$userquery = mysql_query("SELECT * FROM regform WHERE username='".$_POST['username']."'");
$useroutput = mysql_fetch_assoc($userquery);
if (empty($useroutput)) {
$errormsg[] = "Invalid username or password";
$errorcount++;
}
else {
$queryoutput = mysql_query("SELECT * FROM regform WHERE username = '".$_POST['username']."' AND userpass = '".$_POST['password']."'");
$newoutput = mysql_fetch_assoc($queryoutput);
if (empty($newoutput)) {
$errormsg[] = "Please enter valid login and password";
$errorcount++;
}
else {
$_SESSION['uid'] = $newoutput['id'];
header("Location: http://localhost/classwork2/userprofile.php");
}
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Login form</title>
</head>
<body>
<h1>Login</h1>
<?php
if (!empty($errormsg)) {
for ($i=0; $i < count($errormsg) ; $i++) {
# code...
?>
<div style="color:red"><?php echo $errormsg[$i]; ?></div>
<?php
}
}
?>
<table border="1">
<form name="lognow" id="lognow" action="reglogin.php" method="post" enctype="multipart/form-data">
<tr>
<td>
<label>Username</label>
</td>
<td>
<input type="text" name="username" id="username">
</td>
</tr>
<tr>
<td>
<label>Password</label>
</td>
<td>
<input type="text" name="password" id="password">
</td>
</tr>
<tr>
<td>
<input type="submit" value="Login">
</td>
</tr>
</form>
</table>
<h3>Or</h3>
<h2>
<a href="reg1.php">Click Here</a> to Register.
</h2>
</body>
</html>
以下れる、誰もが私が間違って何をやっている私を導くことができるかどうuserprofile.phpページにコード
<?php
session_start();
require_once "dbreg.php";
$sql = "SELECT firstname, lastname FROM regform WHERE username = '" . $_SESSION['username'] . "'";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
echo "Hello, " . $row['firstname'] . $row['lastname'] ;
?>
は親切だろう。また、上記のコードをif(!empty($_POST['username']))
の中に入れておくと、ページは空白になります。問題がある
これは、成功したログインの後に '$ _SESSION ['username'] =" YOUR_USERNAME "'を設定したことがないため、$ _SESSION ['uid'] = $ newoutput ['id']; 'をリダイレクトしただけですユーザーは* userprofile.php *ページに移動します。 –
多くのお返事ありがとうございますが、ユーザー名とパスワードがたくさんありますが、この方法を使用することはできません。どのようにコードを修正する必要がありますか? –
私は以下の解決策を提示しました。うまくいけば、あなたの問題を解決するでしょう。 –