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

Отображение данных о пользователе после авторизации php+mysql

15.03.2017, 21:46. Показов 4467. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, прошу помощи в такой проблеме : есть система "личного кабинета", которая состоит из 2-х файлов : login.php
cabinet.php

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

login.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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
    session_start();
    error_reporting(0); 
    ?>
    
        <?php require_once("scripts/connection.php"); ?>
    <?php include("scripts/header.php"); ?>  
    <?php
    
    if(isset($_SESSION["session_username"])){
    // вывод "Session is set"; // в целях проверки
    header("Location: cabinet.php");
    }
 
    if(isset($_POST["login"])){
 
    if(!empty($_POST['username']) && !empty($_POST['password'])) {
    $username=htmlspecialchars($_POST['username']);
    $password=htmlspecialchars($_POST['password']);
    $query =mysql_query("SELECT * FROM users WHERE username='".$username."' AND password='".$password."'");
    $numrows=mysql_num_rows($query);
    if($numrows!=0)
 {
while($row=mysql_fetch_assoc($query))
 {
    $dbusername=$row['username'];
  $dbpassword=$row['password'];
 }
  if($username == $dbusername && $password == $dbpassword)
 {
    // старое место расположения
    //  session_start();
     $_SESSION['session_username']=$username;    
 /* Перенаправление браузера */
   header("Location: cabinet.php");
    }
    } else {
    //  $message = "Invalid username or password!";
    
    echo  "Неправильний логін або пароль!";
 }
    } else {
    $message = "All fields are required!";
    }
    }
    ?>
 
<!DOCTYPE html>
    <html lang="en">
    <head>
<meta charset="utf-8">
<title>Billing Service</title>
<link href="css/style.css" media="screen" rel="stylesheet">
<link href= 'http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
</head> 
<body>
<div class="container mlogin">
<div id="login">
<h1>Billing Service</h1>
<form action="cabinet.php" id="loginform" method="post"name="loginform">
<p><label for="user_login">Login користувача<br>
<input class="input" id="username" name="username"size="20"
type="text" value="" placeholder="Логін"></label></p>
<p><label for="user_pass">Пароль користувача<br>
 <input class="input" id="password" name="password"size="20"
  type="password" value="" placeholder="Пароль"></label></p> 
    <p class="submit"><input class="button" name="login"type= "submit" value="Увійти"></p>
   </form>
 </div>
  </div>
<footer>
 
</footer>
</body>
</html>


cabinet.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
24
25
26
27
28
<?php
require("scripts/connection.php"); 
error_reporting(0);
$login=$_POST['login'];
$t="users";
$x = mysql_query("Select * from  $t Where login='$login'",$db) or die (mysql_error()); 
$result = mysql_fetch_row($x);
if(!$result){echo "<h3>Інформація про користувача під логіном: $login не знайдена</h3>";}
 
 
while($result) {
echo "<h3>Інформація про користувача під логіном: $login</h3>";
print "<table border='1'>
<th>Name</th>
<th>Surname</th>
<th>age</th>
<th>Study/Work</th>";
 
print "<tr>
    <td>$result[1]</td>
    <td>$result[2]</td>
    <td>$result[3]</td>
    <td>$result[4]</td>
    </tr>";
print "</table>";
break;
}
?>


З.Ы. : пытался все реализовать в файлике cabinet.php, однако мне выдало ошибку : Unknown column 'login' in 'where clause'
По этой ошибке нашел пару ответов на stackoverflow, однако так ничего и не смог понять...
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.03.2017, 21:46
Ответы с готовыми решениями:

Php-сценарий userinfo.php для вывода из таблицы users данных о пользователе
Помогите Написать php-сценарий userinfo.php для вывода из таблицы users данных о пользователе (имя, фамилия, адрес e-mail, адрес) по его...

Форма авторизации php+mysql
Добрый день. Подскажите пожалуйста. Проблема такая мне необходимо авторизоваться и перейти на страничку. Дак вот, создал я форму, ...

Не могу понять принцип авторизации в PHP и MySQL
Здравствуйте. Читал в интернете, как создавать регистрацию и авторизацию на php. Запись в базу данных происходит успешно, но никак не могу...

14
 Аватар для Nick007
101 / 94 / 38
Регистрация: 30.09.2009
Сообщений: 442
15.03.2017, 22:27
Цитата Сообщение от re3ak98 Посмотреть сообщение
Unknown column 'login' in 'where clause'
там ещё номер строки с ошибкой должен указываться и файл

Добавлено через 1 минуту
$login=$_POST['login'];
переменная уже пустая, после перенаправления

Добавлено через 50 секунд
в файле cabinet.php не запущена сессия

Добавлено через 1 минуту
после проверки полученных данных и данных в базе, если всё нормально, сохраняйте их в $_SESSION

Добавлено через 46 секунд
для доступа к базе используйте pdo, в перспективе это будет удобнее

Добавлено через 3 минуты
в общем, ваша ошибка появилась из-за разноса по разным файлам и вы немного по перепутали переменные

Добавлено через 1 минуту
$_POST['login'] в cabinet.php наверное должна содержать username, не login
login это кнопка

Добавлено через 1 минуту
$_POST['login'] в cabinet.php заменить на $_SESSION['session_username']
и открыть сессию в начале файла
1
0 / 0 / 0
Регистрация: 15.07.2011
Сообщений: 52
15.03.2017, 22:42  [ТС]
Кликните здесь для просмотра всего текста
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
28
29
30
31
32
33
34
35
<link href="css/style.css" media="screen" rel="stylesheet">
 
<?php
    session_start();
    error_reporting(0); 
    ?>
 
 
<?php
require("scripts/connection.php"); 
error_reporting(0);
$_SESSION['session_username']
$x = mysql_query("Select * from users Where login='$login'",$db) or die (mysql_error()); 
$result = mysql_fetch_row($x);
if(!$result){echo "<h3>Інформація про користувача під логіном: $login не знайдена</h3>";}
 
 
while($result) {
echo "<h3>Інформація про користувача під логіном: $login</h3>";
print "<table border='1'>
<th>Name</th>
<th>Surname</th>
<th>age</th>
<th>Study/Work</th>";
 
print "<tr>
    <td>$result[1]</td>
    <td>$result[2]</td>
    <td>$result[3]</td>
    <td>$result[4]</td>
    </tr>";
print "</table>";
break;
}
?>


Сделал все, как вы и описали.
В итоге ошибка : ( ! ) Parse error: syntax error, unexpected '$x' (T_VARIABLE) in C:\wamp64\www\kursach\cabinet.php on line 13
Пытался поменять session_username на username, тоже самое...
Сессию открыл.
0
 Аватар для Nick007
101 / 94 / 38
Регистрация: 30.09.2009
Сообщений: 442
15.03.2017, 22:46
файл закинтье

Добавлено через 40 секунд
похоже у вас $x где то без объявления используется

Добавлено через 58 секунд
ошибка мускула где ни будь маячит?
0
0 / 0 / 0
Регистрация: 15.07.2011
Сообщений: 52
15.03.2017, 22:46  [ТС]
Кликните здесь для просмотра всего текста
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
28
29
30
<link href="css/style.css" media="screen" rel="stylesheet">
 
<?php
    session_start();
    error_reporting(0); 
require("scripts/connection.php");
$_SESSION['session_username']
$x = mysql_query("Select * from users Where login='$_SESSION'",$db) or die (mysql_error()); 
$result = mysql_fetch_row($x);
if(!$result){echo "<h3>Інформація про користувача під логіном: $_SESSION не знайдена</h3>";}
 
 
while($result) {
echo "<h3>Інформація про користувача під логіном: $_SESSION</h3>";
print "<table border='1'>
<th>Name</th>
<th>Surname</th>
<th>age</th>
<th>Study/Work</th>";
 
print "<tr>
    <td>$result[1]</td>
    <td>$result[2]</td>
    <td>$result[3]</td>
    <td>$result[4]</td>
    </tr>";
print "</table>";
break;
}
?>


Поменял все названия переменных $login на $_SESSION - так-же не дало результата...
0
 Аватар для Nick007
101 / 94 / 38
Регистрация: 30.09.2009
Сообщений: 442
15.03.2017, 22:47
<link href="css/style.css" media="screen" rel="stylesheet">

<?php
session_start();
так нельзя
сначала session_start а потом вывод

Добавлено через 27 секунд
error_reporting(0);
поменяйте на

error_reporting(1);
0
0 / 0 / 0
Регистрация: 15.07.2011
Сообщений: 52
15.03.2017, 22:48  [ТС]
с мускулом все в порядке
x объявляется непосредственно в cabinet.php
php не заливается, залил в txt
Вложения
Тип файла: txt cabinet.txt (815 байт, 3 просмотров)
0
0 / 0 / 0
Регистрация: 15.07.2011
Сообщений: 52
15.03.2017, 22:49  [ТС]
Цитата Сообщение от Nick007 Посмотреть сообщение
error_reporting(1);
Поменял, ничего не изменилось. Только 1 ошибка : ( ! ) Parse error: syntax error, unexpected '$x' (T_VARIABLE) in C:\wamp64\www\kursach\cabinet.php on line 8
0
 Аватар для Nick007
101 / 94 / 38
Регистрация: 30.09.2009
Сообщений: 442
15.03.2017, 22:50
"Select * from users Where login='$_SESSION'"
поменяйте на "Select * from users Where login='{$_SESSION['session_username']}'"

Добавлено через 1 минуту
Цитата Сообщение от re3ak98 Посмотреть сообщение
php не заливается, залил в txt
имел в виду, показать текст, как вы это уже сделали
0
0 / 0 / 0
Регистрация: 15.07.2011
Сообщений: 52
15.03.2017, 22:51  [ТС]
Цитата Сообщение от Nick007 Посмотреть сообщение
поменяйте на "Select * from users Where login='{$_SESSION['session_username']}'"
Все равно не хочет

Добавлено через 12 секунд
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
28
29
30
<link href="css/style.css" media="screen" rel="stylesheet">
 
<?php
    session_start();
    error_reporting(1); 
require("scripts/connection.php");
$_SESSION['session_username']
$x = mysql_query("Select * from users Where login='{$_SESSION['session_username']}'",$db) or die (mysql_error()); 
$result = mysql_fetch_row($x);
if(!$result){echo "<h3>Інформація про користувача під логіном: $_SESSION не знайдена</h3>";}
 
 
while($result) {
echo "<h3>Інформація про користувача під логіном: $_SESSION</h3>";
print "<table border='1'>
<th>Name</th>
<th>Surname</th>
<th>age</th>
<th>Study/Work</th>";
 
print "<tr>
    <td>$result[1]</td>
    <td>$result[2]</td>
    <td>$result[3]</td>
    <td>$result[4]</td>
    </tr>";
print "</table>";
break;
}
?>
0
 Аватар для Nick007
101 / 94 / 38
Регистрация: 30.09.2009
Сообщений: 442
15.03.2017, 22:55
Лучший ответ Сообщение было отмечено re3ak98 как решение

Решение

PHP
1
2
3
$_SESSION['session_username']
$x = mysql_query("Select * from users Where login='{$_SESSION['session_username']}'",$db) or die (mysql_error()); 
$result = mysql_fetch_row($x);
замените на
PHP
1
2
3
4
5
$l=$_SESSION['session_username'];
$q="Select * from users Where login='$l'";
echo '<br/>'.$q.'<br/>';
$x = mysql_query($q,$db) or die (mysql_error()); 
$result = mysql_fetch_row($x);
Добавлено через 1 минуту
у вас там переменная болталась без дела и не закрытая
1
0 / 0 / 0
Регистрация: 15.07.2011
Сообщений: 52
15.03.2017, 22:56  [ТС]
заметил, что ; нету,
Но теперь новые прелести : Unknown column 'login' in 'where clause'

Заменил.
Показывает : Select * from users Where login='admin'
Unknown column 'login' in 'where clause'
0
 Аватар для Nick007
101 / 94 / 38
Регистрация: 30.09.2009
Сообщений: 442
15.03.2017, 22:59
теперь смотрите что у вас в таблице users и стройте к ней правильный запрос

Добавлено через 1 минуту
echo "<h3>Інформація про користувача під логіном: $_SESSION</h3>";
заменить на

echo "<h3>Інформація про користувача під логіном: $l</h3>";

Добавлено через 13 секунд
переменная _SESSION это массив
1
0 / 0 / 0
Регистрация: 15.07.2011
Сообщений: 52
15.03.2017, 22:59  [ТС]
Тьфу ты, твою на лево.
Еще раз убедился, что копипаст - ЗЛО.
В бд вместо login был username
Только время Ваше зря отнял. Все отлично работает, огромнейшее СПАСИБО!
0
 Аватар для Nick007
101 / 94 / 38
Регистрация: 30.09.2009
Сообщений: 442
15.03.2017, 23:01
утро вечера мудренее

Рад был быть полезным.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.03.2017, 23:01
Помогаю со студенческими работами здесь

грамотная проверка регистрации и авторизации? (php + mysql + jq)
здравствуйте. не могли бы вы подсказать пример где подробно описывается как правильно сделать проверку на валидность чего либо. ...

Вход в административную панель только после авторизации (без использования MySQL)
Всем привет. Возник вопрос. Нужно что бы в админку можно было зайти только после авторизации. (тобешь доступ к папке /admin был разрешен...

Выводится php-код в браузер после установки php+apache+mysql
Навеяло отсюда: https://www.cyberforum.ru/php-beginners/thread839975.html Установила по инструкции...

Парсинг данных после авторизации
Всем привет! У меня такая проблема: Есть сайт, с которого я хочу спарсить данные, доступные только после авторизации. Спарсить из...

phpBB Отображение Автарки и другой информации о пользователе Слева
Доброго времени суток. У меня проблемка... Поставил тему для форума, а вся информация о пользователе отображается справа ... естественно...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru