Ver Mensaje Individual
  #11 (permalink)  
Antiguo 27/09/2005, 12:15
Computer XTress
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 3 meses
Puntos: 2
ey, mira yo hice esto...

Primero, todos los datos los guardo en una session:

Código PHP:
    if ( isset($_SESSION['user']) ) {
        echo 
"Por favor, cierra tu sesion de usuario antes de realizar un registro de un nuevo usuario";
        exit();
    }                

    if(!
$_SESSION['reg_id']) {    
        
$reg_id rand(200,9000);

        
$link conectar_bd();
        
$sql "select * from candidatos where reg_id = '$reg_id'";
        
$query mysql_query($sql) or die ('Imposible realizar consulta SQL!');

        if (
mysql_num_rows($query) > 0) {
            
$reg_id rand(10009000);
        }

        
mysql_free_result($query);
        
mysql_close($link);

        
$_SESSION['reg_id'] = $reg_id;
    } 
En el form hago que los datos ingresados por el usuario sen guardados, y los muestro en las cajitas de texto, asi cuando el usuario vuelve tiene todo igual:
Código PHP:
        <form action="/scripts/reg_control.php" method="post" name="frm">

        <table width="100%" cellpadding="0" cellspacing="0" border="0">
            <tr>
                <td>Nombre</td> <td><input class="forminput" type="text" name="nombre" maxlength="16" value="<?php echo $_SESSION['nombre']; ?>" /></td>
            </tr>

            <tr>
                <td>Apellido</td> <td><input class="forminput" type="text" name="apellido" maxlength="20" value="<?php echo $_SESSION['apellido']; ?>" /></td>
            </tr>

            <tr>
                <td>Fecha de nacimiento</td> <td><select name="dia"> <?php for($i=1$i <= 9$i++) { echo "<option>0".$i."</option>"; } for($i=10$i <= 31$i++) { echo "<option>".$i."</option>"; } ?> </select> <select name="mes"><option>Enero</option><option>Febrero</option><option>Marzo</option><option>Abril</option><option>Mayo</option><option>Junio</option><option>Julio</option><option>Agosto</option><option>Septiembre</option><option>Octubre</option><option>Noviembre</option><option>Diciembre</option></select> <select name="año"> <?php for ($i=2006$i >= 1920$i--) { echo "<option>".$i."</option>"; } ?> </select></td>
            </tr>

            <tr>
                <td>Nick (nombre de usuario)</td> <td><input class="forminput" type="text" name="nick" maxlength="12" value="<?php echo $_SESSION['nick']; ?>" /></td>
            </tr>
...
Es bastante simple, en la proxima pagina voy a controlar los datos, y si son validos los GUARDO EN LA VARIABLE DE SESSIOn, sino le aviso al usuario.

Asi solo almaceno los datos validos y desestimo los invalidos:
Código PHP:
    session_start();

    if (!$_SESSION['reg_id']) {
        echo "error";
        exit();
    }

    include_once($_SERVER['DOCUMENT_ROOT'].'/include/bd.php');
    include_once($_SERVER['DOCUMENT_ROOT'].'/include/fecha.php');

?>
/* AQUI YA SE QUE LA SESSION ES LA MISMA */

<?php
    $link 
conectar_bd();


    if( !
ereg("^[a-zA-Z]{4,16}$"$_POST['nombre']) ) {
        echo 
"<img src='/img/icons/bullet.gif' alt='.' width='8' height='8' /><b>El nombre es incorrecto:</b> Ingresaste caracteres invalidos.  Solo puedes utilizar caracteres ALFABETICOS para este campo, y debe comenzar con MAYUSCULA. ej: 'Mariano'.<br /><br />";
        
$error "true";
    } else {
        
$_SESSION['nombre'] = $_POST['nombre'];
    }






    if( !
ereg("^[a-zA-Z[:space:]]{4,20}$"$_POST['apellido']) ) {
        echo 
"<img src='/img/icons/bullet.gif' alt='.' width='8' height='8' /><b>El apellido es incorrecto:</b> Ingresaste caracteres invalidos.  Solo puedes utilizar caracteres ALFABETICOS para este campo, y debe comenzar con MAYUSCULA. ej: 'Fernandez'.<br /><br />";
    } else {
        
$_SESSION['apellido'] = $_POST['apellido'];
    }





    
    
$nick strtolower($_POST['nick']);
    if( !
ereg("^[a-z0-9]{4,12}$"$nick) ) {
        echo 
"<img src='/img/icons/bullet.gif' alt='.' width='8' height='8' /><b>Nick incorrecto:</b> Ingresaste caracteres invalidos.  Solo puedes utilizar caracteres ALFA NUMERICOS (sin espacios y en minusculas) para este campo. ej: 'alejo29'.<br /><br />";
        
$error "true";

    } else {

        
$sql "select * from usuarios where user = '$nick'";        
        
$query mysql_query($sql) or die('Imposible realizar consulta SQL!');
    
        if (
mysql_num_rows($query) > 0) {
            echo 
"<b>El usuario ya existe en la base de datos, elije otro nombre (nick).</b><br />";
            
mysql_free_result($query);
        } else {
            
$_SESSION['nick'] = $nick;
            
mysql_free_result($query);
        }
    }
    

    


    if( !
ereg("^[a-z0-9]{6,12}$"$_POST['password']) || !ereg("^[a-z0-9]{6,12}$"$_POST['pass_check'])) {
        echo 
"<img src='/img/icons/bullet.gif' alt='.' width='8' height='8' /><b>Password incorrecto:</b> Ingresaste caracteres invalidos.  Solo puedes utilizar caracteres ALFA NUMERICOS (sin espacios), respetando un minimo de 6 caracteres y maximo de 12.<br /><br />";
        
$error "true";

    } else {
    
        if (
$_POST['password'] != $_POST['pass_check']) {
            echo 
"<B>Los passwords no coinciden.</b><br />";
        } else {
            
$_SESSION['password'] = $_POST['password'];
        }
    }
Te pegue algo de codigo extra para que tomes los EREGI... si queres te puedo enviar los scripts completos, solo mandame un email a [email protected]

Un saludo.