Witam proszę o pomoc rejestruje dobrze ale przy logowaniu zamiast do home.php przekierowuje mnie z powrotem na index.php
i nie wiem co już robić z tą sesją ...
pomooooocy
class.user.php
<?php
require_once('dbconfig.php');
class USER
{
private $conn;
function __construct()
{
$database= new Database();
$db=$database->dbConnection();
$this->conn=$db;
}
public function runQuery($sql)
{
$stmt=$this->conn->prepare($sql);
return $stmt;
}
public function register($uname,$umail,$upass)
{
try
{
$new_password=password_hash($upass, PASSWORD_DEFAULT);
$stmt=$this->conn->prepare("insert into users (login,haslo,email) values( :uname, :upass, :umail)");
$stmt->bindparam(":uname", $uname);
$stmt->bindparam(":upass", $new_password);
$stmt->bindparam(":umail", $umail);
$stmt->execute();
return $stmt;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
public function doLogin($uname,$upass,$umail)
{
try
{
$stmt=$this->conn->prepare("select * from users where login= :uname or email= :umail ");
$stmt->execute(array(':uname'=>$uname, ':umail'=>$umail));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
if($stmt->rowCount()==1)
{
if(password_verify($upass, $userRow['haslo']))
{
$_SESSION['user_session']=$userRow['userId'];
return TRUE;
}
else
{
return FALSE;
}
}
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
public function is_loggedin()
{
if(isset($_SESSION['user_session']))
{
return TRUE;
}
}
public function redirect($url)
{
header("Location: $url");
}
public function dologout()
{
session_destroy();
unset($_SESSION['user_session']);
return TRUE;
}
}
?>
dbconfig.php
<?php
class Database
{
private $host='localhost';
private $db_name='test';
private $username='tharnog';
private $password='tharnog';
public $conn;
public function dbConnection()
{
$this->conn=null;
try
{
$this->conn= new PDO("mysql:host=" .$this->host.";dbname=" .$this->db_name, $this->username, $this->password);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo 'Błąd połączenia: '.$e->getMeddage();
}
return $this->conn;
}
}
?>
session.php
<?php
session_start();
require_once 'class.user.php';
$session=new USER();
if(!$session->is_loggedin())
{
$session->redirect('./index.php');
}
?>
home.php
<?php
require_once 'config/session.php';
require_once 'config/class.user.php';
$auth_user= new USER();
$user_id=$_SESSION['user_session'];
$stmt=$auth_user->runQuery("select * from users where userId= :user_id");
$stmt->execute(array(":user_id"=>$user_id));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
?>
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" type="text/css" />
<link rel="stylesheet" href="style/style.css" type="text/css" />
<title>Witaj - <?php print($userRow['email']); ?></title>
</head>
<body>
<div class="header">
<div class="left">
<label><a href="">Bla bla bla</a></label>
</div>
<div class="right">
<label><a href="logout.php?logout=true"><i class="glyphicon glyphicon-log-out"></i>Wyloguj</a></label>
</div>
</div>
<div class="content">
Witaj : <?php print($userRow['login']); ?>
</div>
</body>
</html>
index.php
<?php
session_start();
require_once ('config/class.user.php');
$login=new USER();
if($login->is_loggedin()!="")
{
$login->redirect('home.php');
}
if(isset($_POST['btn-login']))
{
$uname=strip_tags($_POST['txt_uname_email']);
$umail=strip_tags($_POST['txt_uname_email']);
$upass=strip_tags($_POST['txt_password']);
if($login->dologin($uname, $upass, $umail))
{
$login->redirect('home.php');
}
else
{
$error="Nieprawidłowe dane !";
}
}
?>
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Logowanie </title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" type="text/css" />
<link rel="stylesheet" href="style/style.css" type="text/css" />
</head>
<body>
<div class="container">
<div class="form-container">
<form method="post">
<h2>Logowanie</h2><hr />
<?php
if(isset($error))
{
?>
<div class="alert alert-danger">
<i class="glyphicon glyphicon-warning-sign"></i>
</div>
<?php
}
?>
<div class="form-group">
<input type="text" class="form-control" name="txt_uname_email" placeholder="Login lub Email ID" required />
</div>
<div class="form-group">
<input type="password" class="form-control" name="txt_password" placeholder="Twoje Hasło"required />
</div>
<div class="clearfix"></div><hr />
<div class="form-group">
<button type="submit" name="btn-login" class="btn btn-block btn-primary">
<i class="glyphicon glyphicon-log-in"></i> Zaloguj
</button>
</div>
<br />
<label>Nie masz jeszcze konta ! <a href="sign-up.php">Zarejestruj</a></label>
</form>
</div>
</div>
</body>
</html>
sign-up.php
<?php
session_start();
require_once ('config/class.user.php');
$user=new USER();
if($user->is_loggedin()!="")
{
$user->redirect('home.php');
}
if(isset($_POST['btn-signup']))
{
$uname=strip_tags($_POST['txt_uname']);
$umail=strip_tags($_POST['txt_umail']);
$upass=strip_tags($_POST['txt_upass']);
if($uname=="")
{
$error[]="Wprowadź nazwę użytkownika !";
}
else if($umail=="")
{
$error[]="Wprowadź adres email !";
}
else if(!filter_var($umail, FILTER_VALIDATE_EMAIL))
{
$error[]="Wprowadź poprawny adres email !";
}
else if($upass=="")
{
$error[]="Wprowadź hasło !";
}
else if(strlen($upass)<6)
{
$error[]="Hasło musi zawierać conajmniej 6 znaków !";
}
else
{
try
{
$stmt = $user->runQuery("select login,email from users where login= :uname or email= :umail");
$stmt->execute(array(':uname'=>$uname, ':umail'=>$umail));
$row=$stmt->fetch(PDO::FETCH_ASSOC);
if($row['login']==$uname)
{
$error[]="Ten login jest zajęty !";
}
else if($row['email']==$umail)
{
$error[]="Ten adres email jest zajęty !";
}
else
{
if($user->register($uname, $umail, $upass))
{
$user->redirect('sign-up.php?joined');
}
}
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
}
?>
<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Rejestracja</title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" type="text/css" />
<link rel="stylesheet" href="style/style.css" type="text/css" />
</head>
<body>
<div class="container">
<div class="form-container">
<form method="post">
<h2>Zarejestruj</h2><hr />
<?php
if(isset($error))
{
foreach($error as $error)
{
?>
<div class="alert alert-danger">
<i class="glyphicon glyphicon-warning-sign"></i>
</div>
<?php
}
}
else if(isset($_GET['joined']))
{
?>
<div class="alert alert-info">
<i class="glyphicon glyphicon-log-in"></i> Rejestrowanie zakończone sukcesem ! <a href="index.php">Logowanie</a>
</div>
<?php
}
?>
<div class="form-group">
<input type="text" class="form-control" name="txt_uname" placeholder="Podaj Login" value="<?php if(isset($error)){echo $uname;}?>" />
</div>
<div class="form-group">
<input type="text" class="form-control" name="txt_umail" placeholder="Podaj adres email" value="<?php if(isset($error)){echo $umail;}?>" />
</div>
<div class="form-group">
<input type="password" class="form-control" name="txt_upass" placeholder="Podaj Hasło" />
</div>
<div class="clearfix"></div><hr />
<div class="form-group">
<button type="submit" class="btn btn-block btn-primary" name="btn-signup">
<i class="glyphicon glyphicon-open-file"></i> Zarejestruj
</button>
</div>
<br />
<label>Utworzyłeś konto ! <a href="index.php">Zaloguj</a></label>
</form>
</div>
</div>
</body>
</html>
Aha i dodam oczywiście pewien błąd:
Notice: Undefined variable: _SESSION in /opt/lampp/htdocs/vuko/home.php on line 6
linia 6:
$user_id=$_SESSION['user_session'];