我正在为我的网站做一个联系页面,文本是葡萄牙文,因为我是巴西人,但我的问题如下:当我用?resp=true
发送参数时,它总是进入第一个条件,我无法弄清楚出了什么问题。
当参数为?resp=true
时,为什么满足第一个条件? ,这是我目前遇到问题的代码:
<?php if (isset($_GET["resp"]) && $_GET["resp"] == false) { ?>
<div class="row row-centered" style="padding-top: 10px;">
<div class="alert alert-success">
<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button>
<strong style="text-align: center;">Sua mensagem foi enviada com sucesso.</strong>
</div>
</div>
<?php } elseif(isset($_GET["resp"]) && $_GET["resp"] == true) { ?>
<div class="row row-centered" style="padding-top: 10px;">
<div class='alert alert-danger'>
<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button>
<strong style="text-align: center;">Desculpe, parece que o servidor de email não esta respondendo. Por favor, tente novamente mais tarde!</strong>
</div>
</div>
<?php } ?>
答案 0 :(得分:2)
通过POST或GET方法(即在REQUEST中)收到的所有值都自动被视为字符串。所以试着检查:
<?php
if($_GET['resp'] == true) {}
?>
将返回false,因此不会进入循环。你想要的是检查字符串值(而不是布尔值)
<?php
if($_GET['resp'] == 'true') {)
?>
答案 1 :(得分:0)
您实际上是在尝试将字符串值与布尔值进行比较。因为表单提交的所有内容都只是字符串形式。所以我用&#39; true&#39;替换了布尔值true和false。和&#39; false&#39;
试试这段代码:
<?php if (isset($_GET["resp"]) && $_GET["resp"] == 'false') { ?>
<div class="row row-centered" style="padding-top: 10px;">
<div class="alert alert-success">
<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button>
<strong style="text-align: center;">Sua mensagem foi enviada com sucesso.</strong>
</div>
</div>
<?php } elseif(isset($_GET["resp"]) && $_GET["resp"] == 'true') { ?>
<div class="row row-centered" style="padding-top: 10px;">
<div class='alert alert-danger'>
<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button>
<strong style="text-align: center;">Desculpe, parece que o servidor de email não esta respondendo. Por favor, tente novamente mais tarde!</strong>
</div>
</div>
<?php } ?>