1つのPHPページに複数のフォームがあります。 1つのindex.phpページ上のログインフォーム、サインアップフォーム、およびポストステータスフォーム。 1つのフォームの送信ボタンを押すと、すべてのフォームが送信されているようです。 私はログインしていない状態でポストステータスフォームを使用してステータスをポストしようとすると、「ログインしていません」というエラーが表示されますが、他のフォームが表示されたときには次のようにPHPコードエラーが発生します...複数の投稿フォームが1つのPHPページで問題を引き起こしています
通知:未定義インデックス:uname 通知:未定義インデックス:pass
どうすればよいですか? if(isset($_POST['submit']))
が原因で問題が発生しているようです。私はかなりPHPに新しいです。もし私が間違っているなら、私を助け、訂正してください。
マイコード:
<div id="myModal1" class="modal1">
<div class="modal-content">
<span class="close" onclick="login_modal_hide()">×</span>
<section id="signin">
<h1>Sign In</h1>
<form method="POST">
<input type="text" name="username" placeholder="Username"><p></p>
<input type="password" name="password" placeholder="Password"><p></p>
<input type="submit" value="SIGN IN"><p></p>
<a href="#">Forgot Password?</a>
<?php
session_start();
include("config.php");
if($_SERVER["REQUEST_METHOD"] == "POST") {
$uname = mysqli_real_escape_string($dbc,$_POST['username']);
$pass = mysqli_real_escape_string($dbc,$_POST['password']);
$query = "SELECT uname FROM users WHERE uname = '$uname' and pass = '$pass'";
$result = mysqli_query($dbc,$query);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
//$active = $row['active'];
$count = mysqli_num_rows($result);
if($count == 1) {
$_SESSION['uname']="uname";
$_SESSION['login_user'] = $uname;
header("location: welcome.php");
}else {
echo "<p class='error'>Your Login Name or Password is invalid</p>";
}
}
?>
</form>
</section>
</div>
</div>
<!-- Modal SignUP form -->
<div id="myModal2" class="modal2">
<div class="modal-content">
<span class="close" onclick="signup_modal_hide()">×</span>
<?php
$unameErr = $passErr = $emailErr = "";
if(isset($_POST['submit'])) {
$uname = test_input($_POST['uname']);
$email = test_input($_POST['email']);
$pass = $_POST['pass'];
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $emailErr = "Invalid email format"; }
else if(!preg_match('/^[A-Za-z][A-Za-z0-9]{2,31}$/',$uname)) { $unameErr = "Invalid username format (Must start with letter; 3-32 characters; Letters and numbers only)"; }
else if(!preg_match('/^(?=.*\d)(?=.*[A-Za-z])[[email protected]#$%]{8,12}$/', $pass)) { $passErr = "Invalid Password format (Must contain at least 1 number and 1 letter; Must be 8-12 characters)"; }
else {
$dbc = mysqli_connect('localhost', 'root', '', 'DATA') or die('Error connecting to MySQL server!');
$query = "INSERT INTO users (uname, email, pass, status, xp) VALUES('$uname', '$email', '$pass', '0', '100')";
$result = mysqli_query($dbc, $query) or die('Error querying database!');
echo 'Thanks for Signing UP! Welcome '.$uname.'!';
mysqli_close($dbc);
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<h1>Sign UP</h1>
<section id="signup">
<form method="post" action="">
<input type="text" id="uname" name="uname" placeholder="Username" required><p class="error"><?php echo $unameErr;?></p>
<input type="text" id="email" name="email" placeholder="Email address" required><p class="error"><?php echo $emailErr;?></p>
<input type="password" id="pass" name="pass" placeholder="Password" required><p class="error"><?php echo $passErr;?></p>
<p><input type="checkbox" id="agreement" name="agreement" required>I agree to the <a href="#">Terms</a> and <a href="#">Privacy</a></p>
<input type="submit" value="Sign UP!" name="submit">
</form>
Already have an account? <a href="javascript:void(0);" onclick="signup_modal_hide(); login_modal();">Log In</a>
</section>
</div>
</div><div class='panel'>
<form method='post' action=''>
<textarea id='qdesc' name='content' placeholder='Your Answer...' required></textarea>
<input type='submit' value='Post Answer' name='submit'>
</form>
</div><?php
if(isset($_POST['submit'])) {
if(isset($_SESSION['login_user'])){
$content = $_POST['content'];
$dbc = mysqli_connect('localhost', 'root', '', 'DATA') or die('Error connecting to MySQL server!');
$query = "INSERT INTO answers (whoanswered, content, votes, answeredto) VALUES('$login_session', '$content', '0', '$q')";
$result = mysqli_query($dbc, $query) or die('Error querying database!');
echo 'Post complete!';
//header("refresh:5; url=./qview.php?q="echo $q;"");
mysqli_close($dbc);
}
}?>
コードを表示してください –
@YuJiaaoはここに私のコードです... – user7704928