0
<?php
# Script 16.6 - register.php
// This is the registration page for the site.

require_once ('includes/config.inc.php');
$page_title = 'Register';
include ('includes/header.html');

if (isset($_POST['submitted'])) { // Handle the form.

	require_once (MYSQL);
	
	// Trim all the incoming data:
	$trimmed = array_map('trim', $_POST);
	
	// Assume invalid values:
	$fn = $ln = $e = $p = FALSE;
	
	// Check for a first name:
	if (preg_match ('/^[A-Z \'.-]{2,20}$/i', $trimmed['first_name'])) {
		$fn = mysqli_real_escape_string ($dbc, $trimmed['first_name']);
	} else {
		echo '<p class="error">Please enter your first name!</p>';
	}
	
	// Check for a last name:
	if (preg_match ('/^[A-Z \'.-]{2,40}$/i', $trimmed['last_name'])) {
		$ln = mysqli_real_escape_string ($dbc, $trimmed['last_name']);
	} else {
		echo '<p class="error">Please enter your last name!</p>';
	}
	
	// Check for an email address:
	if (preg_match ('/^[\w.-]+@[\w.-]+\.[A-Za-z]{2,6}$/', $trimmed['email'])) {
		$e = mysqli_real_escape_string ($dbc, $trimmed['email']);
	} else {
		echo '<p class="error">Please enter a valid email address!</p>';
	}
	

	// Check for a password and match against the confirmed password:
	if (preg_match ('/^\w{4,20}$/', $trimmed['password1']) ) {
		if ($trimmed['password1'] == $trimmed['password2']) {
			$p = mysqli_real_escape_string ($dbc, $trimmed['password1']);
		} else {
			echo '<p class="error">Your password did not match the confirmed password!</p>';
		}
	} else {
		echo '<p class="error">Please enter a valid password!</p>';
	}
	
	if ($fn && $ln && $e && $p) { // If everything's OK...

		// Make sure the email address is available:
		$q = "SELECT user_id FROM users WHERE email='$e'";
		$r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));
		
		if (mysqli_num_rows($r) == 0) { // Available.
		
			// Create the activation code:
			$a = md5(uniqid(rand(), true));
		
			// Add the user to the database:
			$q = "INSERT INTO users (email, pass, ip_address, first_name, last_name, active, registration_date) VALUES ('$e', SHA1('$p'),'$ip_address', '$fn', '$ln', '$a', NOW() )";
			$r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));

			if (mysqli_affected_rows($dbc) == 1) { // If it ran OK.
			
				// Send the email:
				$body = "Thank you for registering at  To activate your account, please click on this link:\n\n";
				$body .= BASE_URL . 'activate.php?x=' . urlencode($e) . "&y=$a";
				mail($trimmed['email'], 'Registration Confirmation', $body, 'From: jdomingo_01@yahoo.com.com');
				
				// Finish the page:
				echo '<h3>Thank you for registering! A confirmation email has been sent to your address. Please click on the link in that email in order to activate your account.</h3>';
				include ('includes/footer.html'); // Include the HTML footer.
				exit(); // Stop the page.
				
			} else { // If it did not run OK.
				echo '<p class="error">You could not be registered due to a system error. We apologize for any inconvenience.</p>';
			}
			
		} else { // The email address is not available.
			echo '<p class="error">That email address has already been registered. If you have forgotten your password, use the link at right to have your password sent to you.</p>';
		}
		
	} else { // If one of the data tests failed.
		echo '<p class="error">Please re-enter your passwords and try again.</p>';
	}

	mysqli_close($dbc);

} // End of the main Submit conditional.
?>

 <form class="contact_form" action="register.php" method="post">
    <ul>
     
		 <li>
            <label for="firstname">Firstname:</label>
            <input type="text" name="first_name" maxlength="20" value="<?php if (isset($trimmed['first_name'])) echo $trimmed['first_name']; ?>"  placeholder="" />
        </li>
		   <input type="hidden" name="ip_address" id="ip_address" value="<?$IP = $_SERVER['REMOTE_ADDR'];
echo "$IP";
?>" />
        <li>
            <label for="lasstname">Lastname:</label>
            <input type="text" name="last_name" maxlength="40"  value="<?php if (isset($trimmed['last_name'])) echo $trimmed['last_name']; ?>"  placeholder=""/>
        </li>


        <li>
            <label for="email">Email:</label>
            <input type="email" name="email" value="<?php if (isset($trimmed['email'])) echo $trimmed['email']; ?>"  placeholder=""  />
            <span class="form_hint">Proper format "name@something.com"</span>
        </li>

        <li>
            <label for="password">Password:</label>
            <input type="password" name="password1" maxlength="20"  placeholder=""  />
             <span class="form_hint">Proper format "Use only letters, numbers, and the underscore. Must be between 4 and 20 characters long."</span>
        </li>
        <li>
            <label for="confirmpassword">Confirm Password:</label>
            <input type="password" name="password2" maxlength="20" placeholder=""  />
        </li>
        <li>
        	<button class="submit" type="submit">Register</button>
            <input type="hidden" name="submitted" value="TRUE" />
        </li>
    </ul>
</form>
4
Contributors
4
Replies
5
Views
5 Years
Discussion Span
Last Post by vaultdweller123
1

Posting a title and then adding a shed-full of code will not elicit a good response. Please supply more info on the error and what you need.

0

Posting a title and then adding a shed-full of code will not elicit a good response. Please supply more info on the error and what you need.

thanks for responding.,by the way the problem is in my registration page, when i click submit button, will display the error message"Please enter your first name!..etc" on the top of my registration page, and I want to display that message inside of my form..here's some example http://demos.9lessons.info/login.php ,please help me .,.thank you in advance

0

Could add an error flag variable, set it to true if there is any errors and set some session variables with the error string that you want to be displayed. Then just check if they are set and display them if they are.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.