Rejestruje dobrze, ale przy logowaniu przekierowuje na złą stronę

0

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'];
0

Dziękuje naprawione.

tak dla wiadomości
nie działała weryfikacja haseł a to dlatego że w bazie danych ustawiłem varchar(50) a sam a hashowane hasło miało znaków 60 także tyle w temacie

1 użytkowników online, w tym zalogowanych: 0, gości: 1