que va...nada de nada...mira...yo valido mediante expresiones regulares antes de mandarlo a la base de datos. te dejo mi codigo:
Código PHP:
//Iniciamos si se ha pulsado el botón 'Siguiente' en el Formulario
if(isset($_POST['submit']))
{
// Creamos nombres de variables cortos
$nombrerest = trim( $_POST['nombrerest']);
$provinciarest = trim( $_POST['provinciarest']);
//ahora mostramos mensajes si los dos campos, nombre y provincia, están //cumplimentados, es decir que no están vacíos
if (!empty($nombrerest) && !empty($provinciarest) && ereg("^[a-z A-Z áéíóúAÉÍÓÚÑñ]{2,}$",$provinciarest)) {
echo "correcto";
}
//en caso contrario, comenzamos con las validaciones
else
{
echo "<br><div style=\"background-color: #FFFFFF; border: #FFA500 1px solid; padding: 6px;\"><span class=\"text1\">Se han detectado los siguientes errores. Por favor, corríjalos y reenvíe la información</span><br><br>";
if(empty($nombrerest)) {
echo "<span class=\"text14\">El campo Nombre es obligatorio</span></br>";
$nombrerest = $nombrerest."\" style=\"background-color: #FFE4E1\"";
}
if(empty($provinciarest)) {
echo "<span class=\"text14\">El Campo Provincia es Obligatorio</span></br>";
$provinciarest = $provinciarest."\" style=\"background-color: #FFE4E1\"";
}
echo "</div><br><br>";
//hasta aquí los mensajes de error a mostrar durante las validaciones. Mostramos nuevamente el formulario para que se corrija dichos defectos
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\" name=\"f1\">";
echo "Nombre<br><input type=\"text\" name=\"nombrerest\" class=\"caja\" size=\"50\" value=\"$nombrerest\"></br>";
echo "Provincia<br>
<select name=\"provinciarest\" class=\"caja\"> ";
$sql="select * from provincia order by nombreprov asc";
$r = mysql_query($sql) or die(mysql_error());
$sql2 = mysql_query("select * from provincia where id_provincia=$provinciarest");
$r2 = mysql_query($sql2) or die(mysql_error());
$p2 = mysql_fetch_assoc($r2);
while($p = mysql_fetch_array($r)){
$s = ($p["id_provincia"]==$_POST["provinciarest"]?"selected='selected'":"");
echo "<option value='".$p["id_provincia"]."' class='caja' ".$s.">".$p["nombreprov"]."</option>";
}
mysql_free_result($result);
echo "</select></br></br>";
echo "<br><input type=\"submit\" name=\"submit\" class=\"caja\" value=\"Enviar\">";
echo "<P><span class=\"required\">*</span> Todos los campos son obligatorios</P></FORM>";
//Procedemos a cerrar el supuesto de que haya algún error en la cumplimentación de algún campo
}
//cierre de la aplicación para el caso incorrecto de los campos mediante el último }
}
//este último } corresponde a al inicial abierto para cuando se pulsaba el botón Enviar
///////////SI NO SE HA PULSADO EL BOTÓN ENVIAR///////////////////////////////////////////////////////
//si no se ha pulsado el botón enviar, en este caso se muestra el formulario con todos los campos
if(!isset($_POST['submit']))
{
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\" name=\"f1\">";
echo "Nombre <br><input type=\"text\" name=\"nombrerest\" class=\"caja\" size=\"50\" value=\"$nombrerest\"></br>";
echo "Provincia<br>
<select name=\"provinciarest\" class=\"caja\">";
$sql="select * from provincia order by nombreprov asc";
$resultados = mysql_query($sql);
$p = mysql_num_rows($resultados);
while($p = mysql_fetch_array($resultados))
{
echo "<option value=\"$p[id_provincia]\" class=\"caja\">$p[nombreprov]</option>";
}
mysql_free_result($result);
echo "</select></br></br>";
echo "<br><input type=\"submit\" name=\"submit\" class=\"caja\" value=\"Enviar\">";
echo "<P><span class=\"required\">*</span> Todos los campos son obligatorios</P></FORM>";
}
ea, pues con todo ello me da el error que te digo. la cosa está en que si el usuario deja el campo del nombre en blanco pero selecciona por ejemplo guadalajara cuando vuelva a cargar la página procedente de la validación diga que el campo nombre es obligatorio pero que en el campo provincia esté seleccionada guadalajara (aún cuando salga si se le da al desplegable todo el listado de provincias)