I've had this problem before and am not 100% sure why this occurs and how i can prevent it.
Any advice?
http://www.creativebubbles.co.uk/demo1/ ... gister.php
Code: Select all
<?
session_start();
if (!isset($_SESSION['values']))
{
$_SESSION['values']['txtName'] = '';
$_SESSION['values']['txtEmail'] = '';
$_SESSION['values']['txtEmailChecker'] = '';
$_SESSION['values']['txtUsername'] = '';
$_SESSION['values']['txtPassword'] = '';
$_SESSION['values']['txtPasswordChecker'] = '';
}
if (!isset($_SESSION['errors']))
{
$_SESSION['errors']['txtName'] = 'hidden';
$_SESSION['errors']['txtEmail'] = 'hidden';
$_SESSION['errors']['txtEmailChecker'] = 'hidden';
$_SESSION['errors']['txtUsername'] = 'hidden';
$_SESSION['errors']['txtPassword'] = 'hidden';
$_SESSION['errors']['txtPasswordChecker'] = 'hidden';
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
<link href="./../style/ipi.css" rel="stylesheet" type="text/css" />
<link href="./../style/validate.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="../scripts/validate.js"></script>
</head>
<body onload="setFocus()">
<!--<div id="wrapper">
<div id="header">
<div id="nav"><span class="nav_txt">Home | Justification | Mortgage | Property | Services | Testimonials | Contact</span></div>
</div>
<div id="main">
<div id="img_holder">
<div align="right"><img src="./../images/register_img.jpg" width="492" height="220" hspace="2" /></div>
</div>
<div id="reg_txt_area1">
<span class="reg_title1">Register With IPI </span>
<span class="reg_txt">It's FREE to register & incurs no obligation. Simply fill in your details and we'll keep you up-to-date with the very latest investment opportunities.<br />
<br />
As well as this you will have access to our members section which contains full details of all our investments. </span><span class="reg_title2">Fill in your details below</span></div>
</div> -->
<form name="frmRegistration" action="validate.php?validationType=php" method="post" enctype="multipart/form-data">
<div id="form_area">
<div id="form_details">
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="form_txt">
<tr>
<td width="46%"><label for="txtName">Name</label></td>
<td width="54%"><input type="text" name="txtName" maxlength="100" id="txtName" onblur="validate(this.value, this.id)" value="<?php echo $_SESSION['values']['txtName'] ?>" />
</td>
</tr>
<tr>
<td colspan="1"></td><td><span id="txtNameFailed" class="<? echo $_SESSION['errors']['txtName'] ?>">You havent entered the correct a Name.</span></td>
</tr>
<tr>
<td width="46%"><label for="txtEmail">Email</label></td>
<td width="54%"><input type="text" name="txtEmail" maxlength="250" id="txtEmail" onblur="validate(this.value, this.id)" value="<?php echo $_SESSION['values']['txtEmail'] ?>" />
</td>
</tr>
<tr>
<td colspan="1"></td><td><span id="txtEmailFailed" class="<? echo $_SESSION['errors']['txtEmail'] ?>">Invalid email address.</span></td>
</tr>
<tr>
<td width="46%"><label for="txtEmailCheck">Confirm Email</label></td>
<td width="54%"><input type="text" name="txtEmailCheck" maxlength="250" id="txtEmailCheck" onblur="validate(this.value, this.id)" value="<?php echo $_SESSION['values']['txtEmailCheck'] ?>" />
</td>
</tr>
</tr>
<tr>
<td colspan="1"></td><td><span id="txtEmailCheckFailed" class="<? echo $_SESSION['errors']['txtEmailCheck'] ?>">Email addresses dont match.</span></td>
</tr>
</table>
</div>
<div id="form_user">
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="form_txt">
<tr>
<td width="46%"><label for="txtUsername">Name</label></td>
<td width="54%"><input type="text" name="txtUsername" maxlength="30" id="txtUsername" onblur="validate(this.value, this.id)" value="<?php echo $_SESSION['values']['txtUsername'] ?>" />
</td>
</tr>
<tr>
<td colspan="1"></td><td><span id="txtUsernameFailed" class="<? echo $_SESSION['errors']['txtUsername'] ?>">This Username is in use, or you havent entered the correct username.</span></td>
</tr>
<tr>
<td width="46%"><label for="txtPassword">Password</label></td>
<td width="54%"><input type="text" name="txtPassword" maxlength="8" id="txtPassword" onblur="validate(this.value, this.id)" value="<?php echo $_SESSION['values']['txtPassword'] ?>" />
</td>
</tr>
<tr>
<td colspan="1"></td><td><span id="txtPasswordFailed" class="<? echo $_SESSION['errors']['txtPassword'] ?>">Invalid email address.</span></td>
</tr>
<tr>
<td width="46%"><label for="txtPasswordCheck">Confirm Password</label></td>
<td width="54%"><input type="text" name="txtPasswordCheck" maxlength="8" id="txtPasswordCheck" onblur="validate(this.value, this.id)" value="<?php echo $_SESSION['values']['txtPasswordCheck'] ?>" />
</td>
</tr>
<tr>
<td colspan="1"></td><td><span id="txtPasswordCheckFailed" class="<? echo $_SESSION['errors']['txtPasswordCheck'] ?>">Passwords entered dont match.</span></td>
</tr>
</table></div>
<span class="reg_title3">Your Details</span>
<span class="reg_title4">Your Username</span>
<input name="Submit" type="submit" class="submit" value="Submit" />
<input name="Submit2" type="reset" class="reset" value="Reset" />
</div>
</form>
</div>
</body>
</html>
validate.php
Code: Select all
<?
//start PHP session
session_start();
//load error handling script and validation class
require_once('./../scripts/error_handler.php');
require_once('./../scripts/validate.class.php');
$validator = new Validate();
//read validationType (PHP or AJAX)
$validationType = '';
if (isset($_GET['validationType']))
{
$validationType = $_GET['validationType'];
}
if ($validationType == 'php')
{
header("Location:" . $validator->ValidatePHP());
}
else
{
$response =
'<?xml version ="1.0" encoding="UTF-8" standalone="yes"?>' .
'<response>' .
'<result>' .
$validator->ValidateAJAX($_POST['inputValue'], $_POST['fieldID']) .
'</result>' .
'<fieldid>' .
$_POST['fieldID'] .
'</fieldid>' .
'</response>';
//generate the response
if(ob_get_length()) ob_clean();
header('Content-Type: text/xml');
echo $response;
}
?>Code: Select all
<?php
require_once('config.php');
//Class supports Ajax and PHP for validation
class Validate
{
private $mMysqli;
//constructor opens database connection
function __construct() {
$this->mMysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
}
//destructor closes database connection
function __destruct() {
$this->mMysqli->close();
}
public function ValidateAJAX($inputValue, $fieldID)
{
switch($fieldID)
{
case 'txtName':
return $this->validateName($inputValue);
break;
case 'txtEmail';
return $this->validateEmail($inputValue);
break;
case 'txtUsername';
return $this->validateUsername($inputValue);
break;
case 'txtPassword':
return $this->validatePassword($inputValue);
break;
}
}
public function ValidatePHP()
{
//error flag, becomes 1 when errors are found.
$errorsExist = 0;
//clear the errors session flag
if (isset($_SESSION['errors']))
unset($_SESSION['errors']);
//by default all fields are considered valid
$_SESSION['errors']['txtName'] = 'hidden';
$_SESSION['errors']['txtEmail'] = 'hidden';
$_SESSION['errors']['txtEmailChecker'] = 'hidden';
$_SESSION['errors']['txtUsername'] = 'hidden';
$_SESSION['errors']['txtPassword'] = 'hidden';
$_SESSION['errors']['txtPasswordChecker'] = 'hidden';
if (!$this->validateName($_POST['txtName']))
{
$_SESSION['errors']['txtName'] = 'error';
$errorsExist = 1;
}
if (!$this->validateEmail($_POST['txtEmail']))
{
$_SESSION['errors']['txtEmail'] = 'error';
$errorsExist = 1;
}
if (!$this->validateUsername($_POST['txtUsername']))
{
$_SESSION['errors']['txtUsername'] = 'error';
$errorsExist = 1;
}
if (!$this->validatePassword($_POST['txtPassword']))
{
$_SESSION['errors']['txtPassword'] = 'error';
$errorsExist = 1;
}
//if no errors are found, point to a succesful validation page
if ($errorsExist == 0)
{
return 'allock.php';
}
else
{
foreach ($_POST as $key => $value)
{
$_SESSION['values'][$key] = $_POST[$key];
}
return 'register.php';
}
}
private function validateUserName($value)
{
$value = $this->mMysqli->real_escape_string(trim($value));
if ($value == null)
return 0;
$query = $this->mMysqli->query('SELECT * FROM users '.
'WHERE username= "' .$value.'"');
if($this->mMysqli->affected_rows > 0)
return '0';
else
return '1';
}
private function validateName($value)
{
$value = trim($value);
if($value)
return 1;
else
return 0;
}
private function validatePassword($value)
{
$value = trim($value);
if($value)
return 1;
else
return 0;
}
private function validateEmail($value)
{
return(!eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[_a-z0-9-]+(\.[_a-z0-9-]+)*(\.[a-z]{2,3})$', $value)) ? 0 : 1;
}
}
?>