Php 检查是否设置了POST数据,can';我不能让它工作

Php 检查是否设置了POST数据,can';我不能让它工作,php,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 "som

我想使用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"];
我做错了


我知道我可以用另一种方式来设置它,但我有一个这样设置的大型脚本,我真的希望它能工作…

好吧,
如果(!isset($\u POST[“pass”])
意味着如果
$\u POST[“pass”]
而不是集,那么你可能想删除“!”它表示“否”。

您在表单中针对未设置的$\u POST进行测试(请参阅!)。然而,你想要的职位被设置

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...";
  }

您可以使用php的
empty()
函数

if(!empty($_POST['pass'])){
// do something
}else{
// do something else
}
希望这对您有用。

请确保您的html表单中有“method='POST'”,否则$\u POST在php中无法访问,并且逻辑有点混乱,请尝试此方法

e、 g

if(!isset($\u POST[“pass”])){
//没有邮寄回音表
回声“
";
}elseif(isset($_POST[“pass”])){
//对“正确的事情”进行事后检查输入
如果($_POST[“txtInput”]=“错误的东西”){
呼应“有点不对劲……”;
}elseif($\u POST[“txtInput”]=“正确的事情”){
//$pass\u var=“pass”;
$pass\u var=$\u POST[“pass”];
回声“这东西正在工作……”;
}
}

echo”“;打印(邮政美元);在脚本开头回显“
”,查看
$\u POST
中的实际内容。您应该检查它是否设置为“第一”,而不是相反。试试
if(isset($\u POST[“pass”]){//do something}其他{//do something}
@Fred ii-他为什么“应该”这样做?纯粹是偏好。@JonathonReinhart对我来说,检查一个条件是否首先满足是合乎逻辑的,而且比从最后开始更容易混淆。我同意Jonathon Reinhart的观点,这只是偏好。很明显,OP知道这一点,因为在
else
案例中,他说
“这东西正在工作…”
@TheOnly92这是故意的,
如果(!isset($\u POST[“pass”])){…这里有一个输入类型文本的表单…
再次检查,他说脚本最终做了相反的事情,所以我认为这就是原因。同意。他没有意识到的工作!脚本表明他希望在$\u POST数组中输入,即使他正在检查表单字段是否存在。@JonathonReinhart我有点不同意。只是因为当有人打开煤气盖,闻起来有煤气味,并不意味着油箱已经满了。-)我将对此进行投票。有些人可能不会同意我的观点,但你的逻辑是正确的。
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...";
   }
}