你好,我的功能有一个简单的问题,有2个代码:
我需要当我输入正确的输入答案echo $ row ['answer'];并在下一个代码中成功。
这意味着我需要$ _POST ['answer'] = $ row ['answer'];回复我的密码
如果有人,可以有人帮助我。这段代码完美无缺:
<?php
$username = $_POST['username'];
include('config.php');
$result = mysqli_query($con,"SELECT * FROM persons WHERE username='$username'");
while($row = mysqli_fetch_array($result)){
echo $row['username'];
echo "</br>";
echo "</br>";
echo "<p><b>Secret Question</b></p>";
echo $row['secret'];
$freeanswer = $row['answer'];
}
?>
同一页面中的代码问题:
</br>
</br>
<form action="" method="POST">
<p><b>Answer is :</b><p>
<input type="text" name="answer">
</br>
</br>
<input type="Submit" value="Submit">
</form>
</div>
<?php
$anme = $_POST['answer'];
if ($anme==$freeanswer) {
echo "sucess";
} else {
echo "wrong";
}
?>
答案 0 :(得分:0)
你应该设置一个名称来提交按钮,并检查是否存在$ _POST ['name_of_button'];
这是我写得很快的一个肮脏的例子,所以你可以得到这个想法,我没有测试它
<?php
// if the button has not been sent show the form
if(!isset($_POST['submit'])) {
?>
<form action="/test.php" method="POST">
<p><b>Answer is :</b><p>
<input type="text" name="answer">
</br>
</br>
<input type="Submit" value="Submit" name="submit">
</form>
</div>
<?php
// otherwise means the form has been sent, show the password or wrong
} else {
include('config.php');
$result = mysqli_query($con,"SELECT * FROM persons WHERE username='$username'");
$row = mysqli_fetch_array($result);
if($row) {
if($row['answer'] == $_POST['answer']) {
echo 'your password is ' . $row['password'];
} else {
echo 'wrong!';
}
}
}
答案 1 :(得分:0)
发送数据有问题吗? 如果您想将表单数据发布到同一页面,可以使用:
<form action="<?php echo $_SERVER['REQUEST_URI'];?>" method="post">
此代码将捕获您发布的任何内容。 (将其放在与表格相同的页面中)
<?php
if(isset($_POST['answer'])) {;
if($name==$freeanswer) {
echo "success";
} else {
echo "wrong";
}
} else {
// Just for testing
var_dump("No data sent yet");
}
?>
答案 2 :(得分:0)
第二个代码中声明的 $ freeanswer 变量在哪里?
此 if 语句失败导致没有声明 $ freeanswer 。
$anme = $_POST['answer'];
if ($anme==$freeanswer) { ..
我看到你在第一段代码中声明了它但我在第二段代码中没有看到它..
编辑:
实际上我没有看到它是完全相同的代码。但问题仍然是 $ freeanswer 因为它没有在公共范围内宣布它仅在的范围内循环
尝试在此处声明/编写此行代码:
$username = $_POST['username']; // Near this line
$freeanswer = ""; // Declare this here