Cita:
Iniciado por churretin Hola #kahlito tu solución no me es valida, ya que mando a un controlador los datos para verificarlo y si falla la verificación me devuelve al controlador anterior, por lo que se pierden los post.
#jluishuaman no es solo una fecha son, varias decebas de campos, de ahi su importancia.
Entonces creo que te podría servir algo así:
controlador.php
Código PHP:
<?php
// Si recibo los datos o se ha pulsado enviar
if(isset($_POST['enviar'])){
//Declaro las variables
$usuario = mysql_real_escape_string($_POST['usuario']);
$password = mysql_real_escape_string($_POST['password']);
//Si hay algún campo vacío aviso de error.
if($_POST["usuario"] == "" || $_POST["password"] == ""){
//Redirecciono a la página del formulario para avisar del error y que a la vez devuelva los datos completados hasta el momento.
header("location: entrada.php?errorLogin=1&usuario=$usuario&password=$password");
}
//Si se rellenan los campos compruebo datos
else{
echo "Todo ok y preparo el envío";
}
}//Fin enviar
?>
Y en el archivo actual donde se rellena el formulario, por ejemplo entrada.php :
Código PHP:
<?php
if(isset($_GET["errorLogin"])){
echo "<p class=\"error\">Error: </p>";
//Preparo las variables de los campos del formulario para traerlas aqui
if(isset($_GET["usuario"])){
$usuario = mysql_real_escape_string($_GET['usuario']);
}
if(isset($_GET["password"])){
$password = mysql_real_escape_string($_GET['password']);
}
if($_GET["errorLogin"] == "1"){
echo "<p class=\"error\">Error: Hay algún campo vacío.</p>";
}//
}
//Incluyo el formulario controlador o verificador
include("inc/formulario-controlador.php");
?>
formulario-controlador.php
Código PHP:
<?php
//Si se reciben los datos por get
if(isset($_GET["usuario"]) || isset($_GET["passowrd"])){
//echo "El usuario es: ". $usuario;
?>
<form method="post" action="controlador.php">
<label>Nombre de usuario: </label><input type="text" name="usuario" value="<?php if(isset($_GET["usuario"])){ echo $_GET["usuario"];} ?>"><br />
<label>Contraseña: </label><input type="password" name="password" value="<?php if(isset($_GET["password"])){ echo $_GET["password"];} ?>"><br />
<div class="submit">
<input type="submit" value="Entrar" name="enviar">
</form>
<?php
}
else{ //Si se reciben los datos por post.
?>
<form method="post" action="controlador.php">
<label>Nombre de usuario: </label><input type="text" name="usuario" value="<?php if(isset($_POST["usuario"])){ echo $_POST["usuario"];} ?>"><br />
<label>Contraseña: </label><input type="password" name="password" value="<?php if(isset($_POST["password"])){ echo $_POST["password"];} ?>"><br />
<div class="submit">
<input type="submit" value="Entrar" name="enviar">
</form>
</div>
<?php
}
?>
No se si me explico o es parecido a lo que quieres hacer, he utilizado un ejemplo básico que quizás te puede servir.
Saludos.