PHP未在“联系我们”窗体中工作
我只是一个PHP和Html的初学者。我已经看到了许多与此相关的问题,但不知何故,我无法解决一个非常简单的问题。所以,请帮忙 以下代码似乎不起作用。总是有一个信息,现在似乎有问题。当我运行此代码时,请在窗体之前的某个时间重试。无论我是否按下提交按钮,都没有任何区别PHP未在“联系我们”窗体中工作,php,html,Php,Html,我只是一个PHP和Html的初学者。我已经看到了许多与此相关的问题,但不知何故,我无法解决一个非常简单的问题。所以,请帮忙 以下代码似乎不起作用。总是有一个信息,现在似乎有问题。当我运行此代码时,请在窗体之前的某个时间重试。无论我是否按下提交按钮,都没有任何区别 <h2 >Inquiry form</h2> <?php if (isset($_POST['submit'])){ echo "Thank You!"; } e
<h2 >Inquiry form</h2>
<?php
if (isset($_POST['submit'])){
echo "Thank You!";
}
else {
echo "There seems to be a problem right now. Please try again after sometime";
}
?>
<form name="input" method="POST" action="contact.php">
<label for="Name">Name (required):</label>
<br />
<input type="text" name="Name" />
<br />
<div class="clear"></div>
<label for="inputmail">Email(required):</label>
<br />
<input type="text" name="email" />
<br />
<div class="clear"></div>
<label for="inputtelefon">Phone:</label>
<br />
<input type="text" name="phone" />
<br />
<div class="clear"></div>
<label for="inputmessage">Message:</label>
<br/>
<textarea name="message" cols="28" rows="3" ></textarea>
<div class="clear"></div>
<div id="send">
<input type="submit" value=" Submit " />
<input type="reset" value=" Clear " />
</div>
</form>
更改代码:
<h2 >Inquiry form</h2>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//if ($_SERVER['REQUEST_METHOD'] == 'POST') { This is not working as well
echo "Thank You!";
}
else {
echo "There seem to be a problem right now. Please try again after sometime";
}
?>
<form name="input" method="POST" action="contact.php">
<label for="Name">Name (required):</label>
<br />
<input type="text" name="Name" />
<br />
<div class="clear"></div>
<label for="inputmail">Email(required):</label>
<br />
<input type="text" name="email" />
<br />
<div class="clear"></div>
<label for="inputtelefon">Phone:</label>
<br />
<input type="text" name="phone" />
<br />
<div class="clear"></div>
<label for="inputmessage">Message:</label>
<br/>
<textarea name="message" cols="28" rows="3" ></textarea>
<div class="clear"></div>
</div>
<div id="send">
<input type="submit" value=" Submit " name="submit"/>
</div>
</form>
这是因为“提交”按钮没有名称:
<input type="submit" value=" Submit " name="submit"/>
编辑
基于Marc B答案中随机编码员的评论
发现类似问题:检查提交的方法无效。切勿检查是否存在表单字段。这是不可靠的。您可能会更改字段名,但忘记更新PHP。改用这个:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
...
}
它是100%可靠的,如果执行POST,它将始终是正确的。我只看到一个原因,即您没有定义名称submit to任何变量。有两种方法可以找到提交表单,如下所示: 更改:
<input type="submit" value=" Submit " />
to
<input type="submit" value=" Submit " name="submit"/>
或者添加额外的行来执行类似的操作
<input type = "hidden" name="passed" />
检查
<?php
if (isset($_POST['passed'])){
echo "Thank You!";
}else {
echo "There seems to be a problem right now. Please try again after sometime";
}
?>
看看你更新的if语句。它的意思是:如果表格已提交,则表示感谢;如果表格尚未提交,则表示似乎存在问题 这就是为什么您总是看到有问题的原因,因为当您在未提交表单的情况下查看表单时,if语句的else块将触发 您应该删除else块,因为它没有任何意义,因此它会变成:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// form has been submitted, handle the data and say thanks...
echo "Thank You!";
}
使用此方法而不是检查submit按钮更好,因为如果用户按enter键提交表单,Internet Explorer将不会将submit按钮作为post变量发送
更多信息-。您的报价中也不应该有空格。并且开始标记不应该有空格。+1正确答案。如果没有名称,则值不会作为数据的一部分发送,因此isset不会看到它。是的。。这是个错误。这本该解决的。但是,令人惊讶的是,它仍然不适合我。谢谢大家帮助我。但它仍然不起作用。我已将更改后的代码张贴在原始问题中我以前的代码下方..horsefeathers!NAME attr需要将此字段与请求一起发送到serverAs@Saju建议,我们应该将其与接受的答案结合起来,这应该是真正的答案。对吧?但这不一定是你所期望的职位。我经常让页面收到多个可能的帖子请求,并相应地做不同的事情。这很好。稍后检查特定的表单字段。但是如果你真正关心的是有一个帖子,这是最好的方法。+1,如果使用回车键,Internet Explorer也不会将提交按钮作为帖子变量发送-。@RandomCoder真的吗?在我开发6到10个版本时使用的所有IE版本中,100%的时间都在为我工作10@Kolink是的,IE的所有版本都是这样,没有一个版本解决过这个问题。要测试它:创建一个带有文本框和提交按钮的表单,将操作设置为自身,在页面顶部使用print\u r$\u POST。查看页面,在文本框中键入一些内容,然后按enter键-您将看到只有文本框被发送,提交按钮不包含在发布数据中。谢谢。我后来才明白。。但是忘了更新我的问题。不过还是非常感谢。。