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.