Registro de Usuarios en PHP

Iniciado por Maistere, 5 Diciembre 2013, 14:02 PM

0 Miembros y 1 Visitante están viendo este tema.

Maistere

Hola estoy haciendo una práctica de un videoclub con PHP y en la parte del administrador me han pedido lo siguiente al registrar un usuario:

A la hora del registro de un usuario si algún campo está vacío, debe de mostrar un mensaje de error indicando el campo que es y conservar los valores que el usuario ya había introducido.

Aquí os dejo el PHP del registro de usuarios, por si podéis resolverme esta duda, me haríais un gran favor.

Código (php) [Seleccionar]

<?php
include(
"seguridad.php");
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="author" content="bred<" />
<meta name="keywords" content="bred<" />
<meta name="description" content="bred<" />
<meta name="robots" content="all" />
<title>bred</title>

<style type="text/css" title="currentStyle" media="screen">
@import "./css/admin.css";
</style>
</head>

<?php
include('../conf.php');
?>


<body>
<div id="wrapper">
<div id="top">
    <h1 class="logo">Ad<span class="green1">min</span></h1>
        <ul id="topnavi">
        <li><a href="administrador.php">Inicio</a></li>
<li><a href="Peliculas/registrarpeliculas.php">Registrar Peliculas</a></li>
        <li class="active"><a href="registrarusuarios.php">Registro de Usuarios</a></li>
        <li><a href="crearnoticias.php">Crear Noticias</a></li>
       <li><a href="noticias.php">Noticias</a></li>
        <li><a href="datosusuario.php">Modificar Datos</a></li>
        <li><a href="desconectar.php">Desconectar</a></li>

        </ul>
    </div>
    <div id="header">
    <img src="img/header.jpg" alt="" width="1000" height="183" />
    </div>
    <div id="main">
    <div id="left-part">
            </ul>
        </div>
<h1><b>Insertar datos del nuevo usuario</b></h1>
            <p><img src="img/datos.jpg" alt="" width="600" height="445" class="right" />
<form action="" method="POST">
<div id="BloqueFormulario">
<label for="NomUsuario"><b>Nombre de Usuario: </b><br></label>
<input name="NomUsuario"  size="40" maxlength="100" type="text" class="CampoFormulario">
</div>
<br>
<div id="BloqueFormulario">
<label for="Pass"><b>Contrase&ntilde;a: </b><br></label>
<input name="Pass"  size="40" maxlength="100" type="password" class="CampoFormulario">
</div>
<br>
<div id="BloqueFormulario">
<label for="Nombre"><b>Nombre: </b><br></label>
<input name="Nombre"  size="40" maxlength="100" type="text" class="CampoFormulario">
</div>
<br>
<div id="BloqueFormulario">
<label for="Apellidos"><b>Apellidos: </b><br></label>
<input name="Apellidos"  size="40" maxlength="100" type="text" class="CampoFormulario">
</div>
<br>
<div id="BloqueFormulario">
<label for="DNI"><b>DNI: </b><br></label>
<input name="DNI"  size="40" maxlength="100" type="text" class="CampoFormulario">
</div>
<br>
<div id="BloqueFormulario">
<label for="Direccion"><b>Direcci&oacute;n: </b><br></label>
<input name="Direccion" size="40" maxlength="100" type="text" class="CampoFormulario">
<br>
<br>
</div>
<div id="BloqueFormulario">
<label for="Telefono"><b>Tel&eacute;fono: </b><br></label>
<input name="Telefono" size="40" maxlength="100" type="text" class="CampoFormulario">
</div>
<br>
<div id="BloqueFormulario">
<label for="Sexo"><b>Sexo: </b><br></label>
<input name="Sexo" v size="40" maxlength="100" type="text" class="CampoFormulario">
<br>
</div>
<br>
<div id="BloqueFormulario">
<label for="Fecha"><b>Fecha: </b><br></label>
<input name="Fecha" size="40" maxlength="100" type="date" class="CampoFormulario">
</div>
<br>
<input type="submit" name="Enviar" value="Enviar"/>
<br>
</div>
    </div>
</form>
<?php 
if(isset($_POST['Enviar'])) //Si existen las variables

if($_POST['NomUsuario'] == '' or $_POST['Pass'] == '' or $_POST['Nombre'] == '' or $_POST['Apellidos'] == '' //Si las variables están vacías
or $_POST['Direccion'] == '' or $_POST['Telefono'] == '' or $_POST['Sexo'] == '' or $_POST['DNI'] == '')
{
echo "<h3>Ning&uacute;n campo puede estar vac&iacute;o</h3>"// Se imprimirá esto
    

   else
    { 
        
$bd 'SELECT * FROM usuario'//Ejecutamos la consulta
        
$res mysql_query($bd); 
        
$revisarusuario 0
  
        while(
$resultado mysql_fetch_object($res)) 
        { 
            if(
$resultado->NomUsuario == $_POST['NomUsuario']) 
            { 
                
$revisarusuario 1
            } 
        }

        if(
$revisarusuario == 0
        { 
        
$NomUsuario $_POST['NomUsuario']; 
        
$Pass $_POST['Pass']; 
        
$Nombre $_POST['Nombre']; 
        
$Apellidos $_POST['Apellidos']; 
        
$Direccion $_POST['Direccion']; 
        
$Telefono $_POST['Telefono']; 
        
$Sexo $_POST['Sexo'];
        
$DNI $_POST['DNI'];
        
$Fecha $_POST['Fecha'];
$bd "INSERT INTO usuario (NomUsuario, Pass, Nombre, Apellidos, Direccion, Telefono, Sexo, DNI, Fecha) VALUES ('$NomUsuario' ,'$Pass', '$Nombre', '$Apellidos', '$Direccion', '$Telefono', '$Sexo', '$DNI', '$Fecha')"
mysql_query($bd); 
echo "<h1>El usuario se ha registrado correctamente</h1>"
        }  
        else 
        { 
        echo 
"<h1>El usuario que intenta registrar, ya fue registrado</h1>"
        } 
    } 

?>


<?php
mysql_close
();
?>



    <div id="footer">
    <p>© Copyright 2013. All Rights Reserved.
    </div>
</div>
</body>
</html>

EFEX

Un ejemplo muy a lo bruto...

Código (php) [Seleccionar]

<input name="NomUsuario"  size="40" maxlength="100" type="text" class="CampoFormulario" value="<?php if(isset($_POST['NomUsuario'])){ echo $_POST['NomUsuario']; } ?>">

GITHUB 

Maistere

No hace nada al dejar ese campo vacío, supuestamente debería dejar los otros rellenados y marcar como que ese está vacío, sabes si hay alguna otra forma? porque así no me funciona

TrokaMc

no te desarrollaré el código porque la verdad soy flojo xD! y te servirá más entenderlo que pegarlo...cambia if($_POST['NomUsuario'] == ''" por if(!empty($_POST['NomUsuario'])

!empty quiere decir.. si los campos están vacíos ejecuta esto... y bueno cambialo asi y se que te funcionará ;)
"Sin requerimientos o diseño, la programación es el arte de agregar errores a un archivo de texto vacío"

Maistere

Sigue sin funcionarme, solamente me aparece el mensaje de que los campos no pueden estar vacíos, pero lo que necesito es que señale el campo vacío y que guarde lo que habíamos rellenado en los otros campos

TrokaMc

perdona error mio es if(empty) si pones if(!empty) lo hará si los campos no están vacíos no se si será eso jeje
"Sin requerimientos o diseño, la programación es el arte de agregar errores a un archivo de texto vacío"

HackID1

Esto pienso que se podría hacer mejor con javascript para no llenar al Servidor de consultas y en caso de fallo volver a consultar y así hasta que rellene los datos, no?.

En JScript con una función que verifique que los campos estén rellenados y luego permita enviar el formulario al servidor ..
Pienso que sería mejor.

Saludos!
-------------------------------------------------------
El trabajo va a ocupar gran parte de tu vida, y la única forma de estar satisfecho es hacer lo que consideren un trabajo extraordinario.
Si no lo has descubierto, sigue intentándolo. No te conformes.
STEVE JOBS.

Giancarlort

pues usa html5 y solo en el input poner required

digamos algo asi <input type="text" name="nombre" required />

otra es con jquery, pero esto es solo del lado del cliente cosa que creo q tambien deberias hacerlo del lado del servidor con php, pero por ahora esto te puede servir.