Jump to content

Simple Login/Register/Main Script

- - - - -

  • Please log in to reply
40 replies to this topic

#1
Whitey

Whitey

    Programming Professional

  • Members
  • PipPipPipPipPip
  • 255 posts
This was made probably cheaply but i learned alot while making this and it could possibly help people who are starting out in PHP.

config.php
<?php

class MySQLDB

{

   var $connection;         //The MySQL database connection


   /* Class constructor */

   function MySQLDB(){

      /* Make connection to database */

      $this->connection = @mysql_connect(localhost, whitey, abc123) or die(mysql_error());

      @mysql_select_db(blue, $this->connection) or die(mysql_error());

	}

	/**

    * query - Performs the given query on the database and

    * returns the result, which may be false, true or a

    * resource identifier.

    */

	//Use this function as query("Query line of code");

   function query($query){

      return mysql_query($query, $this->connection);

   }

};


$config = new MySQLDB;

?>

login.php
<?php

// Session Start is always needed when working with sessions.

session_start();

//Checks to see if the session error exist.. And if it does echo the error

if(session_is_registered(error))

{

echo ($_SESSION['error']);

session_unregister(error);

session_destroy();

}

?>

<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">

<tr>

<form name="form1" method="post" action="process.php">

<td>

<table width="100%" border="0" cellpadding="3" cellspacing="0" bgcolor="#FFFFFF">

<tr>

<td colspan="4"><strong>Member Login </strong></td>

</tr>

<tr>

<td width="68"><div align="right">Username</div></td>

<td width="3">:</td>

<td width="205"><input name="myusername" type="text" id="myusername"></td>

<td width="205">

<?php

// Checks to see if the Session Bad_char exist which is another error type.

if(session_is_registered(bad_char))

{

echo ($_SESSION['bad_char']);

session_unregister(bad_char);

session_destroy();

}

?></td>

</tr>

<tr>

<td><div align="right">Password</div></td>

<td>:</td>

<td><input name="mypassword" type="password" id="mypassword"></td>

<td> </td>

</tr>

<tr>

<td><input name="login" type="hidden" value="1"></td>

<td> </td>

<td><input type="submit" name="Submit" value="Login"></td>

<td> </td>

</tr>

<tr>

  <td colspan="4"><div align="center"><a href="register.php">Register Account? </a></div></td>

  </tr>

</table>

</td>

</form>

</tr>

</table>

logout.php
<?

//Just in case the page was viewed it does a session_start or it would release an error. 

session_start();

//Destroys all the sessions

session_destroy();

//Unregisters your login

session_unregister(myusername);

//Redirects you back to the login page after 5 seconds

echo("<center><font size='4'>You are now logged out</font>");

echo("<br><a href='login.php'>Now redirecting you to home page or click here if you do not wish to wait.</a></center>");

echo("<META HTTP-EQUIV='refresh' CONTENT='5;login.php'>");


?>



main.php
<?

//Checks to see if you were logged in (if session myusername was registered or not)

//Redirects back to login.php if you aren't logged in and tryed viewing this page.

session_start();

if(!session_is_registered(myusername)){

header("location:login.php");

}

?>


<html>

<body>

<p>Login Successful<br>

  <a href="logout.php">Logout?</a></p>

</body>

</html>

process.php
<?php

include("config.php");

class Process

{

	function Process($connection){

		if(isset($_POST['login'])){

		$this->login();

		}

		elseif(isset($_POST['register'])){

		$this->register();

		}

		else{

		header("Location: login.php");

		}

	}

	//Member Login

	function login(){

	global $config;

		ob_start();

		

		// Define $myusername and $mypassword

		$myusername=$_POST['myusername'];

		$mypassword=$_POST['mypassword'];

		

		# Allows letters, numbers

		if(!preg_match('/^[a-zA-Z0-9]+$/i', $myusername)) 

		{

		session_register(bad_char);

		$_SESSION['bad_char'] = "<center><font color='red' size='1'>Invalid Charcter; Only Letters Or Numbers Can Be Used!</font></center>";

		header("location:login.php");

		}


		// To protect MySQL injection (more detail about MySQL injection)

		$myusername = stripslashes($myusername);

		$mypassword = stripslashes($mypassword);

		$myusername = mysql_real_escape_string($myusername);

		$mypassword = mysql_real_escape_string($mypassword);

		$encrypt_password = md5($mypassword);

		$query = $config->query("SELECT * FROM members WHERE username='".$myusername."' and password='".$encrypt_password."'");

		

		// Mysql_num_row is counting table row

		$count=mysql_num_rows($query);

		// If result matched $myusername and $mypassword, table row must be 1 row

		

		if($count==1){

		// Register $myusername, $mypassword and redirect to file "login_success.php"

		session_register("myusername");

		header("location:main.php");

		}

		else {

		session_register(error);

		$_SESSION['error'] = "<center><font color='red' size='4'>Wrong Username or Password</font></center>";

		header("location:login.php");

		}

		

		ob_end_flush();

	}

	

	//Register_Submit

	function register(){

	global $config;

	

		//Defines All The Users Inputs

		$myusername=$_POST['myusername'];

		$myusername2=$_POST['myusername'];

		$mypassword=$_POST['mypassword'];	

		$mypassword2=$_POST['mypassword2'];

		$email=$_POST['email'];

		$passwordcount=$_POST['mypassword'];

		

		# Allows letters, numbers

		if(!preg_match('/^[a-zA-Z0-9]+$/i', $myusername2)) 

		{

		session_register(bad_char);

		$_SESSION['bad_char'] = "<center><font color='red' size='1'>Invalid Charcter; Only Letters Or Numbers Can Be Used!</font></center>";

		header("location:register.php");

		}

    	

		

		//Stop SQL Injection

		$myusername = stripslashes($myusername);

		$mypassword = stripslashes($mypassword);

		$mypassword2 = stripslashes($mypassword2);

		$email = stripslashes($email);

		$myusername = mysql_real_escape_string($myusername);

		$mypassword = mysql_real_escape_string($mypassword);

		$mypassword2 = mysql_real_escape_string($mypassword2);

		$email = mysql_real_escape_string($email);

		

		//encrypt password variable

		$encrypt_password = md5($mypassword);

		

		$query = $config->query("SELECT * FROM members WHERE username='".$myusername."'");

		

		// Mysql_num_row is counting table row

		$count=mysql_num_rows($query);

		// If result matches $myusername then username is taken

		

		if($count===1){

		// Send error back to the register page if count = 1

		session_register(username_taken);

		$_SESSION['username_taken'] = "<center><font color='red' size='1'>The Username You Chose Is Already In Use</font></center>";

		header("location:register.php");

		}	

		elseif($mypassword != $mypassword2)

		{

		session_register(password_same);

		$_SESSION['password_same'] = "<center><font color='red' size='1'>Passwords Dont Match</font></center>";

		header("location:register.php");

		}

		elseif(strlen($mypassword) < "5")

		{

		session_register(password_less_then_5);

		$_SESSION['password_less_then_5'] = "<center><font color='red' size='1'>Password Must be Greater then 4 Charcters</font></center>";

		header("location:register.php");

		}

		else

		{

		$query = $config->query("INSERT INTO members (id, username, password, email) VALUES (NULL, '$myusername', '$encrypt_password', '$email')");

		session_register(welcome_screen);

		$_SESSION['welcome'] = 

		"Welcome, You are now a member of Corpal Uploads.<br>

		Reccommend us to your friends.<br>

		We are a free Upload site and WILL STAY FREE!<br>

		Thanks,<br>

		Whitey.<br>

		<a href='login.php'>Continue</a>";

		header("location: register.php");

		}

	

	}

};

$process = new Process($connection);

?>

register.php
<?php

session_start();

if(session_is_registered(welcome))

{

echo($_SESSION['welcome']);

session_unregister(welcome);

session_destroy();

}

else

{

?>

<table width="325" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">

<tr>

<form name="form2" method="post" action="process.php">

<td>

<table width="100%" border="0" cellpadding="3" cellspacing="0" bgcolor="#FFFFFF">

<tr>

<td colspan="4"><strong>Member Register</strong></td>

</tr>

<tr>

<td width="61" height="28"><div align="right">Username</div></td>

<td width="3">:</td>

<td width="144"><input name="myusername" type="text" id="myusername"></td>

<td width="91">

<?php

if(session_is_registered(bad_char))

{

echo ($_SESSION['bad_char']);

session_unregister(bad_char);

session_destroy();

}

elseif(session_is_registered(username_taken))

{

echo ($_SESSION['username_taken']);

session_unregister(username_taken);

session_destroy();

}

?></td>

</tr>

<tr>

<td><div align="right">Password</div></td>

<td>:</td>

<td><input name="mypassword" type="password" id="mypassword"></td>

<td rowspan="2">

<?php

if(session_is_registered(password_same))

{

echo ($_SESSION['password_same']);

session_unregister(password_same);

session_destroy();

}

elseif(session_is_registered(password_less_then_5))

{

echo ($_SESSION['password_less_then_5']);

session_unregister(password_less_then_5);

session_destroy();

}

?></td>

</tr>

<tr>

  <td><div align="right">Password</div></td>

  <td>:</td>

  <td><input name="mypassword2" type="password" id="mypassword2"></td>

  </tr>

<tr>

  <td><div align="right">Email</div></td>

  <td>:</td>

  <td><input name="email" type="text" id="email" /></td>

  <td>

  <font color="#FF0000" size="2">Optional</font> </td>

</tr>

<tr>

  <td><input name="register" type="hidden" value="1" /></td>

  <td> </td>

  <td colspan="2"><input type="submit" name="Submit" value="Login" /></td>

</tr>

</table>

</td>

</form>

</tr>

</table>

<?php

}

?>

If you have any questions let me know. I will explain anything else if you need

Attached Files

  • Attached File  sql.rar   517bytes   361 downloads


#2
ReekenX

ReekenX

    Programmer

  • Members
  • PipPipPipPip
  • 134 posts
I think it's good idea, Whitey. Maybe this your tutorial will help peoples, who just have started PHP. 6 years ago, I was one of them...
www.jarmalavicius.lt | www.github.com/reekenx | www.twitter.com/reekenx

#3
Xav

Xav

    Writes binary right handed and hex left handed

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 13,118 posts
Very useful, Whitey! +rep
Jordan said:

Good members, like yourself, stick around and post for ages to come!
Mr. Xav | Blog | Forums

#4
Guest_Jordan_*

Guest_Jordan_*
  • Guests
For people just starting this code would come in very handy. Nice job +rep

#5
Whitey

Whitey

    Programming Professional

  • Members
  • PipPipPipPipPip
  • 255 posts
Thanks for the reputation guy :)

#6
Xav

Xav

    Writes binary right handed and hex left handed

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 13,118 posts
Guys. ;)
Jordan said:

Good members, like yourself, stick around and post for ages to come!
Mr. Xav | Blog | Forums

#7
John

John

    Writes binary right handed and hex left handed

  • Moderators
  • 6,321 posts
  • Location:New York, NY
Very nice! There isn't much I can recommend.

#8
TcM

TcM

    Writes binary right handed and hex left handed

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 11,147 posts
So using this, I can display something to non-regged users and something else to regged and logged in users... right?

#9
Whitey

Whitey

    Programming Professional

  • Members
  • PipPipPipPipPip
  • 255 posts
yes you can do this
if(!session_is_registered(myusername)){
echo "Display to non member";
} 
else
{
echo "Display to Member";
}


#10
TcM

TcM

    Writes binary right handed and hex left handed

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 11,147 posts
Thanks very much :)

I might need this sometime for my website.

+rep given!

#11
Xav

Xav

    Writes binary right handed and hex left handed

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 13,118 posts
Whoa, Whitey's raking in the rep! :)
Jordan said:

Good members, like yourself, stick around and post for ages to come!
Mr. Xav | Blog | Forums

#12
detsu

detsu

    Newbie

  • Members
  • Pip
  • 1 posts
Nice tutorial thanks! will help with website interactivity




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users