У меня есть код php, но каждый раз, когда я запускаю этот код, он всегда отображает результаты в блоке «else» ---> «неверно», даже если идентификатор пользователя и пароль верны, пожалуйста, помогите. Спасибо.
<?php
$userid_temp = "admin";
$password_temp = "admin123";
if ($_POST['login'])
{
$userid=$_POST['$userid'];
$password=$_POST['$password'];
if ($userid==$userid_temp and $password==$password_temp)
{
echo "success";
}
else
{
echo "wrong <br />";
}
}
?>
<form method = "post">
<input type = "text" name = "userid" placeholder = "user id" /><br />
<input type = "text" name = "password" placeholder = "password" /><br />
<input type = "submit" value = "login" name = "login" />
</form>Вдобавок к тому, что сказал @Sourabh, вы ищете буквально почтовый ключ $userid. Итак, если $userid = 1, вы все еще ищете $userid в массиве сообщений (слово, а не число), потому что PHP не заменяет переменные их значениями в строке с одиночными кавычками. В любом случае вы, вероятно, не захотите его заменять, а вместо этого захотите слово userid






Запустите var_dump($_POST); die(); в условии if (isset($_POST)), и вы увидите содержимое того, что вы отправляете.
Как @Sourabh и @ArtisticPhoenix сказали, что вы ссылаетесь на переменную, но вам нужно имя параметра в массиве $_POST.
Отбросьте $, и это должно сработать.
<?php
$userid_temp = "admin";
$password_temp = "admin123";
if ($_POST['login'])
{
$userid = $_POST['userid']; // $userid
$password = $_POST['password']; // $password
if ($userid == $userid_temp and $password == $password_temp)
{
echo "success";
}
else
{
echo "wrong <br />";
}
}
?>
<form method = "post">
<input type = "text" name = "userid" placeholder = "user id" /><br />
<input type = "text" name = "password" placeholder = "password" /><br />
<input type = "submit" value = "login" name = "login" />
</form>
Измените свой $ _POST ['$ userid'] на $ _POST ['userid'], так же как и с паролем