Un simple Formulario de Registro de Usuarios

Este código muestra la manera de crear un simple formulario de registro con php y html.

<?php
if(isset($_POST['submit'])){
    # connect to the database here
    # search the database to see if the user name has been taken or not
    $query = sprintf("SELECT * FROM users WHERE user_name='%s' LIMIT 1",mysql_real_escape_string($_POST['user_name']));
    $sql = mysql_query($query);
    $row = mysql_fetch_array($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,
        $query = sprintf("INSERT INTO users_table(`user_name`,`f_name`,`l_name`,`email`,`password`)
            VALUES('%s','%s','%s','%s',PASSWORD('%s'))",
            mysql_real_escape_string($_POST['user_name']),
            mysql_real_escape_string($_POST['fname']),
            mysql_real_escape_string($_POST['lname']),
            mysql_real_escape_string($_POST['email']),
            mysql_real_escape_string($_POST['password']))or die(mysql_error());
        $sql = mysql_query($query);
        # 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" <? if(!$row){echo 'value="'.$_POST['user_name'].'"';} ?>/></p>
    <p>First Name:<br /><input type="text" name="fname" <? echo 'value="'.$_POST['fname'].'"'; ?>/></p>
    <p>Last Name:<br /><input type="text" name="lname" <? echo 'value="'.$_POST['lname'].'"'; ?>/></p>
    <p>Email:<br /><input type="text" name="email" <? 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>
Recomendado
  • Vincen

    Hola, antes de nada, gracias por tu trabajo.
    Quería preguntarte porqué no te explicas un poco más, sólo para que te entiendan los que no tuvimos la oportunidad de estudiar tantos lenguajes, ya sabes, los viejos como yo, que no por falta de interés.
    Vamos que, igual puedes decirme como puedo utilizar este código para instalar un formulario como este en mi web, si no es molestia.

    Y aprovechando la ocasión, gracias de nuevo.