Нотисы выводят неопределнные переменные, как исправить?

<form action='login.php' method='POST'>
<p id='p-class'>Вход:</p>
<br>
<p id='p-class'>Имя:</p>
<input type='text' name='login2' id='in' required='required'><br><br>
<p id='p-class'>Пароль:</p>
<input type='text' name='password2' id='in' required='required'><br><br>
<button type='submit' name='submit-log' id='subb'>Войти</button><br><br>
</form> 
  <?php 
  require "db.php";
    $login2 = $_POST['login2'];
    $password2 = $_POST['password2'];
    var_dump($login2);
    var_dump($password2);
    if (isset($_POST['submit-log'])) {
    $query2 = "SELECT password FROM users WHERE login ='$login2' LIMIT 1";
    var_dump($query2);
    $query2 = mysqli_query($connect, $query2);
    if( $query2->num_rows ){
    if (password_verify($password, $query2)) {
    echo "<div style='color:green; font-family: 'Lobster', cursive;'>Вы успешно вошли!</div>";
    
    }else{
      echo "<div style='color:red; font-family: 'Lobster', cursive;'>Пароли не совпадают!</div>";
    }
    }else{
      echo "<div style='color:red; font-family: 'Lobster', cursive;'>Пользователь не найден!</div>";
    }
    } ?>

Notice: Undefined index: login2 in /home/c/.../login.php on line 48

Notice: Undefined index: password2 in /home/c/.../login.php on line 49

Пути к файлу в нотисах я убрал ради безопасности
  • Вопрос задан
  • 234 просмотра
Решения вопроса 1
@D3lphi
Вначале кода:
error_reporting(E_ALL & ~E_NOTICE);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
sanek_os9
@sanek_os9
Работаю с Laravel, Vue, Vuetify, AWS Amazon, Linux
Измените эти строки
$login2 = $_POST['login2'];
$password2 = $_POST['password2'];

на эти
$login2 = $_POST['login2'] ?? '';
$password2 = $_POST['password2'] = ?? '';

Будет работать в PHP7.x
И вообще эти переменные стоит определять после
if (isset($_POST['submit-log'])) {
Ошибка из за того что POST данных нету, их никто не отправлял что бы они там были, а вот после нажатия кнопки скорее всего они там уже будут.
Ответ написан
@GennadyPHP
Это решается символом собаки @ перед переменной
@$var = "test";
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы