За последние 24 часа нас посетили 22508 программистов и 1153 робота. Сейчас ищут 658 программистов ...

Вывод суммы с бд у залогиненного пользователя

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

  1. Fox-

    Fox- Активный пользователь

    С нами с:
    11 янв 2018
    Сообщения:
    94
    Симпатии:
    3
    Всем привет, пытаюсь отображение суммы из бд сделать. Из бд в переменную в общем. Искал по форумам, но ни разу пока не нашел рабочий пример кода. С БД mysql поза вчера только начал работать. Регистрацию получилось сделать, таблица состоит из
    id , first_name , last_name, email , email_status, password, bln

    пытался так
    PHP:
    1. $id=1;
    2. $query = 'SELECT * FROM `users` WHERE `id`='.$id.' LIMIT 1';
    3. $result = mysql_query($query);
    4. $result_assoc = mysql_fetch_assoc($result);
    5.  
    6. echo $result_assoc['bln'].', руб.';
    нет, не работает
    вот код для входа в аккаунт , там я и пытаюсь бурду эту проделать

    PHP:
    1. <?php
    2.     //Запускаем сессию
    3.     session_start();
    4.  
    5.     //Добавляем файл подключения к БД
    6.     require_once("dbconnect.php");
    7.  
    8.     //Объявляем ячейку для добавления ошибок, которые могут возникнуть при обработке формы.
    9.     $_SESSION["error_messages"] = '';
    10.    
    11.     //Объявляем ячейку для добавления успешных сообщений
    12.     $_SESSION["success_messages"] = '';
    13.  
    14.     /*
    15.     Проверяем была ли отправлена форма, то есть была ли нажата кнопка Войти. Если да, то идём дальше, если нет, то выведем пользователю сообщение об ошибке, о том что он зашёл на эту страницу напрямую.
    16.     */
    17.     if(isset($_POST["btn_submit_auth"]) && !empty($_POST["btn_submit_auth"])){
    18.    
    19.         //(1) Место для следующего куска кода
    20.  
    21.         //Проверяем полученную капчу
    22.         if(isset($_POST["captcha"])){
    23.        
    24.             //Обрезаем пробелы с начала и с конца строки
    25.             $captcha = trim($_POST["captcha"]);
    26.        
    27.             if(!empty($captcha)){
    28.        
    29.                 //Сравниваем полученное значение с значением из сессии.
    30.                 if(($_SESSION["rand"] != $captcha) && ($_SESSION["rand"] != "")){
    31.                    
    32.                     // Если капча не верна, то возвращаем пользователя на страницу авторизации, и там выведем ему сообщение об ошибке что он ввёл неправильную капчу.
    33.        
    34.                     $error_message = "<p class='mesage_error'><strong>Ошибка!</strong> Вы ввели неправильную капчу </p>";
    35.        
    36.                     // Сохраняем в сессию сообщение об ошибке.
    37.                     $_SESSION["error_messages"] = $error_message;
    38.        
    39.                     //Возвращаем пользователя на страницу авторизации
    40.                     header("HTTP/1.1 301 Moved Permanently");
    41.                     header("Location: ".$address_site."/form_auth.php");
    42.        
    43.                     //Останавливаем скрипт
    44.                     exit();
    45.                 }
    46.        
    47.             }else{
    48.        
    49.                 $error_message = "<p class='mesage_error'><strong>Ошибка!</strong> Поле для ввода капчи не должна быть пустой. </p>";
    50.        
    51.                 // Сохраняем в сессию сообщение об ошибке.
    52.                 $_SESSION["error_messages"] = $error_message;
    53.        
    54.                 //Возвращаем пользователя на страницу авторизации
    55.                 header("HTTP/1.1 301 Moved Permanently");
    56.                 header("Location: ".$address_site."/form_auth.php");
    57.        
    58.                 //Останавливаем скрипт
    59.                 exit();
    60.        
    61.             }
    62.        
    63.             //(2) Место для обработки почтового адреса
    64.             //Обрезаем пробелы с начала и с конца строки
    65.             $email = trim($_POST["email"]);
    66.             if(isset($_POST["email"])){
    67.            
    68.                 if(!empty($email)){
    69.                     $email = htmlspecialchars($email, ENT_QUOTES);
    70.            
    71.                     //Проверяем формат полученного почтового адреса с помощью регулярного выражения
    72.                     $reg_email = "/^[a-z0-9][a-z0-9\._-]*[a-z0-9]*@([a-z0-9]+([a-z0-9-]*[a-z0-9]+)*\.)+[a-z]+/i";
    73.            
    74.                     //Если формат полученного почтового адреса не соответствует регулярному выражению
    75.                     if( !preg_match($reg_email, $email)){
    76.                         // Сохраняем в сессию сообщение об ошибке.
    77.                         $_SESSION["error_messages"] .= "<p class='mesage_error' >Вы ввели неправильный email</p>";
    78.                        
    79.                         //Возвращаем пользователя на страницу авторизации
    80.                         header("HTTP/1.1 301 Moved Permanently");
    81.                         header("Location: ".$address_site."/form_auth.php");
    82.            
    83.                         //Останавливаем скрипт
    84.                         exit();
    85.                     }
    86.                 }else{
    87.                     // Сохраняем в сессию сообщение об ошибке.
    88.                     $_SESSION["error_messages"] .= "<p class='mesage_error' >Поле для ввода почтового адреса(email) не должна быть пустой.</p>";
    89.                    
    90.                     //Возвращаем пользователя на страницу регистрации
    91.                     header("HTTP/1.1 301 Moved Permanently");
    92.                     header("Location: ".$address_site."/form_register.php");
    93.            
    94.                     //Останавливаем скрипт
    95.                     exit();
    96.                 }
    97.                
    98.            
    99.             }else{
    100.                 // Сохраняем в сессию сообщение об ошибке.
    101.                 $_SESSION["error_messages"] .= "<p class='mesage_error' >Отсутствует поле для ввода Email</p>";
    102.                
    103.                 //Возвращаем пользователя на страницу авторизации
    104.                 header("HTTP/1.1 301 Moved Permanently");
    105.                 header("Location: ".$address_site."/form_auth.php");
    106.            
    107.                 //Останавливаем скрипт
    108.                 exit();
    109.             }
    110.            
    111.             //(3) Место для обработки пароля
    112.             if(isset($_POST["password"])){
    113.                 //Обрезаем пробелы с начала и с конца строки
    114.                 $password = trim($_POST["password"]);
    115.            
    116.                 if(!empty($password)){
    117.                     $password = htmlspecialchars($password, ENT_QUOTES);
    118.            
    119.                     //Шифруем пароль
    120.                     $password = md5($password."top_secret");
    121.                 }else{
    122.                     // Сохраняем в сессию сообщение об ошибке.
    123.                     $_SESSION["error_messages"] .= "<p class='mesage_error' >Укажите Ваш пароль</p>";
    124.                    
    125.                     //Возвращаем пользователя на страницу регистрации
    126.                     header("HTTP/1.1 301 Moved Permanently");
    127.                     header("Location: ".$address_site."/form_auth.php");
    128.            
    129.                     //Останавливаем скрипт
    130.                     exit();
    131.                 }
    132.                
    133.             }else{
    134.                 // Сохраняем в сессию сообщение об ошибке.
    135.                 $_SESSION["error_messages"] .= "<p class='mesage_error' >Отсутствует поле для ввода пароля</p>";
    136.                
    137.                 //Возвращаем пользователя на страницу регистрации
    138.                 header("HTTP/1.1 301 Moved Permanently");
    139.                 header("Location: ".$address_site."/form_auth.php");
    140.            
    141.                 //Останавливаем скрипт
    142.                 exit();
    143.             }
    144.  
    145.        ////////(4) Место для составления запроса к БД
    146.             //Запрос в БД на выборке пользователя.
    147.             $result_query_select = $mysqli->query("SELECT * FROM `users` WHERE email = '".$email."' AND password = '".$password."'");
    148.    
    149.    
    150.   ///////ВОТ МОЯ ПОПЫТКА найти баланс по id  
    151.             $id=1;
    152.           $query = 'SELECT * FROM `users` WHERE `id`='.$id.' LIMIT 1';
    153.              $result = mysql_query($query);
    154.                $result_assoc = mysql_fetch_assoc($result);
    155.  
    156.              echo $result_assoc['bln'].', руб.';
    157.            
    158.      ///////ВОТ МОЯ ПОПЫТКА END  
    159.            
    160.            
    161.            
    162.             if(!$result_query_select){
    163.                 // Сохраняем в сессию сообщение об ошибке.
    164.                 $_SESSION["error_messages"] .= "<p class='mesage_error' >Ошибка запроса на выборке пользователя из БД</p>";
    165.                
    166.                 //Возвращаем пользователя на страницу регистрации
    167.                 header("HTTP/1.1 301 Moved Permanently");
    168.                 header("Location: ".$address_site."/form_auth.php");
    169.            
    170.                 //Останавливаем скрипт
    171.                 exit();
    172.             }else{
    173.            
    174.                 //Проверяем, если в базе нет пользователя с такими данными, то выводим сообщение об ошибке
    175.                 if($result_query_select->num_rows == 1){
    176.                    
    177.                     // Если введенные данные совпадают с данными из базы, то сохраняем логин и пароль в массив сессий.
    178.                     $_SESSION['email'] = $email;
    179.                     $_SESSION['password'] = $password;
    180.                    
    181.  
    182.  
    183.  
    184.                
    185.                     //Возвращаем пользователя на главную страницу
    186.                    // header("HTTP/1.1 301 Moved Permanently");
    187.                    // header("Location: ".$address_site."/index.php");
    188.            
    189.                 }else{
    190.                    
    191.                     // Сохраняем в сессию сообщение об ошибке.
    192.                     $_SESSION["error_messages"] .= "<p class='mesage_error' >Неправильный логин и/или пароль</p>";
    193.                    
    194.                     //Возвращаем пользователя на страницу авторизации
    195.                     header("HTTP/1.1 301 Moved Permanently");
    196.                     header("Location: ".$address_site."/form_auth.php");
    197.            
    198.                     //Останавливаем скрипт
    199.                     exit();
    200.                 }
    201.             }
    202.         }else{
    203.             //Если капча не передана
    204.             exit("<p><strong>Ошибка!</strong> Отсутствует проверочный код, то есть код капчи. Вы можете перейти на <a href=".$address_site."> главную страницу </a>.</p>");
    205.         }
    206.  
    207.    
    208.     }else{
    209.         exit("<p><strong>Ошибка!</strong> Вы зашли на эту страницу напрямую, поэтому нет данных для обработки. Вы можете перейти на <a href=".$address_site."> главную страницу </a>.</p>");
    210.     }

    Сам не справлюсь по любому. Спасайте пацана )
     
  2. Дюран

    Дюран Активный пользователь

    С нами с:
    9 мар 2018
    Сообщения:
    257
    Симпатии:
    19
    Для вычисления суммы есть функция SUM(), пример
     
  3. Fox-

    Fox- Активный пользователь

    С нами с:
    11 янв 2018
    Сообщения:
    94
    Симпатии:
    3
    отображение суммы имею в виду, нужно баланс игрока узнать и вывести через echo например
     
  4. Ag17

    Ag17 Новичок

    С нами с:
    19 ноя 2021
    Сообщения:
    5
    Симпатии:
    1
    Лучше конечно mysqli уже использовать. Думаю у многих тут версия PHP , которая уже без поддержки mysql и код ваш не проверить локально. Что ваш скрипт выводит? Какую ошибку? Включен вывод ошибок?
     
  5. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    тебе уже подсказали
    PHP:
    1. $query = 'SELECT SUM(bln) AS balance FROM `users` WHERE `id`='.$id.' LIMIT 1';
    PHP:
    1.  echo $result_assoc['balance'].', руб.';
     
  6. Ag17

    Ag17 Новичок

    С нами с:
    19 ноя 2021
    Сообщения:
    5
    Симпатии:
    1
    включите отображение ошибок и сделайте скриншот.

    Запрос даже в том виде, что привел должен выводить данные. Судя по наименованию поля он в нем уже хранит баланс, а не транзакции. Ну вообще конечно тяжело так сказать.
     
  7. Fox-

    Fox- Активный пользователь

    С нами с:
    11 янв 2018
    Сообщения:
    94
    Симпатии:
    3
    Сайт не может обработать этот запрос, вообще не работает
    --- Добавлено ---
    без этих двух строк ?
    PHP:
    1. $result = mysql_query($query);
    2. $result_assoc = mysql_fetch_assoc($result);
    пытался так:
    PHP:
    1. $id=1;
    2.                    $query = 'SELECT SUM(bln) AS balance FROM `users` WHERE `id`='.$id.' LIMIT 1';
    3.                    $result = mysql_query($query);
    4.                    $result_assoc = mysql_fetch_assoc($result);
    5.                  
    6.                    echo $result_assoc['balance'].', руб.';
    не работает
     
  8. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    А должен?
    У вас в этом скрипте другие запросы к бд есть?
    К бд подключились, все нормально?
    Ничего что mysql_ устарело? Какая версия php у вас?
     
  9. Fox-

    Fox- Активный пользователь

    С нами с:
    11 янв 2018
    Сообщения:
    94
    Симпатии:
    3
    PHP:
    1. <?php
    2.     //Запускаем сессию
    3.     session_start();
    4.  
    5.     //Добавляем файл подключения к БД
    6.     require_once("dbconnect.php");
    7.  
    8.     //Объявляем ячейку для добавления ошибок, которые могут возникнуть при обработке формы.
    9.     $_SESSION["error_messages"] = '';
    10.    
    11.     //Объявляем ячейку для добавления успешных сообщений
    12.     $_SESSION["success_messages"] = '';
    13.  
    14.     /*
    15.     Проверяем была ли отправлена форма, то есть была ли нажата кнопка Войти. Если да, то идём дальше, если нет, то выведем пользователю сообщение об ошибке, о том что он зашёл на эту страницу напрямую.
    16.     */
    17.     if(isset($_POST["btn_submit_auth"]) && !empty($_POST["btn_submit_auth"])){
    18.    
    19.         //(1) Место для следующего куска кода
    20.  
    21.         //Проверяем полученную капчу
    22.         if(isset($_POST["captcha"])){
    23.        
    24.             //Обрезаем пробелы с начала и с конца строки
    25.             $captcha = trim($_POST["captcha"]);
    26.        
    27.             if(!empty($captcha)){
    28.        
    29.                 //Сравниваем полученное значение с значением из сессии.
    30.                 if(($_SESSION["rand"] != $captcha) && ($_SESSION["rand"] != "")){
    31.                    
    32.                     // Если капча не верна, то возвращаем пользователя на страницу авторизации, и там выведем ему сообщение об ошибке что он ввёл неправильную капчу.
    33.        
    34.                     $error_message = "<p class='mesage_error'><strong>Ошибка!</strong> Вы ввели неправильную капчу </p>";
    35.        
    36.                     // Сохраняем в сессию сообщение об ошибке.
    37.                     $_SESSION["error_messages"] = $error_message;
    38.        
    39.                     //Возвращаем пользователя на страницу авторизации
    40.                     header("HTTP/1.1 301 Moved Permanently");
    41.                     header("Location: ".$address_site."/form_auth.php");
    42.        
    43.                     //Останавливаем скрипт
    44.                     exit();
    45.                 }
    46.        
    47.             }else{
    48.        
    49.                 $error_message = "<p class='mesage_error'><strong>Ошибка!</strong> Поле для ввода капчи не должна быть пустой. </p>";
    50.        
    51.                 // Сохраняем в сессию сообщение об ошибке.
    52.                 $_SESSION["error_messages"] = $error_message;
    53.        
    54.                 //Возвращаем пользователя на страницу авторизации
    55.                 header("HTTP/1.1 301 Moved Permanently");
    56.                 header("Location: ".$address_site."/form_auth.php");
    57.        
    58.                 //Останавливаем скрипт
    59.                 exit();
    60.        
    61.             }
    62.        
    63.             //(2) Место для обработки почтового адреса
    64.             //Обрезаем пробелы с начала и с конца строки
    65.             $email = trim($_POST["email"]);
    66.             if(isset($_POST["email"])){
    67.            
    68.                 if(!empty($email)){
    69.                     $email = htmlspecialchars($email, ENT_QUOTES);
    70.            
    71.                     //Проверяем формат полученного почтового адреса с помощью регулярного выражения
    72.                     $reg_email = "/^[a-z0-9][a-z0-9\._-]*[a-z0-9]*@([a-z0-9]+([a-z0-9-]*[a-z0-9]+)*\.)+[a-z]+/i";
    73.            
    74.                     //Если формат полученного почтового адреса не соответствует регулярному выражению
    75.                     if( !preg_match($reg_email, $email)){
    76.                         // Сохраняем в сессию сообщение об ошибке.
    77.                         $_SESSION["error_messages"] .= "<p class='mesage_error' >Вы ввели неправильный email</p>";
    78.                        
    79.                         //Возвращаем пользователя на страницу авторизации
    80.                         header("HTTP/1.1 301 Moved Permanently");
    81.                         header("Location: ".$address_site."/form_auth.php");
    82.            
    83.                         //Останавливаем скрипт
    84.                         exit();
    85.                     }
    86.                 }else{
    87.                     // Сохраняем в сессию сообщение об ошибке.
    88.                     $_SESSION["error_messages"] .= "<p class='mesage_error' >Поле для ввода почтового адреса(email) не должна быть пустой.</p>";
    89.                    
    90.                     //Возвращаем пользователя на страницу регистрации
    91.                     header("HTTP/1.1 301 Moved Permanently");
    92.                     header("Location: ".$address_site."/form_register.php");
    93.            
    94.                     //Останавливаем скрипт
    95.                     exit();
    96.                 }
    97.                
    98.            
    99.             }else{
    100.                 // Сохраняем в сессию сообщение об ошибке.
    101.                 $_SESSION["error_messages"] .= "<p class='mesage_error' >Отсутствует поле для ввода Email</p>";
    102.                
    103.                 //Возвращаем пользователя на страницу авторизации
    104.                 header("HTTP/1.1 301 Moved Permanently");
    105.                 header("Location: ".$address_site."/form_auth.php");
    106.            
    107.                 //Останавливаем скрипт
    108.                 exit();
    109.             }
    110.            
    111.             //(3) Место для обработки пароля
    112.             if(isset($_POST["password"])){
    113.                 //Обрезаем пробелы с начала и с конца строки
    114.                 $password = trim($_POST["password"]);
    115.            
    116.                 if(!empty($password)){
    117.                     $password = htmlspecialchars($password, ENT_QUOTES);
    118.            
    119.                     //Шифруем пароль
    120.                     $password = md5($password."top_secret");
    121.                 }else{
    122.                     // Сохраняем в сессию сообщение об ошибке.
    123.                     $_SESSION["error_messages"] .= "<p class='mesage_error' >Укажите Ваш пароль</p>";
    124.                    
    125.                     //Возвращаем пользователя на страницу регистрации
    126.                     header("HTTP/1.1 301 Moved Permanently");
    127.                     header("Location: ".$address_site."/form_auth.php");
    128.            
    129.                     //Останавливаем скрипт
    130.                     exit();
    131.                 }
    132.                
    133.             }else{
    134.                 // Сохраняем в сессию сообщение об ошибке.
    135.                 $_SESSION["error_messages"] .= "<p class='mesage_error' >Отсутствует поле для ввода пароля</p>";
    136.                
    137.                 //Возвращаем пользователя на страницу регистрации
    138.                 header("HTTP/1.1 301 Moved Permanently");
    139.                 header("Location: ".$address_site."/form_auth.php");
    140.            
    141.                 //Останавливаем скрипт
    142.                 exit();
    143.             }
    144.  
    145.        ////////(4) Место для составления запроса к БД
    146.             //Запрос в БД на выборке пользователя.
    147.             $result_query_select = $mysqli->query("SELECT * FROM `users` WHERE email = '".$email."' AND password = '".$password."'");
    148.    
    149.    
    150.  
    151.            
    152.            
    153.            
    154.             if(!$result_query_select){
    155.                 // Сохраняем в сессию сообщение об ошибке.
    156.                 $_SESSION["error_messages"] .= "<p class='mesage_error' >Ошибка запроса на выборке пользователя из БД</p>";
    157.                
    158.                 //Возвращаем пользователя на страницу регистрации
    159.                 header("HTTP/1.1 301 Moved Permanently");
    160.                 header("Location: ".$address_site."/form_auth.php");
    161.            
    162.                 //Останавливаем скрипт
    163.                 exit();
    164.             }else{
    165.            
    166.                 //Проверяем, если в базе нет пользователя с такими данными, то выводим сообщение об ошибке
    167.                 if($result_query_select->num_rows == 1){
    168.                    
    169.                     // Если введенные данные совпадают с данными из базы, то сохраняем логин и пароль в массив сессий.
    170.                     $_SESSION['email'] = $email;
    171.                     $_SESSION['password'] = $password;
    172.                    
    173.  
    174. /////////////////////////////////////////ВОТ МОЯ ПОПЫТКА найти баланс по id  
    175.            
    176.                    $id=1;
    177.                    $query = 'SELECT SUM(bln) AS balance FROM `users` WHERE `id`='.$id.' LIMIT 1';
    178.                    $result = mysql_query($query);
    179.                    $result_assoc = mysql_fetch_assoc($result);
    180.                  
    181.                    echo $result_assoc['balance'].', руб.';
    182.  
    183.  ////////////////////////////////////////////////ВОТ МОЯ ПОПЫТКА END  
    184.                
    185.                     //Возвращаем пользователя на главную страницу
    186.                    // header("HTTP/1.1 301 Moved Permanently");
    187.                    // header("Location: ".$address_site."/index.php");
    188.            
    189.                 }else{
    190.                    
    191.                     // Сохраняем в сессию сообщение об ошибке.
    192.                     $_SESSION["error_messages"] .= "<p class='mesage_error' >Неправильный логин и/или пароль</p>";
    193.                    
    194.                     //Возвращаем пользователя на страницу авторизации
    195.                     header("HTTP/1.1 301 Moved Permanently");
    196.                     header("Location: ".$address_site."/form_auth.php");
    197.            
    198.                     //Останавливаем скрипт
    199.                     exit();
    200.                 }
    201.             }
    202.         }else{
    203.             //Если капча не передана
    204.             exit("<p><strong>Ошибка!</strong> Отсутствует проверочный код, то есть код капчи. Вы можете перейти на <a href=".$address_site."> главную страницу </a>.</p>");
    205.         }
    206.  
    207.    
    208.     }else{
    209.         exit("<p><strong>Ошибка!</strong> Вы зашли на эту страницу напрямую, поэтому нет данных для обработки. Вы можете перейти на <a href=".$address_site."> главную страницу </a>.</p>");
    210.     }
     
  10. Fox-

    Fox- Активный пользователь

    С нами с:
    11 янв 2018
    Сообщения:
    94
    Симпатии:
    3
    не работает из за mysql, данный модуль устарел, начиная с версии PHP 5.5.0, и удалён в PHP 7.0.0.
    нужно через mysqli, ох уж эти обновления, для новичков темный лес.
    Если не сложно покажите как через mysqli отобразить баланс через echo
     
  11. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Этому «обновлению» исполняется сто лет в обед.
    --- Добавлено ---
    Просто вы, даже не удосужившись заглянуть под капот, полезли делать правку со своими знаниями столетней давности. Предупреждаю: ничего хорошего из этого не выйдет, даже если «на вид» что-то и заработает.
     
  12. Fox-

    Fox- Активный пользователь

    С нами с:
    11 янв 2018
    Сообщения:
    94
    Симпатии:
    3
    понимаю о чем вы, я вывезу
    пока что вывести получилось все данные
    PHP:
    1.  $result = $mysqli->query('SELECT * FROM `users`');
    2.                    while($row = $result->fetch_assoc())
    3.                   {
    4.                   echo '<p>Запись id='.$row['id'].'. Текст: '.$row['bln'].'</p>';
    5.                   }
    но по email как сделать? Вывести только наш баланс найдя баланс по логину (email)
     
  13. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Нафига цикл? Вы для одного пользователя получаете баланс или для списка?
     
    #13 miketomlin, 23 ноя 2021
    Последнее редактирование: 23 ноя 2021
  14. Fox-

    Fox- Активный пользователь

    С нами с:
    11 янв 2018
    Сообщения:
    94
    Симпатии:
    3
    для одного, это мы типо в личном кабинете и по email нужно найти наш баланс, чет не получается пока разобраться, как это сделать
     
  15. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Для «залогиненного» не надо делать по email. После авторизации у вас где-то должен храниться id авторизованного, например в сессии, или данные авторизованного, включая id из БД, должны каждый раз выбираться по id или ключу в куках. Приходящий с клиента id обязательно проверяете перед его использованием в запросе (или используете «подготовленный запрос»). Выбранный из БД id не проверяете, но проверяете в общем существование пользователя, т.е. наличие непустой выборки при запросе по id/ключу.
    --- Добавлено ---
    Вот тут же сохраните в сессии id, а потом для страниц ЛК выбирайте баланс по id из сессии. В ответ на POST-запрос ничего выводить не надо.
    --- Добавлено ---
    Можно и баланс в сессии хранить, только тогда его надо обновлять не только в БД, но и в сессии.
     
  16. Fox-

    Fox- Активный пользователь

    С нами с:
    11 янв 2018
    Сообщения:
    94
    Симпатии:
    3
    по логину в базе данных баланс найти и вывести нельзя что ли ? id не удобно, придется тогда id как логин использовать
     
  17. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Можно, но «дополнительные» данные «залогиненного», которых нет в «сессии», всегда выбирают по id. Так положено.

    Кстати, нафига хранить пароль в сессии, не понятно (для «продления» сессии что ли?). Также в сессию нужно писать данные из БД, а не из пользовательского ввода (я про мыло в показанной выше команде).
     
  18. Fox-

    Fox- Активный пользователь

    С нами с:
    11 янв 2018
    Сообщения:
    94
    Симпатии:
    3
    если кэш и куки почистил в браузере, при входе в аккаунт вводить нужно логин [например Alex] а поиск данных по бд идет по id, id неоткуда будет взять, только по логину можно будет найти данные
     
  19. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Это потеря авторизации (в данном браузере). Мы же говорим об авторизованном пользователе? Или нет?
     
  20. Fox-

    Fox- Активный пользователь

    С нами с:
    11 янв 2018
    Сообщения:
    94
    Симпатии:
    3
    обо всём да помаленьку говорим, можешь пример привести как по логину найти баланс и через echo вывести, пока все мои попытки четны
    --- Добавлено ---
    так пробовал , не работает, в чем проблема
    PHP:
    1. $result = $mysqli->query('SELECT `bln` FROM `users` WHERE email = '".$email."'');
    2.                    while($row = $result->fetch_assoc())
    3.                   {
    4.                   echo '<p>Запись id='.$row['id'].'. Текст: '.$row['bln'].'</p>';
    5.                   }
     
  21. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Кстати, запрос может выдавать ошибку даже при безошибочном синтаксисе ;) Поэтому это только первая проблема.
     
  22. Fox-

    Fox- Активный пользователь

    С нами с:
    11 янв 2018
    Сообщения:
    94
    Симпатии:
    3
    подключился норм, смог вывести все данные но по выборке пользователя не получилось пока
    --- Добавлено ---
    сказал же что можно по логину найти, маил в моем случае логин, по логину моему хочу баланс свой вывести
     
  23. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Говорю, с кавычками разберитесь. Потом с тем, что пользовательский ввод может «поломать» запрос, даже если он с виду правильный. А потом с тем, что даже не поломанный запрос при опред. условиях может вызывать ошибку.

    В общем успехов в обучении!
     
  24. Fox-

    Fox- Активный пользователь

    С нами с:
    11 янв 2018
    Сообщения:
    94
    Симпатии:
    3
    ;) сенкс
    --- Добавлено ---
    в коде выше запрос
    PHP:
    1. $result_query_select = $mysqli->query("SELECT * FROM `users` WHERE email = '".$email."' AND password = '".$password."'");
    кавычки такие же, но работает
     
  25. Fox-

    Fox- Активный пользователь

    С нами с:
    11 янв 2018
    Сообщения:
    94
    Симпатии:
    3
    получилось по id выводить данные юзера, но по логину нет
    Как все таки не по id искать, а по логину?
     
    #25 Fox-, 23 ноя 2021
    Последнее редактирование: 23 ноя 2021