За последние 24 часа нас посетили 36754 программиста и 7752 робота. Сейчас ищут 1760 программистов ...

Проблема с авторизацией на сайте

Тема в разделе "PHP для новичков", создана пользователем Сергей1231, 20 фев 2023.

  1. Сергей1231

    Сергей1231 Новичок

    С нами с:
    20 фев 2023
    Сообщения:
    5
    Симпатии:
    0
    Добрый день , на локальном сервере всё хорошо работало , но как только загрузил сайт на хостинг , перестала работать авторизация ( датабаза подключена ). При попытке войти просто обновление страницы . Код прилагаю ниже ( 1 код самой авторизации , 2 код хелпера )
    PHP:
    1. <?php
    2. ini_set('display_errors', 'on');
    3. require_once("./Connector/DbConnectorPDO.php");
    4. include("./helper/helperFunctions.php");
    5. $connection = getConnection();
    6. $userId = isset($_SESSION["userId"]) && !empty($_SESSION["userId"]) ? $_SESSION["userId"] : 0;
    7. if ($userId !== 0) {
    8.     header("Location: ./index.php");
    9. }
    10. $errors = array();
    11. if (isset($_POST['send'])) {
    12.     $email = $_POST['email'];
    13.     $password = $_POST["password"];
    14.     if (!IsVariableIsSetOrEmpty($email) && !IsVariableIsSetOrEmpty($password)) {
    15.         if (empty($errors) == true) {
    16.       $query = "SELECT * from profile WHERE email = :email AND password = :password LIMIT 1";
    17.    
    18.             $stmt = $connection->prepare($query);
    19.    
    20.       $stmt->bindParam(':email', $email, PDO::pARAM_STR);
    21.             $stmt->bindParam(':password', $password, PDO::pARAM_STR);
    22.    
    23.             $stmt->execute();
    24.             $count = $stmt->rowCount();
    25.             $row   = $stmt->fetch(PDO::FETCH_ASSOC);
    26.            if($count === 0 || $row <= 2 ){
    27.                array_push($errors, 'Incorrect Username / Password');
    28.          echo '444';
    29.            }else{
    30.                 $_SESSION['userId'] = $row['id'];
    31.                 $_SESSION['user'] = $row;
    32.                if (isset($_SESSION['userId'])) {
    33.                    header("Location: ./index.php");
    34.                }else{
    35.           echo '555';
    36.          }
    37.            }
    38.      
    39.         }else{
    40.       echo '333';
    41.     }
    42.     }else{
    43.       echo '222';
    44.   }
    45. }
    46. ?>

    PHP:
    1. <?php
    2. function IsVariableIsSetOrEmpty($variableToCheck): bool
    3. {
    4.     if (!isset($variableToCheck) || empty($variableToCheck))  {
    5.         return true;
    6.     }
    7.     return false;
    8. }
     
    #1 Сергей1231, 20 фев 2023
    Последнее редактирование модератором: 20 фев 2023
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.223
    Адрес:
    там-сям
    наверняка если заглянуть в код страницы увидишь какие-то warning, они должны всё объяснить.
     
  3. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    947
    Симпатии:
    147
    кстати, чем приведённая ф-ция IsVariableIsSetOrEmpty отличается от
    PHP:
    1. function IsVariableIsSetOrEmpty($variableToCheck): bool
    2. {
    3.     return empty($variableToCheck);
    4. }
    кто-то может объяснить? молчу, что её вызов тоже бредовый )))
    и рекомендую посмотреть на такое:
    PHP:
    1. $a = "0";
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    После этого обязательно должно быть die или exit
     
    don.bidon нравится это.