简体   繁体   English

PHP形式不断给我同样的答复

[英]PHP form keeps giving me back same response

very short simple quiz app. 很短的简单测验应用程序。 browser keeps returning Correct as a response, even though it is not correct. 浏览器会不断返回“正确”作为响应,即使它不正确。

<?php
$answer = (isset($_POST['answer']));`
if ($answer == "Dagny Taggart")`
{
echo "Correct";
 } else {
 echo "wrong";
 }
 ?>

Try this. 尝试这个。 You're currently setting $answer to isset($_POST['answer'] , meaning as long as $_POST['answer'] is set, you're $answer is going to be TRUE . I would check if it's set and then set it to the $_POST value. 您当前正在将$answer设置$answer isset($_POST['answer'] ,这意味着只要设置了$_POST['answer'] isset($_POST['answer'] ,就意味着$ answer将为TRUE 。我将检查是否已设置然后将其设置为$_POST值。

<?php
if(isset($_POST['answer'])) {
    $answer = $_POST['answer'];
    if ($answer == "Dagny Taggart")
    {
        echo "Correct";
    } else {
        echo "wrong";
    }
} else {
// Do something?
}

?>

isset returns a boolean ( true or false ) value. isset返回一个布尔值( truefalse )。 So your test will always fail because true != 'Dagny Taggart' 因此,您的测试将始终失败,因为true !='Dagny Taggart'

Add this ternary and it will work 添加此三元,它将起作用

$answer = (isset($_POST['answer'])) ? $_POST['answer'] : '';

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM