Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

donde esta el error en esta funcion?

Estas en el tema de donde esta el error en esta funcion? en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hola gente que tal, miren la cosa es que esta funcion tiene que cambiar la clave de usuario de la base de datos, y lo ...
  #1 (permalink)  
Antiguo 01/06/2010, 16:21
 
Fecha de Ingreso: octubre-2009
Mensajes: 42
Antigüedad: 14 años, 6 meses
Puntos: 1
donde esta el error en esta funcion?

hola gente que tal, miren la cosa es que esta funcion tiene que cambiar la clave de usuario de la base de datos, y lo hace, el problema es que no logra sortear el if(!resultado) y el error que se describe alli, pero como dije antes, si me fijo en la base de datos la actualización se ha llevado a cabo y sin problemas, lo he revisado y no le encuentro la vuelta... alguna sugerencia?
desde ya muchas gracias
saludos
Código PHP:
 function resetear_clave($usrname)
        {
            
$cadena"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";

            for(
$i=0$i<9$i++)
            {
                
$contrase&#241;a.= substr($cadena, mt_rand(0, 62), 1);
            
}

            try
            {
                
$actualizar"update usuario set clave= '$contraseña' where nombUsuario= '$usrname'";
                
$resultado$this-> base-> consultar($actualizar);

                if(
$resultado!= TRUE)
                {
                   throw new 
Exception("<b>ERROR::</b> Tu clave no se ha podido midificar, intenta nuevamenta mas tarde.");
                }
                else
                {
                    echo 
"Tu clave ha podido modificarse correctamente";//return $contraseña;
                
}
            }
            catch (
Exception $e)
            {
                
$msg$e-> getMessage();
                echo 
$msg;
                exit();
            }
        }

public function 
consultar($consulta)//usar esta func en caso de una petición mas específica a la base
            
{
                    
$this->resultado= @mysql_query($consulta);

                    if(!
$this->resultado)
                    {
                            throw new 
Exception('<b>ERROR::</b>No se ha podido realizar la peticion.<br>');
                            exit();
                    }
                    if(
ereg("^[sS]",$consulta))
                    {
                        if (
strstr($consulta,"correo"))
                        {
                            if(
mysql_num_rows($this->resultado)==0)
                            {
                                throw new 
Exception("Tu contraseña no ha podido modificarse, intenta nuevamente mas tarde.");
                            }
                        }
                        if(
mysql_num_rows($this->resultado)>0)
                        {
                            throw new 
Exception('<b>ERROR::</b>El ususario que intenta registrar ya existe.<br>');
                            exit();
                        }
                    }
                    if(
ereg("^[uU]"$consulta))
                    {
                        return 
TRUE;
                    }
            } 

Última edición por mag55; 02/06/2010 a las 12:19
  #2 (permalink)  
Antiguo 01/06/2010, 16:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: donde esta el error en esta funcion?

el problema radica entonces en el método consultar() ya que entonces no devuelve un valor lógico relativo a la consulta...

¿que hay y que hace dicho método??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 01/06/2010, 17:17
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 94
Antigüedad: 14 años
Puntos: 2
Respuesta: donde esta el error en esta funcion?

Hola:

Prueba con la siguiente linea y cambia en tu codigo:

Código PHP:
 $actualizar"update usuario set clave= '".$contrasena."' where nombUsuario= '".$usrname."'"

y seria bueno que pongas tu funcion consultar ya que me imagino debe de retornar algo no??

Saludos,
  #4 (permalink)  
Antiguo 01/06/2010, 21:59
 
Fecha de Ingreso: octubre-2009
Mensajes: 42
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: donde esta el error en esta funcion?

perdon no me habia dado cuenta que tenia que agregar la funcion consultar y agradezco sus respuestas, daniko voy a probar lo que me decis aunque las variables pasan su contenido sin problemas a la funcion consultar, el punto es que cuando se retorna de la funcion consultar a la funcion resetear y se hace la pregunta if(!$resultado) ahi parece que no hubiese pasado los valores pero no es asi ya que en la base de datos las modificaciones si se llevan a cabo pero bueno vere que pasa... saludos y gracias
  #5 (permalink)  
Antiguo 01/06/2010, 22:09
 
Fecha de Ingreso: octubre-2009
Mensajes: 42
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: donde esta el error en esta funcion?

no daniko lo probe y no me dio resultado seguire intentando a ver donde puede estar este condenado probleba que solo me retrasa pero igual gracias
  #6 (permalink)  
Antiguo 01/06/2010, 22:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: donde esta el error en esta funcion?

si analizas tu método de consultar() no está devolviendo resultado alguno.... y es necesario para poder evaluar la condición con la que tienes problemas... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 02/06/2010, 07:25
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 94
Antigüedad: 14 años
Puntos: 2
Respuesta: donde esta el error en esta funcion?

Hola:

Efectivamente para que puedas hacer la condicional tu funcion consultar tiene que retornar algo y no lo esta haciendo, trata de ver eso y nos comentas.

Saludos
  #8 (permalink)  
Antiguo 02/06/2010, 12:15
 
Fecha de Ingreso: octubre-2009
Mensajes: 42
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: donde esta el error en esta funcion?

hola daniko, hola paquete, si tenian razon lo que hice fue pasar un resultado mediante estas ultimas lineas en la funcion consultar

Código PHP:
 if(ereg("^[uU]"$consulta))
                    {
                        return 
TRUE;
                    } 
y en la funcion resetear_clave puse

Código PHP:
if($resultado!= TRUE
Tambien coloque una sentencia try catch que antes no estaba en resetar_clave y que coresponde a un control(throw new exception) que se da en la funcion consultar

Voy a corregir esto en el codigo que escribi primero por si a algien le sirve...pero les tengo una consulta es debido en parte a esto, yo empece un curso de video tutoriales y en vez de seguirlos al pie de la letra quise directamente meterme con OOP en PHP, de hecho lo estoy haciendo como pueden ver, el concepto lo tengo mas o menos claro y antes de meterme estuve leyendo e investigando bastante pero lo cierto es que a la hora de programar OOP la cosa no es tan facil de hecho como veran en mi codigo no esta del todo ordenado, alo que quiero llegar ya que algo entiendo de esto(claro que soy un simple principiante) me convendria pasarme a por ejemplo un cake o zend o symfomy o calquiera sea el framework o seguir hasta tener un poco mas claro todo lo que es php, si bien se que es mucho, o podria ir viendo las dos cosas por separado, es decir por ejemplo hacer un ejercicio(programar) cualquiera en un framework cualquiera sea este y hacer lo mismo pero utilizando solo php ustedes que opinan?
saludos y gracias

Última edición por mag55; 02/06/2010 a las 12:26
  #9 (permalink)  
Antiguo 02/06/2010, 14:37
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 94
Antigüedad: 14 años
Puntos: 2
Respuesta: donde esta el error en esta funcion?

Hola mag55:

El mundo de PHP es fascinante y la POO tambien lo es, efectivamente teniendo claro los conceptos de esta programacion seria bueno que uses un framework y yo me inclinaria por ZEND, es una framework muy bueno y aprenderas muchas cosas ya que te facilitará mucho trabajo.

http://framework.zend.com/

Saludos,
  #10 (permalink)  
Antiguo 03/06/2010, 08:23
 
Fecha de Ingreso: octubre-2009
Mensajes: 42
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: donde esta el error en esta funcion?

hola daniko gracias por responder, me olvide de comentar que yo ya empece a ver un poco cake porque consegui unos videotutoriales, pero lo que quiero hacer es una vez que los termine cambiarme a zend, es decir desde un principo tenia la idea de comenzar directamente con zend pero como consegui estos videotutoriales es castellano pues decidi comenzar con cake y una vez saber lo basico pasarme a zend, pero con respecto a la otra pregunta sigo con la programacion de php sin framework a la vez que hago otro proyecto por separado para compreder el funcionamiento de los framewors o derectamente me concentro en usar frameworks calquiera sea

disculpen este tipo de preguntas lo que pasa es que si bien son tontas quiero orientarme bien tengame paciancia muchachos

saludos y gracias
  #11 (permalink)  
Antiguo 05/06/2010, 11:50
 
Fecha de Ingreso: marzo-2010
Ubicación: Lima, Perú
Mensajes: 136
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: donde esta el error en esta funcion?

Holas,

tambien esoty empezando con esto d la POO, me parece algo mas practico siempre y cuando tu aplicacion lo requiera.

por cierto evita el uso de variables dificultosas $contraseña, usa $password.

con javascripts puedes hacer para que solo introdusca letras y numeros y yo no lo tengas que validar en php.

Saludos

Etiquetas: funcion
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 19:18.