Hola.
Estoy peleandome con un script que tengo para regenerar una contraseña por si el usuario la olvida, y no soy capaz de arreglarlo.
Me da error 500
Script:
Función grnerar contraseña:
La demas funciones no las pongo por que las estoy utilizando en otros scripts y me funcionan bien.
Alguien ve donde esta el error?.
Gracias
Un saludo
Estoy peleandome con un script que tengo para regenerar una contraseña por si el usuario la olvida, y no soy capaz de arreglarlo.
Me da error 500
Script:
include ("configuracion.php");
include ("funciones.php");
$error="";
$usuario=limpiar($_POST['usuario']);
if(empty($usuario) || !validar_nombre($usuario)){
$error.="<b>El Nombre Esta Vacio, Es Menor Ha 4 Caracteres O Contiene Espacios.</b><br>";
}
//conexion base de datos
if(!$conexion=mysql_connect($server, $db_user, $db_pass)){
echo "No se pudo conectar con mysql porque ".mysql_error();
exit;
}
//seleccionar base datos
if(!mysql_select_db($database)){
echo "No se pudo seleccionar la base de datos porque ".mysql_error();
exit;
}
//comprobar usuario en la BBDD
$check = "select * from $table where username = '".mysql_real_escape_string($usuario)."';";
$result=mysql_query($check);
while ($row=mysql_fetch_array($result)){
$username = $row['username'];
}
//Comparo username de bbdd con usuario
if(comparar_cadena($username,$usuario)){
$error.="<b>Tu Antigua Contraseña No Coincide.</b><br>";
}
if($error==""){
//Creo e Inserto nuevo password en BBDD
if(generar_contrasena());{
$error.="<b>El Nombre De Usuario No Existe.</b<br>";
}
$contrasenagenerada = md5($contrasena);
mysql_query("UPDATE $table SET password = '$contrasenagenerada'
WHERE username = '$username'");
}else{
echo "No Ha Sido Posible Cambiar la contraseña, Pulse <a href='javascript:history.go(-1)'><b>Aqui</b></a> Para Corregir Los Siguientes Errores<br><br>";
echo "Ocurrieron Los Siguientes Errores:<br><br>".$error;
exit;
}
//selecionar tabla
$consulta=mysql_real_escape_string("select * from $table WHERE username='$username'");
$resultado=mysql_query($consulta) or die ("No se pudo seleccionar tabla porque ".mysql_error());
if($datos=mysql_fetch_array($resultado)){
$para=$datos['email'];
$titulo='Tu Contraseña';
$mensaje="Hola $username \n\n";
$mensaje.="Pedido De Recuperacion De Contraseña\n";
$mensaje.="La solicitud se hizo para volver a enviar su contraseña a esta dirección, si no has solicitado este pedido contraseña,
por favor informe al administrador del sitio web \n\n";
$mensaje.="Su contraseña es: ".$contrasena"\n";
if(!isset($SERVER_NAME)){$SERVER_NAME=$_SERVER['SERVER_NAME'];}
$uniq_id = md5(uniqid(time());
$cabeceras .= "MIME-Version: 1.0\r\n";
$cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n";
$cabeceras .= "Message-ID: <$uniq_id@$SERVER_NAME>\r\n";
$cabeceras .= "From: No Responder<[correo eliminado]>\r\n";
$cabeceras .= "To: $username<$para>\r\n";
if(mail($para,$titulo,$mensaje,$cabeceras)){
echo "Un Correo electrónico se ha enviado con éxito a su dirección del correo electrónico con su contraseña olvidada, por favor permita un tiempo al correo electrónico para llegar..<br><br><a href=\"identificarse.html\">Identificarse</a>";
echo "<b>IMPORTANTE: No Olvides Cambiar Tu Contraseña En Tu Perfil Cuando La Hayas Recibido</b>";
}else{
echo "Error al tratar de enviar tu contraseña, intenta otra vez.";
}
}Función grnerar contraseña:
/*Generar contraseña aleatoria*/
function generar_contrasena($tam=7,$may=FALSE)
{
//El tamaño por defecto es 7 para una longitud de 8,
//Tamaño Mínimo
$min=7;
//Tamaño Máximo
$max=14;
if($may === FALSE)
{
$cadena='0123456789abcdefghijklmnopqrstuvwxyz';
}
else
{
$cadena='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
}
if(($tam >= $min)&&($tam <=$max))
{
//Generación aleatoria segun sea mayuscula o minuscula.
for($i=0;$i<=$tam;$i++)
{
//Guardamos en un arreglo.
$pila[]=$cadena{rand(0,25)};
}
//Desordenamos el arreglo.
shuffle($pila);
//Mostramos la contraseña
foreach($pila as $letra => $contrasena)
{
echo $contrasena;
}
}
}La demas funciones no las pongo por que las estoy utilizando en otros scripts y me funcionan bien.
Alguien ve donde esta el error?.
Gracias
Un saludo