Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/03/2011, 06:48
arperez
 
Fecha de Ingreso: julio-2005
Mensajes: 26
Antigüedad: 18 años, 9 meses
Puntos: 0
Pregunta Respuesta: Error en Sistema de recuperación de contraseña.

Estimado(a)s

Aqui esta el código completo de la pagina process.php les puse un aviso con doble barra invertida ( // ) para que sepan donde esta la linea 159.

Código PHP:
<?
/**
 * Process.php
 * 
 * la tarea de esto es prosesar la info del usuario
 * y redirecionarlo al lugar correcto
 * tambien prosesa errores
 *
 * Login System By lil fino
 * Creado el 5 de abril del 2010
 * Mantenga esta noticia intacta
 * por futuras actualizaciones
*/
include("include/session.php");

class 
Process
{
   
/* Class constructor */
   
function Process(){
      global 
$session;
     
/*user puso el login form */
      
if(isset($_POST['sublogin'])){
         
$this->procLogin();
      }
      
/* User puso la rejistracion */
      
else if(isset($_POST['subjoin'])){
         
$this->procRegister();
      }
      
/* User puso que olvideo la contrasena */
      
else if(isset($_POST['subforgot'])){
         
$this->procForgotPass();
      }
      
/* User puso editir cuenta */
      
else if(isset($_POST['subedit'])){
         
$this->procEditAccount();
      }
      
/**
       * la unica razon por la cual el usuario sera 
       * redirecionado aqui es por que quiere salirse
       */
      
else if($session->logged_in){
         
$this->procLogout();
      }
      
/**
       * si no deveria estar aqui sera redirecionado a la pagina principal
       */
       
else{
          
header("Location: main.php");
       }
   }

   
/**
    * procLogin - prosesa la informacion que puso el usuario
    * para iniciar seccion y su ubo algun error sera redirecionado
    */
   
function procLogin(){
      global 
$session$form;
      
/* Login attempt */
      
$retval $session->login($_POST['user'], $_POST['pass'], isset($_POST['remember']));
      
      
/* Login susesivamente */
      
if($retval){
         
header("Location: ".$session->referrer);
      }
      
/* Login fallo */
      
else{
         
$_SESSION['value_array'] = $_POST;
         
$_SESSION['error_array'] = $form->getErrorArray();
         
header("Location: ".$session->referrer);
      }
   }
   
   
/**
    * procLogout - Simplemente saca el usuario del systema
    */
   
function procLogout(){
      global 
$session;
      
$retval $session->logout();
      
header("Location: main.php");
   }
   
   
/**
    * procRegister - Procesa lo que aiga puesto el usuario
    * si se encuentran errores el usuario es redirecionado a correjirlos.
    */
   
function procRegister(){
      global 
$session$form;
      
/* Convert username to all lowercase (by option) */
      
if(ALL_LOWERCASE){
         
$_POST['user'] = strtolower($_POST['user']);
      }
      
/* intento de rejistracion */
      
$retval $session->register($_POST['user'], $_POST['pass'], $_POST['email']);
      
      
/* Registracion susesivamente */
      
if($retval == 0){
         
$_SESSION['reguname'] = $_POST['user'];
         
$_SESSION['regsuccess'] = true;
         
header("Location: ".$session->referrer);
      }
      
/* Error encontrados en el formulario */
      
else if($retval == 1){
         
$_SESSION['value_array'] = $_POST;
         
$_SESSION['error_array'] = $form->getErrorArray();
         
header("Location: ".$session->referrer);
      }
      
/* intento rejistracion fallo */
      
else if($retval == 2){
         
$_SESSION['reguname'] = $_POST['user'];
         
$_SESSION['regsuccess'] = false;
         
header("Location: ".$session->referrer);
      }
   }
   
   
/**
    * procForgotPass - Valida el nombre de usuario y si todo esta bien
    * una nueva contrasena es generada
    * y se mandara un correo al usuario 
    */
   
function procForgotPass(){
      global 
$database$session$mailer$form;
      
/* Username error checking */
      
$subuser $_POST['user'];
      
$field "user";  //Use field name for username
      
if(!$subuser || strlen($subuser trim($subuser)) == 0){
         
$form->setError($field"* Username not entered<br>");
      }
      else{
         
/* se asegura que el nombre este en la base de datos */
         
$subuser stripslashes($subuser);
         if(
strlen($subuser) < || strlen($subuser) > 30 ||
            !
eregi("^([0-9a-z])+$"$subuser) ||
            (!
$database->usernameTaken($subuser))){
            
$form->setError($field"* Username does not exist<br>");
         }
      }
      
      
/* existe un error, que el usuario los corrija */
      
if($form->num_errors 0){
         
$_SESSION['value_array'] = $_POST;
         
$_SESSION['error_array'] = $form->getErrorArray();
      }
      
      else{
         
/* Genera nueva contrasena */
         
$newpass $session->generateRandStr(8);
         
         
/* agarra el correo del usuario */
         
$usrinf $database->getUserInfo($subuser);
         
$email  $usrinf['email'];
         
         
/* manda el correo con la nueva contrasena */
         
if($mailer->sendNewPass($subuser,$email,$newpass)){
            
/* correo enviado, actualiza la base de datos */
            
$database->updateUserField($subuser"password"md5($newpass));
            
$_SESSION['forgotpass'] = true;
         }
         
/* correo fallo, no cambiara la contrasena */
   
else{ // LINEA 159, AQUI ES DONDE ESTA EL ERROR QUE DICE!!!
            
$_SESSION['forgotpass'] = false;
         }
      }
      
      
header("Location: ".$session->referrer);
   }
   
   
/**
    * procEditAccount - edita la cuenta del usuario incuyendo la 
    * contrasena la cual sera verificada antes de cambiar
    */
   
function procEditAccount(){
      global 
$session$form;
      
/* intentando editir la cuenta */
      
$retval $session->editAccount($_POST['curpass'], $_POST['newpass'], $_POST['email']);

      
/* edicion susesivamente */
      
if($retval){
         
$_SESSION['useredit'] = true;
         
header("Location: ".$session->referrer);
      }
      
/* ubo un error */
      
else{
         
$_SESSION['value_array'] = $_POST;
         
$_SESSION['error_array'] = $form->getErrorArray();
         
header("Location: ".$session->referrer);
      }
   }
};

/* Inicia el proseso */
$process = new Process;

?>
Espero que me puedan ayudar.

Saludos.