Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 33

Вывод баланса после авторизации пользователя

24.11.2013, 11:57. Показов 2787. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех! Прошу не судить строго. Все, что знаю о программировании, знаю благодаря Гугл. Своими силами пишу сайтик. Возникла одна проблемка, никак не могу найти решение. Нужно чтобы после авторизации выводилась инфа с ником и балансом пользователя. Ник выводится, а вот с балансом никак. Все, чего я добился в результате долгих поисков - это вывод всего поля, а вот как вывести запись только авторизованного пользователя и записать в переменную?
Ниже - все, что я смог с этим сделать:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
  $mysqli = new mysqli('localhost', admin', '', 'mybase');
  if (mysqli_connect_errno()) {
    echo "Подключение невозможно: ".mysqli_connect_error();
  }
  $result_set = $mysqli->query('SELECT cash FROM user');
  while ($row = $result_set->fetch_assoc()) {
    print_r($row);
    echo "<br />";
  }
  $result_set->close();
  $mysqli->close();
?>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.11.2013, 11:57
Ответы с готовыми решениями:

Сохранение пользователя после авторизации
Всем привет, весь топик в том, что решил с &quot;нуля писать форму регистрации/авторизации (ради обучения) в принципе, регистрация выполняется...

Как сделать посекундное увеличения баланса пользователя?
Здравствуйте! Есть некоторые сайты (например paymoon.fun) где происходит посекундное начисление средств ,причем это происходит даже если у...

Вывод Имени пользователя после авторизации
Добрый день. Нашел на форуме несложную авторизацию для своей программки(она ниже). Появилась необходимость сделать после успешной...

19
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 33
26.11.2013, 07:33  [ТС]
С этим разобрался. Теперь возникла другая проблема. Вот код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$login = $_SESSION['login'];
$password = $_SESSION['password'];
 
$query = sprintf("SELECT login, password, cash FROM user 
    WHERE login='%s' AND password='%s'",
    mysql_real_escape_string($login),
    mysql_real_escape_string($password));
 
$result = mysql_query($query);
 
if (!$result) {
    $message  = 'Неверный запрос: ' . mysql_error() . "\n";
    $message .= 'Запрос целиком: ' . $query;
    die($message);
}
while ($row = mysql_fetch_assoc($result)) {
    $balans = $row['cash'];
    global $balans;
    }
 
mysql_free_result($result);
?>
Проблема в том, что когда вставляю этот код на каждой странице все работает. Как сделать так, чтобы не нужно было вставлять это на каждой странице? Сайтик динамический и результат этого кода должен показываться только в header.php. Но без вставки на каждой странице не показывает. Есть еще function.php, пробовал впихнуть туда как function checkBalans(), ошибок не выдает, но результат не показывает. Помогите пожалуйста
0
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 825
26.11.2013, 14:03
ну делаешь
PHP
1
2
3
4
5
class myfunc {
public static function checkBalance()
{
}
}
в отдельном файле например function.php
в других файлах просто вызываете функцию и все
допустим
PHP
1
2
$balance = new myfunc();
$result_balance = $balance->checkBalance()
и не забываем возвращать
PHP
1
return
в функции
0
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 33
27.11.2013, 13:14  [ТС]
Никак не пойму что я не так делаю(((

Добавил это в function.php:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function checkBalans() {
$login = $_SESSION['login'];
$password = $_SESSION['password'];
 
$query = sprintf("SELECT login, password, cash FROM user 
    WHERE login='%s' AND password='%s'",
    mysql_real_escape_string($login),
    mysql_real_escape_string($password));
 
$result = mysql_query($query);
 
if (!$result) {
    $message  = 'Неверный запрос: ' . mysql_error() . "\n";
    $message .= 'Запрос целиком: ' . $query;
    die($message);
}
while ($row = mysql_fetch_assoc($result)) {
    $balans = $row['cash'];
    global $balans;
    }
mysql_free_result($result);
return;
}
Это код самой страницы:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
include_once("config.php"); // тут подключение к базе
checkLoggedIn("yes");
checkBalans();
error_reporting(E_ALL);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title></title>
    <meta name="title" content="" />
    <meta name="keywords" content="" />
    <meta name="description" content="" />
    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen, projection" />
<div id="wrapper">
<?php require 'header.php'; ?>
</head>
 
<body>
 <div id="middle">
 
<?php require 'sideLeft.php'; ?>
<?php require 'footer.php'; ?>
</div>
</body>
</html>
Это header.php:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div id="header">
 
<table width="100%" height="100px" border="0" cellspacing="0">
  <tr>
    <td align="center" width="200px" class="reklama">
        <div>
        <?php
        print("<b>".$_SESSION["login"]."</b>! Добро пожаловать<br>\n");
        print("Баланс: " . "<b>$balans</b><br>");
        print("<a href=\"logout.php"."\">Выход</a>"); ?>
        </div>
    </td>
    <td align="center" width="1000px">
    </td>
  </tr>
</table>
 
</div>
0
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 825
27.11.2013, 13:41
я тебе написал создать класс и какую функцию добавить
0
PHP developer
 Аватар для masik49
259 / 157 / 26
Регистрация: 20.03.2013
Сообщений: 1,018
27.11.2013, 14:53
Цитата Сообщение от kennett Посмотреть сообщение
.....
PHP
1
2
3
4
5
6
7
} while ($row = mysql_fetch_assoc($result)) 
{ $balans = $row['cash']; 
global $balans; 
} 
mysql_free_result($result); 
return ; 
}

А что возвращать то будем??? return и все...
можеть быть return $balans;


HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div id="header">
 
<table width="100%" height="100px" border="0" cellspacing="0">
  <tr>
    <td align="center" width="200px" class="reklama">
        <div>
        <?php
        print("<b>".$_SESSION["login"]."</b>! Добро пожаловать<br>\n");
        print("Баланс: " . "<b>checkBalans()</b><br>");
        print("<a href=\"logout.php"."\">Выход</a>"); ?>
        </div>
    </td>
    <td align="center" width="1000px">
    </td>
  </tr>
</table>
 
</div>
0
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 825
27.11.2013, 15:04
Да у него ни класса нету и сама функция не правильная
0
PHP developer
 Аватар для masik49
259 / 157 / 26
Регистрация: 20.03.2013
Сообщений: 1,018
27.11.2013, 15:26
Цитата Сообщение от Inkvizzz Посмотреть сообщение
Да у него ни класса нету и сама функция не правильная
Да и без класса можно обойтись, подключить файл с функцией, а потом вызвать саму функцию.
По большому счету он сам не понимает что хочет сделать...
0
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 33
27.11.2013, 19:26  [ТС]
Цитата Сообщение от masik49 Посмотреть сообщение
По большому счету он сам не понимает что хочет сделать...
вообще-то я очень хорошо понимаю что хочу, просто не знаю как это правильно сделать.

Этот код
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$login = $_SESSION['login'];
$password = $_SESSION['password'];
 
$query = sprintf("SELECT login, password, cash FROM user 
    WHERE login='%s' AND password='%s'",
    mysql_real_escape_string($login),
    mysql_real_escape_string($password));
 
$result = mysql_query($query);
 
if (!$result) {
    $message  = 'Неверный запрос: ' . mysql_error() . "\n";
    $message .= 'Запрос целиком: ' . $query;
    die($message);
}
while ($row = mysql_fetch_assoc($result)) {
    $balans = $row['cash'];
    global $balans;
    }
 
mysql_free_result($result);
?>
этот код работает, проблема в том, что работает он только в том случае, если он есть в каждой странице. есть function.php со всеми нужными функциями, но данный код, если прописывать его в function.php как checkBalans() результата не дает. Я новичок в PHP поэтому и обратился за помощью

Цитата Сообщение от Inkvizzz Посмотреть сообщение
я тебе написал создать класс и какую функцию добавить
Спасибо за просвещение. Я это учел и работаю над этим. Пока плохо понимаю классы, но разберусь и не сомневаюсь, что это мне поможет.

Ребята, повторюсь: я пока совершеннейший чайник в PHP, но в любом случае огромное спасибо, что отзываетесь. Мне помогает любой ответ и критика в том числе.
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
30.11.2013, 23:17
kennett, а почему Вам и баланс туда же в сессию не записать? Пусть и не лучшее решение, но тем не менее А вариант masik49`а пробовали?
0
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 33
30.11.2013, 23:32  [ТС]
Цитата Сообщение от romchiksoad Посмотреть сообщение
А вариант masik49`а пробовали?
Так я изначально этого и хочу, только вот не знаю как правильно сделать. Код, который я выложил работает, но только если он в коде страницы, а я хочу, чтобы он был в function.php, а в странице вызывался как функция. Сколько ни бился не смог этого добиться(((
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
01.12.2013, 02:12
в функции checkBalans return $balans
на странице, где нужна функция
PHP
1
2
include_once("function.php"); // подключаете файл с функциями
$balans = checkBalans();
дальше выводите $balans где нужно
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
01.12.2013, 10:04
kennett,
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function checkBalans() {
$login = $_SESSION['login'];
$password = $_SESSION['password'];
 
$query = sprintf("SELECT login, password, cash FROM user 
    WHERE login='%s' AND password='%s'",
    mysql_real_escape_string($login),
    mysql_real_escape_string($password));
 
$result = mysql_query($query);
 
if (!$result) {
    $message  = 'Неверный запрос: ' . mysql_error() . "\n";
    $message .= 'Запрос целиком: ' . $query;
    die($message);
}
$row = mysql_fetch_assoc($result);
return $row['cash'];
}
Ну а дальше, где нужно использовать эту функцию вызываете ее и получаемый результат записывайте в переменную. Предварительно не забыв подключить файл с функцией.:
Цитата Сообщение от fanatikus Посмотреть сообщение
PHP
1
2
3
4
<?php
include_once("function.php"); // подключаете файл с функциями
$balans = checkBalans();
?>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div id="header">
 
<table width="100%" height="100px" border="0" cellspacing="0">
  <tr>
    <td align="center" width="200px" class="reklama">
        <div>
        <?php
        print("<b>".$_SESSION["login"]."</b>! Добро пожаловать<br>\n");
        print("Баланс: " . "<b>$balans</b><br>");
        print("<a href=\"logout.php"."\">Выход</a>"); ?>
        </div>
    </td>
    <td align="center" width="1000px">
    </td>
  </tr>
</table>
 
</div>
1
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 33
01.12.2013, 11:19  [ТС]
Это function.php:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function checkBalans() {
$login = $_SESSION['login'];
$password = $_SESSION['password'];
 
$query = sprintf("SELECT login, password, cash FROM user 
    WHERE login='%s' AND password='%s'",
    mysql_real_escape_string($login),
    mysql_real_escape_string($password));
 
$result = mysql_query($query);
 
if (!$result) {
    $message  = 'Неверный запрос: ' . mysql_error() . "\n";
    $message .= 'Запрос целиком: ' . $query;
    die($message);
}
while ($row = mysql_fetch_assoc($result)) {
    $balans = $row['cash'];
    global $balans;
    }
mysql_free_result($result);
return $balans;
}
Это страница:
PHP
1
2
3
4
5
6
7
8
<?php
include_once("config.php");
error_reporting(E_ALL);
checkLoggedIn("yes");
include_once("function.php");
checkBalans();
 
require 'bloks/header.php'; ?>
Это header.php:
PHP
1
2
3
4
5
<?php
        print("<b>".$_SESSION["login"]."</b>! Добро пожаловать<br>\n");
        print("Баланс: " . "<b>$balans</b><br>");
        print("<a href=\"logout.php"."\">Выход</a>");
        ?>
Может вы увидите где ошибка. У меня уже перед глазами все сливается(((
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
01.12.2013, 13:36
Цитата Сообщение от romchiksoad Посмотреть сообщение
$balans = checkBalans();
читайте внимательно
1
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 33
01.12.2013, 23:14  [ТС]
Цитата Сообщение от fanatikus Посмотреть сообщение
читайте внимательно
Все. Нашел все косяки)) Все работает!

Добавлено через 36 минут
PHP
1
2
$query = sprintf("SELECT login, password, cash FROM user 
    WHERE login='%s' AND password='%s'",
Если нетрудно можете объяснить какую роль здесь играет '%s' ?

И если я вам еще не надоел, может глянете и сюда?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
02.12.2013, 00:43
%s подразумевается, что будет подставлена строка
0
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 33
02.12.2013, 00:56  [ТС]
Цитата Сообщение от fanatikus Посмотреть сообщение
%s подразумевается, что будет подставлена строка
а откуда она берется?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
02.12.2013, 01:10
PHP
1
2
3
4
$a='string1';
$b ='string2';
$query = sprintf("SELECT login, password, cash FROM user 
    WHERE login='%s' AND password='%s'",$a,$b);//в login подставится string1, в password string2
0
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 33
02.12.2013, 08:02  [ТС]
понял. спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.12.2013, 08:02
Помогаю со студенческими работами здесь

Автообновление баланса после каждого действия пользователя
как реализовать авто-обновление баланса после каждого действия пользователя ? &lt;div class=&quot;profile&quot;&gt; &lt;img...

Вывод скрытого блоки либо информации после авторизации либо регистрации пользователя на сайте
Ув. знатоки, такой вопрос, есть сайт, нужно чтобы после авторизации &quot;Блок &lt;div&gt; с регистрацией&quot; заменялся на другой блок, как это...

Не получается редирект после авторизации пользователя
у меня на сайте после авторизации выбрасывает на страницу профиля пользователя, а надо на другую на другую... Где можно прописать редирект?...

После Авторизации загрузить фото пользователя с хостинга в Unity
Доброго времени суток! Есть хостинг (SQL+PHP) сделана авторизация пользователя в приложении Unity, после авторизации в Unity парсю id,...

Получение фото и имени пользователя после успешной авторизации Vk
Всем привет, у меня очередной вопрос, вот я сделал программу все отлично работает, Авторизирует на сайте Вконтакте ру. И мне хотелось бы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru