PHP非常新,为什么赢得';如果其他州的人工作的话


Very new to PHP, why won't this if/elseif statemen work?

我对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;
}
?>

这总是与elseif部分相呼应。我想可能是因为$authcheck不是字符串,所以我做了$outcome = (string)$authcheck,并将其其余部分改为使用$outcome而不是$authcheck,但它不起作用。

Python脚本的结果正是Correct

正如我在var_dump中看到的,字符串中有一个空格:"正确"。但你把它比作没有空格的"正确"。你明白了吗?;-(

在制作if.之前尝试打印$authcheck

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

  • echo $authcheck这将打印$authcheck的值
  • print_r($authcheck)如果$authcheck是一个对象或数组,这将使用格式化的输出打印它,否则将打印相同的echo
  • var_dump($authcheck)这将打印$authcheck的类型和值。通过这种方式,如果$authcheck是字符串或In或NULL

您可以使用$name$pass执行相同的操作

在这里你可以找到更多信息:

  • shell_exec((http://php.net/manual/en/function.shell-exec.php
  • 回声http://php.net/manual/en/function.echo.php
  • 打印_((http://php.net/manual/en/function.print-r.php
  • var_dump((http://php.net/manual/en/function.var-dump.php