Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

create login and logout session in php and database

Tags:

database

php

I want to create login and logout session

My table in mysql database is looking like this

CREATE TABLE members ( 
id int(10) NOT NULL auto_increment, 
username varchar(20) NOT NULL, 
password varchar(20) NOT NULL, PRIMARY KEY (id) ) 
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

and mysql connection named as loginproc.php

<?php

// Inialize session
session_start();

// Include database connection settings
$hostname = 'localhost';        // Your MySQL hostname. Usualy named as 'localhost',                  so you're NOT necessary to change this even this script has already     online on the internet.
$dbname   = 'database'; // Your database name.
$username = 'root';             // Your database username.
$password = '';                 // Your database password. If your database has no         password, leave it empty.

// Let's connect to host
mysql_connect($hostname, $username, $password) or DIE('Connection to host is failed,       perhaps the service is down!');
/ Select the database
mysql_select_db($dbname) or DIE('Database name is not available!');


// Retrieve username and password from database according to user's input

$login = mysql_query("SELECT count(*) FROM members WHERE (username = '" .       mysql_real_escape_string($_POST['user']) . "') and (password = '" .     mysql_real_escape_string(md5($_POST['pass'])) . "')");
$result=mysql_fetch_array($login);
// Check username and password match

 if (mysql_num_rows($result) == 1) {
// Set username session variable
$_SESSION['username'] = $_POST['user'];

// Jump to secured page
 header('Location: securedpage.php');
}
else {
// Jump to login page
header('Location:career.php');
}

?>

Then created securedpage.php

<?php

// Inialize session
session_start();

// Check, if username session is NOT set then this page will jump to login page
if (!isset($_SESSION['user'])) {
header('Location: career.php');
}

?>
<html>

<head>
<title>Secured Page</title>
</head>

<body>

<p>This is secured page with session: <b><?php echo $_SESSION['username']; ?></b>
<br>You can put your restricted information here.</p>
<p><a href="logout.php">Logout</a></p>

</body>

</html>

index.php

<html>
<head>
</head>
<body>

<form action="loginproc.php" method="post">




               UserName:<input type="text" name="user" >

   <p> &nbsp;</p>
   Password:<input type="password" name="pass"  >
<p>&nbsp;</p>

  <input type="submit"  value="  Login Here  " >
  &nbsp;
  <span class="style30">| New?</span>
  <a href="signup.php"><span class="style32">Start Here</span>

 </form></body></html>

and finally logout page named as logout.php

 <?php

  // Inialize session
  session_start();

// Delete certain session
  unset($_SESSION['username']);
  // Delete all session variables
  // session_destroy();

 // Jump to login page
 header('Location: index.php');

  ?>

Now my problem is when i am entering username and password it will stay only at index.php , it is not going to another page. please see this code and tell me when i am doing wrong.

Thanks.

like image 997
user3242335 Avatar asked Aug 15 '26 02:08

user3242335


2 Answers

I have a solution for your problem. You have to bit modify your code as mentioned below -

 <?php

// Inialize session

   session_start();

//----***Use variabel to capture start time *****------

// Check, if username session is NOT set then this page will jump to login page

if (!isset($_SESSION['user'])) {
header('Location: career.php');
}

?>

And in logout page add one entry as -

 <?php

// Inialize session

  session_start();

// Delete certain session

  unset($_SESSION['username']);


//---****Use end time variable ---------
// Subtract previous start time variable and end time variale

// Delete all session variables

// session_destroy();

// Jump to login page

  header('Location: index.php');

?>

like image 87
Partap Avatar answered Aug 16 '26 16:08

Partap


Don't use this line

 $result=mysql_fetch_array($login);

This will fetch the result into $result as an array, and later own you are using mysql_num_rows() function (which is used for resource , i.e in your case $login)

You the following code

        $login = mysql_query("SELECT count(*) FROM members WHERE (username = '" .       mysql_real_escape_string($_POST['user']) . "') and (password = '" .     mysql_real_escape_string(md5($_POST['pass'])) . "')");

        // Check username and password match

         if (mysql_num_rows($login) == 1) {
        // Set username session variable
        $_SESSION['username'] = $_POST['user'];

        // Jump to secured page
         header('Location: securedpage.php');
        }
        else {
        // Jump to login page
        header('Location:career.php');
        }
like image 28
sanjeev Avatar answered Aug 16 '26 16:08

sanjeev



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!