0

我有两个输入字段,每当我打开我的页面时,它都会显示错误,因为在开始时用户没有在任何字段中输入任何输入(并且显示错误是因为用户输入在 sql 查询中用于检索数据)。我只想在页面开始时显示这两个表单而不是错误。Compare执行按钮需要两个输入。如果用户没有输入任何一个输入,则不应向 php 发送请求以进行脚本编写。我的意思是Compare按钮应该仅在两个输入都填充时才发送请求,否则它应该向用户发送消息Type the required fields。这该怎么做?

$trimUser= trim ($_POST['name']);
if(empty($name) || empty($name2))
{
echo "Enter a name ";
}
else if (isset($_POST['name']))
{   
$name=$_POST['name'];
}
else if (isset($_POST['name2']))
{
$name2=$_POST['name2'];
}

&这是我的表格:

<form action="index.php" method="POST">
<input class="span3 search-query" placeholder="Type User A" type="text" name="name" id="field"/
<input class="span3 search-query" placeholder="Type User B"  name="name2" type="text"
id="field2"/>
<button class="btn btn-primary" data-loading-text="Loading..." >Compare</button>
4

7 回答 7

1

您可以添加检查以验证请求是否为发布请求:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
     // Place your error checking code here
}
于 2013-01-05T09:28:23.900 回答
1

Ehs4n 是对的,但我会更具体,并执行以下操作:

if(!empty($_POST['compare'])) {
   #validation
}

您的按钮代码必须更改为:

<button name="compare" value="1" class="btn btn-primary" data-loading-text="Loading..." >Compare</button>

我会这样做有两个原因:

  1. 使用 !empty() 可确保在 $_POST['compare'] 为空时不会出错
  2. 检查 $_POST['compare'] 而不仅仅是 $_POST 确保只有在有人单击按钮时才显示错误。

最后一点很关键,因为如果您在页面上有多个表单,或者您碰巧在其他地方设置了 $_POST 变量,您仍然会显示错误。

于 2013-01-05T10:05:41.603 回答
1

在加载 post.ie 之前将 if 条件与 isset($_POST) 一起使用,

if (isset($_POST)) {
if(empty($name) || empty($name2))
{
echo "Enter a name ";
}
else if (isset($_POST['name']))
{   
$name=$_POST['name'];
}
else if (isset($_POST['name2']))
{
$name2=$_POST['name2'];


}
于 2013-01-05T10:45:55.593 回答
1

您必须使用 java 脚本或 jQuery 来验证两个字段是否为空。例如..

<form action="index.php" method="POST" onsubmit="return validate()">
  <input class="span3 search-query" placeholder="Type User A" type="text" name="name"     id="field"/>

   <input class="span3 search-query" placeholder="Type User B"  name="name2" type="text"
id="field2"/>

   <button class="btn btn-primary" data-loading-text="Loading..." >Compare</button>
</form>

<script type="text/javascript">
   function validate(){
       var field1 = document.getElementById('field').value;
       var field2 = document.getElementById('field2').value;

        if(field1 != '' && field2 != '' ){
           return true;
         } else{
            alert('Type the required fields');
            return false;
         }
    }
</script>

在这里,如果两个字段都不为空,则允许提交表单。并在 PHP 脚本中添加

if(isset($_POST) && !empty($_POST)){
     //code comes here
}

我希望它对你有帮助。

谢谢

于 2013-01-05T10:48:56.250 回答
1

error_reporting(E_ERROR | E_PARSE);我只是通过在代码开头添加它来消除所有错误。但是,如果有人想检查显示验证错误消息,可以通过其他人提到的内容轻松完成。即通过使用 if($_Post)。无论如何,谢谢大家的帮助。

于 2013-01-05T13:03:04.210 回答
0

添加if子句如

if($_POST) {
...your validation code
}
于 2013-01-05T09:24:46.427 回答
0

考虑在错误发生后将人们重定向到他们所在的页面:

    echo '<script>location.href=\'example.php\'</script>';
于 2015-07-03T12:17:44.620 回答