#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 != "Correct"){
echo "Incorrect username and password";
exit;
}
?>
Это всегда повторяет elseif
часть. Я подумал, может быть, это потому $authcheck
, что это не строка, поэтому я сделал $outcome = (string)$authcheck
и изменил остальную часть, чтобы использовать $outcome
вместо $authcheck
, но это не сработало.
Результат скрипта Python точно Correct
Комментарии:
1. Вы проверили, на что ваш ответ
$authcheck
?2. что
var_dump
показывает редактирование? и что-нибудь из php.net/manual/en/function.error-reporting.php ?3. Vural, $authcheck (когда я повторяю его) выдает «Правильный»
4. Нет необходимости создавать
elseif
which проверяет противоположность первоначальномуif
—else
вместо этого используйте plain .5. Попробуйте
$authcheck = trim(shell_exec("python authcheck.py $name $pass"));
Ответ №1:
Как я вижу в вашем var_dump, у вас есть пробел в вашей строке: «Правильно». Но вы сравниваете с «Правильным» без пробела. Вы это понимаете? 😉
Комментарии:
1. это уже было указано в комментариях «moi» 😉 итак … «решение» — это то, что здесь конкретно? о да,
trim()
.2. Я попытался изменить его на
if ( $authcheck == "Correct ") {
, но, к сожалению, это не работает3. О, тогда я замедляюсь. Хорошо для вас. Продолжайте! 😉
4. ну, парень не потрудился рассказать мне что-нибудь о моем вероятном решении, так что привет … больше энергии для тебя 😉
5. @WillB так что же
echo $authcheck;
печатает?
Ответ №2:
Попробуйте распечатать $authcheck
, прежде чем создавать if.
Вы можете распечатать его тремя разными способами:
echo $authcheck
Это выведет значение $authcheckprint_r($authcheck)
Это выведет его с форматированным выводом, если $authcheck является объектом или массивом, в противном случае будет выводить то же самое, что и echo.var_dump($authcheck)
Это выведет тип и значение $authcheck . Таким образом, теперь вы можете, если $authcheck является строкой или in или NULL
Вы можете сделать то же самое с $name и $pass
Здесь вы можете найти больше информации:
Комментарии:
1. для крика вслух,
trim()
было решение от moi …… и Шарлотты.