Помогите найти ошибку в коде с авторизацией

242
23 сентября 2018, 14:00
<?php
 require 'bd/db.php';
 session_start()
 ?>
 <?php
  $login = $_POST['login'];
  $password = $_POST['password'];
     $_SESSION['login'] = $login;
    $_SESSION['password'] = $password;
  if($_SESSION['password']) {
   $count = mysqli_query($connection,"SELECT * FROM `users` WHERE `login` = 
  '$login' AND `password` = '$password'");
  if(mysqli_num_rows($count) == 0){
  echo "Вы не зарегестрированны";
 }
  else {
  echo "Все окей";
  }
} else {
  echo      "<form action='' method='POST'>
        <input name='login' placeholder='Введите логин'></br></br>
        <input name='password' placeholder='Введите пароль'></br>
        <button name='submit' type='submit'>Зарегестрироваться</button>
    </form>";
 }

?>

Должно быть так:Если пользователь есть в базе данных,то форма убирается,а если его нет,то выводит ошибку.У меня же получается,что в 2-ух случаях эта форма убирается.

Answer 1

Исходя из вашего кода если существует пароль то убирать форму не зависимо от того есть пользователь или нет. Попробуйте не вводить пароль и у вас отобразится форма. Или же можно сделать так:

$form = "<form action='' method='POST'>
        <input name='login' placeholder='Введите логин'></br></br>
        <input name='password' placeholder='Введите пароль'></br>
        <button name='submit' type='submit'>Зарегестрироваться</button>
    </form>";
  $login = $_POST['login'];
  $password = $_POST['password'];
     $_SESSION['login'] = $login;
    $_SESSION['password'] = $password;
  if($_SESSION['password']) {
   $count = mysqli_query($connection,"SELECT * FROM `users` WHERE `login` = 
  '$login' AND `password` = '$password'");
  if(mysqli_num_rows($count) == 0){
  echo "Вы не зарегестрированны";
  echo $form; //Показываем форму
 }
  else {
  echo "Все окей";
  }
} else {
  echo $form; //Показываем форму    
 }
?>
Answer 2

Вместо

 else {
  echo "Все окей";
  }
} else {
  echo      "<form action='' method='POST'>
        <input name='login' placeholder='Введите логин'></br></br>
        <input name='password' placeholder='Введите пароль'></br>
        <button name='submit' type='submit'>Зарегестрироваться</button>
    </form>";
 }

Попробуй это

    <?php
    if(empty($_SESSION['login'])) {
?>
<form action='' method='POST'>
        <input name='login' placeholder='Введите логин'></br></br>
        <input name='password' placeholder='Введите пароль'></br>
        <button name='submit' type='submit'>Зарегестрироваться</button>
    </form>
    <?php
}
else {
    ?>

Всё okey

    <?php   
}
?>
READ ALSO
Расчет общей цены в корзине modx Shopkeeper3

Расчет общей цены в корзине modx Shopkeeper3

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

273
Как при переходе в полную новость вставить до нее шаблон DLE?

Как при переходе в полную новость вставить до нее шаблон DLE?

Есть переход с шаблона категории на шаблон полной новостиКак между ними вставить ещё промежуточный шаблон? DLE

181
Перенаправление всех запросов на index.php

Перенаправление всех запросов на index.php

Проблема: в htaccess есть правило перенаправления для всех запросов на indexphp, но запросы типа example

199
Передача переменной из JS в PHP без обновления страницы

Передача переменной из JS в PHP без обновления страницы

Как передать переменную из JavaScript в PHP без обновления страницы, внутри существующей функции JS? Те

246