Simple Login/Register/Main Script

Status
Not open for further replies.

Baljeet

Member
Jan 31, 2011
76
0
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:
<?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:
<?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>&nbsp;</td>
</tr>
<tr>
<td><input name="login" type="hidden" value="1"></td>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Login"></td>
<td>&nbsp;</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
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
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:
<?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:
<?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>&nbsp;</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

All Credits goes to one who really made this...
 

Selena

New Member
Oct 11, 2010
61
0
No what im talking about is like how will it look when you use it like screen shot
 

Jo$h

Posting Freak
Jul 7, 2010
1,030
79
You are going to have to set it up. If you need help, PM Me by Clicking my name and selecting "Private Message"
 

Mac

New Member
Feb 9, 2011
111
2
Learn using strings ("").

Also make a mysql class properly :
PHP:
<?php
class MySQL {
	public $host;
	public $user;
	public $pass;
	public $dbname;
	public function __construct($a, $b, $c, $d) {
		if(isset($a, $b, $c, $d)):
			$this->host = $a;
			$this->user = $b;
			$this->pass = $c;
			$this->dbname = $d;
		else:
			throw new exception('Required fields not set');
		endif;
			if(isset($this->host, $this->user, $this->pass, $this->dbname)):
				$this->connect($this->host, $this->user, $this->pass, $this->dbname);
				$this->selectdb($this->dbname);
			else:
				throw new exception('Required fields for MySQL connection not set.');
			endif;
		}
	public function connect($a, $b, $c) {
		mysql_connect($a, $b, $c) or die(mysql_error());
	}
	public function selectdb($d) {
		mysql_Select_db($d);
	}
	public function makeQuery($string) {
		mysql_query($string) or die(mysql_error());
	}
}
$mysql = new MySQL("host", "root", "pass", "database"); # MySQL is connected.
$mysql->makeQuery("SELECT * FROM users"); # Query is made.

otherwise.. .very good!
 

Markshall

Русский Стандарт
Contributor
Dec 18, 2010
2,637
2,389
There is really no point in making separate functions for 'connect' and 'selectdb' as you only call them functions once. It's a waste of code imo.
 

Mac

New Member
Feb 9, 2011
111
2
Yeah , you can do it both ways , anyways i do it like that!
 

Sledmore

Chaturbate Livestreamer
Staff member
FindRetros Moderator
Jul 24, 2010
5,195
3,904
Nice little user system base, and for people needing the SQL:

Code:
CREATE TABLE IF NOT EXISTS `members` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(25) NOT NULL,
  `password` varchar(25) NOT NULL,
  `email` varchar(25) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

- Thanks.
 

graphix619

New Member
Sep 19, 2011
22
1
can you help me i need a MySQL Query registration count ( counts how many people registered on my hotel ) please help me
 

Markshall

Русский Стандарт
Contributor
Dec 18, 2010
2,637
2,389
can you help me i need a MySQL Query registration count ( counts how many people registered on my hotel ) please help me
You should have made a new thread rather than bump this really old one, anyway - the code you're looking for is similar to this:

PHP:
<?php
echo (int) @mysql_num_rows( "SELECT * FROM `members`" );
?>
 

graphix619

New Member
Sep 19, 2011
22
1
You should have made a new thread rather than bump this really old one, anyway - the code you're looking for is similar to this:

PHP:
<?php
echo (int) @mysql_num_rows( "SELECT * FROM `members`" );
?>
i did no one answered yet

You should have made a new thread rather than bump this really old one, anyway - the code you're looking for is similar to this:

PHP:
<?php
echo (int) @mysql_num_rows( "SELECT * FROM `members`" );
?>
i need a registration count to add to the index of my hotel
 

Bullethotel

Brick Hotel Owner
Dec 3, 2011
73
7
@ monsta I think he means, like a PHP code that grabs how many users are registered from the database.
 

Markshall

Русский Стандарт
Contributor
Dec 18, 2010
2,637
2,389
@ monsta I think he means, like a PHP code that grabs how many users are registered from the database.
Yes, it does. It's MySQL counting tool that returns how many rows are in a table of a database.
 

Lounge

#dat habbo nigga
Apr 12, 2012
304
27
Nice little user system base, and for people needing the SQL:

Code:
CREATE TABLE IF NOT EXISTS `members` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(25) NOT NULL,
  `password` varchar(25) NOT NULL,
  `email` varchar(25) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

- Thanks.

You so cool Craig:*!......
 
Status
Not open for further replies.

Users who are viewing this thread

Top