Javascript 带有2个条件的PHP IF语句
我有一个问题,我试图检查我的变量 所以我有一张表格。用户单击send。 变量是使用带有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[
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
}