获得相同页面和表单的结果

时间:2013-08-10 21:22:29

标签: php mysql

你好,我的功能有一个简单的问题,有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";
}

?>

3 个答案:

答案 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