За последние 24 часа нас посетили 20345 программистов и 1006 роботов. Сейчас ищут 370 программистов ...

Как вывести запись по определённому совпадению?

Тема в разделе "PHP для новичков", создана пользователем Murazgul, 23 мар 2017.

Метки:
  1. Murazgul

    Murazgul Новичок

    С нами с:
    23 мар 2017
    Сообщения:
    2
    Симпатии:
    0
    База создана в phpmyadmin(тестирую на сервере). Версия php 5.2(использую mysql)
    Есть таблица Clients. В таблице, помимо полей Фио, адрес и т.п, есть поля Login и password.
    Имеется кнопка вход. Данные считываются с таблицы Clients, с этих двух полей:
    PHP:
    1. <?php
    2.  
    3.     include ("BD_for_users.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь
    4. if(isset($_POST['login']) && isset($_POST['password'])) {
    5.   $login = $_POST['login'];
    6.   $password = $_POST['password'];
    7.   if(empty($login) OR empty($password)){
    8.     exit ('<script>alert("Дла начала заполните поля!");</script>');
    9.   }
    10.   $login = trim(stripslashes(htmlspecialchars($login)));
    11.   $password = trim(stripslashes(htmlspecialchars($password))); // надо хранить хеш пароля, а не в чистом виде
    12.   $result = mysql_query("SELECT * FROM Clients WHERE login='".$login."' AND password='".$password."'");
    13.   $myrow = mysql_num_rows($result);
    14.   if ($myrow == 1){
    15.     $_SESSION['login'] = $myrow['login'];
    16.     $_SESSION['id'] = $myrow['id'];
    17.     echo "Вы успешно вошли на сайт! <a href='For_users.php'>Личный кабинет</a>";
    18.   }else{
    19.     exit ('<script>alert("Извините, введённый вами логин или пароль неверный.");</script>');
    20.   }
    21. }
    22. ?>
    Как только логин и пароль совпали , клиента перебрасывает в "личный кабинет"(простоя html страница). На данный момент я попробовал сделать так:
    PHP:
    1. $sql = "SELECT * FROM `Account` WHERE `id_client` = ". (int) $_SESSION['id'];
    PHP:
    1. <?php
    2.  
    3. // Подключение к базе: где $hostname - сервер, $username - имя юзера БД,
    4. // $password - пароль юзера, $basename - имя базы с которой мы будем работать
    5. $hostname = 'localhost';
    6. $username = 'root';
    7. $passwordname = '';
    8. $basename = 'Bank';
    9. $conn = new mysqli($hostname, $username, $passwordname, $basename) or die ('Невозможно открыть базу');
    10. // Формируем запрос из таблицы с именем Account
    11.  
    12. $sql = "SELECT * FROM `Account`";
    13.  
    14.  
    15. $result = $conn->query($sql);
    16.  
    17.  
    18. // В цикле перебираем все записи таблицы и выводим их
    19. while ($row = $result->fetch_assoc())
    20.  
    21. {
    22.  
    23. // Оператором echo выводим на экран поля таблицы name_blog и text_blog
    24. echo '<tr>';
    25. echo '<td>'.$row['id_contribution'];
    26. echo '</td>';
    27. echo '<td>'.$row['account_opening_date'];
    28. echo '</td>';
    29. echo '<td>'.$row['account_closing_date'];
    30. echo '</td>';
    31. echo '<td>'.$row['amount_of_contribution'];
    32. echo '</td>';
    33. echo '</tr>';
    34.  
    35. }
    36. ?>
    Таблица выводится пустая. Подскажите, в чём может быть проблема?
     
  2. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    отладка/debug
    http://phpfaq.ru/debug
    https://netbeans.org/kb/docs/php/debugging_ru.html
    https://php.ru/forum/threads/howto-...i-po-shagam-i-s-kartinkami.58974/#post-474550

    Почему такая старая версия? Сейчас уже PHP 7.1
     
  3. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Зачем человеку так пароль коверкать??? А тем более - логин
    Ты представляешь что будет с логином после таких манипуляций? А ведь пользователь даже залогиниться не сможет, т.к. не будет знать свой пароль.
    --- Добавлено ---
    У тебя же в $myrow хранится интегер (Количество строк). Как ты пытаешся полуить и него ['login']?? Это же не массив.