Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Consulta basica acerca de una validacion de formularios

Estas en el tema de Consulta basica acerca de una validacion de formularios en el foro de PHP en Foros del Web. Mi duda es la siguiente : tengo un formulario el que lo valido dentro de su misma pagina (formulario.php) , esto lo hice para que ...
  #1 (permalink)  
Antiguo 25/07/2013, 12:33
 
Fecha de Ingreso: julio-2013
Mensajes: 10
Antigüedad: 10 años, 8 meses
Puntos: 0
Consulta basica acerca de una validacion de formularios

Mi duda es la siguiente :

tengo un formulario el que lo valido dentro de su misma pagina (formulario.php) , esto lo hice para que no se mande el formulario sin los parametros que corresponden, pero claro todo funciona bien si en el "action" , del formulario tengo action="formulario.php", por que toy validando dentro de la misma pagina. Mi problema es que yo kiero que esa informacion validada se valla a la pagina que procesa esa informacion que es "login.php" , pagina en la cual tengo las instrucciones a mysql de los datos ingresados en el formulario , pero como mi validación se hacia en la misma pagina para que los datos se envien correctamente , ahora que cambio el action="login.php" , la validacion ya no corre. no se que puedo hacer para que la validacion con mensajes y todo se haga antes de enviar el formuario y una ves validado se envie a la pagina de login.php

aqui les adjunto mis codigos para que los vean yme sugieran alguna solucion

formulario.php

Código PHP:
<html>

<?php 
//validacion del formulario
    
if($_POST){
    
//var_dump($_POST);
    
$nombre=$_POST ["nombre"];
    
$clave=$_POST["clave"];

    
//var_dump($nombre);
    //var_dump($clave);
            
            
$clasenombre ="";
            
$claseclave="";
            if (
$nombre == ""){
            
$msgNombre"falta ingresar el nombre";
            
$clasenombre="error";
            }
            if(
$clave == ""){
            
$msgClave"falta ingresar una clave";
            
$claseclave="error";
            } else {
                if(!
is_numeric($clave)){
            
$msgClave"la clave debe ser numerica";
            
$claseclave="error";
                    }
                }
                if (
$clasenombre == "" && $claseclave == ""){
                    echo 
"ok";
                    }
}

?>

<head>
<title>Area de acceso Miembros</title>
<style>

div         {
    margin: 10px;
}
div label     {
    float:left;
    width:15%;
}
input         {

    border: solid 2px black;
}
.error         {
    background: orange;
    
}

.msg {
    
    color:white;}



</style>

</head>
<body>
<h1>Acceso de miembros de mascotas al dia</h1>
<form action="formulario.php" method="post" name="form1">
<fieldset> <legend> Ingrese sus datos</legend>
  <div class="<?php echo $clasenombre;?>">
  <label>Nombre</label>
  <input type="text" name="nombre" value="<?php echo @$nombre ;?>">
  <span class="msg"><?php echo @$msgNombre;?></span>
  </div>
   <div class="<?php echo $claseclave;?>">
   <label>Clave</label>
    <input type="text" name="clave" value="<?php echo @$clave ;?>" >
    <span class="msg"><?php echo @$msgClave;?></span>
    </div>
    
 <div><input type="submit" value="Ingresar"/></div>
      
  </fieldset>
</form>
</body>
</html>
Si uds se fijan el action de esta pagina esta dirigido a si mismo, de ahiq ue esa validacion que hace es bien buena , pero mi problema es que si cambio el action="" a la pagina que tengo las instrucciones de mysql , la validacion se pierde... alguna sugerencia por favor.

Gracias

Disculpen lo largo del post.
  #2 (permalink)  
Antiguo 25/07/2013, 12:46
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Consulta basica acerca de una validacion de formularios

pasa la validacion a login.php y ya cambias el action a login.php y si ay error devuelves al formulario ahora si no quieres refrescar tienes que utilizar javascript o alomejor ajax

Código PHP:
Ver original
  1. if ($clasenombre == "" && $claseclave == ""){
  2.                     // o aqui redirecciona a login.php
  3. // creas una session con los datos post y asi los tienes disponibles nuevamente en login.php llamando a las sessiones
  4. }

Última edición por webankenovi; 25/07/2013 a las 12:54
  #3 (permalink)  
Antiguo 25/07/2013, 14:43
 
Fecha de Ingreso: julio-2013
Mensajes: 10
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Consulta basica acerca de una validacion de formularios

Bien , gracias a tu excelente recomendacion puedo hacer que se envie el formulario , pero eso de crear la session me mato.

cuando ejecuto el codigo y lo dirijo hacia login.php me avisa de esto y falla.


Notice: Undefined index: rut in C:\xampp\htdocs\login.php on line 3

Notice: Undefined index: pass in C:\xampp\htdocs\login.php on line 4

y esas lineas justo corresponden a

$login=$_POST["rut"];
$clave=$_POST["pass"];

Me podes ayudar por favor ? gracias nuevamente a quien me pueda ayudar , esto de la programacion me tiene loco , pero de pasion y no he parado en estos dias , estoy embaladisimo , esta muy entretenida mi carrera .

Gracias de antemano.
  #4 (permalink)  
Antiguo 25/07/2013, 17:26
 
Fecha de Ingreso: julio-2013
Mensajes: 10
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Consulta basica acerca de una validacion de formularios

Bueno , he logrado dar con el tema y me gustaria poder ayudar a quien talvez en un futuro lo necesite.

la solucion fue la siguiente , gracias al amigo kenobi que respondio arriba estudiando en varios libros encontre como crear las sesiones y almacenar sus variables para que las use otra pagina .

Para el archivo de formulario.php , lo que agrege al inicio de esta pagina
Código PHP:
star_session(); 
y tal como me lo sugirio el amigo kenobi al final agregue lo siguiente :
Código PHP:
 if($rut_Error == "" && $pass_Error == ""){
                     
header("Location:login.php");
                     
                      
/* Empezamos la sesión */
   
     
    /* Creamos la sesión */
    
$_SESSION['login'] =$_POST["rut"];
    
$_SESSION['clave'] =$_POST["pass"];
    
                     } 
, si se fijan lo que hice arriba fue crear la session y en la parte de abajo crear las variables superglobales $_SESSION y con los campos del formulario post que estaba llamando con esas variables.


Luego en el archivo login.php hay que iniciar nuevamente session con :
Código PHP:
<?php 
session_start 
();
?>
y luego llamar a las variables de la session anterior con las variables superglobales. queda asi :

Código PHP:
$login=$_SESSION['login'];
$clave=$_SESSION['clave']; 
y luego todo el resto del archivo que procesa los datos entregados por el formuario en MYSQL no hice modificaciones y funciono a la perfeccion .

Muchas gracias a todos los que me ayudaron , especialmente al amigo kenobi.

muchas gracias de nuevo. Tema resuelto.

  #5 (permalink)  
Antiguo 27/07/2013, 10:05
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Consulta basica acerca de una validacion de formularios

Bueno amigo solo una cosita ¿start_session?? eso existe supongo que sera un error ortografico

- las sessiones debes de crearla antes de la redireccion y despues de una redireccion siempre va un exit

Código PHP:
Ver original
  1. if($rut_Error == "" && $pass_Error == "")
  2. {
  3.              
  4.     /* Creamos la sesión */
  5.     $_SESSION['login'] =$_POST["rut"];
  6.     $_SESSION['clave'] =$_POST["pass"];
  7.     header("Location:login.php");
  8.     exit;
  9.    
  10. }

y en el archivo de login en vez de validar que llegaron los datos mediante post ahora tendras que validar que llegan mediante session

Código PHP:
Ver original
  1. if(isset($_SESSION['login']) and isset($_SESSION['clave'])){
  2.  
  3. $login=$_SESSION['login'];
  4. $clave=$_SESSION['clave'];
  5.  
  6. }else{
  7.  
  8. echo 'error';
  9.  
  10. }

Etiquetas: acerca, formulario, formularios, html, mysql, 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 17:08.