Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/04/2012, 16:29
lubtufano
 
Fecha de Ingreso: julio-2011
Mensajes: 220
Antigüedad: 12 años, 9 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