Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вывод данных из базы данных на сайта php SQL

Сергей Титов Ученик (189), на голосовании 1 год назад
Уже какие только варианты не пробовал, какие кода не использовал бестолку, все упирается в получение id или email залогиненного пользователя, а далее вывод в лк имя, фамилия и сам мэйл.
Пытался получить так: $_SESSION['email'] = $email; и так же для id.
Мне кажется копаться надо где-то в авторизации
Если кто-то может помочь я скину ссылку сайта,те кода что пробовал и даже сотку:))
Голосование за лучший ответ
Дмитрий Царь Мудрец (11433) 1 год назад
Предположительно, вы не получили за два дня ни одного ответа, потому что никто не понял ваш вопрос. Формулируйте понятнее)

Попробую поиграть в бабушку Вангу.

Авторизация:
 $login = $_POST['login'];
$pwd = $_POST['password'];
$result = $db->query("select `id`,`password`,`sessions` from `users` where `login` = '$login' limit 1");
if ($result->num_rows < 1) {
echo "User not found";
} else {
$user = $result->fetch_assoc();
$dbpwd = $user['password'];
if (password_verify($pwd,$dbpwd)) {
$id = $user['id'];
$sessions = $user['sessions'];
if ($sessions == "") {$sessions = "[]";}
$sess = md5($login.$dbpwd.microtime().rand(-9999,9999));
setCookie("session",$sess,time()+365*24*60*60);
$sessions = json_decode($sessions,true);
$sessions[] = $sess;
$sessions = json_encode($sessions);
$db->query(`update `users` set `sessions` = '$sessions' where `id` = '$id' limit 1");
echo "User logged in";
} else {
echo "Uncorrect password";
}
}
Проверка авторизации (на каждой странице, доступ к которой требует авторизации):
 if (!isset($_COOKIE['session']) or $_COOKIE['session'] == "") {
header("Location: /login");
} else {
$sess = $_COOKIE['session'];
$result = $db->query("select * from `users` where `sessions` like '%$sess%' limit 1");
if ($result->num_rows) {
echo "You authorized";
$user = $result->fetch_assoc();
} else {
setCookie("session","",0);
header("Location: /login");
}
}
Если пользователь авторизовался корректно, то в массиве $user будут его данные из БД.
Сергей ТитовУченик (189) 1 год назад
А вопрос такой,может знаешь? У меня есть авторизация системой одноразовых паролей, то есть как итог в бд добавляется почта пароль и время когда он создан. Дело в том, что при каждой новой авторизации создается новая строка с одной и той же почтой, прост другой пароль и время создания, так в принципе и оставляют или все-таки нужно как-то сделать так что бы он не дублировал строки?
Дмитрий ЦарьМудрец (11433) 1 год назад
Update, думаю. Смысл дублировать строки?
Сергей ТитовУченик (189) 1 год назад
то есть тут создать условие что если нет такой почты то добавление данных, а если есть то update?
Дмитрий Царь Мудрец (11433) Сергей Титов, именно. Проверяете через select. Если существует - update, если нет - insert
Сергей ТитовУченик (189) 1 год назад
не подскажите ошибку?
$sql = "UPDATE users SET (token, created_at) VALUES ('$token', NOW())";
Сергей ТитовУченик (189) 1 год назад
уже переделал спасибо)
UPDATE users SET token = '$token' , created_at = NOW()
Похожие вопросы