MySQL — Как перейти к папке учетной записи с помощью сессии в переполнении стека

В приведенном ниже коде может / не может быть много скрытых ошибок.

Что я хочу:- я имею session что приводит к тому, что пользователь находится на index.php и вошел в систему, он будет перенаправлен в папку своей учетной записи.

Что я имею:- В index.php я получил увидеть изображение.

Как прописана папка учетной записи: —

Предположим, что есть два пользователя, имеющие uname как пробный & демонстрация

Таким образом, папка учетной записи для пробный будет http://localhost/Ebooks/new/trial & за демонстрация это будет http://localhost/Ebooks/new/demo

Средства учетных записей папок основаны на их uname

uname ничего кроме username

Для получения результата я попытался:

index.php

<?php
session_start();
require_once 'class.user.php';
$user_login = new USER();

if($user_login->is_logged_in()!="")
{
$user_login->redirect($uname);
}

if(isset($_POST['btn-login']))
{
$uname = trim($_POST['txtuname']);
$upass = trim($_POST['txtupass']);

if($user_login->login($uname,$upass))
{
$user_login->redirect($uname);
}
}
?>

class.user.php

public function is_logged_in()
{
if(isset($_SESSION['userSession']))
{
return true;
}
}

public function redirect($uname)
{
try{
$stmt = $this->conn->prepare("SELECT * FROM tbl_users WHERE userName=:username");
$stmt->execute(array(":username"=>$uname));
header("Location: $uname");
} catch (Exception $e) {
die('Error! '.$e->getMessage());
}
}

public function logout()
{
session_destroy();
$_SESSION['userSession'] = false;
}

Но я получаю результат как увидеть изображение.

Я прошу разобраться в моей проблеме!

Если мой ошибка решено пожалуйста, не считайте, что проблема решена. Я хочу в основном How to go to account folder using session in PHP, но это может иметь много скрытых проблем.

-2

Решение

Вам нужен улов, если вы собираетесь try что-то:

public function redirect($uname)
{
try{
$stmt = $this->conn->prepare("SELECT * FROM tbl_users WHERE userName=:username");
$stmt->execute(array(":username"=>$uname));
header("Location: $uname");
} catch (Exception $e) {
die('Error! '.$e->getMessage());
}
}

Обращайтесь с любыми ошибками, однако вы будете в зоне улова.

3

Другие решения

Вам также нужно поймать блок с попыткой. Я предполагаю, что вы используете PDO, поэтому рабочее решение будет следующим.

public function redirect($uname) {
try{
$stmt = $this->conn->prepare("SELECT * FROM tbl_users WHERE userName=:username");
$stmt->execute(array(":username"=>$uname));
}
catch(PDOException $error) {
return $error->getMessage();
}
header("Location: $uname");
}
1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector