Загрузка...

What is he complaining about?

Thread in Backend created by smoook92 Mar 5, 2022. 230 views

  1. smoook92
    smoook92 Topic starter Mar 5, 2022 15 May 14, 2021
    Создаю блог на PHP, в ходе разработки возникла такая проблема:
    пишу проверку пользователя в бд, ввёл все данные в форме и нажимаю на отправить выходит такая ошибка:
    Notice: Trying to access array offset on value of type bool in E:\Ampps\www\blog\app\controllers\users.php on line 21

    Код:

    <?php
    include("app/database/db.php");

    $errMsg = '';

    if($_SERVER['REQUEST_METHOD'] === 'POST' ){
    $admin = 0;
    $login = trim($_POST['login']);
    $email = trim($_POST['mail']);
    $passF = trim($_POST['pass-first']);
    $passS = trim($_POST['pass-second']);

    if($login === '' || $email === '' || $passF === ''){
    $errMsg = "Заполните все поля!";
    }elseif(mb_strlen($login, 'UTF8') < 2){
    $errMsg = "Логин не должен быть короче 2 символов!";
    }elseif($passF !== $passS){
    $errMsg = "Пароли в обеих полях должны соответствовать!";
    }else{
    $existence = selectOne('users', ['email' => $email]);
    if($existence['email'] === $email){
    $errMsg = "Такой пользователь с такой почтой уже зарегистрирован!";
    }else{
    $pass = password_hash($passF, PASSWORD_DEFAULT);
    $post = [
    'admin' => $admin,
    'username' => $login,
    'email' => $email,
    'password' => $pass
    ];
    $id = insert('users', $post);
    }
    }
    }else{
    echo 'GET';
    $login = '';
    $email = '';
    }
     
  2. Обменник
    smoook92,
    PHP
    $existence = selectOne('users', ['email' => $email]);
    точно возвращаем массив?
     
    1. View previous comments (3)
    2. smoook92 Topic starter
      Обменник,
      function selectOne($table, $params = []){
      global $pdo;
      $sql = "SELECT * FROM $table";

      if(!empty($params)){
      $i = 0;
      foreach ($params as $key => $value){
      if(!is_numeric($value)){
      $value = "'" .$value. "'";
      }
      if ($i === 0){
      $sql = $sql . " WHERE $key=$value";
      }else{
      $sql = $sql . " AND $key=$value";
      }
      $i++;
      }
      }
    3. Обменник
      smoook92, 1. код не весь. 2. не вижу там prepare + execute или query
    4. Обменник
Top
Loading...