Этот урок набрал набрал достаточно большое количество комментариев и дальнейшее его комментирование отключено. Если вы хотели убедиться в правильности выполнения ДЗ или у вас возник вопрос по уроку, посмотрите ранее добавленные комментарии, кликнув по кнопке ниже. Скорее всего вы найдете там то, что искали. Если это не помогло - задайте вопрос в чате в телеграме - https://t.me/php_zone
Denchik 22.01.2018 в 14:16
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'Pa$$w0rd') {
    $isAuthorized = 'Всё верно';
} else if($login !== 'admin') {
    $isAuthorized = 'Логин неверный';
} else if($login === 'admin' && $password !=='Pa$$w0rd'){
    $isAuthorized = 'Пароль неверный';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
</p>
</body>
</html>
ivashkevich 22.01.2018 в 17:40

Ага, хорошо. Но в конце можно не проверять условие, так как остался только один вариант, просто else. Поправь коммент.

Denchik 24.01.2018 в 12:00
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'Pa$$w0rd') {
    $isAuthorized = 'Всё верно';
} else if($login !== 'admin') {
    $isAuthorized = 'Логин неверный';
} else {
    $isAuthorized = 'Пароль неверный';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
</p>
</body>
</html>
ivashkevich 24.01.2018 в 19:36

Теперь огонь!

DmitryGavrilov 13.04.2018 в 15:13
<?php   
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'pa$$w0rd') {
    $isAuthorized = true;
}
//Добавьте дополнительное условие, которое будет говорить о том, что пользователь
// не найден, если переданный логин не ‘admin’.
else if ($login !== 'admin') {
    $isAuthorized = 'Пользователь не найден';
    //И если пользователь не найден, то нет смысла проверять пароль,
    // и это условие проверяться не будет.
    //Если же логин ‘admin’, но пароль не совпадает,
    // то писать о том, что пароль неверный.
} else  ($password !== 'pa$$w0rd'){
    $isAuthorized = 'Вы ввели не верный пароль'
}
?>

<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ? 'Логин и пароль верные!' : 'Логин и пароль введены не верно!' ?>
</p>
</body>
</html>
ivashkevich 13.04.2018 в 17:50

Ну и в итоге у вас выведется либо 'Логин и пароль верные!', либо 'Логин и пароль введены не верно!'. Лучше завести отдельную переменную $result, и в неё складывать получившийся результат. Проверяйте хотя бы работоспособность написанного, прежде чем отправить.

$isAuthorized - в переменной изначально хранится булево значение, true/false. Такого типа она и должна оставаться. Не нужно складывать туда строку. Представляйте себе, что у переменной есть какой-то конкретный тип. Это позволит вам в дальнейшем избежать ошибок, так как вы наверняка будете знать, что у вас там за тип.

Переменные, начинающиеся со слова is или has подразумевают под собой, что там находится именно булево значение.

И конструкцию elseif нужно писать слитно.

Поправьте, убедитесь что выдаются действительно нужные ошибки, и отправляйте снова.

DmitryGavrilov 14.04.2018 в 00:05
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';
$result = '';
if ($login === 'admin' && $password === 'pa$$w0rd') {
    $isAuthorized = true;
    $result = 'Авторизация прошла успешно';
}
//Добавьте дополнительное условие, которое будет говорить о том, что пользователь
// не найден, если переданный логин не ‘admin’.
elseif ($login !== 'admin') {
    $result = 'Пользователь не найден';
    //И если пользователь не найден, то нет смысла проверять пароль,
    // и это условие проверяться не будет.
    //Если же логин ‘admin’, но пароль не совпадает,
    // то писать о том, что пароль неверный.
} else {
  $result = 'Пароль введен неверно';
}
?>

<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
    <?= $result ?>
</p>
</body>
</html>
ivashkevich 14.04.2018 в 15:32

Для чего вам здесь переменная $isAuthorized?

DmitryGavrilov 16.04.2018 в 09:40

Просто послушал вашего совета - "$isAuthorized - в переменной изначально хранится булево значение, true/false. Такого типа она и должна оставаться. Не нужно складывать туда строку. Представляйте себе, что у переменной есть какой-то конкретный тип. Это позволит вам в дальнейшем избежать ошибок, так как вы наверняка будете знать, что у вас там за тип."
И оставил ее только для вывода true или false. Я понимаю что и без нее все выводится)

ivashkevich 16.04.2018 в 18:00

Хорошо, тогда удаляйте её)

DmitryGavrilov 16.04.2018 в 21:31
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';
$result = '';
if ($login === 'admin' && $password === 'pa$$w0rd') {
    $result = 'Авторизация прошла успешно';
}
//Добавьте дополнительное условие, которое будет говорить о том, что пользователь
// не найден, если переданный логин не ‘admin’.
elseif ($login !== 'admin') {
    $result = 'Пользователь не найден';

    //И если пользователь не найден, то нет смысла проверять пароль,
    // и это условие проверяться не будет.
    //Если же логин ‘admin’, но пароль не совпадает,
    // то писать о том, что пароль неверный.
} else {
  $result = 'Пароль введен неверно';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $result ?>
</p>
</body>
</html>
ivashkevich 17.04.2018 в 16:59

Ну вот, другое дело :)

1nSide 20.04.2018 в 16:23

2 Задача

?php

 $login = !empty($_GET['login'])? $_GET['login'] : 'Логин не передан';
 $password = !empty($_GET['password'])? $_GET['password'] : 'Пароль не передан';

 switch ($login&$password)
 {
     case $login === 'admin' && $password === '12345':
         $isAuthorized = 'Логин и пароль введены правильно';
     break;

     case $login === 'admin' && $password !== '12345';
         $isAuthorized = 'Пароль не верный';
         break;

     case $login !== 'admin':
         $isAuthorized = 'Такого пользователя не существует';
         break;

     default:
 }

?>

<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
</p>
</body>
</html>
ivashkevich 21.04.2018 в 18:14

Те же ошибки что и в случае выше. И еще к ним же:

  1. в switch используете побитовое И - если хотели использовать логическое И, то используйте два амперсанда &&
  2. Даже если вы исправите на логическое ИЛИ, в нем все равно не будет никакого смысла. Потому что login и password у вас всегда непустые строки и всегда будут приведены к true.
  3. Секция default никогда не должна быть пустой.
  4. Переменная isAuthorized (перевод - авторизация пройдена) не подходит по смыслу к тому, что вы в нее складываете. Вы туда присваиваете текст ошибки, а иногда еще и информацию об успехе. Лучше просто завести переменную для ошибок $error и присвоить ее в начале программы равной null. В конце будете смотреть, равна ли она null. Нет - значит ошибка произошла и надо об этом написать. Иначе - авторизация прошла успешно и стоит тоже об этом написать.
  5. Если логин или пароль не переданы, стоит тоже об этом писать, сейчас эта информация просто игнорируется. Лучше в эти переменные, если они не переданы, присвоить null и добавить еще 2 кейса в свитче для случаев, когда эти переменные равны null и присвоить текст ошибки опять же в переменную error.
1nSide 25.04.2018 в 14:41

Не особо понял с операторами null, пытался сделать но не получилось, если можно то скиньте пример с таким решением как вы говорите.
Сделал так, вроде все работает.

<?php

 $login = !empty($_GET['login'])? $_GET['login'] : 'Логин не передан';
 $password = !empty($_GET['password'])? $_GET['password'] : 'Пароль не передан';

 switch ($login&&$password)
 {
     case $login === 'admin' && $password === '12345':
         $result = 'Пользователь авторезован';
         break;

     case $login === 'admin' && $password !== '12345':
         $result = 'Не верный пароль';
         break;

     default:
         $result = 'Пользователь не авторизован';

 }

?>

<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?=$result?>
</p>
</body>
</html>
ivashkevich 25.04.2018 в 18:15

Привет, примерно вот так:

$login = !empty($_GET['login'])? $_GET['login'] : null;
$password = !empty($_GET['password'])? $_GET['password'] : null;

switch (true) {
    case $login === null || $password === null:
        $result = 'логин не передан';
        break;
    case $login === 'admin' && $password === '12345':
    //дальше продолжается ваш код
andropij 17.06.2018 в 17:41
<?php
$password = !empty($_GET['password']) ? $_GET['password'] : 'логин не передан';
$login = !empty($_GET['login']) ? $_GET['login'] : 'логин не передан';
if ($login != 'admin') {
    echo "Пользователь не найден!";
} else if ($password != '123') {
    echo "Невреный пароль";
}
?>

<html>
<head>
    <title>Знакомсвто с Get запросом</title>
</head>
<body>
</body>
</html>
ivashkevich 18.06.2018 в 05:04

Неплохо! Однако, не стоит в переменную $password складывать текст ошибки - для этого лучше заводить специальную переменную с текстом $error. А в $login и $password должны содержаться логин и пароль, если их нет - храните там null. В вашем варианте, если их не передать, то мы никогда об этом не узнаем.

Fox-24 14.08.2018 в 12:54

Как всегда всё супер! Спасибо)


// ДЗ

$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login !== 'admin') {        // Если логин не совпадает с 'admin'
    $isAuthorized = 'Указан не верный логин';
} elseif ($login === 'admin' && $password === 'Pa$$w0rd') {     // Если логин и пароль совпадают
    $isAuthorized = 'Поздравляем! Авторизация прошла успешно.';

} else {                         // Если пароль не верный
    $isAuthorized = 'Введен не верный пароль. Попробуйте еще раз.';

}

?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
</p>
</body>
</html>
ivashkevich 14.08.2018 в 20:37
  1. Как думаете, нужно ли после проверки
    if ($login !== 'admin')

    проверять что

    } elseif ($login === 'admin' ...
  2. Переменная $isAuthorized начинается с is - мы об этом не говорили, но такие имена говорят о том, что тип значения - boolean (true/false). Для вашего варианта будет лучше назвать переменную $result.
    Либо же можно завести 2 отдельные переменные - $isAuthorized, с типом boolean, которая будет говорить об успешности авторизации. И ещё одну переменную $error - по умолчанию будет равна null, но при возникновении ошибок авторизации будет задаваться текст ошибки.
    А затем уже в условиях проверять значения этих переменных, и на их основе писать какой-то текст.
Fox-24 14.08.2018 в 22:07
  1. Нет, конечно не нужно. Стоило перепроверить условия, тут ковырялся некоторое время...)
  2. Спасибо, полезная информация.
if ($login !== 'admin') {        // Если логин не совпадает с 'admin'
    $result = 'Указан не верный логин';
} elseif ($password === 'Pa$$w0rd') {     // Если логин и пароль совпадают
    $result = 'Поздравляем! Авторизация прошла успешно.';

} else {                         // Если пароль не верный
    $result = 'Введен не верный пароль. Попробуйте еще раз.';

}

?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $result ?>
</p>
</body>
</html>
ivashkevich 16.08.2018 в 21:47

Найс!

Himik 06.09.2018 в 21:00
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin') {
    if ($password === 'Pa$$w0rd') {
        $isAuthorized = 'Логин и пароль верные';
    } else {
        $isAuthorized = 'пароль не подходит';
    } 
} else {
    $isAuthorized = 'пользователь не найден';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?php echo $isAuthorized; ?>
</p>
</body>
</html>
ivashkevich 07.09.2018 в 08:54

Хорошо =)

artemjeka 07.09.2018 в 11:37
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';
if ($login !== 'admin') {
    $isAuthorized = 'Пользователь не найден!';
}
elseif ($password === 'pass') {
    $isAuthorized = 'Пользователь и пароль совпадают!';
}
else {
    $isAuthorized = 'Пароль не верен!';
}
ivashkevich 07.09.2018 в 21:31

Хорошо

yuliya-chirkova 19.09.2018 в 12:47

А у меня вопрос.

<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';
if ($login ==='admin' && $password === '123456') {
    $autorized = 'Данные верны';
}

elseif ($login !== 'admin')
{

    $autorized = 'Логин неверный';
}

else ($password !== '123456')
 {
     $autorized = 'Пароль неверный'
 }

?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $autorized ?>
</p>
</body>
</html>

Если у нас неверный логин, то мы можем завершить цикл оператором break? Пробовала добавлять его после elseif- показало ошибку

ivashkevich 22.09.2018 в 20:22

Здравствуйте, это не цикл, циклы - это for, while, foreach. Здесь же у вас условие и break внутри них не имеет смысла. Кроме того, блок else не может содержать условия - он просто выполняется, если предыдущие if и ifelse не выполнились. Таким образом, строка

else ($password !== '123456')

должна быть переписана просто в

else
Benya 19.09.2018 в 21:56
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login != 'admin') {
    $isAdmin = true;
} else {
    if ($login === 'admin' && $password === '12345') {
        $isAuthorized = true;
    } else {
        $isAuthorized = false;
    }
}

?>

<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAdmin ? 'login not found' : ($isAuthorized ? 'Логин и пароль верные!' : 'Неправильный  пароль') ?>
</p>
</body>
</html>
ivashkevich 22.09.2018 в 20:24

Работать-то работает, но переменная isAdmin (это Админ), в этом коде true если это не админ. Ерунда какая-то - переделайте =)

SBTesla 20.09.2018 в 10:38
<?php

$login = !empty($_POST ['login']) ? $_POST ['login']  : ' ';
$password = !empty($_POST ['password']) ? $_POST ['password'] :' ';

if ($login === 'admin'  &&  $password === '12345'){
    $isAuthorized =true ;
    }
    elseif($login !== 'admin'){
        $isAuthorized =false;
        $error = 'Логин не верен';
    }
    else ($password !== '12345') {
        $error = 'Пароль не верен'

}

?>

<html>
<head>
    <title>Результат авторизации</title>
</head>
<p><?= $isAuthorized  ? 'Вы Авторизованы': $error ?></p>
<body>
</body>
</html>
CarfikDK 22.10.2018 в 22:11

index.php

<html>
<head>
    <title>Авторизация</title>
</head>
<body>
<form action="/login.php" method="get">
    <label>
        Логин <input type="text" name="login">
    </label>
    <br>
    <label>
        Пароль <input type="password" name="password">
    </label>
    <br>
    <input type="submit" value="Войти">
</form>
</body>
</html>

login.php

<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin') {
    $isLoginRight = true;
    if($password === '12345678')
    {
        $isPasswordRight = true;
    } else {
        $isPasswordRight = false;
    }
} else {
    $isLoginRight = false;
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?php
        if($isLoginRight)
        {
            if($isPasswordRight)
            {
                echo 'Логин и пароль верные!';
            } else {
                echo 'Пароль не верный!';
            }
        } else {
            echo 'Пользователь не найден!';
        }
    ?>
</p>
</body>
</html>
ivashkevich 23.10.2018 в 08:43

Отлично! Для оформления кода используйте первую кнопку в окне добавления комментария.

stokato 04.11.2018 в 23:50

Сейчас если переданы неверные логин или пароль, выводится информация о том, что либо одно, либо другое неверно.
Добавьте дополнительное условие, которое будет говорить о том, что пользователь не найден, если переданный логин не ‘admin’. И если пользователь не найден, то нет смысла проверять пароль, и это условие проверяться не будет. Если же логин ‘admin’, но пароль не совпадает, то писать о том, что пароль неверный.

<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

$errorMessage = '';
$isAuthorized = false;

if ($login === 'admin')
    if($password === 'Pa$$w0rd')
        $isAuthorized = true;
    else
        $errorMessage = 'Введен не правильный пароль';
 else
     $errorMessage = 'Логин не найден';
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ? 'Логин и пароль верные! Добро пожаловать ' . $login : $errorMessage; ?>
</p>
</body>
</html>
ivashkevich 05.11.2018 в 09:15

Хорошо, но для условий всегда используйте фигурные скобки. Это закон =)

virtual2018 21.11.2018 в 14:45
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin') {
    if ($password === 'Pa$$w0rd') {
        $messageText = 'Логин и пароль верные!';
    } else {
        $messageText = 'Неправильный пароль';
    }
} else {
    $messageText = 'Неправильный логин';
}

?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $messageText ?>
</p>
</body>
</html>
ivashkevich 22.11.2018 в 09:32

Отлично!

Pavel-Tonk 03.12.2018 в 00:34
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login !== 'admin') {
    $isAuthorized = 'none';
} else if ($login === 'admin' && $password === '123') {
    $isAuthorized = 'admin';
} else {
    $isAuthorized = false;
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized === 'admin' ? 'Логин и пароль верные!' : 
        $isAuthorized === 'none' ? 'Нет такого пользователя' : 'Пароль не верен';
     ?>
</p>
</body>
</html>

Не могу понять почему конструкция проверки $isAuthorized не срабатывает правильно, где ошибся?

ivashkevich 03.12.2018 в 10:02

Привет. Очень сложно читать код из двух тернарок подряд. Не надо так делать.

Переменная isAuthorized должна содержать только true или false. Заведи лучше отдельную переменную для ошибок, в которой будут строки. Если же ошибок нет - записывай в неё null.

Bogdan 13.12.2018 в 12:30
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login !== 'admin') {
    $isAuthorized =  "пользователь не найден";
}else if ($login === 'admin' && $password === 'Pa$$w0rd') {
    $isAuthorized = "Логин и пароль верные!";
} else {
    $isAuthorized = "Неправильный пароль";
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?=$isAuthorized;?>
</p>
</body>
</html>
ivashkevich 14.12.2018 в 10:31

Хорошо

SashkoUkraine 23.01.2019 в 11:06
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

$isAdmin = true;

if ($login === 'admin') {
    if ($password === 'Pa$$w0rd') {
        $isAuthorized = true;
    } else {
        $isAuthorized = false;
    }
} else {
    $isAdmin = false;
}

?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?php
        if ($isAdmin) {
            echo $isAuthorized ? 'Логин и пароль верные!' : 'Неправильный пароль';
        } else {
            echo 'пользователь не найден';
        }
    ?>

</p>
</body>
</html>
ivashkevich 23.01.2019 в 11:52

Ок!

excent63 26.01.2019 в 20:58

Спасибо за очередной урок!
Домашнее задание:

<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login != 'admin' && $password != 'pass'){
    $authorization = 'Неверный логин';
} elseif ($password != 'pass') {
    $authorization = 'Пароль не верный';
} else {
    $authorization = 'Успешная авторизация';
}
?>
<html>
<head>
    <title>Знакомство с GET</title>
</head>
<body>
<?=$authorization?>
</body>
</html>
ivashkevich 27.01.2019 в 10:55

ОК! =)

N9PIX 29.01.2019 в 14:20
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : 'Логин не передан';
$password = !empty($_GET['password']) ? $_GET['password'] : 'Пароль не передан';
if($login === 'admin' && $password === '123') {
    $isAunthorized = 'Добро пожаловать на сайт';
} else if ($login === 'admin' && $password !== '123') {
    $isAunthorized = 'Пароль введён не верно';
} else {
    $isAunthorized = 'Пароль и логин не верны';
}
?>
<html>
<head>
    <title>Авторизация</title>
</head>
<body>
<p>
    <?= $isAunthorized?>
</p>
</body>
</html>
ivashkevich 29.01.2019 в 23:35

Ок!

[email protected] 30.01.2019 в 20:48
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'admin'){
    $isAutorized = 'ok';
}  elseif ($login === 'admin'){
    $isAutorized = 'login - not';
} else{
    $isAutorized = 'password - not';
}
?>
<html>
<head>
    <meta charset="UTF-8">
    <title>Avtorizaition</title>
</head>
<body>
    <p>
        <?=$isAutorized?>
    </p>

спасибо за уроки))
правда не все понял по GET вроде все понятно,думаю с POST приблизительно тоже...
есть вопросик:
$login = !empty($_GET['login'])-правильно читать строку присвоить значения условие если значение GET-не пусто то ... дальше немного непонятно...

ivashkevich 01.02.2019 в 23:50

Повторите тернарный оператор)

Pro100Bah 31.01.2019 в 17:26
<?php
echo 'Homework19' . '<br>';
$login = !empty($_GET['login']) ? $_GET['login'] : ' ';
$password = !empty($_GET['password']) ? $_GET['password'] : ' ';

if ($login === 'admin' && $password === 'qwerty') {
    $isAuthorized = 'ВЫ успешно авторизированы!!!';
} elseif ($login !== 'admin') {
    $isAuthorized = 'Неверно указан Логин!!!';
} elseif ($password !== 'qwerty') {
    $isAuthorized = 'Неверно указан Пароль!!!';
}
if ($login !== 'admin' && $password !== 'qwerty') {
    $isAuthorized = 'Неверно указан логин и пароль!!!';}
?>

<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
</p>
</body>
</html>

<?= $isAuthorized ? 'Логин и пароль верные!' : 'Неправильный логин или пароль' ?> - это конструкция из примера в уроке - это применение тернарного оператора правильно? А вот это

$login = !empty($_GET['login']) ? $_GET['login'] : 'логин не передан!';
$password = !empty($_GET['password']) ? $_GET['password'] : 'пароль не передан!';

где логин не передан или пароль не передан; это что такое?

ivashkevich 01.02.2019 в 23:51

И это тоже тернарный оператор)

результат = (логическое условие) ? (что вернуть, если условие выполнено) : (что вернуть, если не выполнено)
[email protected] 05.02.2019 в 12:59
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';
//В этом месте вставляем проверку условий
if ($login != 'admin') {
  echo  'Пользователь не найден!'; 
}
elseif ($password != 'Pa$$w0rd') {
  echo 'Логин и пароль не совпадают, проверьте пароль';
}
ivashkevich 07.02.2019 в 12:54

Ок!

[email protected] 10.03.2019 в 15:47
<?php
if ($_GET['login'] !== 'admin') {
    echo 'Пользователь не найден';
    return false;
}

if ($_GET['password'] !== 'admin') {
    echo 'Неверный пароль';
    return false;
}

echo 'Пользователь найден';
?>
<html>
<head>
    <title>Знакомство с GET-запросами</title>
</head>
<body>
<form action="login.php">
    <input name='login' placeholder="login">
    <input name='password' placeholder="password">
    <input type="submit">
</form>
</body>
</html>
ivashkevich 11.03.2019 в 21:11

Почему именно return false?

ashfedor 10.03.2019 в 16:07

if ($login !== 'admin'){
  $isAuthorized = 'Пользователь не найден';
} elseif ($password !== '123456'){
  $isAuthorized = 'пароль не правильный';
} else{
    $isAuthorized = 'Вы вошли в систему';
}```
ivashkevich 11.03.2019 в 21:12

Отлично!

Shtiher 13.03.2019 в 17:37
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin') {
    if ($password === 'Pa$$w0rd'){
        $isAuthorized = 'Логин и пароль верны';
    } else {
        $isAuthorized = 'Пароль не верный';
    }
} else {
    $isAuthorized = 'Пользователь не найден';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
</p>
</body>
</html>
ivashkevich 14.03.2019 в 09:13

ОК!

Blook 13.03.2019 в 23:01
<?php
 $login = $_GET['login'] == 'admin' ? True : False;
 $password = $_GET['password'] == 'p@ssw0rd' ? True : False;
 if ($login && $password) {
     $isAuthorized = 'Login and password are correct';
 } else if ($login && !$password) {
     $isAuthorized = 'Password is uncorrect';
 } else {
     $isAuthorized = 'Login or password is uncorrect';
 }
?>

<html>
<head>
    <title>
        Result
    </title>
</head>
<body>
    <?= $isAuthorized ?>
</body>
</html>
ivashkevich 14.03.2019 в 09:14

ОК. true и false пишутся с маленькой буквы.

Blook 18.03.2019 в 22:24

спасибо, учту

Grewi 17.03.2019 в 02:48
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$pass = !empty($_GET['pass']) ? $_GET['pass'] : '';
echo $login.'</br>'.$pass;

if ($login === 'admin'){
    if ($pass === 'pass'){
        $i = true;
    }else {
        $err = 'Не верный пароль';
    }
}else {
    $err = 'Не верный логин';
}

echo $i == true ? '</br> Авторизация прошла успешно' : '</br>'.$err ;
ivashkevich 17.03.2019 в 23:53

ОК

[email protected] 17.03.2019 в 16:12
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';
?>

<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?php
    if ($login !== 'admin') {
        echo 'Пользователь не найден';
    } elseif ($password !== 'pa$$word') {
        echo 'Пароль неверный';
    } else {
        echo 'Логин и пароль верные';
    }
    ?>
</p>
</body>
</html>
ivashkevich 17.03.2019 в 23:54

Отлично

lilit 20.03.2019 в 20:47
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin') {

    if ($password === 'Pa$$w0rd') {
        $isAuthorized = 'Логин и пароль верные!';
    } else {
        $isAuthorized = 'Пароль неверный';
    }

} else {
    $isAuthorized = 'Пользователь не найден';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
</p>
</body>
</html>
lilit 20.03.2019 в 20:58

Мудрено слишком, да?

<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin') {
    $isLogin = true;
    if ($password === 'Pa$$w0rd') {
        $isPassword = true;
        $good = false;
    } else {
        $isPassword = false;
        $good = true;
    }

} else {$isLogin = false;
    $isPassword = true;
    $good = true;
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isLogin ? '' : 'Пользователь не найден' ?>
    <?= $isPassword ? '' : 'Пароль неверный' ?>
    <?= $good ? '' : 'Логин и пароль верные!'?>
</p>
</body>
</html>
ivashkevich 20.03.2019 в 21:19

Первый вариант норм. Второй - мешанина какая-то =)

XXX 24.03.2019 в 14:15
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin') {
    if($password === '12345') {
        $isAuthorized = 1;
    }
    else $isAuthorized = 2;}
else {
    $isAuthorized = 3;
}

?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>

    <?php
    switch ($isAuthorized) {
        case 1:
            echo 'Логин и пароль верные!';
            break;
        case 2:
            echo 'Неверный пароль!';
            break;
        case 3:
            echo 'Неверный логин! Пароль не проверяется!';
            break;
    } ?>
</p>
</body>
</html>
ivashkevich 25.03.2019 в 11:30

Ок!

polvanovv 27.03.2019 в 12:17
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if($login !== 'admin'){
    $isAuthorized = 'User not found!';
}else {
    if ($login === 'admin' && $password === 'Pa$$w0rd') {
        $isAuthorized = 'Success authorization!';
    } else {
        $isAuthorized = 'Incorrect password!';
    }
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
</p>
</body>
</html>
ivashkevich 27.03.2019 в 13:19

Отлично

artemship 17.04.2019 в 17:07

По-моему во втором if проверка $login === 'admin' не нужна

Boodoo 03.04.2019 в 06:25
<?php
    $login = !empty($_GET['login']) ? $_GET['login'] : '';
    $password = !empty($_GET['password']) ? $_GET['password'] : '';

    $isAuthorized = false;
    $mess = '';

    if($login == 'admin') {
        if($password === 'Pa$$w0rd') {
            $isAuthorized = true;
        } else {
            $mess = 'Пароль не верный';
        }
    } else {
        $mess = 'Пользователь не найден.';
    }
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Результат авторизации</title>
</head>
<body>
    <p>
        <?= $isAuthorized ? 'Логин и пароль верные!' : $mess ?>
    </p>
</body>
</html>
ivashkevich 03.04.2019 в 22:56

Отлично разделили ответственность переменных за разные действия.

artemship 17.04.2019 в 17:05
<?php

$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login !== 'admin') {
    $result = 'Пользователь не найден';
} elseif ($password !== 'Pa$$w0rd') {
    $result = 'Пароль неверный';
} else {
    $result = 'Добро пожаловать! :)';
}

?>

<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $result ?>
</p>
</body>
</html>
ivashkevich 17.04.2019 в 22:26

Отлично

[email protected] 18.04.2019 в 17:06
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'Password') {
    $isAuthorized = 'Авторизация Успешна';
} else if($login!='admin') {
    $isAuthorized = 'Неверный логин';
} else{
    $isAuthorized='Неверный пароль';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
</p>
</body>
</html>
ivashkevich 18.04.2019 в 19:31

Отлично

sceptic 22.04.2019 в 12:04
<?php

$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin') {
    if ($password === 'Pa$$w0rd'){
        $isAuthorized = 'Логин и пароль верные!';
    } else {
        $isAuthorized = 'Неверный пароль!';
    }

} else {
    $isAuthorized = 'Пользователь не найден!';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?=$isAuthorized; ?>
</p>
</body>
</html>

Если логин не подходит, то пароль проверяться не будет.

ivashkevich 22.04.2019 в 17:13

Отлично!

Dram 22.04.2019 в 17:08
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<h2>Вариант №1</h2> <br>
<p>
<?php
$Authorized = ['admin','Pa$$w0rd'];
var_dump($Authorized);
var_dump($_GET);
if ($_GET['login'] !== $Authorized[0]) {
    echo 'Пользователь не найден';
}elseif ($_GET['login'] === $Authorized[0] && $_GET['password'] === $Authorized[1]){
    echo 'Успешная авторизация';
}
else{
    echo 'Пароль не верный';
}

?>
</p>
<h2>Вариант №2</h2> <br>
<?php
$Authorized = ['admin','Pa$$w0rd'];
var_dump($Authorized);
var_dump($_GET);
if ($_GET['login'] !== $Authorized[0]) {
    echo 'Пользователь не найден';
}elseif ($_GET['login'] === $Authorized[0] && $_GET['password'] !== $Authorized[1]){
    echo 'Пароль не верный';
}
else{
    echo 'Успешная авторизация';
}

?>
</body>
</html>
ivashkevich 22.04.2019 в 17:15

А в чем между ними разница?

Dram 22.04.2019 в 17:17

Особой разницы нет, думал вы сделаете замечание что нет явной проверки на Не ПРАВИЛЬНЫЙ ПАРОЛЬ.

ivashkevich 22.04.2019 в 17:21

В первом условии проверяете, что логин неправильный, после этого во втором условии проверяете, что он правильный. Это лишнее. Так как если он не неправильный, значит он точно правильный, и достаточно будет во втором условии проверить только пароль.

[email protected] 08.05.2019 в 20:30
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login !== 'admin') {
    $isAuthorized = 'нет такого пользователя';
} else if ($login === 'admin' && $password !== '1234') {
    $isAuthorized = 'не верный пароль';
} else {
    $isAuthorized = 'добро пожаловать';
}
echo $login;
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
</p>
</body>
</html>

вопрос,зачем когда присваивается переменным значение писать тернарный оператор,если мы можем просто написать $login = $_GET['login'];
$password = $_GET['password'];

ivashkevich 10.05.2019 в 13:43

Отлично.
Потому что если с формы убрать одно из полей и отправить такой запрос, то скрипт упадет с ошибкой при обращении к значению массива по несуществующему ключу. То есть если мы уберем с формы поле password и отправим запрос, то в массиве $_GET не будет ключа password. Если прямо обратиться к нему вот так: $_GET['password'], не проверив предварительно с помощью isset, empty или array_key_exists, то будет ошибка. Вам задание - проверить, что так оно и будет.

esqrx 11.05.2019 в 12:05
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : 'логин не передан!';
$password = !empty($_GET['password']) ? $_GET['password'] : 'пароль не передан!';

if ($login === 'admin' && $password === 'password'){
    echo 'Добро пожаловать';
}
    else if ($login !== 'admin'){
    echo 'Пользователь не найден';
}
//Почему я не могу сюда ввести **BREAK;**?
    else if ($login === 'admin' && $password !== 'password'){
    echo 'Неверный пароль';
}
ivashkevich 11.05.2019 в 14:04
  1. Не нужно в переменные для хранения логина и пароля складывать ошибки! Не пришёл пароль - значит в переменной будет пусто. Можете потом эту пустоту проверять и выводить ошибки, но хранить в переменных предназначенных для чего-то одного всё что вздумается - плохая практика.
  2. break используется в циклах.
  3. С форматированием проблемы у вас - все отступы и переносы пляшут, что сложно читать код.
  4. elseif пишется слитно.
esqrx 11.05.2019 в 15:26
$login = ($_GET['login']);
$password = ($_GET['password']);

if ($login === 'admin') {
    if ($password === 'pass') {
        echo 'Добро пожаловать';
    } else echo 'Пароль введен неверно!';
} else echo 'Данный пользователь отсутствует!';

//Спасибо за развернутый ответ!!
ivashkevich 11.05.2019 в 15:46
  1. А куда делась проверка с помощью empty? Если поле с формы убрать, то при отправке запроса скрипт упадет с ошибкой.
  2. Для блоков if-else ВСЕГДА используйте фигурные скобки, даже если там одна строчка.
Moskva 29.05.2019 в 11:36

Код:

<?php
$login = !empty($_GET['login']) ? $_GET['login'] : 'Логин не передан';
$password = !empty($_GET['password']) ? $_GET['password'] : 'Пароль не передан';
if ($login != 'admin'){
    echo 'Логин неверный';
    die();
} elseif($password != '12345'){
    echo 'Пароль неверный';
    die();
}

?>
<html>
<head>
    <title>Знакомство с GET-запросамиы</title>
</head>
<body>
Переданный логин: <?= $login?>
<br>
Переданный пароль: <?= $password?>
</body>
</html>
ivashkevich 30.05.2019 в 06:31

Нужно обходиться без die. В переменные, которые используются для хранения логина и пароля не нужно складывать ошибки.

Moskva 26.06.2019 в 15:44

А вот так?

<?php

$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';
if ($login != 'admin'){
    $error = 'Логин неверный';
} elseif($password != '12345'){
    $error = 'Пароль неверный';
} else{
    echo 'Вы успешно авторизовались';
}

?>
<html>
<head>
    <title>Знакомство с GET-запросами</title>
</head>
<body>
<? if($error !== false){
    echo $error;
} ?>
Переданный логин: <?= $login?>
<br>
Переданный пароль: <?= $password?>
</body>
</html>
ivashkevich 27.06.2019 в 19:01

Почему сообщение об успешной авторизации находится вне html- документа?

Reechniy 10.07.2019 в 14:55
<?php
$login=!empty($_GET['login']) ? $_GET['login']:'';
$password=!empty($_GET['password']) ? $_GET['password']:'';

if($login==='admin' && $password==='Pa$$w0rd'){
    $isAutorized='Верный логин и пароль';
}else if($login!=='admin'){
    $isAutorized='Неверный логин';
}else{
    $isAutorized='Неверный пароль';
}

?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?=$isAutorized?>
    </p>
</body>
</html>
ivashkevich 12.07.2019 в 05:30

Отлично

kvakazuabr 16.07.2019 в 12:29
if ($login !== 'admin') { //&& $password === 'Pa$$w0rd') {
   //$isAuthorized = true;
    $isAuthorized = 'пользователь не найден';
} else {
    if($password === 'Pa$$w0rd') {
        $isAuthorized = 'добро пожаловать на сайт';
    } else {
      $isAuthorized = 'не верный пароль';  
    }

}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <!--  //? 'Логин и пароль верные!' : 'Неправильный логин или пароль' ?> -->
    <?= $isAuthorized;?>
</p>
</body>
</html>
ivashkevich 17.07.2019 в 04:25

Код норм. Непонятно только, для чего эти комментарии, они не несут никакой пользы. Надо их убрать

AlexxxEy 18.07.2019 в 01:01
<?php
$login = !empty($_GET['login']) ?  $_GET['login'] : 'Значение не найдено';
$password = !empty($_GET['login']) ?  $_GET['login'] : 'Значение не найдено';

if($_GET['login'] == 'text1' && $_GET['password'] == 'pass'){
    $LogAvtAcs = true;
}
elseif($_GET['login'] != 'text1') {
    $LogAvtAcs = false;
    $Log = 'Пользователь не найден, нет смысла проверять пароль';

}elseif($_GET['password'] != 'pass'){
    $LogAvtAcs = false;
    $Log = 'Пароль не вереный, доступ запрещен';
}
?>

<html>
<head>
    <title> Страница доступна</title>
</head>
<body>
<p><?= $Log ?></p>
<p><?= $Avtotest = $LogAvtAcs ? 'Доступ есть' : 'Доступа нет'; ?></p>
</body>
ivashkevich 18.07.2019 в 04:36
$login = !empty($_GET['login']) ?  $_GET['login'] : 'Значение не найдено';
$password = !empty($_GET['login']) ?  $_GET['login'] : 'Значение не найдено';

Не нужно в переменные, предназначенные для хранения логина и пароля, пихать ошибки. Пишите туда null или пустую строку, если ничего не пришло.

ivashkevich 18.07.2019 в 04:39

$LogAvtAcs - имена переменных с маленькой буквы!

<p><?= $Avtotest = $LogAvtAcs ? 'Доступ есть' : 'Доступа нет'; ?></p>

Вот это для чего вообще? Для чего переменная $Avtotest?

Aleks 15.08.2019 в 11:44
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'Pa$$w0rd') {
    $isAuthorized = 'Верная авторизация';
} else if($login !== 'admin') {
    $isAuthorized = 'Логин неверный';
} else {
    $isAuthorized = 'Пароль не верный';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
</p>
</body>
</html>
ivashkevich 16.08.2019 в 20:28

Отлично

Vladimir96 17.08.2019 в 13:09
<!--Форма-->
<html>
<head>
    <title>Форма входа</title>
</head>
<body>
<form action="/index.php" method="get">
    <label>
        Логин <input type="text" name="login">
    </label>
    <br>
    <label>
        Пароль <input type="password" name="password">
    </label>
    <br>
    <input type="submit" value="Войти">
</form
</body>
</html>
<?php
    //Код и исполнение
    $login = !empty($_GET['login']) ? $_GET['login'] : '';
    $password = !empty($_GET['password']) ? $_GET['password'] : '';

    if ($login === 'admin' && $password === 'Pa$$w0rd') {
        $isAuthorized = $login . ', добро пожаловать!';
    } elseif ($login !== 'admin') {
        $isAuthorized = 'Пользователь не найден';
    } else {
        $isAuthorized = 'Неверный пароль';
    }
    ?>

<html>
    <head>
        <title>Результат авторизации</title>
    </head>
    <body>
    <p>
        <?= $isAuthorized; ?>
    </p>
    </body>
</html>
ivashkevich 18.08.2019 в 06:52

Отлично

Lasto 22.08.2019 в 17:08
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === '123') {

       $login = 'Вы вошли';
} else if  ($login!=='admin' )  {
       $login = 'Пользователь не найден';

} else if  ($password!=='Pa$$word')

        $login='Не верный пароль';
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
    <? '<hr>';?>

    <h2>Результат авторизации</h2>

<p>
    <?= $login  ?>
</p>
</body>
</html>
ivashkevich 22.08.2019 в 18:52
<? '<hr>';?>

Это что такое?

Lasto 23.08.2019 в 13:21

разделил полосой)

ivashkevich 23.08.2019 в 20:00

Я к тому, что это за форма записи? Где нормальные PHP-теги? Где echo? Бред какой-то.

Ooleg 29.08.2019 в 16:21
<?php

$user = $_GET['login'] === 'admin' ? true : false;
if ($user) {
    $isAuthorized = $_GET['password'] === 'Pa$$w0rd' ? true : false;
}

?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <? if (!$user) {
        echo 'Пользователь не найден!';
        } else {
        echo $isAuthorized ? 'Логин и пароль верные!' : 'Неправильный пароль(';
        }
     ?>
</p>
</body>
</html>
ivashkevich 30.08.2019 в 04:40

Странный подход. Логичнее было бы формировать текст ошибки в самом начале, а потом его просто выводить, если переменная с этим текстом не пустая. А если пустая, то выводить сообщение об успешной авторизации.

Ooleg 30.08.2019 в 09:23

Просто баловался, хотел написать как можно меньше кода в верхней части.

ivashkevich 30.08.2019 в 19:34

Не надо баловаться. Делайте хорошо)

Dreft 02.09.2019 в 09:38
<?php
    $login = !empty($_GET['login']) ? $_GET['login'] : '';
    $password = !empty($_GET['password']) ? $_GET['password'] : '';

    if ($login === 'admin' && $password === '123') {
        $isAuthorized = 'Вы успешно вошли.';
    } elseif ($login != 'admin') {
        $isAuthorized = 'Неправильный логин';
    } else {
        $isAuthorized = 'Неправильный пароль';
    }
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p><?=$isAuthorized?></p>
</body>
</html>
ivashkevich 02.09.2019 в 10:10

Отлично

XXX 04.09.2019 в 12:21
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

switch (true){
    case ($login == 'admin' & $password == '123'):
        $authorized = 'Логин и пароль верны!';
        break;
    case ($login == 'admin' & $password != '123'):
        $authorized = 'Неверный пароль!';
        break;
    default:
        $authorized = 'Пользователь не найден, пароль не проверяется!';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $authorized  ?>
</p>
</body>
</html>
ivashkevich 04.09.2019 в 21:20

Отлично

[email protected] 17.09.2019 в 21:41
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login == 'admin') {
    if ($password == 'Pa$$w0rd') {
        $authorization = 'Добро пожаловать';
    } else
        $authorization = 'Неверный пароль';
} else
    $authorization = 'Неверный логин'

?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?php echo $authorization ?>
</p>
</body>
</html>

Добрый день,похоже на правду?

ivashkevich 18.09.2019 в 17:46

Отлично

dliashchenko 25.09.2019 в 22:24
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

  if ($login === 'admin' && $password === 'Pa$$w0rd') {
        $isAuthorized = 'Логин и пароль верные!';
  } elseif ($login !== 'admin'){
    $isAuthorized = 'Логин не найден!';
  } else {
      $isAuthorized = 'Пароль неверный!';
  }
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized; ?>
</p>
</body>
</html>
ivashkevich 27.09.2019 в 18:05

Отлично

[email protected] 26.09.2019 в 21:35
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?php
    if ($login == 'admin') {
        if ($password == 'Pa$$w0rd') {
            echo "Вы авторизовались";
        } else
            echo 'Неверный пароль';

    } else
        echo 'Неверный логин'
    ?>
</p>
</body>
</html>
ivashkevich 27.09.2019 в 18:06

Ок. Но лучше результат вычислить не посреди шаблона, а в самом начале.

H3licoptero 28.09.2019 в 11:40
$login = !empty($_GET['login']) ? $_GET['login'] : ' ';
$password = !empty($_GET['password']) ? $_GET['password'] : ' ';

if ($login === 'admin' && $password === 'Pa$$w0rd') {
    $isAuthorized = 'Логин и пароль верные!';
} elseif ($login === 'admin' && $password != 'Pa$$w0rd') {
    echo 'Пароль неверный.';
} elseif ($login != 'admin') {
    echo 'Пользователь не найден.';
}

?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
</p>
</body>
</html>
ivashkevich 29.09.2019 в 12:03

Отлично

ZeeCaptain 09.10.2019 в 12:48
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : ' ';
$password = !empty($_GET['password']) ? $_GET['password'] : ' ';

if ($login === 'root' && $password === 'pass') {
    $isAuthorized = true;
} elseif($login !== 'root') {
    echo 'Пользователь не найден';
    return 0;
} else {
    $isAuthorized = false;
}
?>
<html>
<head>
    <title>Рузультат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ? 'Логин и пароль верные!': 'Логин и пароль не верные'?>
</p>
</body>
</html>
ivashkevich 09.10.2019 в 19:29

Не стоит по умолчанию для пустых значений использовать строку из пробелов. Либо просто пустую строку используй, либо null. И для чего возвращаешь 0?

Evilinside 16.10.2019 в 14:53
<?php
/*
 * Сейчас если переданы неверные логин или пароль, выводится информация о том, что либо одно, либо другое неверно.
 *
 * Добавьте дополнительное условие, которое будет говорить о том, что пользователь не найден, если переданный логин не ‘admin’. И если пользователь не найден,
 * то нет смысла проверять пароль, и это условие проверяться не будет. Если же логин ‘admin’, но пароль не совпадает, то писать о том, что пароль неверный.
 */
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === '12345') {
    $isAuthorized =  'Добро пожаловать!';
} elseif ($login !== 'admin') {

    $isAuthorized =  'Неверный логин!';

} else {

    $isAuthorized = 'Неверный пароль';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p align="center">
    <?= $isAuthorized ?>
</p>
</body>
</html>
ivashkevich 16.10.2019 в 21:20

Всё ок, только переменные, начинающиеся со слова is, как правило имеют тип Boolean. Здесь лучше использовать другое имя. Это чтобы вы знали, переделывать не обязательно.

sar16520 18.10.2019 в 17:50

INDEX.PHP

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello,World!</title>
</head>
<body>
    <form action="login.php" method="get">
        <input type="text" name="login">
        <input type="password" name="pw">
        <input type="submit" value="Войти">
    </form>
</body>
</html>

LOGIN.PHP

<?php
$login= !empty($_GET['login']) ? $_GET['login'] : 'Логин не найден';
$pw= !empty($_GET['pw']) ? $_GET['pw'] : 'Пароль не найден';

if($login !== 'admin'){
    $signIn= 'Пользователь не найден';
}elseif($logjn === 'admin' || $pw !== '12345'){
    $signIn= 'Пароль введен неверно';
}else{
    $signIn= 'Все верно';
}

?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello,World!</title>
</head>
<body>
    <p><?= $signIn?></p>
</body>
</html>
ivashkevich 18.10.2019 в 21:16

Что за $pw? Называй переменные понятно.

Передаю логин "123" и скрипт плюётся ошибкой.

sar16520 19.10.2019 в 11:53

$pw сокращенно $password. У меня все нормально работает)

ivashkevich 19.10.2019 в 12:04

Включи показ ошибок в php.ini. У тебя там используется неопределенная переменная.

sar16520 19.10.2019 в 13:41

login.php

<?php
$login= !empty($_GET['login']) ? $_GET['login'] : '';
$pw= !empty($_GET['pw']) ? $_GET['pw'] : '';

if($login !== 'admin'){
    $signIn= 'Неизвесный польователь';
}elseif($login === 'admin' && $pw !== '12345'){
    $signIn= 'Пароль введен неверно';
}else{
    $signIn= 'Все верно';
}

?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello,World!</title>
</head>
<body>
    <p><?= $signIn?></p>
</body>
</html>

Все, понял. Сейчас ошибок не выдает)

ivashkevich 19.10.2019 в 15:22

Супер)

kvakazuabr 19.10.2019 в 09:25
if ($login !== $_GET['login') {
  echo "пользователь не найден";
} else {
  if ($password === $_GET['password']) {
    $isAuthorized = 'добро пожаловать на сайт';
  } else {
    $isAuthorized = 'не верный пароль';
  }
}

<html>

<head>
  <title>Результат авторизации</title>
</head>

<body>
  <p>
    <?= $isAuthorized?>
  </p>
</body>

</html>
ivashkevich 19.10.2019 в 11:14

Если логин не админ, то возникает ошибка.

[email protected] 20.10.2019 в 22:54
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin') {
    if ($password === 'Pa$$w0rd') {
        $isAuthorized = 'Логин и пароль верные!';
    } else {
        $isAuthorized = 'Пароль неверный';
    }
} else {
    $isAuthorized = 'Пользователь не найден';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
</p>
</body>
</html>
ivashkevich 21.10.2019 в 04:59

Всё ок, только переменные, начинающиеся со слова is, как правило имеют тип Boolean. Здесь лучше использовать другое имя. Это чтобы вы знали, переделывать не обязательно.

[email protected] 21.10.2019 в 09:21

Спасибо!

[email protected] 29.10.2019 в 23:46
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login !== 'admin') {
    $result = 'Такого логина не существует!';
} else {
    if ($password === 'Pa$$w0rd') {
        $result = 'Авторизация прошла успешно!';

    } else {
        $result = 'Неверный пароль!';
    }
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $result ?>
</p>
</body>
</html>
ivashkevich 30.10.2019 в 04:31

Отлично

babur 12.11.2019 в 14:38

Здрасьте! опять ДЗ пож :)

<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'pass') {
    if ($login !== 'admin'){
        $isAuthorized = false;
    } else{
        $isAuthorized = false;
    }
    $isAuthorized = true;
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ? 'Логин и пароль верные!' : 'Неправильный логин или пароль' ?>
</p>
</body>
</html>
ivashkevich 12.11.2019 в 19:48

Если передать неверные логин и/или пароль, то будет ошибка.

andreskrip 13.11.2019 в 16:35

Спасибо за урок!

<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin') {
    if ($password === 'password') {
        $loginStatus = 'Логин и пароль верные!';
    } else {
        $loginStatus = 'Неверный пароль!';
    }
} else {
    $loginStatus = 'Пользователь не найден';
}

?>
<html lang="ru">
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $loginStatus; ?>
</p>
</body>
</html>
ivashkevich 13.11.2019 в 17:18

Всегда будет писать о том, что пользователь не найден.

andreskrip 13.11.2019 в 17:36

Отредактировал (вернул последнее else)

ivashkevich 13.11.2019 в 19:13

Теперь ок

[email protected] 26.11.2019 в 07:51
<?php

$login = $_GET['login'];
$password = $_GET['password'];
$login_sub = '';
$password_sub = '';

if (empty($login)) {
    $login_sub = 'Введите логин';
} elseif ($login !== 'admin') {
    $login_sub = 'Такой логин не найден';
} elseif (empty($password)) {
    $password_sub = 'Введите пароль';
} elseif ($password !== '123') {
    $password_sub = 'Неверный пароль';
}

if($login === 'admin') {
    $login_sub = 'Логин: ' . $login;
}
if($password === '123') {
    $password_sub = 'Пароль: ' . $password;
}

?>

<html>
<head>
    <title>GET-запросы, учение</title>
</head>
<body>
<?= $login_sub ?>
<br>
<?= $password_sub ?>
</body>
</html>

Пытался сделать через switch:

switch ($login) {
    case '':
        'Введите логин';
        break;
    case 'admin':
        if (empty($password)) {
            'Введите пароль';
        } elseif ($password !== '123') {
            'Неверный пароль';
        }
        break;
    default:
        'Такой логин не найден';
}

Но он отказывается работать, что только не пробовал. Сможете объяснить?
Upd: А, кажись понял почему, ни одно сообщение не присваивается переменными xD

switch ($login) {
    case '':
        $login_sub = 'Введите логин';
        break;
    case 'admin':
        if (empty($password)) {
            $password_sub = 'Введите пароль';
        } elseif ($password !== '123') {
            $password_sub = 'Неверный пароль';
        }
        break;
    default:
        $login_sub = 'Такой логин не найден';
}

Исправил

ivashkevich 27.11.2019 в 19:52
$login_sub - не нужно в переменных подчеркиваний. camelCase.

В остальном всё ОК!
Salexandr 18.12.2019 в 00:45
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';
if ($login === 'admin'){$loginAuthorized = true;}
else {$loginAuthorized = false;}
if ($password === 'pa$$w0rd'){$passwordAuthorized = true;}
else {$passwordAuthorized = false;}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
   <?php
   if ($loginAuthorized === false){
       echo 'пользователь не найден';
   }
   if (($loginAuthorized === true) && ($passwordAuthorized === false)){
       echo 'неверный пароль';
   }
   if (($loginAuthorized === true) && ($passwordAuthorized === true)) {
       echo 'добро пожаловать';
   }
    ?>
</p>
</body>
</html>
ivashkevich 18.12.2019 в 01:49

Всё хорошо, только конструкции if-else нужно переносить по строкам. Вот так не делается:

if ($login === 'admin'){$loginAuthorized = true;}
else {$loginAuthorized = false;}
if ($password === 'pa$$w0rd'){$passwordAuthorized = true;}
else {$passwordAuthorized = false;}

Такой код не читается и не соответствует стандартам PSR.

YuraG 21.12.2019 в 23:52
<?php

declare(strict_types=1);

$login = !empty($_GET['login'])? $_GET['login'] : '';
$password = !empty($_GET['password'])? $_GET['password'] : '';

if ($login !== 'admin') {
    $isAutorized = 'loginError';
} else {
    if ($password !== 'Pa$$w0rd') {
        $isAutorized = 'passwordError';
    } else {
        $isAutorized = 'ok';
    }
}

switch ($isAutorized) {
    case 'loginError':
        $msg = 'неверный логин';
        break;
    case 'passwordError':
        $msg = 'неверный пароль';
        break;
    case 'ok':
        $msg = 'Логин и пароль верные!';
        break;
}

?>

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Результат авторизации</title>
</head>
<body>
    <?= $msg ?>
</body>
</html>
ivashkevich 22.12.2019 в 05:00

Отлично, только непонятно для чего промежуточные коды ошибок.

eNergy 13.01.2020 в 10:15
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';
?>
<!doctype html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Authorization</title>
</head>
<body>
<p>
    <?php 
        if ($login === 'admin') {
            if ($password === '1234') {
                echo 'Заходи, друг';
            } else {
                echo 'Пароль неверный';
            }
        } else {
        echo 'Пользователь не найден';
        }
    ?>
</p>
</body>
</html>
ivashkevich 15.01.2020 в 06:07

Отлично

2Folls 16.01.2020 в 14:28
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login != 'admin') {
    die('Такой пользователь не найден!');
}

if ($login === 'admin' && $password === '123') {
    echo 'Успешный вход';
} else {
    die('Пароль неверный');
}
ivashkevich 18.01.2020 в 07:19

Можно было конечно и без die обойтись, но в целом норм

X-Nick 06.02.2020 в 18:51
<?php

if (!empty($_GET['login']) || !empty($_GET['password'])) {
    $login = $_GET['login'];
    $password = $_GET['password'];

        if($login === 'admin') {
            if($password === 'pa$$word') {
                $isAuthorized = 3;
            }
            else {
                $isAuthorized = 2;
            }
        }
        else{
            $isAuthorized = 1;
        }
}
else
    $isAuthorized = 4;
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?php
        switch($isAuthorized) {
        case 1: echo 'пользователь '.$login.' не найден';
        break;
        case 2: echo 'проверьте пароль';
        break;
        case 3: echo  $login.', Вы авторизованы!';
        break;
        case 4: echo 'Введите корректные данные';
    } ?>
</p>
</body>
</html>
ivashkevich 11.02.2020 в 15:02
if (!empty($_GET['login']) || !empty($_GET['password'])) {
    $login = $_GET['login'];

А если одно из них не передано? На второй строке сразу возникнет ошибка.

$isAuthorized = 3;

Переменные, начинающиеся с is подразумевают, что в них хранится Boolean.

X-Nick 11.02.2020 в 23:03
<?php
if (isset ($_GET['submit'])) {
    $login = $_GET['login'] ?? '';
    $password = $_GET['password'] ?? '';

        if($login === 'admin') {
            if($password === 'pa$$word') {
                $loginMessage = 3;
            }
            else {
                $loginMessage = 2;
            }
        }
        else{
            $loginMessage = 1;
        }
}
else
    $loginMessage = 4;
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?php
        switch($loginMessage) {
        case 1: echo 'пользователь '.$login.' не найден';
        break;
        case 2: echo 'проверьте пароль';
        break;
        case 3: echo  $login.', Вы авторизованы!';
        break;
        case 4: echo 'Введите данные';
    } ?>
</p>
</body>
</html>
ivashkevich 12.02.2020 в 13:11
if (isset ($_GET['submit'])) {

Это ещё что за ерунда?

X-Nick 12.02.2020 в 15:10

Проверка на то, были ли данные отправлены именно через форму, по нажатию на кнопку в форме.

ivashkevich 12.02.2020 в 20:14

Это где вы такое увидели? Выведите запрос через var_dump, и убедитесь, что ничего подобного в запросе нет. Не пытайтесь скидывать мне нерабочий код. Я его всё равно проверю. Если не хотите разбираться, то и не отнимайте мое время, не отправляйте на проверку скопированные в интернете куски не пойми чего.

X-Nick 12.02.2020 в 20:34

Разве нельзя передать в скрипт данные, не нажимая при этом кнопку отправить, просто передав данные в виде аргументов в адресной строке? На это я и сделал проверку. Что в этом неправильного? Я как раз хочу разобраться, поэтому и спрашиваю. Я не понимаю, что мне нужно проверить через var_damp? И почему Вы решили, что это откуда-то скопировано? Нет, не скопировано. Какой в этом смысл??

Почему код не рабочий?? Я тестировал его на разные возможные варианты - у меня работает. Если где-то есть ошибка, укажите пожалуйста, что именно не работает.

ivashkevich 12.02.2020 в 20:40

Покажите код вашей формы, пожалуйста

X-Nick 12.02.2020 в 21:37
<html>
<head>
    <title>Форма входа</title>
</head>
<body>
<form action="/login.php" method="get">
    <label>
        Логин <input type="text" name="login">
    </label>
    <br>
    <label>
        Пароль <input type="password" name="password">
    </label>
    <br>
    <input type="submit" value="Войти" name="submit">
</form>
</body>
</html>
ivashkevich 14.02.2020 в 07:24

Ни к чему эта проверка. Проверяйте непосредственно пришедшие данные, а не нажатие кнопки.

[email protected] 17.03.2020 в 22:34
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin'){
//if ($login === 'admin' && $password === 'Pa$$w0rd') {
    if ($password === 'Pa$$w0rd'){
    $isAuthorized = true;   
    }else {echo 'пароль не верный';
        $isAuthorized = false;
        }
} else {
    echo 'Неправильный логин';
    $isAuthorized = false;
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ? 'Логин и пароль верные!' : 'Повторите ввод' ?>
</p>
</body>
</html>
ivashkevich 18.03.2020 в 05:23
//if ($login === 'admin' && $password === 'Pa$$w0rd') {

Это тут зачем?

 }else {echo 'пароль не верный';

Во-первых, не нужно лепить все в одну строку. Во-вторых, не нужно тут же выводить ошибку. Положите ее значение в переменную. А затем, в HTML-коде, если эта переменная не пустая, выведите.

[email protected] 18.03.2020 в 12:09
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'Pa$$w0rd') {
    $isAuthorized = 'Логин и пароль верные!';
} elseif ($login === 'admin' && $password !== 'Pa$$w0rd') {
    $isAuthorized = 'Пароль неверный';
} else {
    $isAuthorized = 'Пользователь не найден';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
</p>
</body>
</html>
ivashkevich 18.03.2020 в 14:27

Не нужно тут же выводить ошибку. Положите ее значение в переменную. А затем, в HTML-коде, если эта переменная не пустая, выведите. Иначе она у вас выводится еще до открывающего тега <html>, а это некорректно. Тело HTML-странички должно находиться внутри тега <body>.

[email protected] 19.03.2020 в 08:11

Артём, спасибо! Вроде всё исправил))

ivashkevich 19.03.2020 в 09:36

Ок. Только переменные, начинающиеся с префикса is... используются для булевых значений.

[email protected] 27.03.2020 в 11:35
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'Pa$$w0rd') {
    $isAuthorized = true;
} else if ($login !== 'admin'){
    $isAuthorized = 'Логин не верный';
} else if (login === 'admin' && $password !== 'Pa$$w0rd'){
    $isAuthorized = 'Пвроль не верный';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ? 'Логин и пароль верные!' : 'Неправильный логин или пароль' ?>
</p>
</body>
</html>
ivashkevich 27.03.2020 в 15:12

Переменные, имена которых начинаются с $is должны иметь булево значение.

    $isAuthorized = true;
...
    $isAuthorized = 'Логин не верный';

Сначала bool, потом string, потому этот string в условии тернарки! Так нельзя. Переменная по ходу работы должна сохранять свой тип. Кроме того, код нерабочий у вас от слова совсем - всегда выдает один и тот же результат. Проверяйте перед отправкой.

studentDev 01.04.2020 в 12:31
<?php
    $login = isset($_GET['login']) ? $_GET['login'] : '';
    $password = isset($_GET['password']) ? $_GET['password'] : '';
    if($login == 'Admin' && $password == 111000) {
        $userAuth = true;
        echo "Вы успешно авторизовались {$_GET['login']}!";
    } elseif($login != 'Admin') {
        $userAuth = false;
        echo "Пользователь '{$_GET['login']}' не найден!";
    } elseif($password != 111000) {
        $userAuth = false;
        echo "Пароль не найден!";
    }

    echo $userAuth ? '</br>Удачи вам!' : '</br>Ошибка входа!';
   ?>
ivashkevich 01.04.2020 в 15:48

Отлично!

Dmitry.Dudin 04.04.2020 в 19:10
<?php
header('Content-Type: text/html; charset=utf-8');

$login=$_GET[login];
$password=$_GET[password];

if($login!='admin'){
    echo 'Пользователь не найден';
}
    else{
        if($password!='password'){
            echo 'Пароль неверен';
        }
        else{
            echo 'Логин и пароль верны';
        }
    }
?>
ivashkevich 05.04.2020 в 19:16
header('Content-Type: text/html; charset=utf-8');

Это для чего написали?

$login=$_GET[login];
$password=$_GET[password];

в качестве ключей должны быть строки, а у вас неопределенные константы, преобразуемые в строки. Кроме того, где гарантия, что эти ключи в массиве есть? Нужно сначала в этом убедиться!

?>

Закрывающий тег не нужен!

Lungren 05.04.2020 в 17:52
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';
if($login === 'admin' && $password === 'paSSWord'){
    echo 'Логин и пароль верные!';
}elseif($login !== 'admin'){
    echo 'Пользователь не найден!';
}elseif($login === 'admin' && $password !== 'PaSSWord'){
    echo 'Неверный пароль!';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
</body>
</html>
ivashkevich 06.04.2020 в 07:25

Весь контент странички должен находиться внутри body, это основы HTML! Положите результат в переменную, и выведите его в правильном месте. Не нужно тут же делать echo.

Lungren 06.04.2020 в 17:56

Думаю, в нашем случае хватило бы и так:

<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';
if($login === 'admin' && $password === 'paSSWord'){
    echo 'Логин и пароль верные!';
}elseif($login !== 'admin'){
    echo 'Пользователь не найден!';
}elseif($login === 'admin' && $password !== 'PaSSWord'){
    echo 'Неверный пароль!';
}
ivashkevich 06.04.2020 в 19:09

Вполне)

Lungren 06.04.2020 в 18:04

Я оставил html, чтобы тема страницы осталась. И про основы в курсе! Просто это был текущий вариант. Действительно, интереснее вывести одну переменную, тогда же подумал.

<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';
$result = '';
if ($login === 'admin' && $password === 'paSSWord' ) {
    $result = 'Вы авторизованы.';
} elseif ($login !== 'admin'){
    $result = 'Неправильно введён логин!';
} else {
    $result = 'Неверный пароль!';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $result ?>
</p>
</body>
</html>
ivashkevich 06.04.2020 в 19:10

Теперь красота

WarLikeLaux 07.04.2020 в 00:02
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login != 'admin') {
    $authResult = "Пользователей не найден";
} elseif ($password != "password") {
    $authResult = "Пароль неверный";
} else {
    $authResult = "Пароль верный, добро пожаловать";
}
?>
<html>
<head>
    <title>Результат авторизации</title>
    <meta charset="utf-8">
</head>
<body>
<p>
    <?= $authResult ?>
</p>
</body>
</html>
ivashkevich 07.04.2020 в 09:28

Для строк используйте одинарные кавычки. Потому что... вот вам доп. задание :) Узнайте почему и напишите здесь. В остальном - отлично.

Dr.KMA 09.04.2020 в 18:32
<!DOCTYPE html>
<?php 
    $login = !empty($_GET['login']) ? $_GET['login'] : '';
    $password = !empty($_GET['password']) ? $_GET['password'] : '';

    if ($login === 'admin') {
        if ($password === 'Pa$$w0rd') {
            $isAuthorized = 'Логин и пароль верный';
        } else {
            $isAuthorized = 'Логин верный, пароль нет';
        } 
    }   else {
        $isAuthorized = 'Пользователь не найден';
    }
?>
<html>
<head>
    <title>Авторизация</title>
</head>
<body>
    <?= $isAuthorized ?>
</body>
</html>
ivashkevich 10.04.2020 в 12:47

Переменные, начинающиеся с is... должны иметь булево значение. Стоит переименовать. В остальном - отлично.

Timurik 10.04.2020 в 16:50

login.php

<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin') {
    if ($password === 'Pa$$w0rd') {
        $isAuthorized = 'Логин и пароль верные!';
    } else {
        $isAuthorized = 'Неправильный пароль';
    }
} else {
    $isAuthorized = 'Неправильный логин';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?php echo ($isAuthorized)?>
</p>
</body>
</html>
ivashkevich 11.04.2020 в 21:01

Переменные, начинающиеся с is... должны иметь булево значение. Стоит переименовать. В остальном - отлично.

Timurik 12.04.2020 в 11:01

Спасибо заменил.

<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin') {
    if ($password === 'Pa$$w0rd') {
        $resultAuthorized = 'Логин и пароль верные!';
    } else {
        $resultAuthorized = 'Неправильный пароль';
    }
} else {
    $resultAuthorized = 'Неправильный логин';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?php echo ($resultAuthorized)?>
</p>
</body>
</html>
ivashkevich 13.04.2020 в 12:59

Отлично. Только зачем после echo скобки - непонятно.

Timurik 13.04.2020 в 13:22

Скобки убрал, да действительно они там ни к чему)

[email protected] 10.04.2020 в 19:00
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin') {
    if ($password === '12345') {
        echo 'Логин и пароль верные!';
    } else {
        echo 'Пароль неверный';
    }
} else {
    echo 'Такого пользователя не существует!';
}

?>
ivashkevich 11.04.2020 в 21:03

Отлично. Только закрывающий тег в конце файла не нужен!

n.yurasheva 11.04.2020 в 19:01
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';
$isPassword = false;
if ($login === 'admin') {
    $isLogin = true;
    if ($password === 'Pa$$w0rd') {
        $isPassword = true;
    } else {
        $isPassword = false;
    }
} else {
    $isLogin = false;
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isPassword ? 'Вы успешно авторизованы!' : ($isLogin ? 'Неправильный пароль' : 'Неверный логин') ?>
</p>
</body>
</html>
ivashkevich 11.04.2020 в 21:02

Отлично

[email protected] 12.04.2020 в 20:45

Скажи, все правильно сделал или можно было проще?
Я правда немного по другому понял задание и подумал, что необходимо некую авторизацию пройти и из списка массива нужно найти логин и пароль и если они совпадают то выдать результат.

<?php
$login = $_GET['login'];
$password = $_GET['password'];
function foundPassword($x , $y){
    $array= [
        'name' => 'password',
        'name1' => 'password1'
    ];
    if ( array_key_exists($x , $array)) {
        if ($array [$x] === $y) {
            return 'Логин: ' . $x . '<br>' . 'Пароль: ' . $y;
        } return 'пароль не верный';
    } return 'данного аккаунта не существует';
}

?>

<html>
<head>
    <title >Знакомство с Get запросом</title>
</head>
<body>
<?=  foundPassword ($login , $password); ?>
</body>
</html>
ivashkevich 13.04.2020 в 14:47

Перечитайте урок по функциям. Ну и тут это совсем не к месту, только усложнили код.

[email protected] 13.04.2020 в 20:02

Перечитал функции и что-то не понял что не верно, вроде все работает исправно. =(
А в коде просто пытался использовать максимум пройденного.
Домашка была чуточку проще, чем я мог ожидать=D

ivashkevich 14.04.2020 в 19:21

Где типы аргументов? Почему скобка на строке объявления? В уроке всё было по-другому. Что за $x и $y? Ещё и урок по переменным перечитать надо. Там говорилось о нэйминге. Где фигурные скобки для блока if-else? Урок по условиям прошел даром. Потому и говорю, что не учили ничего и надо заново пройти.
Мы же тут не лабы в универе сдаём, лишь бы работало, а пытаемся научиться нормально код писать.

[email protected] 14.04.2020 в 20:28

Спасибо за ценную критику, я всё понял, впредь буду больше внимания уделять оформлению кода.

ivashkevich 14.04.2020 в 20:32

Ок, жду доработанное решение от вас тогда)

[email protected] 14.04.2020 в 21:28

Поправил, надеюсь стало лучше =D

<?php
$login = $_GET['login'];
$password = $_GET['password'];

function userVerification (string $userName, string $userPassword) {
    $usersArray = [
        'user1' => 'password1' ,
        'user2' => 'password2'
    ];
    if (array_key_exists($userName , $usersArray)) {
        if ($usersArray [$userName] === $userPassword) {
            return 'Логин: ' . $userName . '<br>' . 'Пароль: ' . $userPassword;
        } else {
            return 'Пароль не верный';
        }
    } else {
        return 'Данного аккаунта не существует';
    }
}

?>
<html>
<head>
    <title >Знакомство с Get запросом</title>
</head>
<body>
<?= userVerification($login , $password) ?>
</body>
</html>

Волнуюсь, как-будто зачет сдаю.

ivashkevich 15.04.2020 в 11:10
$login = $_GET['login'];
$password = $_GET['password'];

Если аргументы вообще не передать (удалить их с формы и отправить такой запрос), то будет ошибка, потому что таких ключей в массиве не будет.

function userVerification (string $userName, string $userPassword) {

Фигурная скобка на следующей строке должна быть.

Fill 13.04.2020 в 11:22
<?php

$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login !== 'admin') {
    $isAuthorized = false;
    $error = 'Пользователь не найден';
} elseif ($password !== 'Pa$$w0rd') {
    $isAuthorized = false;
    $error = 'Пароль неверный';
} else {
    $isAuthorized = true;
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?php
    if (!$isAuthorized) {
        echo $error;
    } else {
        echo 'Логин и пароль верные!';
    }
    ?>
</p>
</body>
</html>
ivashkevich 13.04.2020 в 14:57

Переменные, начинающиеся с is... должны иметь булево значение. Стоит переименовать. В остальном - отлично.

[email protected] 13.04.2020 в 23:44

Вроде получилось

<?php
$login = !empty($_GET['login']) ? $_GET['login'] : 'Логин отсутствует';
$password = !empty($_GET['password']) ? $_GET['password'] : 'Пароль отсутствует';

if ($login == 'admin') {
    $isLogin = true;
    if ($password == '12345') {
        $isPassword = true;
    } else {
        $isPassword = false;
    }
} else {
    $isLogin = false;
}
?>

<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?php if ($isLogin) {
        if ($isPassword) {
            echo 'Логин и пароль верны!!!';
        } else {
            echo 'Пароль неверный!!!';
        }
    } else {
        echo 'Пользователь не найден!!!';
    } ?>
</p>
</body>
</html>

Единственный вопрос - хотел вложенную тернарку сделать, но что то она ошибочного пользователя не обрабатывала. Я ее неправильно наверное делал или это просто невозможно?
Что-то типа

<?php
echo !$isLogin ? 'Пользователь не найден' : !$isPassword ? 'Пароль неверный' : 'Логин и пароль верны!' ?>
ivashkevich 14.04.2020 в 19:28

Не надо такие тернарки писать, их читать невозможно. Приведенный выше код отличный.

[email protected] 15.04.2020 в 14:58

Добрый день!

<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'Pa$$w0rd') {
    $isAuthorized = "Авторизация";
} elseif ($login !== 'admin') {
    $isAuthorized = "Логин не верен";
} else ($login === 'admin' && $password !== 'Pa$$w0rd'){
$isAuthorized = "Пароль не верен"
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
</p>
</body>
</html>

Почему то перестала работать связка Alt+Ctrl+l

ivashkevich 15.04.2020 в 17:44

Переменные, начинающиеся с is... должны иметь булево значение. Стоит переименовать. В остальном - отлично.

Почему то перестала работать связка Alt+Ctrl+l

Это не повод присылать домашки с некорректными отступами.

Developer 23.04.2020 в 17:54

Присылаю два варианта (общая шапка), оба работают одинаково, хотелось бы узнать какой лучше.

//Общая шапка

<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <? echo $result; ?>
</p>
</body>
</html>

//вариант 1
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';
$result = '';
if ($login === 'admin') {
    if ($password === '') {
        $result = 'пароль не должен быть пустым!';
    } elseif (passwordCheck($password) == true) {
        $result = 'вход разрешён!';
    } else {
        $result = 'пароль не верный!';
    }
} else {
    $result = 'Логин не верный!';
}

function passwordCheck(string $x)
{
    $y = false;
    if ($x === 'Pa$$w0rd') {
        $y = true;
    }
    return $y;
}

//вариант 2
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';
$result = '';
if ($login === 'admin') {
    echo passwordCheck2($password);
} else {
    $result = 'Логин не верный!';
}

function passwordCheck2(string $a)
{
    if ($a === '') {
        $b = 'пароль не должен быть пустым!';
    } elseif ($a === 'Pa$$w0rd') {
        $b = 'вход разрешён!';
    } else {
        $b = 'пароль не верный!';
    }
    return $b;
}
ivashkevich 23.04.2020 в 19:32

Оба варианта такие себе. Для чего вообще функция здесь? Странно проверять логин if-ом, а пароль проверять функцией, при том что правильный пароль всего один и он явно задан в функции. Не нужно усложнять там, где можно решить просто.

Для чего тут скобки:

    return ($b);

Имена переменных внутри функций оставляют желать лучшего. Перечитайте урок по переменным, там этот вопрос поднимался.

Developer 24.04.2020 в 13:05
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';
$result = '';
if ($login === 'admin') {
    if ($password === '') {
        $result = 'пароль не должен быть пустым!';
    } elseif ($password === 'Pa$$w0rd') {
        $result = 'вход разрешён!';
    } else {
        $result = 'пароль не верный!';
    }
} else {
    $result = 'Логин не верный!';
}
ivashkevich 24.04.2020 в 14:27

Так отлично

[email protected] 23.04.2020 в 23:13
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'Pa$$w0rd') {
    $isAuthorized = 'Вход выполнен успешно!';
} elseif ($login !== 'admin') {
    $isAuthorized = 'Пользователь не найден!';
} else {
    $isAuthorized = 'Пароль неверный!';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
</p>
</body>
</html>
ivashkevich 24.04.2020 в 04:53

Отлично

[email protected] 25.04.2020 в 23:39
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

$isAuthorized = 'Авторизирован';

if ($login !== 'admin') {
    $isAuthorized = 'Логин не верен';
}
else if ($password !== 'Pa$$w0rd') {
    $isAuthorized = 'Пароль не верен';
}

?>

<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
</p>
</body>
</html>
ivashkevich 26.04.2020 в 17:06

Отлично. Только elseif напиши правильно.

2yeezy4me 01.05.2020 в 10:15
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login !== 'admin') {
    $isAuthorized = false;
    $result = 'Юзер не найден';
} elseif ($password === 'Pa$$w0rd') {
    $isAuthorized = true;
} else {
    $result = 'Неверный пароль';
    $isAuthorized = false;
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ? 'Логин и пароль верные!' : $result ?>
</p>
</body>
</html>
ivashkevich 01.05.2020 в 15:14
} else {
    $isAuthorized = false;
}

Невозможная ситуация

2yeezy4me 02.05.2020 в 18:11

Исправил ошибки.

ivashkevich 03.05.2020 в 20:46

Отлично

titelivus 01.05.2020 в 11:51
<?php

$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login !== 'admin') {
    $isAuthorized = false;
    $failMessage = 'Пользователь не найден!';
} elseif ($password === 'Pa$$w0rd') {
    $isAuthorized = true;
} else {
    $failMessage = 'Неверный пароль.';
    $isAuthorized = false;
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ? 'Логин и пароль верные!' : $failMessage ?>
</p>
</body>
</html>
ivashkevich 01.05.2020 в 15:16

Отлично

Stimi 01.05.2020 в 20:48
<?php

$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'Pa$$w0rd') {
    $isAuthorized = 'Логин и пароль верные!';
} else {
    $isAuthorized = 'Неправильный логин или пароль';
}
if ($login !== 'admin') {
    $isAuthorized = 'Пользователь не найден';
}
if ($login === 'admin' && $password !== 'Pa$$w0rd') {
    $isAuthorized = 'Пароль неверный';
}

?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>

</p>
</body>
</html>
ivashkevich 02.05.2020 в 16:12
else {
    $isAuthorized = 'Неправильный логин или пароль';
}

Бесполезный кейс, значение всегда будет перезаписано.

if ($login === 'admin' 

Это стоит заменить на else и объединить в одну цепочку с предыдущим блоком.

Переменные, начинающиеся с is… используются для значений типа boolean.

Stimi 03.05.2020 в 18:00
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'Pa$$w0rd') {
    $result = 'Логин и пароль верные!';
} elseif ($login !== 'admin') {
    $result = 'Пользователь не найден';
} else {
    $result = 'Пароль неверный';
}

?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $result?>

</p>
</body>
</html>
ivashkevich 03.05.2020 в 21:03

Отлично

Sviatoslav 03.05.2020 в 18:30

Мой пример. Надеюсь я правильно понял задание.

<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'Pa$$w0rd') {
    $isAuthorized = true;
} else {
    $isAuthorized = false;
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?php if ($isAuthorized) {
        echo 'Логин и пароль верные!';
    } else {
        if ($login === 'admin') {
            echo 'пароль неверный';
        } else {
            echo "пользователь не найден";
        }
    } ?>
</p>
</body>
</html>
ivashkevich 03.05.2020 в 21:03

Отлично

[email protected] 04.05.2020 в 20:37
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?php
    $isAuthorized = true;
    switch ($isAuthorized) {
        case $login !== 'admin';
            echo 'Пользователь не найден';
            break;
        case $login === 'admin' && $password === 'Pa$$w0rd';
            echo 'Логин и пароль верные!';
            break;
        case $login === 'admin' && $password !== 'Pa$$w0rd';
            echo 'Пароль неверный';
    }
    ?>
</p>
</body>
</html>
ivashkevich 06.05.2020 в 13:38
    $isAuthorized = true;
    switch ($isAuthorized) {

напишите сразу

    switch (true) {

зачем переменная, да еще и с таким именем

[email protected] 05.05.2020 в 12:40
<?php

$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ( $login === 'admin' && $password === '12345') {
        $result = 'Все верно';
}elseif ($login !== 'admin') {
    $result = 'Логин не верный';
}else{
    $result = 'Пароль не верный';

}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $result ?>
</p>
</body>
</html>
ivashkevich 06.05.2020 в 13:46

Ок. Только проблема с форматированием. Делайте отступы как в уроках. Для этого в шторме можно нажать Ctrl+Alt+L

IePyton 13.05.2020 в 13:56
<?php

$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login !== 'admin') {
    $autorized = 'Пользователь не найден!';
} elseif ($login == 'admin' && $password !== 'pass') {
    $autorized = 'Неверный пароль!';
} else {
    $autorized = 'Логин и пароль введены верно!';
}

?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $autorized ?>
</p>
</body>
</html>
ivashkevich 14.05.2020 в 12:54

Отлично

Kennard 16.05.2020 в 23:43
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

function loginTest($login)
{
    $isLoginFind = false;
    if ($login !== 'admin') {
        return $isLoginFind;
    } else {
        $isLoginFind = true;
        return $isLoginFind;
    }
}

if (loginTest($login) === true) {
    if ($password === 'pass') {
        $isAuthorized = true;
    } else {
        $isAuthorized = false;
    }
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?php if (loginTest($login) === false) {
        echo 'Логин не подходит';
    } elseif ($isAuthorized === true) {
        echo 'Логин и пароль верны';
    } else {
        echo 'Пароль неверный';
    }
    ?>
</p>
</body>
</html>
ivashkevich 17.05.2020 в 15:01
function loginTest($login)
{
    $isLoginFind = false;
    if ($login !== 'admin') {
        return $isLoginFind;
    } else {
        $isLoginFind = true;
        return $isLoginFind;
    }
}

А смысл здесь в переменной isLoginFind? Можно сразу возвращать значение. И блок else можно опустить

if (loginTest($login) === true) {

Зачем сравнивать с true? У вас ведь метод и так булево значение возвращает.

<?php if (loginTest($login) === false) {

Зачем второй раз функцию вызывать? Можно сохранить результат её работы и пользоваться им в дальнейшем.

В целом всё решение могло уместиться в 6 строк, но вы зачем-то его переусложнили, разбив на несколько блоков логику про одно и то же. Рекомендую ознакомиться с другими решениями в комментариях.

nersesyan.sargis 17.05.2020 в 13:36
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'Pa$$w0rd') {
    $isAuthorized = 'Всё верно';
} else if($login !== 'admin') {
    $isAuthorized = 'Логин неверный';
} else {
    $isAuthorized = 'Пароль неверный';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
</p>
</body>
</html>
ivashkevich 17.05.2020 в 15:11

Переменные, начинающиеся с is… используются для значений типа boolean

superbobr 20.05.2020 в 23:40

Наверняка можно было решить задание более красиво, но... :)

<?php

$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin') {
    $isTrueLogin = true;
} else {
    $isTrueLogin = false;
}
if ($isTrueLogin) {
    if ($password === 'Pa$$w0rd') {
        $isTruePassword = true;
    } else {
        $isTruePassword = false;
    }
}

?>
<html lang="ru">
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isTrueLogin ? '' : 'Пользователь не найден!' ?>
    <?php if (!$isTrueLogin) {
        die();
    } ?>
    <?= $isTruePassword ? '' : 'Пароль не верный!' ?>
    <?= $isTrueLogin && $isTruePassword ? 'Вы успешно авторизировались!' : '' ?>
</p>
</body>
</html>

https://codingzone.io/ru/problems/6/solution/824

ivashkevich 21.05.2020 в 07:18

Чёт жетско. Ещё и die() воткнули. Часть HTML-кода ниже этой конструкции просто не отдастся пользователю, это некорректно.

Достаточно было бы простой конструкции if-elseif-else или switch(true). Рекомендую ознакомиться с другими решениями в комментариях.

По задачке - ОК.

superbobr 22.05.2020 в 14:46

Чуть исправил

<?php

$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'Pa$$w0rd') {
    $login = 'Вы успешно авторизировались!';
} elseif ($login !== 'admin') {
    $login = 'Пользователь не найден';
} else {
    $login = 'Пароль неверный!';
}
?>
<html lang="ru">
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?php echo $login ?>
</p>
</body>
</html>
ivashkevich 22.05.2020 в 19:00

Отлично. Только переменная $login используется уже для хранения имени пользователя. Не надо её же использовать для результата. Заведите для этого отдельную переменную.

happyviolence 21.05.2020 в 22:16

решение задачи "Анаграммы" - https://codingzone.io/problems/6/solution/915

ivashkevich 22.05.2020 в 08:14

Хорошо, а почему просто sort не подошел?

happyviolence 23.05.2020 в 21:05

Подошёл! Это моя невнимательность, почему-то я решила, что для алфавитного порядка нужна своя, особенная сортировка.

ivashkevich 23.05.2020 в 21:12

Ок)

Hellbound 22.05.2020 в 03:35
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'Pa$$w0rd') {
    $isAuthorized = 'Логин и пароль введены верно';
} elseif ($login === 'admin' && $password != 'Pa$$w0rd') {
    $isAuthorized = 'Пароль введен неверно';
} elseif ($login != 'admin') {
    $isAuthorized = 'Такого логина не существует';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
</p>
</body>
</html>

Анаграммы - https://codingzone.io/ru/problems/6/solution/943

ivashkevich 22.05.2020 в 08:19

Переменные, начинающиеся с is… используются для значений типа boolean

    for ($i = 0; $i < strlen($line1); $i++) {
        $array1 = str_split($line1);
        $array2 = str_split($line2);
    }

Для чего цикл?

Hellbound 22.05.2020 в 14:59

Цикл забыл убрать, просто изначально я строку в массив превращал так

for ($i = 0; $i < strlen($line1); $i++) {
    $array1[] = $line1[$i];
    $array2[] = $line2[$i];
}
ivashkevich 22.05.2020 в 19:01

К символам строки можно обращаться с помощью квадратных скобок: $line[5]

happyviolence 23.05.2020 в 22:15

Основное ДЗ:

if ($login === 'admin') {
    if ($password === 'Pa$$w0rd') {
       echo 'логин и пароль верные';
    } else {
        echo 'пароль не верный';
    }
} else {
    echo 'пользователь не найден';
}
ivashkevich 24.05.2020 в 12:55

Отлично

[email protected] 29.05.2020 в 00:47

1 задание

<?php
if ($login !== 'admin') {
    $b = 'Пользователь не найден';
}
elseif ($password !== 'admin') {
    $b = 'Пароль неверен';
}

cz
https://codingzone.io/problems/6/solution/1701

ivashkevich 29.05.2020 в 05:32

А как дальше происходит вывод переменной с ошибкой?
Скопируйте содержимое всего файла

По задачке - ОК

[email protected] 29.05.2020 в 12:15

Спасибо за помощь, Артем!
По поводу вопроса - вот.

<?php
//if not empty we take value into $login and $password
$login = !empty($_POST['login']) ? $_POST['login'] : '';
$password = !empty($_POST['password']) ? $_POST['password'] : '';
//if login and pass true or false
if ($login === 'admin' && $password === 'admin') {
    $a = true;
} else {
    $a = false;
}

if ($login !== 'admin') {
    $b = 'Пользователь не найден';
}
elseif ($password !== 'admin') {
    $b = 'Пароль неверен';
}
?>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title></title>
</head>
<body>
<h1>Получаем и обрабатываем данные из формы</h1>
<br>
<h2> <?= $a ? 'Доступ разрешен' : 'Доступ не разрешен' . '<br>'
    ?>
    <?= $b?>
</h2>

</body>
</html>
ivashkevich 29.05.2020 в 13:00

Норм!

GeoOK 29.05.2020 в 15:08

1 Задание

Добавил еще одно условие, что не может быть пустого пользователя.

// index.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/login.php" method="get">
    <label>
        <input type="text" name="login">
    </label>
    <label>
        <input type="password" name="password">
    </label>
    <input type="submit" value="Вход">
</form>
</body>
</html>

// login.php

<?php

$login = $_GET['login'];
$password = $_GET['password'];

if ($login === 'admin') {
    if ($password === 'Pa$$w0rd') {
        $isAuth = true;
    } else {
        $isAuth = false;
    }

    ?>

    <html>
    <head>
        <title>Авторизация</title>
    </head>
    <body>
    <p>
        <? echo $isAuth ? '<strong>Авторизация удалась</strong>' : '<strong>Неправильный пароль</strong>'; ?>
    </p>
    </body>
    </html>

    <?php

    return;
} elseif (empty($login)) {
    echo '<strong>Поле "Логин" не может быть пустым</strong>';
    return;
} else {
    echo '<strong>Пользователь не найден</strong>';
}

2 Задание
![Possible playground bug](https://php.zone/uploads/img/20200529fc64d6e5f29ba766eccbe46cb8b0c65919933cef1fcebfe3994d166d59da0112.JPG)
Со вторым заданием, или я что неправильно понял, или это баг. В плейграунде, на выходе второе слово обрезается, если на входе два слова указаны именно с переводом строки, и соответственно это решение не работает, хотя прекрасно функционирует у меня. Можно конечно через пробел реализовать, но вроде как задание про 2 строки...

<?php

$line = "heart
earth";
$arrayMain = explode("\r\n", $line);
$anogram1 = str_split($arrayMain[0]);
$anogram2 = str_split($arrayMain[1]);

$anogramDiff = array_diff($anogram1, $anogram2);

if (empty($anogramDiff)) {
    echo 'yes';
} else {
    echo 'no';
}
ivashkevich 01.06.2020 в 06:30
  1. Некорректно после закрытия тега body выводить контент. Пройдите курс по основам HTML.
  2. Считывайте строки раздельно, одну за другой. Можете смотреть решение по кнопке "Show our solution", если не получается
GeoOK 01.06.2020 в 12:13
  1. Основы HTML знал и до этого и на всякий случай перед курсом PHP пробежался по нему еще раз. А тут уже глаз "замылился" под конец. Спасибо! Исправил.

    <html>
    <head>
    <title>Авторизация</title>
    </head>
    <body>
    <p>
    <?php
    echo $isAuth ? '<strong>Авторизация удалась</strong>' : '<strong>Неправильный пароль</strong>';
    return;
    } elseif (empty($login)) {
        echo '<strong>Поле "Логин" не может быть пустым</strong>';
        return;
    } else {
        echo '<strong>Пользователь не найден</strong>';
    }
    ?>
    </p>
    </body>
    </html>
  2. Ага, врубился сам, спасибо за наводку. И кстати понял, что старое решение с array_diff не работает, точнее работает, но не совсем как нужно. Переписал на новый вариант.
    https://codingzone.io/problems/6/solution/1841

Но после, посмотрел ваше решение и добавил проверку на количество символов сначала, а не позже, что логично конечно же.
https://codingzone.io/ru/problems/6/solution/1843
Вообще на сколько правильно использовать переход goto в данном случае, или лучше продублировать еще раз echo 'no', как в вашем варианте?

ivashkevich 01.06.2020 в 16:30

Не используйте goto вообще никогда)

GeoOK 01.06.2020 в 18:50

Хорошо! )))

[email protected] 04.06.2020 в 16:39

Задал несколько условий с помощью конструкции if-elseif-else.

<?php
$login = $_GET['login'];
$password = $_GET['password'];

//Используем if-elseif-else конструкцию нескольких условий.
if ($login === 'green' && $password === 'top') {
    $overFull = 'Авторизация прошла успешно';
} elseif ($login !== 'mastur') {
    $overFull = 'Логин неверный';
} else {
    $overFull = 'Пароль неверный';
}
?>
<html>
<head>
    <title>Авторизация</title>
</head>
<body>
<?= $overFull ?>
</body>
</html>
ivashkevich 06.06.2020 в 08:07
$login = $_GET['login'];
$password = $_GET['password'];

Почему не сделали проверки как в уроке?

Пройдите дополнительный урок Обработка форм в PHP и исправьте ошибки

[email protected] 06.06.2020 в 13:58

воть)

<?php
$login = ($_GET['login']) ? $_GET['login'] : '';
$password = ($_GET['password']) ? $_GET['password'] : '';

//Используем if-elseif-else конструкцию нескольких условий.
if ($login === 'green' && $password === 'top') {
    $overFull = 'Авторизация прошла успешно';
} elseif ($login !== 'green') {
    $overFull = 'Логин неверный';
} else {
    $overFull = 'Пароль неверный';
}
?>
<html>
<head>
    <title>Авторизация</title>
</head>
<body>
<?= $overFull ?>
</body>
</html>
ivashkevich 07.06.2020 в 12:58

Отлично

UtillitE 03.07.2020 в 22:17

Привет, вот моё решение!

<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';
if ($login === 'admin' && $password !== 'Pa$$w0rd'){
    $output = 'Пароль неверный';
}
elseif ($login !== 'admin' && $password === 'Pa$$w0rd'){
    $output = 'Пользователь не найден';
} elseif ($login !== 'admin' && $password !== 'Pa$$w0rd'){
    $output = 'Пароль или логин неверный';
}
else {
    $output = 'Авторизация прошла успешно!';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $output ?>
</p>
</body>
ivashkevich 06.07.2020 в 06:57

Привет. Что ещё за $a? Пройдите заново урок по переменным и дайте нормальное имя.

UtillitE 06.07.2020 в 08:59

Привет! Исправила!

VitaliyB 21.07.2020 в 04:47
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'Pa$$w0rd') {
    $isAuthorized = true;
    echo 'Логин и пароль введены верно';
} elseif ($login != 'admin' && $password === 'Pa$$w0rd') {
    $isAuthorized = 'Логин введён неверно';
   } else ($login === 'admin' && $password != 'Pa$$w0rd') {
    $isAuthorized = 'Пароль введён неверно'
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $isAuthorized ?>
</p>
</body>
</html>
ivashkevich 21.07.2020 в 12:05

Так всё-таки, в переменной будет булево значение храниться

$isAuthorized = true;

или строка?

$isAuthorized = 'Логин введён неверно';

Не нужно смешивать типы в одной и той же переменной.

demos 03.08.2020 в 11:50

Задача про анаграммы:

<?php
$line1 = trim(fgets(STDIN));
$line2 = trim(fgets(STDIN));

$array = str_split ($line1,1);
$array2 = str_split ($line2,1);

sort($array);
sort($array2);

echo implode($array)==implode($array2) ?  'yes' :  'no';
ivashkevich 05.08.2020 в 08:07

Хорошо. А зачем вы ее скинули сюда, если все тесты прошли и решение засчиталось?)

annferny 18.08.2020 в 16:52

Вот такой уродец у меня получился. Пример адекватного решения посмотрела, всё осознала) Просьба тапками кидаться не очень сильно =D

<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin') {
    if ($password === 'Pa$$w0rd') {
        $isAuthorized = 'correct';
    } else {
        $isAuthorized = 'incorrectPass';
    }
} else {
    $isAuthorized = 'incorrectLog';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <? if ($isAuthorized == 'correct') {
        echo 'Логин и пароль правильные!';
    } else if ($isAuthorized == 'incorrectPass') {
        echo 'Неправильный пароль!';
    } else if ($isAuthorized == 'incorrectLog') {
        echo 'Неправильный логин!';
    }
    ?>
</p>
</body>
</html>
ivashkevich 19.08.2020 в 17:53

Ну как бы да - два раза одно и то же проверяете по сути. Можно было в первом условии сразу сделать понятный текст.

CTALb 09.09.2020 в 17:37
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin') {
    $password === 'pa$$word' ? $result = 'Успешная авторизация' : $result = 'Пароль неверный';
} else {
    $result = 'Пользователь не найден';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $result ?>
</p>
</body>
</html>
ivashkevich 10.09.2020 в 08:40

Некорректное использование тернарного оператора. Он используется для возврата одного из значений в правой части в левую часть выражения. У вас же он применяется для побочного вызова кода в случае выполнения или невыполнения условия. Используйте в таких случаях if-else.

Sergey503 17.09.2020 в 20:26
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'Pa$$w0rd') {
    $checkAuth = 'Авторизация прошла успешно';
} elseif ($login !== 'admin' && $password !== 'Pa$$w0rd') {
    $checkAuth = 'Неверно указаны логин и пароль';
} elseif ($login !== 'admin') {
    $checkAuth = 'Логин неверный';
} else {
    $checkAuth = 'Пароль неверный';
}
?>

<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $checkAuth ?>
</p>
</body>
</html>
ivashkevich 19.09.2020 в 07:14

Отлично

[email protected] 08.10.2020 в 07:42
<?php
$login = !empty($_GET['login] ? $_GET['login'] : '';
$password = !empty($_GET['password'] ? $_GET['password'] : '';
if ($login === 'admin' && $password === 'Pa$$w0rd') {
    $auth = 'Верно';
} else if($login !== 'admin') {
    $auth = 'Пользователь не найден!';
} else {
    $auth = 'Пароль неверный';
}
?>
<html>
<head>
     <title> Авторизация </title>
</head>
<body>
     <p>
        <? $auth ?>
     </p>
</body>
</html>
ivashkevich 12.10.2020 в 07:29

Переменные, начинающиеся с is... используются для булевых значений

[email protected] 12.10.2020 в 17:47

Ок, спасибо за ответ. Сейчас исправлю.

[email protected] 30.10.2020 в 18:28

Добрый вечер, знаю, что не правильно, но кину свой вариант.
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin') {
$log = true;
if ($password === 'Pa$$w0rd') {
$pass = true;
}else $pass = false;
} else {
$log = false;
$pass = false;
}

?>
<html>
<head>
<title>Результат авторизации</title>
</head>
<body>
<p>
<?= $log ? 'Логин верный!' : 'Неправильный Логин' ?>
<?= $pass ? 'пароль верный!' : 'Неправильный пароль' ?>
</p>
</body>
</html>

ivashkevich 30.10.2020 в 20:53

Нужно оформить код в комментарии (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте ваш комментарий, пожалуйста. А потом ответьте мне на этот комментарий. После этого проверю вашу домашнюю работу и отвечу на вопросы.

Deo 31.10.2020 в 08:22

По решению задачи "Анаграммы":
1) По моему, авторское решение можно сократить до следующего вида:

<?php
$line1 = trim(fgets(STDIN));
$line2 = trim(fgets(STDIN));

if (strlen($line1) !== strlen($line2)) {
    echo 'no';
    return;
}

$lineSymbols1 = [];
$lineSymbols2 = [];

$lenght = strlen($line1);
for ($i = 0; $i < $lenght; $i++) {
    //~ if (isset($lineSymbols1[$line1[$i]])) {
        //~ $lineSymbols1[$line1[$i]]++;
    //~ } else {
        $lineSymbols1[$line1[$i]] = 1;
    //~ }

    //~ if (isset($lineSymbols2[$line2[$i]])) {
        //~ $lineSymbols2[$line2[$i]]++;
    //~ } else {
        $lineSymbols2[$line2[$i]] = 1;
    //~ }
}

foreach ($lineSymbols1 as $symbol => $count) {
    if (/* !isset($lineSymbols2[$symbol]) || */ $lineSymbols2[$symbol] !== $count) {
        echo 'no';
        return;
    }
}

echo 'yes';

(Удаляем строки: 15, 16, 17, 19, 21, 22, 23, 25, и первое условие "ИЛИ" из строки 29)
Такой вид проходит тесты и на сайте, и у меня в компе.
2) А так же можно добавить тест строк типа 'a' и 'aa',
а то при удалении первого блока

if (strlen($line1) !== strlen($line2)) {
    echo 'no';
    return;
}

тесты на сайте проходят, а у меня в компе нет - без данног блока комп считает строки 'a' и 'aa' анаграммами.

ivashkevich 31.10.2020 в 16:19

Ваше решение упало на втором тесте

Deo 03.11.2020 в 17:48

Да, действительно, теперь вижу что падает.
Но вот без первого ИЛИ

!isset($lineSymbols2[$symbol]) ||

не падает.
Что эта проверка проверяет - отсутсвие элемента из $lineSymbols2 в $lineSymbols1? Но правая проверка ИЛИ

$lineSymbols2[$symbol] !== $count

тоже дублирует эту проверку...

ivashkevich 03.11.2020 в 18:09

Приведите полностью код, который не падает. Раскомментировал то что вы указали, все равно падает.

Deo 03.11.2020 в 19:24
<?php
$line1 = trim(fgets(STDIN));
$line2 = trim(fgets(STDIN));

if (strlen($line1) !== strlen($line2)) {
    echo 'no';
    return;
}

$lineSymbols1 = [];
$lineSymbols2 = [];

$lenght = strlen($line1);
for ($i = 0; $i < $lenght; $i++) {
    if (isset($lineSymbols1[$line1[$i]])) {
        $lineSymbols1[$line1[$i]]++;
    } else {
        $lineSymbols1[$line1[$i]] = 1;
    }

    if (isset($lineSymbols2[$line2[$i]])) {
        $lineSymbols2[$line2[$i]]++;
    } else {
        $lineSymbols2[$line2[$i]] = 1;
    }
}

foreach ($lineSymbols1 as $symbol => $count) {
    if ( /* !isset($lineSymbols2[$symbol]) || */ $lineSymbols2[$symbol] !== $count) {
        echo 'no';
        return;
    }
}

echo 'yes';
В стр.29 закоментирована избыточная проверка:
ivashkevich 04.11.2020 в 11:49

О, точно! Спасибо, добавил тест. Теперь так не прокатит.

Larisa 01.11.2020 в 22:46
$login = !empty($_GET['login']) ? $_GET['login'] : 'Логин не передан';
$password = !empty($_GET['password']) ? $_GET['password'] : 'Пароль не передан';
if ($login === 'admin' && $password === 'fff') {
    $authResult = 'Авторизация прошла успешно';
} else if ($login !== 'admin') {
    $authResult = 'Пользователь не найден';
} else {
    $authResult = 'Пароль неверный';
}
?>

<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p> <?= $authResult ?>
</p>
</body>
</html>
ivashkevich 02.11.2020 в 20:32

Отлично

pixel 07.11.2020 в 10:33
<?php
    $line = 'heart';
    $ana = 'earth';
    $sum = 0;
    $len = strlen($line);
    if ($len === strlen($ana)) {
        for ($i = 0; $i < $len; $i++) {
            for ($j = 0; $j < strlen($ana); $j++) {
                if ($line[$i] == $ana[$j]) {
                    $ana = substr_replace($ana, '', $j, 1);
                    $sum++;
                    break;
                }
            }
        }
    }

    if ($sum == $len) {
        echo 'yes';
    } else {
        echo 'no';
    }
ivashkevich 08.11.2020 в 15:12

Второй тест не прошел. Зачем нерабочее решение скидывать?

pixel 08.11.2020 в 16:51

Скопировал из формы где тесты у меня пройдены все успешно
На вход приходят 2 строки

<?php

$line = trim(fgets(STDIN));
$ana = trim(fgets(STDIN));
$sum = 0;
    $len = strlen($line);
    if ($len === strlen($ana)){
        for ($i = 0; $i < $len; $i++) {
            for ($j = 0; $j < strlen($ana); $j++) {
                if ($line[$i] == $ana[$j]) {
                    $ana = substr_replace($ana, '', $j, 1);
                    $sum++;
                    break;
                }
            }
        }
    }

    if ($sum == $len) {
        echo 'yes';
    } else {
        echo 'no';
    }
ivashkevich 08.11.2020 в 16:55

Не самое оптимальное решение - приходится для каждого символа одной строки проверять каждый символ из другой. Сложность O(n^2). В предложенном решении под задачей сложность O(n).

Sinner3d 25.11.2020 в 21:27
<!doctype html>
<? if (!empty($_GET['login'])){
    if ($_GET['login'] == 'admin')
    {
        $login = 'Пользователь '.$_GET['login'];        
    }
    else 
    {
        $login = 'логин не верный';
    }
    $password = !empty($_GET['password']) ? 'пароль '.$_GET['password']: 'пароль не передан';
}
    else
    $login = 'пользователь не найден';  
?>

<html>
<head>
<meta charset="utf-8">
<title>Документ без названия</title>
</head>

<body>
    <?= $login?>
    <hr>
    <?= $password?>
</body>
</html>
ivashkevich 29.11.2020 в 11:46

А где проверка пароля?

Проблема с форматированием. Делайте отступы и переносы как в уроках. Для этого в шторме можно нажать Ctrl+Alt+L

Всегда используйте фигурные скобки для блоков if-else.

zarin 17.01.2021 в 13:06

Файл login.php

$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'water') {
    $authResult = 'Успешная авторизация';
} elseif ($login !== 'admin' && $password !== 'water') {
    $authResult = 'Неправильный логин и пароль';
} elseif ($login !== 'admin') {
    $authResult = 'Логин неверный';
} else {
    $authResult = 'Пароль неверный';
}

?>

<html>
<head>
    <title>Знакомство с Get-запросом</title>
</head>
<body>
Переданный логин <?= $login ?>
<br>
Переданный пароль <?= $password ?>
<br>
<?= $authResult ?>
</body>
</html>

Доп. задача "Анаграммы" далее. Проверку прошла, но отличается решение.

$string1 = 'kek';
$string2 = 'eke';

$array1 = str_split($string1);
$array2 = str_split($string2);

sort($array1);
sort($array2);

if ($array1 !== $array2) {
    echo 'no';
} else {
    echo 'yes';
}
ivashkevich 19.01.2021 в 19:06
$login = !empty($_GET['login']) ? $_GET['login'] : 'логин не передан';

не нужно в переменную, предназначенную для логина, складывать текст ошибки. заведите для этого отдельную переменную.

if ($login === 'admin') {
    $isAuthorized = true;

так неправильно, потому что авторизован - это значит и логин и пароль верны.

zarin 20.01.2021 в 08:18

Спасибо за замечания. Исправил.

ivashkevich 21.01.2021 в 06:14

ifAuthorized - странное название. Лучше $authResult какой-нибудь.

zarin 21.01.2021 в 07:02

Тоже исправил.

ivashkevich 21.01.2021 в 07:18

Отлично!

Egor.Ka 11.02.2021 в 18:06
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' ) {
    if( $password === 'Pa$$w0rd')
    {
        $isAuthorized = 'Логин и пароль верные';
    }
        else {

            echo 'Пароль невереный';
    }

    }else {

        echo 'Пользователь не найден';
}
?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <? echo $isAuthorized ; ?>
</p>
</body>
</html>
ivashkevich 14.02.2021 в 15:16

Переменные, начинающиеся с is… используются для значений типа boolean

Непонятно, почему в одном случае результат идет в переменную, в другом выводится. Если не передать корректные логин и пароль то страница еще и падает с ошибкой

Egor.Ka 15.02.2021 в 15:31

Переменную убрал вообще.

<?php
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' ) {
    if( $password === 'Pa$$w0rd')
    {
        echo  'Логин и пароль верные';
    }
        else {

            echo 'Пароль невереный';
    }

    }else {

        echo 'Пользователь не найден';
}

Странно, но у меня при передаче не корректных данных все норм, делается как в цикле)

ivashkevich 20.02.2021 в 04:40

Нужно включить показ ошибок уровня NOTICE, погуглите, как это делается

Vladimir96 12.02.2021 в 23:16
<?php
$login = !empty($_GET['login']) ? $_GET['login'] : 'логин не передан';
$password = !empty($_GET['password']) ? $_GET['password'] : 'пароль не передан';
?>

<html>
<head>
    <title>Знакомство с GET-запросами</title>
</head>
<body>
<p>
    <?php if ($login !== 'admin') : ?>
        Пользователь не найден
    <?php elseif ($password !== '123') : ?>
        Пароль не совпадает
    <?php else: ?>
        Переданный логин: <?= $login ?>
        <br>
        Переданный пароль: <?= $password?>
    <?php endif;?>
</p>
</body>
</html>
ivashkevich 14.02.2021 в 15:19

Отлично

serega19860511 20.04.2021 в 22:36
$login = !empty($_GET['login']) ? $_GET['login'] : '';
$password = !empty($_GET['password']) ? $_GET['password'] : '';

if ($login === 'admin' && $password === 'Pa$$w0rd') {
    $message = 'успешно';
} elseif ($login !== 'admin') {
    $message = 'пользователь не найден';
} else {
    $message = 'пароль не верный';
}

?>
<html>
<head>
    <title>Результат авторизации</title>
</head>
<body>
<p>
    <?= $message ?>
</p>
</body>
</html>
ivashkevich 27.04.2021 в 20:36

Отлично

Логические задачи с собеседований