Question about PHP login script

nicolaj-arberg

Oct 1st, 2016 10:16 AM

Hello, just saw your PHP login scrit video on youtube and liked it very much. It is also working 100%.

I am just wondering, if i want a page only displayed to those who are logged in. What should i do? And of course if they are not logged in they will go to my index.php.

 

Thanks for the nice video and hopefully an awnser in here! :-D

devdojo

Oct 6th, 2016 09:49 AM

Hey @Nicolaj-arberg,

What you could do is inside of index.php after this section:

 

<?php
session_start();
require 'database.php';
if( isset($_SESSION['user_id']) ){
	$records = $conn->prepare('SELECT id,email,password FROM users WHERE id = :id');
	$records->bindParam(':id', $_SESSION['user_id']);
	$records->execute();
	$results = $records->fetch(PDO::FETCH_ASSOC);
	$user = NULL;
	if( count($results) > 0){
		$user = $results;
	}
}
?>

You can add this:

 

<?php

if( !empty($user) ){ header( 'Location: http://www.yoursite.com/authenticated.php' ); }

And this will automatically redirect an authenticated user to the authenticated.php page if they are logged in.

So, now you can create an `authenticated.php` file which will look like the following:

 

<?php
session_start();
require 'database.php';
if( isset($_SESSION['user_id']) ){
	$records = $conn->prepare('SELECT id,email,password FROM users WHERE id = :id');
	$records->bindParam(':id', $_SESSION['user_id']);
	$records->execute();
	$results = $records->fetch(PDO::FETCH_ASSOC);
	$user = NULL;
	if( count($results) > 0){
		$user = $results;
	}
}
?>

<?php if($user == NULL){ header( 'Location: http://www.yoursite.com/index.php' ) ; } ?>

<!DOCTYPE html> <html> <head> <title>Welcome <?= $user['email']; ?></title> <link rel="stylesheet" type="text/css" href="assets/css/style.css"> <link href='http://fonts.googleapis.com/css?family=Comfortaa' rel='stylesheet' type='text/css'> </head> <body>

<span class="token markup"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>header<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span></span>
	<span class="token markup"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>/<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span></span>Your App Name<span class="token markup"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">&gt;</span></span></span>
<span class="token markup"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span></span>

<span class="token markup"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>br</span> <span class="token punctuation">/&gt;</span></span></span>Welcome <span class="token php"><span class="token delimiter">&lt;?</span><span class="token operator">=</span> <span class="token variable">$user</span><span class="token punctuation">[</span><span class="token string">'email'</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token delimiter">?&gt;</span></span> 
<span class="token markup"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>br</span> <span class="token punctuation">/&gt;</span></span></span><span class="token markup"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>br</span> <span class="token punctuation">/&gt;</span></span></span>You are successfully logged in<span class="token operator">!</span>
<span class="token markup"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>br</span> <span class="token punctuation">/&gt;</span></span></span><span class="token markup"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>br</span> <span class="token punctuation">/&gt;</span></span></span>
<span class="token markup"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>logout.php<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span></span>Logout<span class="token operator">?</span><span class="token markup"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">&gt;</span></span></span>

</body> </html>

Hope this helps you out :)

Thanks!