0

所以我有一个使用 PHP 发布到同一页面的 html 表单。这很酷,但是为了阻止 PHP 在每次打开页面时抛出错误,如果添加了一个检查 post 变量是否为空的系统(这是用户第一次加载页面时,因为他们没有机会输入任何内容)。我的问题是,有没有更好的方法来做到这一点?因为加载表单时加载了 PHP 脚本,所以我收到消息“您没有输入任何内容”。我不希望它在页面首次加载时出现,仅在必要时出现..

这是代码:

<form action="" method="post">
<table align="center">
<tr> 
    <td>Enter a word to hash:  </td>
    <td><input type="text" name="input" size="20" maxlength="20"></td>
    <td><input type="submit" value="Hash"> </td>
</tr>

</table>

</form>

<?php
if(empty($_POST['input']))
{
    echo 'You didnt type anything!';
    exit;
}

$input = $_POST['input'];
$input=trim($input);
    echo md5($input);

?>
4

4 回答 4

3

是的,检查REQUEST_METHOD.

if( $_SERVER['REQUEST_METHOD'] == 'POST' && empty($_POST['input']) ) {
    ...
}
于 2013-03-08T15:08:32.700 回答
1

if($_SERVER['REQUEST_METHOD'] == 'POST' && empty($_POST['input']))

于 2013-03-08T15:09:26.067 回答
1

尝试isset任一 than empty,因为在第一页加载$_POST['input']不应该存在。

<?php
if(isset($_POST['input']) && empty($_POST['input']) )
{
    echo 'You didnt type anything!';
    exit;
} else {
//check
}

?>
于 2013-03-08T15:09:46.050 回答
0

如果这是你想要的:

  • 始终显示表格
  • 如果有人提交了表单,则打印 MD5 哈希

你可以像这样完成它。它说如果有一个带有键输入的 POST 值,然后修剪任何前导和尾随空格并打印该值的 MD5 哈希。

<?php

if (!empty($_POST['input']))
{
    echo md5(trim($_POST['input']));
}

?>
于 2013-03-08T15:17:33.047 回答