Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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
对于PHP来说非常陌生,为什么if/elseif statemens不能工作呢?_Php - Fatal编程技术网

对于PHP来说非常陌生,为什么if/elseif statemens不能工作呢?

对于PHP来说非常陌生,为什么if/elseif statemens不能工作呢?,php,Php,我对PHP非常陌生,我正在努力让它发挥作用 <?php $name = $_GET['username']; $pass = $_GET['password']; $authcheck = shell_exec("python authcheck.py $name $pass"); if ( $authcheck == "Correct") { exec("python create.py names $name $pass"); } elseif ( $authcheck !=

我对PHP非常陌生,我正在努力让它发挥作用

<?php
$name =  $_GET['username'];
$pass =  $_GET['password'];
$authcheck = shell_exec("python authcheck.py  $name $pass");
if ( $authcheck == "Correct") {
  exec("python create.py names $name $pass");
} elseif ( $authcheck != "Correct"){
  echo "Incorrect username and password";
  exit;
}
?>
这总是与其他部分相呼应。我想可能是因为$authcheck不是字符串,所以我做了$output=string$authcheck,并将它的其余部分改为使用$output而不是$authcheck,但它不起作用


Python脚本的结果完全正确

正如我在变量转储中看到的,字符串中有一个空格:Correct。 但是你比较正确没有空格。你明白了吗-

在进行if之前,请尝试打印$authcheck

您可以用三种不同的方式打印:

echo$authcheck这将打印$authcheck的值 print\r$authcheck如果$authcheck是一个对象或数组,那么它将使用格式化输出进行打印,否则将打印与echo相同的内容。 var_dump$authcheck这将打印$authcheck的类型和值。通过这种方式,现在可以确定$authcheck是字符串还是In或NULL 您可以使用$name和$pass执行相同的操作

您可以在此处找到更多信息:

壳牌执行董事 回响 打印 瓦鲁垃圾场
你有没有检查过你对$authcheck的回应?var_dump'ing透露了什么?从?Vural、$authcheck的任何内容当我回显它回显“正确”时,不需要制作一个elseif来检查初始if的对立面-改用普通else。请尝试$authcheck=trimshell\u execpython authcheck.py$name$pass;moi在评论中已经说明了这一点;-所以解决办法是什么?哦,是的,修剪。我试着将其更改为if$authcheck==正确{但不幸的是,这不管用啊,那我就慢下来。对你有好处。继续走!;那家伙没有告诉我任何关于我可能的解决方案,所以嘿……给你更大的力量;@WillB那么echo$authcheck;print是什么呢?为了大声叫喊,trim是moi……和Charlotte的解决方案。