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
}
?>