Foros del Web » Programando para Internet » PHP »

Problemas con login orientado a objetos

Estas en el tema de Problemas con login orientado a objetos en el foro de PHP en Foros del Web. Buenas a todos ! He conseguido entender un poco el MVC y ahora he conseguido hacer un registro , modificar , eliminar y consulta. Ahora ...
  #1 (permalink)  
Antiguo 15/02/2014, 06:22
 
Fecha de Ingreso: noviembre-2010
Mensajes: 156
Antigüedad: 13 años, 5 meses
Puntos: 0
Problemas con login orientado a objetos

Buenas a todos !

He conseguido entender un poco el MVC y ahora he conseguido hacer un registro , modificar , eliminar y consulta.

Ahora estoy en un pequeño problema y es que no consigo hacer la validacion del usuario.

Código PHP:
public function login($usuari){
        
$nombre $usuari->getEmail();
        
$password $usuari->getPassword() ;
        
$query "SELECT *FROM users WHERE email='".$nombre."' AND password='".$password."'";
$con = new mysqldb();        
        
$con->consulta($query);    
        echo 
$query;         
    } 
La consulta se realiza correctamente , pero la comprovacion no por donde empezar.
  #2 (permalink)  
Antiguo 15/02/2014, 16:52
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Respuesta: Problemas con login orientado a objetos

como sabes que la consulta es correcta por pueba puedes imprimir el valor introducido y por texto y el valor que obtienes de la base de datos...
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #3 (permalink)  
Antiguo 16/02/2014, 13:31
 
Fecha de Ingreso: noviembre-2010
Mensajes: 156
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problemas con login orientado a objetos

Hola a todos , he conseguido realizar el login correspondiente y he estado investigando en temas de seguridad y contraseñas.

De momento al hacer el registro utilizo crypt con Blowfish (es lo que he visto por aqui recomendado) y ahora llega mi dilema , ¿ como puedo hacer para comprobar la contrasseña de la base de datos ?

Cita:
if(mysql_num_rows( $res ) == 0 ){
// si es 0 filas, no hay usuario o password valido
echo "No";
return 0;
}else{
// de lo contrario se guarda en un arrar lo que devuelve la consulta
if( $reg = mysql_fetch_array( $res ) ){
echo "Si";
// se devuelve 1 para indicar que se logueo exitosamente
return 1;

}
}
Y tengo este ejemplo para comprobarlo , pero no entiendo que hacer el $passwordenBD allí.

Cita:
$passwordenBD = '$2a$07$yMoJrJpwEPrmVnZx4KIyNuOAiOMQksjkV1EW0YRgVe 33eYe/yT60y';
if( crypt('micontraseña', $passwordenBD) == $passwordenBD) {
echo 'Es igual';
}
No lo consigo configurar para que me acceda a la base de datos ! Saludos y gracias :D
  #4 (permalink)  
Antiguo 16/02/2014, 21:30
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Respuesta: Problemas con login orientado a objetos

ok si no lo hiciste tu estas en problemas, lo mejor es hacer y aprender...

te lo explico asi:


cuando usas haces un sistema de loggin y usas un sistema de base de datos la idea es la siguiente:

al registrar el usuario cojes la informacion basica nombre de usuario y contraselas

digamos que la contraseña es 123456, bueno no puedes guardar esto asi en tu base de datos por que seria muy facil de adivinar, para ese caso entonces se usa algo llamado salt o semilla.

salt o semilla es un complemento a la contraseña para hacer la robusta sin cambiar la contraseña del usuario


Código PHP:
Ver original
  1. $salt= "12986438517624jkshdfvgbuaysd98127634hjd";
  2. $Password = $POST[Password];

hora de encriptar:

Código PHP:
Ver original
  1. key=cript(hash, $salt.$Password)

guardas en la base de datos.

luego para el loggin haces lo mismo pero solo comparas

si la semilla+pasword escrito concuerda con el password guardado.
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #5 (permalink)  
Antiguo 17/02/2014, 07:41
 
Fecha de Ingreso: noviembre-2010
Mensajes: 156
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problemas con login orientado a objetos

Buenas de nuevo y gracias por responder , entonces que antes de hacer el login tengo k obtener el password encriptado y luego realizar la consulta no?

Verás
Cita:
public function login($llibre){
//recogemos las variables post del formulario
$nombre = $llibre->getEmail();
$password = $llibre->getPassword() ;
$segura =crypt( $password, salt);
//realizamos la consulta sql
$query = "SELECT *FROM users WHERE email='".$nombre."' AND password='".$segura."'";
//ejecutamos la consulta y guardamos el resultado en la variable resultado
$con = new mysqldb();
$con->consulta($query);
echo $query;
// se ejectua la consulta y se usa el metodo con de la clase class para la conexion, y se guarda en $res lo que devuelve la consulta
$res=mysql_query( $query, Conectar::con() );
$salt= "12986438517624jkshdfvgbuaysd98127634hjd";
if(crypt(salt.$segura)==salt.$segura) {
echo 'Es igual';
}else{
echo "Es diferente";
}

Lo mejor dentro de lo malo es que la consulta que visualizo , el password que se identifica es igual al password que hay dentro de la base de datos , así que supongo que lo que está mal es el comprobante, llevo tiempo dando vueltas a la cabeza y no consigo sacarlo.

Saludos!
  #6 (permalink)  
Antiguo 17/02/2014, 11:27
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Respuesta: Problemas con login orientado a objetos

repitamos esto es cuestión de detectar el problema:
1. si ves que no te funciona entonces imprime las variables paso a paso:

echo $nombre "<br>";
echo $password"<br>";
echo $salt "<br>";
echo $segura "<br>";

2. Error en esta linea: Salt no es una variable?? $
Código PHP:
Ver original
  1. $segura =crypt( $password, salt);

3. el orden es muy importante:

Código PHP:
Ver original
  1. public function login($llibre){
  2. //primero se declaran las variables internas preferiblemente Privadas para la funcion publica
  3. private $salt="12986438517624jkshdfvgbuaysd98127634hjd":
  4. //recogemos las variables post del formulario
  5. $nombre = $llibre->getEmail();
  6. $password = $llibre->getPassword() ;
  7. $segura =crypt(/*aquicolocas el hash de encriptar*/, $password.$salt);
  8. //realizamos la consulta sql
  9. $query = "SELECT * FROM users WHERE email='$nombre' AND password='$segura'"; //las variables usadas en el where combienen meterlas en comillas simples
  10. //ejecutamos la consulta y guardamos el resultado en la variable resultado
  11. $con = new mysqldb();  
  12. $con->consulta($query);
  13. //IMPORTANTE estas buscando * (Toda la informacion de un usuario) esto es un array verdad entonces donde lo guardas??
  14. echo $query; // no puedes imprimir un array asi
  15. // se ejectua la consulta y se usa el metodo con de la clase class para la conexion, y se guarda en $res lo que devuelve la consulta
  16. $res=mysql_query( $query, Conectar::con() ); //esto te devuelve el array??
  17.  
  18. //La comparacion para el loggin es
  19.  
  20. if($segura==$row[contraseña de la base de datos]) {
  21. echo 'Es igual';
  22. }else{
  23. echo "Es diferente";
  24. }
  25. /*--------------Revisa las malas practicas--------------------*/
  26.  
  27. if(crypt(salt.$segura)==salt.$segura) {
  28. echo 'Es igual';
  29. }else{
  30. echo "Es diferente";
  31. }

PD: estoy trabajando en un sistema de loggin similar
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #7 (permalink)  
Antiguo 17/02/2014, 12:12
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 2 meses
Puntos: 96
Respuesta: Problemas con login orientado a objetos

Como consejo, si estas usando poo es mejor que uses PdO o mysqli
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #8 (permalink)  
Antiguo 17/02/2014, 15:57
 
Fecha de Ingreso: noviembre-2010
Mensajes: 156
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problemas con login orientado a objetos

Hola a todos ! Si XsKarx

Lo que quiero comprobar es que me verifique la contrassenya , por supuesto , tengo pensado adaptarlo a mysqli (ya que es similar a mysql)y añadirle seguridad en los formularios (SQL Injections y XSS)

Pero poco a poco , primero con los conocimiento que tengo y luego ya iré modificando más , de momento eso.

Ahora lo pruebo todo !
  #9 (permalink)  
Antiguo 17/02/2014, 16:36
 
Fecha de Ingreso: noviembre-2010
Mensajes: 156
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problemas con login orientado a objetos

Buenas de nuevo , expondré mi código haber si me podeis ayudar con la identificadion de este tipo de claves.

Cuando hago el registro , este es la eencriptacion que hago

Cita:
<?php
function crypt_blowfish_bydinvader($password, $digito = 7) {
$set_salt = './1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmn opqrstuvwxyz';
$salt = sprintf('$2a$%02d$', $digito);
for($i = 0; $i < 22; $i++){
$salt .= $set_salt[mt_rand(0, 63)];
}
return crypt($password, $salt);
}
?>
Extraído de aquí http://www.dinvaders.com/como-encrip...guras-con-php/

Entonces el registro se inserta de una forma similar a este string.

$2a$07$JKNPc2jRrRg24kh4PHPBOuGBpctJFrZ5l2z/t45aSCUiEiId1rTya

$2a$07$wPjnquOqu6aQrH1wNWV4IuwCWueEo2/OV7nL2OJ/f9nKQk049qpxu

Vale ? Hasta ahi bien , ahora llega el momento del login.

Me falla en ese instante ... me funciona sin la encriptacion, pero encriptado no.
Cita:
public function login($usuari){
//recogemos las variables post del formulario
$email = $usuari->getEmail();
$password = $usuari->getPassword() ;
$segura =crypt(crypt, $password);
//realizamos la consulta sql
$query = "SELECT *FROM users WHERE email='".$email."' AND password='".$segura."'";
$password="SELECT password FROM users WHERE email = '".$email."'";
//ejecutamos la consulta y guardamos el resultado en la variable resultado
$con = new mysqldb();
$con->consulta($query);
echo $query;
$passwordenBD = '$2a$07$yMoJrJpwEPrmVnZx4KIyNuOAiOMQksjkV1EW0YRgVe 33eYe/yT60y';
// se ejectua la consulta y se usa el metodo con de la clase class para la conexion, y se guarda en $res lo que devuelve la consulta
$res=mysql_query( $query, Conectar::con() );
if($segura==$row['password']) {
echo 'A';
}else{
echo "B";
}
}

Última edición por jc1992; 17/02/2014 a las 16:41
  #10 (permalink)  
Antiguo 17/02/2014, 21:01
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Respuesta: Problemas con login orientado a objetos

mira estas haciendo las cosas al reves... nisiquiera viste el codigo que te deje.. nisiquieras dices que error te manda... nisiquiera prestas atencion... is vas por internet y cojes un codigo al azar y no te funciona es por que no lo estas implementando correctamente... no te puedo ayudar mas. si no usas el ejemplo que te di.


ORGANISA TU CODIGO... estas haciendo las cosas alreves.. eso es todo
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #11 (permalink)  
Antiguo 19/02/2014, 17:18
 
Fecha de Ingreso: noviembre-2010
Mensajes: 156
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problemas con login orientado a objetos

Buenas y perdón por las molestias , cuando te refieres /**Aqui va el has a encriptar */ a que te refieres?entiendo todo lo que has escrito y he quitado el array. He estado informandome y leyendo otros articulos y ahora lo veo más claro.

Pero la parte esa el hash que utilizas no es crypt? No lo utilizas ya anteriormente ? , me refiero a la linia siguiente :

$segura =crypt(/*aquicolocas el hash de encriptar*/, $password.$salt);

Cita:
public function login($llibre){
//*recogemos las variables post del formulario
$passwordenBD = '$2a$07$yMoJrJpwEPrmVnZx4KIyNuOAiOMQksjkV1EW0YRgVe 33eYe/yT60y';
$email = $llibre->getEmail();
$password = $llibre->getPassword() ;
$segura = crypt(/** colocas el hash a encriptar */,$password.$passwordenBD);
$query = "SELECT * FROM users WHERE email='$email' AND password='$segura'";
echo $query;
echo "<br>";
echo $segura;
$con = new mysqldb();
$con->consulta($query);
if(crypt($salt.$segura==$row['password'])){
echo "Si";
}else{
echo "No";
}

}
  #12 (permalink)  
Antiguo 19/02/2014, 19:05
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Respuesta: Problemas con login orientado a objetos

bueno te lo dejo asi:

Código PHP:
Ver original
  1. return crypt($input, sprintf([B]'$2a$%02d$'[/B] /*este es el hash que usas para encriptar*/, $pasword . $salt);

en otros claso tendrias que escribir sha-512 por ejemeplo... era a lo que me referia...
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #13 (permalink)  
Antiguo 26/02/2014, 06:21
 
Fecha de Ingreso: noviembre-2010
Mensajes: 156
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problemas con login orientado a objetos

Revivo el mismo tema porque he vuelto a empezar el login y esta vez lo he hecho desde 0 y lo entiendo perfectamente.

Pero hay en error que me dice : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1

Pero luego ejecuto la consulta correctamente en la base de datos, así que ahro estoy atascado aquí.

Cita:
public function login($usuario) {
$nif = $usuario->getNif();
$nombre = $usuario->getNom();
$query="SELECT * FROM users where email='$nif' and password='$nombre'";
echo $query;
/*$resultado = mysql_query($query);
$row = mysql_fetch_assoc($query);*/
$con = new mysqldb();
$con->connect();
$conexion = $con->proyecto($query);
$busqueda = mysql_query($conexion) or die("Error en: $query " . mysql_error());;
if($row=mysql_fetch_array($busqueda)){
echo "Bienvenido $nif $nombre";
}else{
echo "No ha iniciado la sesión correctamente";
}


}
Saludos!
  #14 (permalink)  
Antiguo 26/02/2014, 08:21
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Respuesta: Problemas con login orientado a objetos

el error que te da es un error de sintaxys de mySQL, no del php que muestras. pon la estructura de la tabla
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #15 (permalink)  
Antiguo 26/02/2014, 08:32
 
Fecha de Ingreso: noviembre-2010
Mensajes: 156
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problemas con login orientado a objetos

La respectiva consulta me la realiza bien en la base de datos, por eso me extraña que sea error de sintaxis , ahora muestro la tabla

  #16 (permalink)  
Antiguo 26/02/2014, 13:31
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Respuesta: Problemas con login orientado a objetos

no me muestres la base de datos necesito es la estructura el back up que muestra las key y demas...

este error es de mysql no de php:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #17 (permalink)  
Antiguo 27/02/2014, 03:32
 
Fecha de Ingreso: noviembre-2010
Mensajes: 156
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problemas con login orientado a objetos

Buenas otra vez !!

Así que quieres un backup de la tabla correspondiente? , este es el export de la tabla correspondiente ya que no tiene ninguna FK con ninguna otra tabla ni nada por el estilo.

Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `users` (
  2.   `id_usuario` int(2) NOT NULL AUTO_INCREMENT,
  3.   `email` varchar(600) NOT NULL,
  4.   `password` mediumtext NOT NULL,
  5.   PRIMARY KEY (`id_usuario`)
  #18 (permalink)  
Antiguo 27/02/2014, 11:15
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Respuesta: Problemas con login orientado a objetos

aunque no creo que sea eso, pero cambia la password mediumtext a TEXT

en esta seccion del codigo:

Código PHP:
Ver original
  1. $con = new mysqldb();  
  2. $con->connect();
  3. $conexion = $con->proyecto($query);
  4. $busqueda = mysql_query($conexion) or die("Error en: $query " . mysql_error());;

la conexion se realiza correctamente???


que te sale si imprimes los valores de :
Código PHP:
Ver original
  1. '$nif' and password='$nombre'
mandalos a imprimir por pantalla a penas los recibes...
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #19 (permalink)  
Antiguo 28/02/2014, 04:51
 
Fecha de Ingreso: noviembre-2010
Mensajes: 156
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problemas con login orientado a objetos

La consulta se ejecuta correctamente , el echo que hago siempre de prueba para probarlo , esa consulta la copio y se realiza en la base de datos.
  #20 (permalink)  
Antiguo 28/02/2014, 10:44
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Respuesta: Problemas con login orientado a objetos

ok solo hay algo que no veo... de donde obtienes o sacas el usuario contraseña y host y nombre de la base de datos?
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #21 (permalink)  
Antiguo 28/02/2014, 10:55
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Respuesta: Problemas con login orientado a objetos

yo hago esto:

Funciones GENERALES
Código PHP:
Ver original
  1. ///////////////////////////////////////////////////////////////////////////
  2. function error($dblink){ die ('Error de Conexión a la base de Datos. '.mysqli_error($dblink)); }//funcion Error php
  3. ///////////////////////////////////////////////////////////////////////////
  4. function conexion(){//Coneccion a la base de datos
  5.     $servidor   = 'localhost';
  6.     $usuario    = 'root';
  7.     $clave      = 'clave';
  8.     $basedatos  = 'dbname';
  9.     $dblink = mysqli_connect($servidor, $usuario, $clave);
  10.     $selected = mysqli_select_db($dblink,$basedatos);
  11.     if (!$selected) { error($dblink); }
  12.     $dblink->query("SET NAMES 'utf8'");
  13.     return $dblink;
  14. }
  15. ///////////////////////////////////////////////////////////////////////////
  16. function desconexion($dblink){//Desconexión base de datos
  17.     mysqli_close($dblink);
  18. }
  19. ///////////////////////////////////////////////////////////////////////////
  20. function filtro($sql){//busquedas en la BD
  21.     $dblink=conexion();
  22.     $datos = mysqli_query($dblink,$sql) or error($dblink);
  23.     desconexion($dblink);
  24.     return $datos;
  25. }
  26. ///////////////////////////////////////////////////////////////////////////
  27. function proximo($datos){//ordenar busquedas
  28.     $arreglo = mysqli_fetch_array($datos);
  29.     return $arreglo;
  30. }
  31. ///////////////////////////////////////////////////////////////////////////

Consulta PHP
Código PHP:
Ver original
  1. $sql="SELECT username,password FROM usuarios WHERE username = '$username'";
  2. $datos = filtro($sql);//ejecuto consulta
  3. $row = proximo($datos);//ejecuto el arreglo de la consulta anterior
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #22 (permalink)  
Antiguo 28/02/2014, 12:05
 
Fecha de Ingreso: noviembre-2010
Mensajes: 156
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problemas con login orientado a objetos

Buenas y gracias , he adaptado tu código..quieres saber de donde saco la conexión? Hago un required de del archivo siguiente.

Probando el tuyo , no me da ningún error , pero no me dice si ha iniciado o no la ha iniciado, hay que indicar con algún return ese dicho suceso ?

Cabe decir que de lo que me has pasado hago un require

Código PHP:
Ver original
  1. require_once("interface_db.php");
  2. class mysqldb implements interface_db{
  3.     private $server;
  4.     private $username;
  5.     private $password;
  6.     private $dbname;
  7.     private $link;
  8.    
  9.       public function __construct(){
  10.         $this->setServer('localhost');
  11.         $this->setUsername('usuario');
  12.         $this->setPassword('usuario');     
  13.     }
  14.        
  15.     public function getServer(){
  16.         return $this->server;
  17.     }
  18.  
  19.     public function setServer($value){
  20.         $this->server = 'localhost';
  21.     }
  22.    
  23.     public function getUsername(){
  24.         return $this->username;
  25.     }
  26.  
  27.     public function setUsername($value){
  28.         $this->username = 'usuario';
  29.     }
  30.    
  31.     public function getPassword(){
  32.         return $this->password;
  33.     }
  34.  
  35.     public function setPassword($value){
  36.         $this->password = 'usuario';
  37.     }
  38.    
  39.     public function getDbname(){
  40.         return $this->dbname;
  41.     }
  42.  
  43.     public function setDbname($value){
  44.         $this->dbname = $value;
  45.     }
  46.    
  47.     public function connect()   {
  48.    
  49.         $this->link=mysql_connect($this->getServer(),$this->getUsername(),$this->getPassword());           
  50.         if (!$this->link) {
  51.             die('Error, could not connect: ' . mysql_error());
  52.         }              
  53.         return $this->link;
  54.     }
  55.    
  56.     public function bd($database){
  57.         $this->dbname = mysql_select_db('projecte', $this->link);
  58.         if (!$this->dbname) {
  59.             die ('Error, can\'t use database: ' . mysql_error());
  60.         }
  61.     }
  62.     /**Cerrar conexión**/
  63.     public function close() {
  64.         return mysql_close($this->link);
  65.     }
  66.     /**Retornar mensaje de error**/
  67.     public function error() {
  68.         return mysql_error($this->link);
  69.     }
  70.     /**Devolver mensaje numérico**/
  71.     public function errno(){
  72.       $error2 = mysql_errno($this->link);
  73.       return $error2;
  74.      
  75.    }
  76.  
  77.     public function projecte($query){      
  78.         $con= $this->connect();
  79.         $this->bd('projecte');
  80.         return mysql_query($query, $con) or die('Hola k ase : '.$this->error());
  81.     }
  82.    
  83.    
  84. }
  #23 (permalink)  
Antiguo 28/02/2014, 12:40
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Respuesta: Problemas con login orientado a objetos

normalmente cuando hago un loggin y es correcto lo puedes guardar o en una cookies o una variable de sesiion

Código PHP:
Ver original
  1. $_SESSION['Logueado']="si"

luego cuando sea necesario saber si nicio sesion preguntas si la variable existe y si su valor es = a si...

otro consejo:
Código PHP:
Ver original
  1. public function getServer(){
  2.         return $this->server;
  3.     }
  4.  
  5.     public function setServer($value){
  6.         $this->server = 'localhost';
  7.     }
  8.    
  9.     public function getUsername(){
  10.         return $this->username;
  11.     }
  12.  
  13.     public function setUsername($value){
  14.         $this->username = 'usuario';
  15.     }


como que hace el codigo molesto... no puedes crear una solo funcion publica que reja los get que vienen ??? y los filtre limpie y zanitice???
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB

Etiquetas: login, mysql, objetos, orientado, registro, select
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 11:17.