Foros del Web » Programando para Internet » PHP »

Recargar formulario

Estas en el tema de Recargar formulario en el foro de PHP en Foros del Web. Buenas tardes Chicos tengo una duda, me pueden colaborar por favor Tengo este login el cual funciona muy bien, sin embargo necesito que cuando el ...
  #1 (permalink)  
Antiguo 25/04/2012, 13:48
 
Fecha de Ingreso: noviembre-2010
Mensajes: 204
Antigüedad: 13 años, 5 meses
Puntos: 1
Recargar formulario

Buenas tardes

Chicos tengo una duda, me pueden colaborar por favor

Tengo este login el cual funciona muy bien, sin embargo necesito que cuando el usuario del formulario se equivoque, el formulario se recargue nuevamente despues de colocar el mensaje de error.

No he logrado que me funcione

El codigo que estoy utilizando es el siguiente:

<?php

if (isset($_POST['submitted'])) {

if ((!empty($_POST['email'])) && (!empty($_POST['password']))) {

if ((strtolower($_POST['email']) == '[email protected]') && ($_POST['password'] == 'testpass')) {

session_start();
$_session['email'] = $_POST['email'];
$_session['loggedin'] = time();

ob_end_clean();
header ('location: welcome.php');
exit();

}else{ //equivocacion 1

print '<p>No combinan la clave ni el password <br/> go back and try again<p>';

}

}else{ //equivocacion 2

print '<p>debe entrar correo y password <br/> go back and try again<p>';

header("location:index-1.php");


}

}else{

print '<form action="index-1.php" method="post">
<p>email addres:<input type="text" name="email" size="20" /></p>
<p>password:<input type="password" name="password" size="20" /></p>
<p><input type="submit" name="submit" value="Log In!" /></p>
<p><input type="hidden" name="submitted" value="true" />
</form>';

}

?>

Gracias

Isabel
  #2 (permalink)  
Antiguo 25/04/2012, 16:29
 
Fecha de Ingreso: julio-2011
Mensajes: 220
Antigüedad: 12 años, 8 meses
Puntos: 72
Respuesta: Recargar formulario

Lo que sucede es que no esta permitido poner instrucciónes print, printf, echo, etc. antes de poner el header es por eso que nunca va a redirigir despues de mostrar el mensaje de error.

print '<p>debe entrar correo y password <br/> go back and try again<p>';

header("location:index-1.php");


Lo que se acostumbra hacer es recargar el formulario mostrando al inicio de la página el mensaje de error, para esto no se necesita redireccionar con header basta con usar las condicionales if que ya existen, esta puede ser una manera.

Código PHP:
Ver original
  1. <?php
  2.  
  3. $formulario= '<form action="index-1.php" method="post">
  4. <p>email addres:<input type="text" name="email" size="20" /></p>
  5. <p>password:<input type="password" name="password" size="20" /></p>
  6. <p><input type="submit" name="submit" value="Log In!" /></p>
  7. <p><input type="hidden" name="submitted" value="true" />
  8. </form>';
  9.  
  10. if (isset($_POST['submitted'])) {
  11.  
  12. if ((!empty($_POST['email'])) && (!empty($_POST['password']))) {
  13.  
  14. if ((strtolower($_POST['email']) == '[email protected]') && ($_POST['password'] == 'testpass')) {
  15.  
  16. $_session['email'] = $_POST['email'];
  17. $_session['loggedin'] = time();
  18.  
  19. header ('location: welcome.php');
  20. exit();
  21.  
  22. }else{ //equivocacion 1
  23.  
  24. print '<p>No combinan la clave ni el password <br/> go back and try again<p>';
  25. print $formulario;
  26.  
  27. }
  28.  
  29. }else{ //equivocacion 2
  30.  
  31. print '<p>debe entrar correo y password <br/> go back and try again<p>';
  32. print $formulario;
  33.  
  34. }
  35.  
  36. }else{
  37.  
  38. print $formulario;
  39.  
  40. }
  41.  
  42. ?>

Última edición por lubtufano; 25/04/2012 a las 16:36

Etiquetas: formulario, usuarios
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 13:02.