Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/10/2012, 06:37
cheterporras2
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 12 años, 6 meses
Puntos: 2
Pregunta mostrar error php en misma página

Hola!!!

Tengo un mini formulario donde el usuario, si ha olvidado su contraseña, ponga su nombre de usuario y se le envíe a su correo, otra contraseña diferente. La cuestión es que si hay error, se muestra por un echo en la misma página, aunque claro, esta se muestra en blanco, sólo con el mensaje del echo. Lo que me gustaría es que dicho mensaje apareciera en la pantalla anterior (donde está el formulario), debajo del mismo en color rojo o algo parecido.No quiero mostrarlo como alert, eso sé hacerlo. ¿Cómo se podría hacer?, ¿tengo que recurrir obligatoriamente a AJAX? Lo digo porque no tengo ni idea de Ajax... Este sería básicamente mi código:
Código PHP:
 <?php
    
include("conexion.php"); $link Conectarse (); // incluímos los datos de acceso a la BD
    
if(isset($_POST['enviar'])) { // comprobamos que se han enviado los datos del formulario
        
if(empty($_POST['usuario'])) {
            echo 
"No ha ingresado el usuario.";
        }else {
            
$usuario mysql_real_escape_string($_POST['usuario']);
            
$usuario trim($usuario);
            
$sql mysql_query("SELECT usuario, contrasenna, email FROM usuarios WHERE usuario='".$usuario."'");
            if(
mysql_num_rows($sql)) {
                
$row mysql_fetch_assoc($sql);
                
$num_caracteres "10"// asignamos el número de caracteres que va a tener la nueva contraseña
                
$nueva_clave substr(md5(rand()),0,$num_caracteres); // generamos una nueva contraseña de forma aleatoria
                
$usuario $row['usuario'];
                
$contrasenna $nueva_clave// la nueva contraseña que se enviará por correo al usuario
                
$usuario_clave2 md5($contrasenna); // encriptamos la nueva contraseña para guardarla en la BD
                
$email $row['email'];
                
// actualizamos los datos (contraseña) del usuario que solicitó su contraseña
                
mysql_query("UPDATE usuarios SET contrasenna='".$usuario_clave2."' WHERE usuario='".$usuario."'");
                
// Enviamos por email la nueva contraseña
                
$remite_nombre "tuweb.com"// Tu nombre o el de tu página
                
$remite_email "tuweb.com"// tu correo
                
$asunto utf8_decode("Recuperación de contraseña"); // Asunto (se puede cambiar)
                
$mensaje "Se ha generado una nueva contraseña para el usuario <strong>".$usuario."</strong>. <br>La nueva contraseña es: <strong>".$contrasenna."</strong>";
                 
$cabeceras "From: tuweb.com \r\n";
                 
$cabeceras .= "Reply-To: tuweb.com \r\n";
                 
$cabeceras $cabeceras."Content-Type: text/html; charset=utf-8\r\n"
                
$enviar_email mail($email,$asunto,$mensaje,$cabeceras);
                if(
$enviar_email) {
                    echo 
"La nueva contraseña ha sido enviada al email asociado al usuario ".$usuario.".";
                }else {
                    echo  
"No se ha podido enviar el email."
                }
            }else {
                echo 
"El usuario <strong>".$usuario."</strong> no está registrado."
            }
        }
    }else {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="X-UA-Compatible" content="IE=9" /> 
<title>Documento sin título</title>
<style type="text/css">
#apDiv1 {
    position:absolute;
    width:1024px;
    height:768px;
    overflow: hidden;
    z-index:2;
    }
#apDiv2 {
    position:absolute;
    width:1024px;
    height:190px;
    background-color:#FFF;
    z-index:1;
    }
#apDiv3 {
    position:absolute;
    left:9px;
    top:190px;
    width:238px;
    height:577px;

    z-index:1;
}
#apDiv4 {
    position:absolute;
    left:239px;
    top:190px;
    width:541px;
    height:400px;
    background-color:#FFF;
    z-index:1;
}
#apDiv5 {
    position:absolute;
    top:190px;
    width:200px;
    height:200px;
    background-color:#FFF;
    z-index:3;
    }
#apDiv6 {
    position:absolute;
    left:794px;
    top:190px;
    width:238px;
    height:577px;
    z-index:1;
}
</style>
<link href="cuerpo.css" rel="stylesheet" type="text/css" />
</head>
<body class="fondo">
   
   
    

    <form action="<?=$_SERVER['PHP_SELF']?>" method="post">
    <div id="apDiv1">
    <div id="apDiv2"><img src=""; /></div>
    
      <div id="apDiv3"></div>
      <div id="apDiv4">
      <br>
      <p style="text-align:center";>Introduce tu nombre de usuario y te enviaremos una nueva contraseña a tu email.</p>
      <div id="apDiv5" class="centradiv">
      <label>Usuario:</label><br />
        <input type="text" name="usuario" id="usuario" /><br />
        <input type="submit" name="enviar" value="Enviar" enctype="multipart/form-data"  />
        </div>
      </div>
      <div id="apDiv6"></div>
        </div>
</form>
</body>
</html>
<?php
    
}
?>