检查POST数据是否已设置,无法使其正常工作

时间:2013-10-16 07:06:01

标签: php

我想用PHP来检查是否设置了$ _POST [“pass”],如果不设置则执行某些操作,如果是,则执行其他操作....但我无法使其工作,我我确定我的逻辑错了。

我有一个看起来像这样的PHP代码......

if (!isset($_POST["pass"])) {
   ...some form with an input type text here...

   if (...wrote the wrong thing in input type text...) {
       echo "something is wrong....";
   }
   else {
    $pass_var = "Pass";
    $pass_var = $_POST["pass"];
   }
}
else {
echo "This thing is working...";
}

如果我在输入类型文本中键入正确的内容,我就不会去“这件事正在发挥作用”,如果不是,我不想回应“有些事情是错误的......”。

它的工作方式几乎没有问题,只是如果我在表单中键入正确的内容,我就永远不会发现“这件事正在发挥作用......”。

页面什么都不做..

我确定这是

$pass_var = "Pass";
$pass_var = $_POST["pass"];

我做错了。

我知道我可以用另一种方式设置它以使其工作,但我有一个像这样设置的大脚本,我真的希望它能够工作......

4 个答案:

答案 0 :(得分:2)

您在表单中对$ _POST NOT设置进行测试(参见!)。但是你想要设置帖子!

if(isset($_POST["pass"])) 
  {
  print_r($_POST); // basic debugging -> Test the post array
  echo "The form was submitted";

  // ...some form with an input type text here...
  if(...wrote the wrong thing in input type text...) 
    {
    echo "something is wrong with the input....";
    }
  else 
    {
    // Valid user input, process form
    echo "Valid input byy the user";
    $pass_var = "Pass";
    $pass_var = $_POST["pass"];
    }
  }
else 
  {
  echo "The form was not submitted...";
  }

答案 1 :(得分:0)

您可以使用php的empty()功能

if(!empty($_POST['pass'])){
// do something
}else{
// do something else
}

希望这对你有用。

答案 2 :(得分:0)

确保你的html格式中有“method ='POST'”,否则PHP中无法访问$ _POST,逻辑有点棘手,试试这个?

e.g。

if (!isset($_POST["pass"])) {
    //no POST so echo form 
    echo "<form action='".$_SERVER['PHP_SELF']."' method='POST'>
    <input type='text' name='txtInput' />
    <input type='submit' name='pass' />
    </form>";
} elseif (isset($_POST["pass"])) {
    //have POST check txtInput for "right thing"
    if ($_POST["txtInput"] == "wrong thing") {
       echo "something is wrong....";
   } elseif ($_POST["txtInput"] == "right thing") {
    //$pass_var = "Pass"; 
    $pass_var = $_POST["pass"];
    echo "This thing is working...";
   }
}

答案 3 :(得分:-2)

好吧,if (!isset($_POST["pass"]))表示$_POST["pass"]设置为,因此您可能希望删除&#39;!&#39;它代表不是。