Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有2个条件的PHP IF语句_Javascript_Php - Fatal编程技术网

Javascript 带有2个条件的PHP IF语句

Javascript 带有2个条件的PHP IF语句,javascript,php,Javascript,Php,我有一个问题,我试图检查我的变量 所以我有一张表格。用户单击send。 变量是使用带有 xhr.open("POST", "ajax_http.php?", true); xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr.send(sVar4); 这很好,我的变量被发送到ajax_http.php 现在,当我尝试检查变量时,我使用php并执行以下操作: $stuff = $_POST[

我有一个问题,我试图检查我的变量

所以我有一张表格。用户单击send。 变量是使用带有

xhr.open("POST", "ajax_http.php?", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(sVar4);
这很好,我的变量被发送到ajax_http.php

现在,当我尝试检查变量时,我使用php并执行以下操作:

 $stuff = $_POST['stuff'];

 if(isset($stuff) && (strlen($stuff) > 200)){
   $var = $stuff;   
 } else{
   $error = true;
 }
所以我注意到的第一件事是,我的变量
$\u POST['stuff']
总是被设置的,即使它是空的。不管strlen($stuff)my
$var
的长度是多少,都会设置,
$error
永远不会设置为true

我相信我的
if()


谢谢您的帮助。

我想这是一种更准确的方法,可以检查您的值是否已设置

if(isset($_POST['stuff']))
{
    $stuff = $_POST['stuff'];
    //echo $stuff . "<br>";
    //echo strlen($stuff); to see its contents to help understand why it wont run the $var = $stuff; statement
    if((strlen($stuff) > 200))
    {
      $var = $stuff;             
    }
    else
    {
       $error = true;
    }
}
else
{
    //Do whatever necessary :)
}
if(isset($\u POST['stuff']))
{
$stuff=$_POST['stuff'];
//echo$stuff.“
”; //echo strlen($stuff);查看其内容以帮助理解为什么它不会运行$var=$stuff;语句 如果((strlen($stuff)>200)) { $var=$stuff; } 其他的 { $error=true; } } 其他的 { //做任何必要的事情:) }
您可以使用empty(),因为您关心的是即使它是空的,也会设置它。仅当它不为空时才继续


您键入的var是$tuff而不是$stuff您的代码实际上有
strlen($tuff)
?如果是,您是否有另一个长度超过200的变量
$tuff
?这可以解释这种行为。我认为应该是&&strlen($tuff)而不是$$(strlen($tuff)您在strlen()中有typo$tuff而不是$stuff变量参数必须使用
htmlspecialchars
来转义
$\u POST
的内容。虽然这是相同的代码,但不是吗?问题是它总是被设置的,但有时是空的。问题是,对于原始代码,你检查$stuff是否设置,然后检查它的strlen。从技术上讲,如果$stuff未设置,strlen check是无用的。在我提供的示例中,如果未设置$\u POST['stuff']或为null,strlen检查甚至不会执行。我必须同意,对于当前目标,empty()更准确,但我仍然认为检查的顺序很重要,只需在每个if语句之前打印值来检查值。
if(!empty($stuff) && strlen($stuff) > 200){
//do stuff
}