Tuesday 2 June 2015

PHP: User registration form

<?php /** 
 * @author Ryan Naddy <ryan@ryannaddy.com> 
 */ 
if(isset($_POST['submit'])){ 
    
/*     * ***************************** 
     * Connect to the database here! 
     * ***************************** */ 
    // search the database to see if the user name has been taken or not 
    
$sql $db->prepare("SELECT * FROM users WHERE user_name = ? LIMIT 1"); 
    
$sql->bindValue(1$_POST['user_name']); 

    
$row $sql->fetch($sql); 
    
//check too see what fields have been left empty, and if the passwords match 
    
if( 
            
$row || 
            empty(
$_POST['user_name']) || 
            empty(
$_POST['fname']) || 
            empty(
$_POST['lname']) || 
            empty(
$_POST['email']) || 
            empty(
$_POST['password']) || 
            empty(
$_POST['re_password']) || 
            
$_POST['password'] != $_POST['re_password'] 
    ){ 
        
// if a field is empty, or the passwords don't match make a message 
        
$error '<p>'; 
        if(empty(
$_POST['user_name'])){ 
            
$error .= 'User Name can\'t be empty<br>'; 
        } 
        if(empty(
$_POST['fname'])){ 
            
$error .= 'First Name can\'t be empty<br>'; 
        } 
        if(empty(
$_POST['lname'])){ 
            
$error .= 'Last Name can\'t be empty<br>'; 
        } 
        if(empty(
$_POST['email'])){ 
            
$error .= 'Email can\'t be empty<br>'; 
        } 
        if(empty(
$_POST['password'])){ 
            
$error .= 'Password can\'t be empty<br>'; 
        } 
        if(empty(
$_POST['re_password'])){ 
            
$error .= 'You must re-type your password<br>'; 
        } 
        if(
$_POST['password'] != $_POST['re_password']){ 
            
$error .= 'Passwords don\'t match<br>'; 
        } 
        if(
$row){ 
            
$error .= 'User Name already exists<br>'; 
        } 
        
$error .= '</p>'; 
    }else{ 
        
// If all fields are not empty, and the passwords match, 
        // create a session, and session variables, 
        
$sql $db->prepare("INSERT INTO users_table 
            (`user_name`,`f_name`,`l_name`,`email`,`password`) 
            VALUES 
            (?,?,?,?,MD5(?))"
); 

        
$sql->bindValue(1$_POST['user_name']); 
        
$sql->bindValue(2$_POST['fname']); 
        
$sql->bindValue(3$_POST['lname']); 
        
$sql->bindValue(4$_POST['email']); 
        
$sql->bindValue(5$_POST['password']); 

        
$sql->execute(); 

        
// Redirect the user to a login page 
        
header("Location: login.php"); 
        exit; 
    } 
} 
// echo out each variable that was set from above, 
// then destroy the variable. 
if(isset($error)){ 
    echo 
$error; 
    unset(
$error); 
} 
?> 

<!-- Start your HTML/CSS/JavaScript here -->

<form action=" 
<? echo $_SERVER['PHP_SELF']; ?> " method="post">
    
<p>User Name:<br /><input type="text" name="user_name" 
<?php echo (!$row) ? 'value="' $_POST['user_name'] . '"' "";?> /></p>
    
<p>First Name:<br /><input type="text" name="fname" 
<?php echo 'value="' $_POST['fname'] . '"';?> /></p>
    
<p>Last Name:<br /><input type="text" name="lname" 
<?php echo 'value="' $_POST['lname'] . '"';?> /></p>
    
<p>Email:<br /><input type="text" name="email" 
<?php echo 'value="' $_POST['email'] . '"';?> /></p>
    
<p>Password:<br /><input type="password" name="password" /></p>
    
<p>Re-Type Password:<br /><input type="password" name="re_password" /></p>
    
<p><input type="submit" name="submit" value="Sign Up" /></p>
</form>

0 comments:

Post a Comment