PHP - Error al conectar a bbdd con poo

 
Vista:

Error al conectar a bbdd con poo

Publicado por sam (185 intervenciones) el 25/03/2015 19:13:28
Hola amigos a ver si me pueden ayudar con esto , no se donde esta el fallo la verdad:

Tengo un codigo que me permite conectarme a un bbdd mysql mediante clases.

pero me da este error:

" Undefined variable: con " ---- on line 30
y

"Fatal error: Call to a member function con() on a non-object " ----on line 30

Si me pudieran ayudar les estaria muy agradecido:

miren este es el codigo:

archivo 1--- conexion.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Conectar
{
 
    private $servidor = 'localhost';
    private $usuario = 'root';
    private $pass = '';
    private $basedatos = 'bbdd_login';
 
 
    //CONECTAMOS A LA BASE DE DATOS
 
    public function con()
 
    {
        $con = mysqli_connect($this->servidor, $this->usuario, $this->pass, $this->basedatos) or
        die ('Lo siento pero no conecta a la BBDD');
 
        return $con;
    }
 
} //fin de Conectar


archivo 2---class_login.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php session_start();
 
require_once("conexion.php");
 
 
class LoginUsuario
 
    {
        public function Sesion()
 
        {
            //recogemos las variables post del formulario
            $email = $_POST['email'];
            $password = $_POST['password'];
 
            $query = "SELECT * FROM admin
            WHERE email='".strip_tags($email)."' AND password='".strip_tags($password)."';";
 
 
                $con = new Conectar();
                $con->con();
 
                $resultado = mysqli_query($query, $con->con()) or die ('Lo siento pero no se inserta en BBDD' . mysqli_error($con));
                return $resultado;
 
 
            if ($reg=mysql_num_rows($resultado) == 0)
 
                {
                    header("Location:nueva_sesion.php?tipo_error=no_existe");
                }
 
                else
 
            if($reg=mysql_fetch_array($resultado))
 
                {
                    $_SESSION['nick'] = $reg['nombre'];
                    header("Location:logueado.php");
                }
 
        } //fin de Sesion
 
    } //fin de class blog
 
 
$loginUsuario = new LoginUsuario();
 
if (isset($_POST['grabar']) and $_POST['grabar']=='si')
{
    $loginUsuario->Sesion();
}else{
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Error al conectar a bbdd con poo

Publicado por xve (6935 intervenciones) el 25/03/2015 23:22:05
Hola Sam, yo creo que esto no esta del todo bien...

1
2
3
$con = new Conectar();
$con->con();
$resultado = mysqli_query($query, $con->con()) or die ('Lo siento pero no se inserta en BBDD' . mysqli_error($con)); return $resultado;

Prueba haciendolo así:
1
2
3
$con = new Conectar();
$link=$con->con();
$resultado = mysqli_query($query, $link) or die ('Lo siento pero no se inserta en BBDD' . mysqli_error($con)); return $resultado;

Entiendo que es aquí donde tienes el error, verdad?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error al conectar a bbdd con poo

Publicado por sam (185 intervenciones) el 26/03/2015 09:42:48
Hola xve, que tal, mira he hecho lo que me has indicado y ahora me dice esto:



"Warning: mysqli_query() expects parameter 1 to be mysqli, string given in--------on line 55"

"Warning: mysqli_error() expects parameter 1 to be mysqli, object given in---------on line 55"

"Lo siento pero no se inserta en BBDD"



Es como si , sí , conectara en la base de datos pero como que no insertara en bbdd los datos del email y el password.

Y no entiendo por que no inserta ¿?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error al conectar a bbdd con poo

Publicado por sam (185 intervenciones) el 26/03/2015 11:08:00
Hola de nuevo xve, mira mejor quedate con esta actualizacion del problema , ya que lo he avanzado mas.

Le he puesto unos "echo" y eso, mira:


archivo 1 llamado, conexion.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Conectar
{
    public $servidor = 'localhost';
    public $usuario = 'root';
    public $pass = '';
    public $basedatos = 'bbdd_login';
 
    //CONECTAMOS A LA BASE DE DATOS..................................................................
 
    public static function con()
    {
        $con = mysqli_connect($this->servidor, $this->usuario, $this->pass, $this->basedatos) or
        die ('Lo siento pero no conecta a la BBDD');
 
        return $con;
    }
 
} //fin de Conectar


archivo 2, llamado class_login.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
session_start();
 
require_once("conexion.php");
 
class LoginUsuario
{
 
    public function Sesion()
    {
        echo "has conectado a bbdd</br>";
        //recogemos las variables post del formulario
        $email = $_POST['email'];
        $password = $_POST['password'];
 
        echo $query = "SELECT * FROM admin
        WHERE email='".strip_tags($email)."' AND password='".strip_tags($password)."';";
 
            $con = new Conectar();
            $link=$con->con();
 
            $resultado = mysqli_query($query, $link) or die ('Lo siento pero no se inserta en BBDD' . mysqli_error($link));
            return $resultado;
 
    } //fin de Sesion
 
} //fin de class LoginUsuario


Y el error que me lanza es:

" has conectado a bbdd "

" SELECT * FROM admin WHERE email='[email protected]' AND password='ejemplo123'; "

" Fatal error: Using $this when not in object context in------conexion.php on line 33 "


Pero es que la conexion tal come esta ya la utilizo asi para otras clases que tengo y me interesaria mas adaptar el

archivo class_login.php a esta conexion.php, que modificar el archivo conexion.php.


Pero no se que falla.

un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Error al conectar a bbdd con poo

Publicado por xve (6935 intervenciones) el 26/03/2015 12:10:16
Cual es la linea 33 del archivo conexion.php??? lo que nos has mostrado no tiene 33 lineas¿?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error al conectar a bbdd con poo

Publicado por sam (185 intervenciones) el 26/03/2015 12:24:43
Disculpa , jeje ,mira es la linea que dice:

$con = mysqli_connect($this->servidor, $this->usuario, $this->pass, $this->basedatos) or
die ('Lo siento pero no conecta a la BBDD');


pero como digo este archivo deconexion me va bien para otras clases que tengo.

Si tocara estas lineas tendria que readaptar las otras clases.


Imagino que tiene que ser una tonteria por lo que el archivo class_login.php no hace lo que debe

pero lo he intentando todo , hasta donde se hacer y nada :-(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error al conectar a bbdd con poo

Publicado por sam (185 intervenciones) el 27/03/2015 12:56:07
xve, echame un cable please se me han agotado todas las ideas, y estoy muy perdido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Error al conectar a bbdd con poo

Publicado por xve (6935 intervenciones) el 27/03/2015 19:11:07
Si haces un:
1
echo $this->servidor, $this->usuario, $this->pass, $this->basedatos;

Que te devuelve?
Ese error que comentas, no se muy bien a que se debe...¿?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar