Foros del Web » Programando para Internet » PHP »

Script para recuperar Clave desde una BD

Estas en el tema de Script para recuperar Clave desde una BD en el foro de PHP en Foros del Web. Bueno aqui dejo esto aqui pero me genera lo siguiente: Parse error: syntax error, unexpected $end in /home/ga000941/public_html/site/recuperar.php on line 94 registro2.php Formulario que envia ...
  #1 (permalink)  
Antiguo 02/08/2011, 08:07
 
Fecha de Ingreso: febrero-2007
Ubicación: Caracas
Mensajes: 148
Antigüedad: 17 años, 1 mes
Puntos: 6
Script para recuperar Clave desde una BD

Bueno aqui dejo esto aqui pero me genera lo siguiente:
Parse error: syntax error, unexpected $end in /home/ga000941/public_html/site/recuperar.php on line 94


registro2.php
Formulario que envia info , y lo envia como correo

Código:
<form id="recupera" name="recupera" method="post" action="recuperar.php">
      <table width="290" height="106" border="0">
        <tr>
          <td height="30" colspan="2">Olvido su clave?</td>
        </tr>
        <tr>
          <td height="14">Nombres:</td>
          <td><input name="nombres" type="text" id="nombres" value="" size="30" /></td>
        </tr>
        <tr>
          <td height="14">E-Mail:</td>
          <td height="14"><input name="email" type="text" id="email" maxlength="45" /></td>
        </tr>
        <tr>
          <td colspan="2"><input type="submit" value="Enviar" name="Submit" id="Submit" /></td>
        </tr>
      </table>
    </form>
recuperar.php
Código PHP:
<?php
$data_root 
$_SERVER[DOCUMENT_ROOT];
include (
$data_root "/site/sec/funciones.php");//Llamada de la BD

header("Content-Type: text/html;charset=utf-8");
if (isset(
$_POST['Submit'])) { 
$nombreusuario=$_POST['nombres'];
$emailusuario=$_POST['email']; 
 
 
if (
mysql_num_rows($res)==0) { 
   
$res=mysql_query("SELECT FROM registro WHERE nombres='$nombreusuario' AND email='$emailusuario'");
// Si no existe, datos incorrectos y fin del proceso y volvemos al formulario de recuperacion
 
header("Location:formulario.php"); 

}else { 
// Si existe, buscamos en la bd 
$res=mysql_query("SELECT * FROM registro WHERE nombreusuario='$nombreusuario' AND emailusuario='$emailusuario'");
$row=mysql_fetch_assoc($res); 
$claveusuario=$row['claveusuario']; 
}   

foreach (
$_POST as $campo=>$str){
$valor_campo strip_tags("$str");                    // (1) quitamos probable html de los campos
$valor_campo trim("$valor_campo");                // removemos epacios sobrantes al inicio y final de las lineas
$$campo =  $valor_campo ;                        // !!! creamos una variable por cada nombre del campo del form
//echo "$campo<br>";

if ($valor_campo == ""){
$mensaje_error .= "El campo <b>$campo</b> es de uso obligatorio<br />";
$error 1;
}
}

if (!empty(
$emailusuario)){
## advertir que 2,4 --> para aceptar nuevos dominios (.info, etc)
$control_mail="^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$";
if(!
eregi($control_mail,$emailusuario)){
$mensaje_error .= "La <b>sintáxis de tu email</b> no es válida<br />\n";
$error 1;
}
}


if (
$error == 1){

$salida_errores= <<< HTML
Se han producido los siguientes errores:<br /><br />
$mensaje_error
<br />

HTML;
echo 
$salida_errores;
exit;
}else{

$texto strip_tags("$comentario");        

//agregamos algunas header o cabeceras para tratar de evitar que nuestro correo sea interpretado como spam
$header 'From: [email protected] '" \r\n";
$header .= 'Reply-to: [email protected] '" \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain; charset=utf-8";
##### agregado x emprear
$asunto "Recuperaci&oacute;n de su clave";
$contenido "
Estimado(a) cliente $nombres , su clave es: $claveusuario

Motivo de la recomendación
$texto

**********************************************************************
Por vavor no respondas este mensaje, si no conoces el origen.

La administración de www.cross-home.com

"
;

$mail mail($email,$asunto,$contenido,$header);

if (
$mail){
echo 
"Gracias.  $nombres";
}else{
echo 
"Error al enviar. Podría haber problemas con el servidor, intente más tarde por favor";
}
}
?> 
 <script type="text/javascript">
 
 location.href="http://www.cross-home.com/site/"; 

  
</script>
  #2 (permalink)  
Antiguo 02/08/2011, 08:14
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 2 meses
Puntos: 128
Respuesta: Script para recuperar Clave desde una BD

Hola Anna Carolina, el mensaje unexpected $end se debe a que falta el cierre de una llave vi de una manera rápida tú código y creo que tiene varías falencias, como :

Código PHP:
Ver original
  1. if (mysql_num_rows($res)==0)
  2.     {
  3.        $res=mysql_query("SELECT FROM registro WHERE nombres='$nombreusuario' AND email='$emailusuario'");
  4.         // Si no existe, datos incorrectos y fin del proceso y volvemos al formulario de recuperacion
  5.          header("Location:formulario.php");
  6.     }

Desde donde obtienes el valor de la query ? además que quieres seleccionar , por que lo tienes así:

Código PHP:
Ver original
  1. "SELECT FROM registro WHERE nombres='$nombreusuario' AND email='$emailusuario'"

Lo cuál no selecciona ningún campo, saludos
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #3 (permalink)  
Antiguo 02/08/2011, 09:21
 
Fecha de Ingreso: febrero-2007
Ubicación: Caracas
Mensajes: 148
Antigüedad: 17 años, 1 mes
Puntos: 6
Respuesta: Script para recuperar Clave desde una BD

Código:
<?php
$data_root = $_SERVER[DOCUMENT_ROOT];
include ($data_root . "/site/sec/funciones.php");//Llamada de la BD
    $nombreusuario=$_POST['nombres'];
    $emailusuario=$_POST['email'];
if (mysql_num_rows($res)==0) { 
     
 // Si existe, buscamos en la bd 
$res=mysql_query("SELECT * FROM usuarios WHERE nombres='$nombreusuario' AND email='$emailusuario'");
$row=mysql_fetch_assoc($res); 
$claveusuario=$row['password']; 

}else { 
    ?>
      <script type="text/javascript">
              location.href="http://www.cross-home.com/site/registro2.php"; 
       </script>
    <?php
}   
  

	
foreach ($_POST as $campo=>$str){
$valor_campo = strip_tags("$str");					// (1) quitamos probable html de los campos
$valor_campo = trim("$valor_campo");				// removemos epacios sobrantes al inicio y final de las lineas
$$campo =  $valor_campo ;						// !!! creamos una variable por cada nombre del campo del form
//echo "$campo<br>";

if ($valor_campo == ""){
$mensaje_error .= "El campo <b>$campo</b> es de uso obligatorio<br />";
$error = 1;
}
}

if (!empty($emailusuario)){
## advertir que 2,4 --> para aceptar nuevos dominios (.info, etc)
$control_mail="^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$";
if(!eregi($control_mail,$emailusuario)){
$mensaje_error .= "La <b>sintáxis de tu email</b> no es válida<br />\n";
$error = 1;
}
}


if ($error == 1){

$salida_errores= <<< HTML
Se han producido los siguientes errores:<br /><br />
$mensaje_error
<br />

HTML;
echo $salida_errores;
exit;
}else{

$texto = strip_tags("$comentario");		

//agregamos algunas header o cabeceras para tratar de evitar que nuestro correo sea interpretado como spam
$header = 'From: [email protected] '. " \r\n";
$header .= 'Reply-to: [email protected] '. " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain; charset=utf-8";
##### agregado x emprear
$asunto = "Recuperación de su clave";
$contenido = "
Estimado(a) cliente $nombres , su clave es: $claveusuario

Motivo de la recomendación
$texto

**********************************************************************
Por vavor no respondas este mensaje, si no conoces el origen.

La administración de www.cross-home.com

";

$mail = mail($email,$asunto,$contenido,$header);

if ($mail){
echo "Gracias.  $nombres";
}else{
echo "Error al enviar. Podría haber problemas con el servidor, intente más tarde por favor";
}
}
?> 
 <script type="text/javascript">
 
 location.href="http://www.cross-home.com/site/"; 

  
</script>
Me envia el correo, pero no toma el valor de la BD, y me genera un error en la lineas 6 y 10.

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/ga000941/public_html/site/recuperar.php on line 6

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/ga000941/public_html/site/recuperar.php on line 10
Gracias. ANna Carolina

Voy a ver otro codigo que tenga por alli que me consulte bien , ya que esta sentecnias no me da el resultado que quiero.
  #4 (permalink)  
Antiguo 02/08/2011, 10:36
 
Fecha de Ingreso: febrero-2007
Ubicación: Caracas
Mensajes: 148
Antigüedad: 17 años, 1 mes
Puntos: 6
Respuesta: Script para recuperar Clave desde una BD

Funciona pero me envia un correo si el email se encuentra dentro de la tabla registro y si no se encuentra tambien me envie un correo pero si clave.

Código PHP:
<?php
$data_root 
$_SERVER[DOCUMENT_ROOT];
include (
$data_root "/site/sec/funciones.php");//Llamada de la BD
    
$nombreusuario=$_POST['nombres'];
    
$emailusuario=$_POST['email'];
    
$sql mysql_query("SELECT * FROM registro WHERE nombres='$nombreusuario' AND email='$emailusuario'");
if(
$row mysql_fetch_array($sql)){
    
$nombreusuario=$row['nombres'];
    
$claveusuario=$row['password'];

 
// Si existe, buscamos en la bd 

}else { 
    
?>
      <script type="text/javascript">
              location.href="http://www.cross-home.com/site/registro2.php"; 
       </script>
    <?php
}   
  

    
foreach (
$_POST as $campo=>$str){
$valor_campo strip_tags("$str");                    // (1) quitamos probable html de los campos
$valor_campo trim("$valor_campo");                // removemos epacios sobrantes al inicio y final de las lineas
$$campo =  $valor_campo ;                        // !!! creamos una variable por cada nombre del campo del form
//echo "$campo<br>";

if ($valor_campo == ""){
$mensaje_error .= "El campo <b>$campo</b> es de uso obligatorio<br />";
$error 1;
}
}

if (!empty(
$emailusuario)){
## advertir que 2,4 --> para aceptar nuevos dominios (.info, etc)
$control_mail="^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$";
if(!
eregi($control_mail,$emailusuario,$nombreusuario)){
$mensaje_error .= "La <b>sintáxis de tu email</b> no es válida<br />\n";
$error 1;
}
}


if (
$error == 1){

$salida_errores= <<< HTML
Se han producido los siguientes errores:<br /><br />
$mensaje_error
<br />

HTML;
echo 
$salida_errores;
exit;
}else{

$texto strip_tags("$comentario");        

//agregamos algunas header o cabeceras para tratar de evitar que nuestro correo sea interpretado como spam
$header 'From: [email protected] '" \r\n";
$header .= 'Reply-to: [email protected] '" \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain; charset=utf-8";
##### agregado x emprear
$asunto "Recuperación de su clave";
$contenido "
Estimado(a) cliente $nombreusuario , su clave es:  $claveusuario

Motivo de la recomendación
$texto

**********************************************************************
Por vavor no respondas este mensaje, si no conoces el origen.

La administración de www.cross-home.com

"
;

$mail mail($email,$asunto,$contenido,$header);

if (
$mail){
echo 
"Gracias.  $nombres";
}else{
echo 
"Error al enviar. Podría haber problemas con el servidor, intente más tarde por favor";
}
}
?> 
<script type="text/javascript">
              location.href="http://www.cross-home.com/site/registro2.php"; 
</script>

Etiquetas: clave, html, mysql, recuperar, registro, sql, formulario, variables, 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 10:37.