Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/02/2007, 23:42
Avatar de ebe
ebe
 
Fecha de Ingreso: marzo-2004
Ubicación: Guatemala
Mensajes: 363
Antigüedad: 20 años, 1 mes
Puntos: 11
Re: validacion sin perder informacion en php

otra de las formas de hacerlo es almacenando tus valores POST en una variable de session en vez de pasar ese gran string via GET al momento de querer recuperar tus valores del formulario y al momento de redirecionar por algun error, pasar una variable get (camposvacios), y asi desplegar un mensaje amigable al usuario de que hay un error en el formulario y por eso no se ha podido procesar.

algo asi:



Código PHP:
<?php // ob_start(); 
  
session_start();
  
$server="localhost"/* Nuestro server mysql */
  
$database="PRUEBA"/* Nuestra base de datos */
  
$dbpass=""/*Nuestro password mysql */
  
$dbuser="root"/* Nuestro user mysql */
  
$conexion mysql_connect"$server""$dbuser""$dbpass") or die(mysql_error());
  
mysql_select_db($database$conexion); 


if (!
ini_get("register_globals")) {
import_request_variables('GPC');
}

if (
$ingreso == "Guardar"){
  if ( empty(
$campo[0]) ){
     
header ("location: campos.php?camposvacios=1");
     
$_SESSION['form'] = $_POST;
     exit();
  }   
  else{
      
$sql="INSERT INTO prueba VALUES ('$campo[0]','$campo[1]','$campo[2]')";
      
      if(
$consl=mysql_query($sql)){
      
header("location:insertadobien.php");
      exit;
      }else{
      
header("location:noinsertado.php");
      exit;
      }
    
    }
 }
if(isset(
$_SESSION['form']))
$valores $_SESSION['form'];
 
echo 
"<htm>"
."<body>";
echo 
"<form name= form1 action=campos.php method=POST>";

if(isset(
$_GET['camposvacios']) && (int)$_GET['camposvacios'] == 1){
echo(
'<span style="font:normal 1em Arial, \"Trebuchet MS\", Helvetica; color:red">no se permiten campos vacios</span>');
}

    echo 
"<p>ID: <input type='text' name='campo[0]' value='".$valores['campo[0]']."'></p>"
    
."<p>NOMBRE: <input type='text' name='campo[1]' value='".$valores['campo[1]']."' ></p>"
    
."<p>TELEFONO: <input type='text' name='campo[2]' value='".$valores['campo[2]']."'></p>"
    
."<input type='submit' name='ingreso' value='Guardar'>"  
."</form>"
."</body>"
."</htm>";
$_SESSION['form'] = NULL;
 
$valores NULL;
?>

PD: me parece interesante la funcion import_request_variables(), la agrego a mi lista.


un saludo.
__________________
http://dev.wsnetcorp.com