Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Se Borran los Campos en formularios de Registros al validarlos

Estas en el tema de Se Borran los Campos en formularios de Registros al validarlos en el foro de PHP en Foros del Web. Buenos dias, estoy realizando mi proyecto de grado para la universidad, y ya me falta poco para finalizarlo, no tengo muchos conocimientos de php, dentro ...
  #1 (permalink)  
Antiguo 18/10/2013, 09:44
 
Fecha de Ingreso: octubre-2013
Ubicación: Maracaibo
Mensajes: 10
Antigüedad: 10 años, 6 meses
Puntos: 0
Pregunta Se Borran los Campos en formularios de Registros al validarlos

Buenos dias, estoy realizando mi proyecto de grado para la universidad, y ya me falta poco para finalizarlo, no tengo muchos conocimientos de php, dentro de lo que cabe, pero poco a poco he ido aprendiendo hojeando en el foro y en internet, tengo el problema siguiente, en el formulario de registro a la hora de validar los campos(si estan en blanco o si en algun caso en especial necesariamente deben ser numeros) si algun campo tiene un error me devuelve al formulario, pero me borra lo que se quizo ingresar. No me guarda lo que habia escrito que tiene el error. Para eso uso 2 archivos php, uno que es donde esta el form y otro donde esta la validaciones y el ingreso o no a la bd. Como podria hacer para realizar esta validacion sin perder los datos. He leido mucho con ajax y json pero se ve muy complicado, quisiera que fuera algo en php. Adjunto los codigos de las 2 archivos php a ver en que me ayudan. Agradeceria mucho su ayuda, y pido un poco de paciencia, pero mas bien considero que he aprendido mucho porque de un mes para aca he logrado poco a poco desarrollar todo el sistema. Muchas Gracias



RegistarUsuarios.php
Código PHP:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
@session_start(); //@ previene warning contra sesiones automáticas (no recomendado)
if(!isset($_SESSION["user"]))
{
    
$mensaje='No ha iniciado sesión, por favor verifica los datos o contacta al administrador.';
    print 
"<script>alert('$mensaje')</script>";
    print(
"<script>window.location.replace('index.php');</script>");
    exit;
}
if ((
$_SESSION['privilege'])=='yes')
{
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
    body 
    {
        font-family: Calibri, Candara, Segoe, "Segoe UI", Optima, Arial, sans-serif;
        color: black;
        background-color: #FFFFFF
    }

    .contenedor {position:relative;     width:1024px; height:768px; margin:0px auto; text-align:center;}
    .cuerpo {width:1024px; height:300px; text-align:center;}
    
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Registrar Usuarios</title>
</head>
<div class="contenedor">

<body align="center" style='background-repeat:no-repeat; background-position: 50% 0%;' background="/prueba1/images/fondo.png">
</br></br></br></br></br></br></br></br></br></br></br>
<h2>Registro de Usuarios</h2>
<h3>Ingrese los datos del Usuario a Registrar</h3>
<div class="cuerpo">
<form action="registroUsuarios.php" method="post">
  
  <table align="center">
    <tr>
      <td align="left">Usuario:</td>
      <td align="center"><input type="text" name="user" size="25" /></td>
    </tr>
    <tr>
      <td align="left">Contraseña:</td>
      <td align="center"><input type="password" size="25" name="password" /></td>
    </tr>
    <tr>
      <td align="left">Es Administrador?:</td>
      <td align="center">
                        <SELECT style="width:176px; align:center;" align="center" NAME="esadmin">
                            <OPTION value="SI">SI</OPTION>
                            <OPTION value="NO" SELECTED>NO</OPTION>
                        </SELECT></td>
    </tr>
    <tr>
      <td align="left">Nombre:</td>
      <td align="center"><input type="text" size="25" name="Nombre"/></td>
    </tr>
     <tr>
      <td align="left">Apellido:</td>
      <td align="center"><input type="text" size="25" name="Apellido"/></td>
    </tr>
    <tr>
      <td align="left">Cedula:</td>
      <td align="center" valign="middle"><input type="text" size="1" name="vzlano" value="V-" disabled=true/><input type="text" size="20" name="Cedula"/></td>
    </tr>
    <tr>
      <td align="left">Teléfono:</td>
      <td align="center"><input type="text" size="25" name="Telefono"/></td>
    </tr>
  </table>


</br>
<button name="submit" type="submit" title="Submit" >
<img src="/prueba1/images/Ok.png" width="64" height="64" border="0"></br>Enviar 
</button>****
<button name="atras" type="reset" title="Borrar" >
<img src="/prueba1/images/trash.png" width="64" height="64" border="0"></br>Borrar 
</button>****
<button name="atras" onclick=" location.href='PanelUsuarios.php' " type="button" title="Atras" >
<img src="/prueba1/images/atras.png" width="64" height="64" border="0"></br>Atrás 
</button>
</div></div>
</form>
</body>
</html>
<?php
}
else
{
    
$mensaje99='No tienes los privilegios suficientes para acceder a esta Página, por favor Contacta al Administrador .';
    print 
"<script>alert('$mensaje99')</script>";
    print(
"<script>window.location.replace('index.php');</script>");
    exit;
}
registroUsuarios.php
Código PHP:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
@session_start(); //@ previene warning contra sesiones automáticas (no recomendado)
if(!isset($_SESSION["user"]))
{
    
$mensaje='No haz iniciado sesion, por favor verifica los datos o contacta al administrador.';
    print 
"<script>alert('$mensaje')</script>";
    print(
"<script>window.location.replace('index.php');</script>");
    exit;
}

if ((
$_SESSION['privilege'])=='yes')
{

require_once(
'funciones.php');
conectar('localhost','root','','gammu');
//Recibir

$user strip_tags($_POST['user']);
$password strip_tags(sha1($_POST['password']));
$esadmin strip_tags($_POST['esadmin']);
$Nombre strip_tags($_POST['Nombre']);
$Apellido strip_tags($_POST['Apellido']);
$Cedula strip_tags($_POST['Cedula']);
$Telefono strip_tags($_POST['Telefono']);

$user=trim($user);
$password=trim($password);
$esadmin=trim($esadmin);
$Nombre=trim($Nombre);
$Apellido=trim($Apellido);
$Cedula=trim($Cedula);
$Telefono=trim($Telefono);


if ((
$user)==NULL || ($user)==' ')

    
$mensaje1='Disculpe, el Campo Usuario no puede estar en Blanco, Por favor Vuelva a intentarlo.';
    print 
"<script>alert('$mensaje1')</script>";
    print(
"<script>window.location.replace('RegistarUsuarios.php');</script>");
}
else if ((
$password)==NULL || ($password)==' ')
{
    
$mensaje2='Disculpe, el Campo Contraseña no puede estar en Blanco, Por favor Vuelva a intentarlo.';
    print 
"<script>alert('$mensaje2')</script>";
    print(
"<script>window.location.replace('RegistarUsuarios.php');</script>");

}else if ((
$Nombre)==NULL || ($Nombre)==' ')
{
    
$mensaje3='Disculpe, el Campo Nombre no puede estar en Blanco, Por favor Vuelva a intentarlo.';
    print 
"<script>alert('$mensaje3')</script>";
    print(
"<script>window.location.replace('RegistarUsuarios.php');</script>");
    
}else if ((
$Apellido)==NULL || ($Apellido)==' ')
{
    
$mensaje4='Disculpe, el Campo Apellido no puede estar en Blanco, Por favor Vuelva a intentarlo.';
    print 
"<script>alert('$mensaje4')</script>";
    print(
"<script>window.location.replace('RegistarUsuarios.php');</script>");
}else if ((
$Cedula)==NULL || is_numeric($Cedula)==FALSE)
{
    
$mensaje5='Disculpe, el Campo Cedula no puede estar en Blanco y/o tener caracteres especiales, Recuerde utilizar solo Números, Por favor Vuelva a intentarlo.';
    print 
"<script>alert('$mensaje5')</script>";
    print(
"<script>window.location.replace('RegistarUsuarios.php');</script>");
}else if ((
$Telefono)==NULL || is_numeric($Telefono)==FALSE)
{
    
$mensaje6='Disculpe, el Campo Teléfono no puede estar en Blanco y/o tener caracteres especiales, Recuerde utilizar solo Números, Por favor Vuelva a intentarlo.';
    print 
"<script>alert('$mensaje6')</script>";
    print(
"<script>window.location.replace('RegistarUsuarios.php');</script>");
}
else
{

$query = @mysql_query('SELECT * FROM usuarios WHERE user="'.mysql_real_escape_string($user).'"');

if(
$existe = @mysql_fetch_object($query))
{
    echo 
'El Usuario '.$user.' ya Existe.';
}else{
    
$meter = @mysql_query('INSERT INTO usuarios (user, password, ADMIN, Nombre, Apellido, Cedula, Telefono) values("'.mysql_real_escape_string($user).'","'.mysql_real_escape_string($password).'","'.mysql_real_escape_string($esadmin).'","'.mysql_real_escape_string($Nombre).'","'.mysql_real_escape_string($Apellido).'","'.mysql_real_escape_string($Cedula).'","'.mysql_real_escape_string($Telefono).'")');
    if(
$meter)
    {
        
$mensaje6='Usuario Registrado con Éxito';
        print 
"<script>alert('$mensaje6')</script>";
        print(
"<script>window.location.replace('/RegistarUsuarios.php');</script>");
        }
        else
        {
            
$mensaje7='Hubo un problema Registrando el Usuario, por favor vuelva a intentarlo';
            print 
"<script>alert('$mensaje7')</script>";
            print(
"<script>window.location.replace('/RegistarUsuarios.php');</script>");
            }
}

}

}
else
{
    
$mensaje99='No tienes los privilegios suficientes para acceder a esta Página, por favor Contacta al Administrador .';
    print 
"<script>alert('$mensaje99')</script>";
    print(
"<script>window.location.replace('index.php');</script>");
    
session_destroy(); 
    exit;
}

?>
  #2 (permalink)  
Antiguo 18/10/2013, 10:00
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 36
Respuesta: Se Borran los Campos en formularios de Registros al validarlos

Te recomiendo que las validaciones las realices directamente en la pagina donde esta el formulario, puedes usar javascripts o ajax como mejor te sea, de la siguiente manera:

Código Java:
Ver original
  1. function validar() {
  2.  
  3. if(document.getElementById("nombredelcampo").value==""){
  4.     alert('El campo no esta vácio'); document.getElementById("nombredelcampo").focus(); return;
  5. }
  6.  
  7. }

Este ejemplo es solo para validar que el campo no este vacio, para mas especificaciones en el tipo de validación busca en internet.

Última edición por alexisverano; 18/10/2013 a las 10:07
  #3 (permalink)  
Antiguo 18/10/2013, 10:10
Avatar de Cuervoo  
Fecha de Ingreso: octubre-2013
Mensajes: 165
Antigüedad: 10 años, 6 meses
Puntos: 43
Respuesta: Se Borran los Campos en formularios de Registros al validarlos

Porque una vez que mandás el formulario ya está, si se vuelve a cargar es uno nuevo por más que el submit lo haga en la misma página, no reconoce que esas variables post son valores de ese formulario. No sé bien como explicarlo, espero que haya alguno más docente que yo.

Lo que tenés que hacer es, si hay un error, guardar esas variables para después llenarlas en el formulario. Para no hacerlo en cada if por ahi habría que cambiar un poco el código.

Código PHP:
Ver original
  1. <?
  2. $error = false;
  3. if (($user)==NULL || ($user)==' ')
  4. {
  5.     $error = true;
  6.     $mensaje = 'Disculpe, el Campo Usuario no puede estar en Blanco, Por favor Vuelva a intentarlo.';
  7. }
  8. else if (($password)==NULL || ($password)==' ')
  9. {
  10.     $error = true;
  11.     $mensaje ='Disculpe, el Campo Contraseña no puede estar en Blanco, Por favor Vuelva a intentarlo.';
  12. }
  13.  
  14. //
  15. // Verifica todo...
  16. //
  17.  
  18. if ($error)
  19. {
  20.     $_SESSION['form']['user'] = $user;
  21.     $_SESSION['form']['pass'] = $password;
  22.     //etc...
  23.     print "<script>alert('$mensaje')</script>";
  24.     print("<script>window.location.replace('RegistarUsuarios.php');</script>");
  25. }
  26. ?>

Y en el formulario pondrías

Código HTML:
Ver original
  1. <tr>
  2.     <td align="left">Usuario:</td>
  3.     <td align="center"><input type="text" name="user" size="25" value="<?= $_SESSION['form']['user'] ?>" /></td>
  4. </tr>


Y ahi si se llenaria los campos con lo que llenó antes.
  #4 (permalink)  
Antiguo 18/10/2013, 10:41
 
Fecha de Ingreso: octubre-2013
Ubicación: Maracaibo
Mensajes: 10
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Se Borran los Campos en formularios de Registros al validarlos

Muchas gracias compañeros, tomare la idea, pruebo y aviso. Creo que hare como comentas Cuervoo, hice los nombres de las variables de los mensajesconsecutivos por que no sabia si tendria algun problema, pero si comentas que las variables se pueden llamar igual perfecto, reutilizacion de codigo ;) . Pruebo y avisoo! Gracias por la rapidez
  #5 (permalink)  
Antiguo 18/10/2013, 11:17
 
Fecha de Ingreso: octubre-2013
Ubicación: Maracaibo
Mensajes: 10
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Se Borran los Campos en formularios de Registros al validarlos

Hola de Nuevo, intente hacer el metodo que mencionaste Cuervoo pero no me funciono, igual me retorna los campos en blanco. Tratare de buscar algun metodo en internet aver si haciendo las validaciones dentro del primer archivo php "RegistarUsuarios", no me quiero meter mucho en js y ajax por que me complican mucho, mas bien creo que he aprendido muy rapido por lo que tengo en php, cualquier avance que tenga posteo.
  #6 (permalink)  
Antiguo 18/10/2013, 11:35
Avatar de Cuervoo  
Fecha de Ingreso: octubre-2013
Mensajes: 165
Antigüedad: 10 años, 6 meses
Puntos: 43
Respuesta: Se Borran los Campos en formularios de Registros al validarlos

A ver como te quedó el código, es raro que no funcione.
  #7 (permalink)  
Antiguo 18/10/2013, 11:48
 
Fecha de Ingreso: octubre-2013
Ubicación: Maracaibo
Mensajes: 10
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Se Borran los Campos en formularios de Registros al validarlos

Cuando entro al formulario "RegistarUsuarios.php" me aparecen estos mensajes en los campos:

<br /><b>Notice</b>: Undefined index: nombre in <b>C:\xampp\htdocs\prueba1\RegistarUsuarios.php</b> on line <b>62</b><br />

por lo que veo la variable no esta iniciada, le doy submit al formulario y queda la pantalla en blanco

El codigo me quedo asi:

RegistarUsuarios.php

Código PHP:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
@session_start(); //@ previene warning contra sesiones automáticas (no recomendado)

if(!isset($_SESSION["user"]))
{
    
$mensaje='No ha iniciado sesión, por favor verifica los datos o contacta al administrador.';
    print 
"<script>alert('$mensaje')</script>";
    print(
"<script>window.location.replace('index.php');</script>");
    exit;
}
if ((
$_SESSION['privilege'])=='yes')
{
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
    body 
    {
        font-family: Calibri, Candara, Segoe, "Segoe UI", Optima, Arial, sans-serif;
        color: black;
        background-color: #FFFFFF
    }

    .contenedor {position:relative;     width:1024px; height:768px; margin:0px auto; text-align:center;}
    .cuerpo {width:1024px; height:300px; text-align:center;}
    
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Registrar Usuarios</title>
</head>
<div class="contenedor">

<body align="center" style='background-repeat:no-repeat; background-position: 50% 0%;' background="/prueba1/images/fondo.png">
</br></br></br></br></br></br></br></br></br></br></br>
<h2>Registro de Usuarios</h2>
<h3>Ingrese los datos del Usuario a Registrar</h3>
<div class="cuerpo">
<form action="registroUsuarios.php" method="post">
  
  <table align="center">
    <tr>
      <td align="left">Usuario:</td>
      <td align="center"><input type="text" value="<?php $_SESSION['form']['user'?>" name="user" size="25" /></td>
    </tr>
    <tr>
      <td align="left">Contraseña:</td>
      <td align="center"><input type="password" size="25" name="password" /></td>
    </tr>
    <tr>
      <td align="left">Es Administrador?:</td>
      <td align="center">
                        <SELECT style="width:176px; align:center;" align="center" NAME="esadmin">
                            <OPTION value="SI">SI</OPTION>
                            <OPTION value="NO" SELECTED>NO</OPTION>
                        </SELECT></td>
    </tr>
    <tr>
      <td align="left">Nombre:</td>
      <td align="center"><input type="text" size="25" value="<?php $_SESSION['form']['nombre'?>" name="Nombre"/></td>
    </tr>
     <tr>
      <td align="left">Apellido:</td>
      <td align="center"><input type="text" size="25"  value="<?php $_SESSION['form']['apellido'?>" name="Apellido"/></td>
    </tr>
    <tr>
      <td align="left">Cedula:</td>
      <td align="center" valign="middle"><input type="text" size="1" name="vzlano" value="V-" disabled=true/><input type="text" size="20" value="<?php $_SESSION['form']['cedula'?>" name="Cedula"/></td>
    </tr>
    <tr>
      <td align="left">Teléfono:</td>
      <td align="center"><input type="text" size="25" value="<?php $_SESSION['form']['telefono'?>" name="Telefono"/></td>
    </tr>
  </table>


</br>
<button name="submit" type="submit" title="Submit" >
<img src="/prueba1/images/Ok.png" width="64" height="64" border="0"></br>Enviar 
</button>****
<button name="atras" type="reset" title="Borrar" >
<img src="/prueba1/images/trash.png" width="64" height="64" border="0"></br>Borrar 
</button>****
<button name="atras" onclick=" location.href='PanelUsuarios.php' " type="button" title="Atras" >
<img src="/prueba1/images/atras.png" width="64" height="64" border="0"></br>Atrás 
</button>
</div></div>
</form>
</body>
</html>
<?php
}
else
{
    
$mensaje99='No tienes los privilegios suficientes para acceder a esta Página, por favor Contacta al Administrador .';
    print 
"<script>alert('$mensaje99')</script>";
    print(
"<script>window.location.replace('index.php');</script>");
    exit;
}
y el registroUsuario.php

Código PHP:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
@session_start(); //@ previene warning contra sesiones automáticas (no recomendado)
if(!isset($_SESSION["user"]))
{
    
$mensaje='No haz iniciado sesion, por favor verifica los datos o contacta al administrador.';
    print 
"<script>alert('$mensaje')</script>";
    print(
"<script>window.location.replace('index.php');</script>");
    exit;
}

if ((
$_SESSION['privilege'])=='yes')
{

require_once(
'funciones.php');
conectar('localhost','root','','gammu');
//Recibir

$user strip_tags($_POST['user']);
$password strip_tags(sha1($_POST['password']));
$esadmin strip_tags($_POST['esadmin']);
$Nombre strip_tags($_POST['Nombre']);
$Apellido strip_tags($_POST['Apellido']);
$Cedula strip_tags($_POST['Cedula']);
$Telefono strip_tags($_POST['Telefono']);

$user=trim($user);
$password=trim($password);
$esadmin=trim($esadmin);
$Nombre=trim($Nombre);
$Apellido=trim($Apellido);
$Cedula=trim($Cedula);
$Telefono=trim($Telefono);

$error==false;

if ((
$user)==NULL || ($user)==' ')

    
$error==true;
    
$mensaje='Disculpe, el Campo Usuario no puede estar en Blanco, Por favor Vuelva a intentarlo.';
}
else if ((
$password)==NULL || ($password)==' ')
{
    
$error==true;
    
$mensaje='Disculpe, el Campo Contraseña no puede estar en Blanco, Por favor Vuelva a intentarlo.';
}
else if ((
$Nombre)==NULL || ($Nombre)==' ')
{
    
$error==true;
    
$mensaje='Disculpe, el Campo Nombre no puede estar en Blanco, Por favor Vuelva a intentarlo.';
}
else if ((
$Apellido)==NULL || ($Apellido)==' ')
{
    
$error==true;
    
$mensaje='Disculpe, el Campo Apellido no puede estar en Blanco, Por favor Vuelva a intentarlo.';
}
else if ((
$Cedula)==NULL || is_numeric($Cedula)==FALSE)
{
    
$error==true;
    
$mensaje='Disculpe, el Campo Cedula no puede estar en Blanco y/o tener caracteres especiales, Recuerde utilizar solo Números, Por favor Vuelva a intentarlo.';
}
else if ((
$Telefono)==NULL || is_numeric($Telefono)==FALSE)
{
    
$error==true;
    
$mensaje='Disculpe, el Campo Teléfono no puede estar en Blanco y/o tener caracteres especiales, Recuerde utilizar solo Números, Por favor Vuelva a intentarlo.';
} else if (
$error == true)
{
    
$_SESSION['form']['user'] = $user;
    
$_SESSION['form']['nombre'] = $Nombre;
    
$_SESSION['form']['apellido'] = $Apellido;
    
$_SESSION['form']['cedula'] = $Cedula;
    
$_SESSION['form']['telefono'] = $Telefono;
    print 
"<script>alert('$mensaje')</script>";
    print(
"<script>window.location.replace('RegistarUsuarios.php');</script>");     
}
else
{

$query = @mysql_query('SELECT * FROM usuarios WHERE user="'.mysql_real_escape_string($user).'"');

if(
$existe = @mysql_fetch_object($query))
{
    echo 
'El Usuario '.$user.' ya Existe.';
}else{
    
$meter = @mysql_query('INSERT INTO usuarios (user, password, ADMIN, Nombre, Apellido, Cedula, Telefono) values("'.mysql_real_escape_string($user).'","'.mysql_real_escape_string($password).'","'.mysql_real_escape_string($esadmin).'","'.mysql_real_escape_string($Nombre).'","'.mysql_real_escape_string($Apellido).'","'.mysql_real_escape_string($Cedula).'","'.mysql_real_escape_string($Telefono).'")');
    if(
$meter)
    {
        
$mensaje6='Usuario Registrado con Éxito';
        print 
"<script>alert('$mensaje6')</script>";
        print(
"<script>window.location.replace('/RegistarUsuarios.php');</script>");
    }
        else
        {
            
$mensaje7='Hubo un problema Registrando el Usuario, por favor vuelva a intentarlo';
            print 
"<script>alert('$mensaje7')</script>";
            print(
"<script>window.location.replace('/RegistarUsuarios.php');</script>");
        }
}

}

}
else
{
    
$mensaje99='No tienes los privilegios suficientes para acceder a esta Página, por favor Contacta al Administrador .';
    print 
"<script>alert('$mensaje99')</script>";
    print(
"<script>window.location.replace('index.php');</script>");
    
session_destroy(); 
    exit;
}
?>
  #8 (permalink)  
Antiguo 18/10/2013, 12:06
Avatar de Cuervoo  
Fecha de Ingreso: octubre-2013
Mensajes: 165
Antigüedad: 10 años, 6 meses
Puntos: 43
Respuesta: Se Borran los Campos en formularios de Registros al validarlos

Ah bien. El código que se pone es (generalmente) para orientar, no para insertarlo directamente en el tuyo ya listo para salir andando porque sino sería todo muy largo de explicar para el que lo pone y de entender para el que pide la ayuda.

Si intentás acceder a una variable que no está declarada te tira ese notice Undefined index. Tenés que verificar que esté creada.

Antes de imprimir el formulario podés hacer

Código PHP:
Ver original
  1. //si está seteada $_SESSION['form'] es que viene de un error, asique carga los datos
  2. if (isset($_SESSION['form']))
  3. {
  4.     $form = $_SESSION['form'];
  5.     unset($_SESSION['form']);
  6. }
  7. //Sino, carga el arreglo en blanco, con esto prevenimos ese notice
  8. else
  9. {
  10.     $form = array();
  11.     $form['user'] = '';
  12.     $form['pass'] = '';
  13.    //etc... todos los mismos índices
  14. }

Ahora, en el formulario usas $form, que tiene los campos que puso antes si viene de un error o imprime en blanco si no tiene nada.

Código HTML:
Ver original
  1. <tr>
  2.       <td align="left">Usuario:</td>
  3.       <td align="center"><input type="text" value="<?php echo $form['user'] ?>" name="user" size="25" />        </td>
  4.     </tr>

También tenés

Código PHP:
Ver original
  1. $error==true;

Cuando asignás un valor a una variable solo es un =

Código PHP:
Ver original
  1. $error = true;
  #9 (permalink)  
Antiguo 18/10/2013, 12:50
 
Fecha de Ingreso: octubre-2013
Ubicación: Maracaibo
Mensajes: 10
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Se Borran los Campos en formularios de Registros al validarlos

Nada que me da :( . Lo coloque asi por lo que ya explique, de que no tengo muchos conocimientos en el area, pero se esta aqui para aprender. Colocare como me quedo, en donde esta la validacion hago un ECHO dentro de registroUsuario para ver si se guardan las variables $_SESSION['form']['campo'] y Correcto, me las imprime, lo que no me cuadra es cuando regresa al formulario no asigna los valores a la tabla si no que los deja en blanco. No se si me explico.

Aqui el RegistarUsuarios.php
Código PHP:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
@session_start(); //@ previene warning contra sesiones automáticas (no recomendado)

if (isset($_SESSION['form']))
{
    
$form $_SESSION['form'];
    unset(
$_SESSION['form']);
}
else
{
    
$form = array();
    
$form['user'] = '';
    
$form['nombre'] = '';
    
$form['apellido'] = '';
    
$form['cedula'] = '';
    
$form['telefono'] = '';
}
//Sino, carga el arreglo en blanco, con esto prevenimos ese notice

if(!isset($_SESSION["user"]))
{
    
$mensaje='No ha iniciado sesión, por favor verifica los datos o contacta al administrador.';
    print 
"<script>alert('$mensaje')</script>";
    print(
"<script>window.location.replace('index.php');</script>");
    exit;
}
if ((
$_SESSION['privilege'])=='yes')
{
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
    body 
    {
        font-family: Calibri, Candara, Segoe, "Segoe UI", Optima, Arial, sans-serif;
        color: black;
        background-color: #FFFFFF
    }

    .contenedor {position:relative;     width:1024px; height:768px; margin:0px auto; text-align:center;}
    .cuerpo {width:1024px; height:300px; text-align:center;}
    
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Registrar Usuarios</title>
</head>
<div class="contenedor">

<body align="center" style='background-repeat:no-repeat; background-position: 50% 0%;' background="/prueba1/images/fondo.png">
</br></br></br></br></br></br></br></br></br></br></br>
<h2>Registro de Usuarios</h2>
<h3>Ingrese los datos del Usuario a Registrar</h3>
<div class="cuerpo">
<form action="registroUsuarios.php" method="post">
  
  <table align="center">
    <tr>
      <td align="left">Usuario:</td>
      <td align="center"><input type="text" value="<?php $form['user'?>" name="user" size="25" /></td>
    </tr>
    <tr>
      <td align="left">Contraseña:</td>
      <td align="center"><input type="password" size="25" name="password" /></td>
    </tr>
    <tr>
      <td align="left">Es Administrador?:</td>
      <td align="center">
                        <SELECT style="width:176px; align:center;" align="center" NAME="esadmin">
                            <OPTION value="SI">SI</OPTION>
                            <OPTION value="NO" SELECTED>NO</OPTION>
                        </SELECT></td>
    </tr>
    <tr>
      <td align="left">Nombre:</td>
      <td align="center"><input type="text" size="25" value="<?php $form['nombre'?>" name="Nombre"/></td>
    </tr>
     <tr>
      <td align="left">Apellido:</td>
      <td align="center"><input type="text" size="25"  value="<?php $form['apellido'?>" name="Apellido"/></td>
    </tr>
    <tr>
      <td align="left">Cedula:</td>
      <td align="center" valign="middle"><input type="text" size="1" name="vzlano" value="V-" disabled=true/><input type="text" size="20" value="<?php $form['cedula'?>" name="Cedula"/></td>
    </tr>
    <tr>
      <td align="left">Teléfono:</td>
      <td align="center"><input type="text" size="25" value="<?php $form['telefono'?>" name="Telefono"/></td>
    </tr>
  </table>
<?php ?>

</br>
<button name="submit" type="submit" title="Submit" >
<img src="/prueba1/images/Ok.png" width="64" height="64" border="0"></br>Enviar 
</button>****
<button name="atras" type="reset" title="Borrar" >
<img src="/prueba1/images/trash.png" width="64" height="64" border="0"></br>Borrar 
</button>****
<button name="atras" onclick=" location.href='PanelUsuarios.php' " type="button" title="Atras" >
<img src="/prueba1/images/atras.png" width="64" height="64" border="0"></br>Atrás 
</button>
</div></div>
</form>
</body>
</html>
<?php
}
else
{
    
$mensaje99='No tienes los privilegios suficientes para acceder a esta Página, por favor Contacta al Administrador .';
    print 
"<script>alert('$mensaje99')</script>";
    print(
"<script>window.location.replace('index.php');</script>");
    exit;
}
  #10 (permalink)  
Antiguo 18/10/2013, 12:51
 
Fecha de Ingreso: octubre-2013
Ubicación: Maracaibo
Mensajes: 10
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Se Borran los Campos en formularios de Registros al validarlos

Aqui el registrarUsuarios.php
Código PHP:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
@session_start(); //@ previene warning contra sesiones automáticas (no recomendado)
if(!isset($_SESSION["user"]))
{
    
$mensaje='No haz iniciado sesion, por favor verifica los datos o contacta al administrador.';
    print 
"<script>alert('$mensaje')</script>";
    print(
"<script>window.location.replace('index.php');</script>");
    exit;
}

if ((
$_SESSION['privilege'])=='yes')
{

require_once(
'funciones.php');
conectar('localhost','root','','gammu');
//Recibir
$error false;
$user strip_tags($_POST['user']);
$password strip_tags(sha1($_POST['password']));
$esadmin strip_tags($_POST['esadmin']);
$Nombre strip_tags($_POST['Nombre']);
$Apellido strip_tags($_POST['Apellido']);
$Cedula strip_tags($_POST['Cedula']);
$Telefono strip_tags($_POST['Telefono']);

$user=trim($user);
$password=trim($password);
$esadmin=trim($esadmin);
$Nombre=trim($Nombre);
$Apellido=trim($Apellido);
$Cedula=trim($Cedula);
$Telefono=trim($Telefono);

$_SESSION['form']['user'] = $user;
$_SESSION['form']['nombre'] = $Nombre;
$_SESSION['form']['apellido'] = $Apellido;
$_SESSION['form']['cedula'] = $Cedula;
$_SESSION['form']['telefono'] = $Telefono;

echo 
$_SESSION['form']['user'];
echo 
$_SESSION['form']['nombre'];
echo 
$_SESSION['form']['apellido'];
echo 
$_SESSION['form']['cedula'];
echo 
$_SESSION['form']['telefono'];

if ((
$user)==NULL || ($user)==' ')

    
$error true;
    
$mensaje='Disculpe, el Campo Usuario no puede estar en Blanco, Por favor Vuelva a intentarlo.';
    
$_SESSION['form']['user'] = $user;
    
$_SESSION['form']['nombre'] = $Nombre;
    
$_SESSION['form']['apellido'] = $Apellido;
    
$_SESSION['form']['cedula'] = $Cedula;
    
$_SESSION['form']['telefono'] = $Telefono;
    print 
"<script>alert('$mensaje')</script>";
    print(
"<script>window.location.replace('/prueba1/RegistarUsuarios.php');</script>");
}
else if ((
$password)==NULL || ($password)==' ')
{
    
$error true;
    
$mensaje='Disculpe, el Campo Contraseña no puede estar en Blanco, Por favor Vuelva a intentarlo.';
    
$_SESSION['form']['user'] = $user;
    
$_SESSION['form']['nombre'] = $Nombre;
    
$_SESSION['form']['apellido'] = $Apellido;
    
$_SESSION['form']['cedula'] = $Cedula;
    
$_SESSION['form']['telefono'] = $Telefono;
    print 
"<script>alert('$mensaje')</script>";
    print(
"<script>window.location.replace('/prueba1/RegistarUsuarios.php');</script>");
}
else if ((
$Nombre)==NULL || ($Nombre)==' ')
{
    
$error true;
    
$mensaje='Disculpe, el Campo Nombre no puede estar en Blanco, Por favor Vuelva a intentarlo.';
    
$_SESSION['form']['user'] = $user;
    
$_SESSION['form']['nombre'] = $Nombre;
    
$_SESSION['form']['apellido'] = $Apellido;
    
$_SESSION['form']['cedula'] = $Cedula;
    
$_SESSION['form']['telefono'] = $Telefono;
    print 
"<script>alert('$mensaje')</script>";
    print(
"<script>window.location.replace('/prueba1/RegistarUsuarios.php');</script>");
}
else if ((
$Apellido)==NULL || ($Apellido)==' ')
{
    
$error true;
    
$mensaje='Disculpe, el Campo Apellido no puede estar en Blanco, Por favor Vuelva a intentarlo.';
    
$_SESSION['form']['user'] = $user;
    
$_SESSION['form']['nombre'] = $Nombre;
    
$_SESSION['form']['apellido'] = $Apellido;
    
$_SESSION['form']['cedula'] = $Cedula;
    
$_SESSION['form']['telefono'] = $Telefono;
    print 
"<script>alert('$mensaje')</script>";
    print(
"<script>window.location.replace('/prueba1/RegistarUsuarios.php');</script>");
}
else if ((
$Cedula)==NULL || is_numeric($Cedula)==FALSE)
{
    
$error true;
    
$mensaje='Disculpe, el Campo Cedula no puede estar en Blanco y/o tener caracteres especiales, Recuerde utilizar solo Números, Por favor Vuelva a intentarlo.';
    
$_SESSION['form']['user'] = $user;
    
$_SESSION['form']['nombre'] = $Nombre;
    
$_SESSION['form']['apellido'] = $Apellido;
    
$_SESSION['form']['cedula'] = $Cedula;
    
$_SESSION['form']['telefono'] = $Telefono;
    print 
"<script>alert('$mensaje')</script>";
    print(
"<script>window.location.replace('/prueba1/RegistarUsuarios.php');</script>");
}
else if ((
$Telefono)==NULL || is_numeric($Telefono)==FALSE)
{
    
$error true;
    
$mensaje='Disculpe, el Campo Teléfono no puede estar en Blanco y/o tener caracteres especiales, Recuerde utilizar solo Números, Por favor Vuelva a intentarlo.';
    
$_SESSION['form']['user'] = $user;
    
$_SESSION['form']['nombre'] = $Nombre;
    
$_SESSION['form']['apellido'] = $Apellido;
    
$_SESSION['form']['cedula'] = $Cedula;
    
$_SESSION['form']['telefono'] = $Telefono;
    print 
"<script>alert('$mensaje')</script>";
    print(
"<script>window.location.replace('/prueba1/RegistarUsuarios.php');</script>");

else
{

$query = @mysql_query('SELECT * FROM usuarios WHERE user="'.mysql_real_escape_string($user).'"');

if(
$existe = @mysql_fetch_object($query))
{
    echo 
'El Usuario '.$user.' ya Existe.';
}else{
    
$meter = @mysql_query('INSERT INTO usuarios (user, password, ADMIN, Nombre, Apellido, Cedula, Telefono) values("'.mysql_real_escape_string($user).'","'.mysql_real_escape_string($password).'","'.mysql_real_escape_string($esadmin).'","'.mysql_real_escape_string($Nombre).'","'.mysql_real_escape_string($Apellido).'","'.mysql_real_escape_string($Cedula).'","'.mysql_real_escape_string($Telefono).'")');
    if(
$meter)
    {
        
$mensaje6='Usuario Registrado con Éxito';
        print 
"<script>alert('$mensaje6')</script>";
        print(
"<script>window.location.replace('/prueba1/RegistarUsuarios.php');</script>");
    }
        else
        {
            
$mensaje7='Hubo un problema Registrando el Usuario, por favor vuelva a intentarlo';
            print 
"<script>alert('$mensaje7')</script>";
            print(
"<script>window.location.replace('/prueba1/RegistarUsuarios.php');</script>");
        }
}
}
}
else
{
    
$mensaje99='No tienes los privilegios suficientes para acceder a esta Página, por favor Contacta al Administrador .';
    print 
"<script>alert('$mensaje99')</script>";
    print(
"<script>window.location.replace('index.php');</script>");
    
session_destroy(); 
    exit;
}
?>
  #11 (permalink)  
Antiguo 18/10/2013, 13:08
Avatar de Cuervoo  
Fecha de Ingreso: octubre-2013
Mensajes: 165
Antigüedad: 10 años, 6 meses
Puntos: 43
Respuesta: Se Borran los Campos en formularios de Registros al validarlos

Hasta ahi se ve todo joya, no te las imprime porque te falta un echo.

Asi: <?php $form['nombre'] ?> no hace nada con la variable, falta decirle que la imprima

<tr>
<td align="left">Nombre:</td>
<td align="center"><input type="text" size="25" value="<?php echo $form['nombre'] ?>" name="Nombre"/></td>
</tr>

Vamos que ya queda! cada vez más cerca. jaja
  #12 (permalink)  
Antiguo 18/10/2013, 13:25
 
Fecha de Ingreso: febrero-2013
Mensajes: 78
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Se Borran los Campos en formularios de Registros al validarlos

?¿
no entendi bien , quieres que al momento que te devuelve al formulario , quieres que los campos que llenaste no esten vacios y queden con los nombres que ingresaste ???

si es asi , eso es muy fácil incluso yo en mi sistema de registro ya lo tengo asi ...
solo devuelve las variablas en un input por post en un formulario en tipo hidden ...
y en el sistema de formulario los chapas nuevamente por post y en los input los pones en los value y asi los errores que ingresaste en los input no desapareceran ...

si en caso este no es tu problema
y quieres que te salga los mensajes de error ,
en una variables $mensajerror guardas todos los errores
y de igual forma al final lo mandas en un formulario en tipo hidden ala pagina de tu sistema de registro y lo chapas en post de igual forma ....

osea asi

<form method="post" name="formu" action="registroUsuarios.php">
<input name="error" value="$mensajerror">
</form>
y en tu sistema de formulario chapas en una variable

$mensajerror = $_POST['error'];

y le preguntas

<?php

if(isset($_POST['error'] && !empty($_POST['error'] ){
echo $mensajerror;
  #13 (permalink)  
Antiguo 18/10/2013, 13:51
 
Fecha de Ingreso: octubre-2013
Ubicación: Maracaibo
Mensajes: 10
Antigüedad: 10 años, 6 meses
Puntos: 0
Sonrisa Respuesta: Se Borran los Campos en formularios de Registros al validarlos

Gracias Amigo! Eso fue correcto no me habia fijado en ese pequeño detalle! Agregue el echo y listoooo! Adjunto el codigo del Formulario Final

Código PHP:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
@session_start(); //@ previene warning contra sesiones automáticas (no recomendado)

if (isset($_SESSION['form']))
{
    
$form $_SESSION['form'];
    unset(
$_SESSION['form']);
}
else
{
    
$form = array();
    
$form['user'] = '';
    
$form['nombre'] = '';
    
$form['apellido'] = '';
    
$form['cedula'] = '';
    
$form['telefono'] = '';
}
//Sino, carga el arreglo en blanco, con esto prevenimos ese notice

if(!isset($_SESSION["user"]))
{
    
$mensaje='No ha iniciado sesión, por favor verifica los datos o contacta al administrador.';
    print 
"<script>alert('$mensaje')</script>";
    print(
"<script>window.location.replace('index.php');</script>");
    exit;
}
if ((
$_SESSION['privilege'])=='yes')
{
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
    body 
    {
        font-family: Calibri, Candara, Segoe, "Segoe UI", Optima, Arial, sans-serif;
        color: black;
        background-color: #FFFFFF
    }

    .contenedor {position:relative;     width:1024px; height:768px; margin:0px auto; text-align:center;}
    .cuerpo {width:1024px; height:300px; text-align:center;}
    
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Registrar Usuarios</title>
</head>
<div class="contenedor">

<body align="center" style='background-repeat:no-repeat; background-position: 50% 0%;' background="/prueba1/images/fondo.png">
</br></br></br></br></br></br></br></br></br></br></br>
<h2>Registro de Usuarios</h2>
<h3>Ingrese los datos del Usuario a Registrar</h3>
<div class="cuerpo">
<form action="registroUsuarios.php" method="post">
  
  <table align="center">
    <tr>
      <td align="left">Usuario:</td>
      <td align="center"><input type="text" value="<?php echo $form['user'?>" name="user" size="25" /></td>
    </tr>
    <tr>
      <td align="left">Contraseña:</td>
      <td align="center"><input type="password" size="25" name="password" /></td>
    </tr>
    <tr>
      <td align="left">Es Administrador?:</td>
      <td align="center">
                        <SELECT style="width:176px; align:center;" align="center" NAME="esadmin">
                            <OPTION value="SI">SI</OPTION>
                            <OPTION value="NO" SELECTED>NO</OPTION>
                        </SELECT></td>
    </tr>
    <tr>
      <td align="left">Nombre:</td>
      <td align="center"><input type="text" size="25" value="<?php echo $form['nombre'?>" name="Nombre"/></td>
    </tr>
     <tr>
      <td align="left">Apellido:</td>
      <td align="center"><input type="text" size="25"  value="<?php echo $form['apellido'?>" name="Apellido"/></td>
    </tr>
    <tr>
      <td align="left">Cedula:</td>
      <td align="center" valign="middle"><input type="text" size="1" name="vzlano" value="V-" disabled=true/><input type="text" size="20" value="<?php echo $form['cedula'?>" name="Cedula"/></td>
    </tr>
    <tr>
      <td align="left">Teléfono:</td>
      <td align="center"><input type="text" size="25" value="<?php echo $form['telefono'?>" name="Telefono"/></td>
    </tr>
  </table>
<?php ?>

</br>
<button name="submit" type="submit" title="Submit" >
<img src="/prueba1/images/Ok.png" width="64" height="64" border="0"></br>Enviar 
</button>****
<button name="Borrar" onClick="location.reload(false)" title="Borrar" >
<img src="/prueba1/images/trash.png" width="64" height="64" border="0"></br>Borrar 
</button>****
<button name="atras" onclick=" location.href='PanelUsuarios.php' " type="button" title="Atras" >
<img src="/prueba1/images/atras.png" width="64" height="64" border="0"></br>Atrás 
</button>
</div></div>
</form>
</body>
</html>
<?php
}
else
{
    
$mensaje99='No tienes los privilegios suficientes para acceder a esta Página, por favor Contacta al Administrador .';
    print 
"<script>alert('$mensaje99')</script>";
    print(
"<script>window.location.replace('index.php');</script>");
    exit;
}

Etiquetas: campos, registro, validacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:07.