PHP - me dice error Notice: Undefined variable: conexion in C:\xampp\htdocs\deportes\LoginPHP\verificar.ph

 
Vista:

me dice error Notice: Undefined variable: conexion in C:\xampp\htdocs\deportes\LoginPHP\verificar.ph

Publicado por roberto mendoza (3 intervenciones) el 29/02/2020 15:49:47
que tal tengo una duda me dice que tengo error en la conexion pero ya valide las conexiones y estan bien conectadas

Notice: Undefined variable: conexion in C:\xampp\htdocs\deportes\LoginPHP\verificar.php on line 5

Fatal error: Uncaught Error: Call to a member function query() on null in C:\xampp\htdocs\deportes\LoginPHP\verificar.php:5 Stack trace: #0 {main} thrown in C:\xampp\htdocs\deportes\LoginPHP\verificar.php on line 5


les comparto los archivos

verificar.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
 
@include ("configuracion.php");
if (isset($_POST['login'])) {
    $query = $conexion->query(" SELECT idusuarios FROM usuarios WHERE password='$password' and usuario='$usuario'");
 
    while ($result = $query->fetch_object()) {
        if (!empty($result)) {
            $_SESSION['password'] = $row['usuario'];
            header('location:admin.php');
        } else {
            echo '<div class="alert alert-warning" role="alert">Datos incorrectos!</div>';
        }
    }
}



conexion.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if(isset($_POST['enviar'])) {
    include ("configuracion.php");
    $conexion = new mysqli ($server,$user,$pass,$bd);
 
if (!$conexion) {
 
    $msg="Conexión imposible. Revise las credenciales de conexión";
} else {
 
    $usuario=!empty($_POST['usuario']) ? $_POST['usuario'] : NULL;
    $password=!empty($_POST['password']) ? $_POST['password'] : NULL;
    $repassword=!empty($_POST['repassword']) ? $_POST['repassword'] : NULL;
 
 
    $nombre=!empty($_POST['nombre']) ? $_POST['nombre'] : NULL;
    $correo=!empty($_POST['correo']) ? $_POST['correo'] : NULL;
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 Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

me dice error Notice: Undefined variable: conexion in C:\xampp\htdocs\deportes\LoginPHP\verificar.ph

Publicado por Julio (830 intervenciones) el 29/02/2020 16:48:53
Hola.

Te dice claramente que no existe la variable $conexion en la línea 5 de verificar.php. Intuyo que necesitas un include ('conexion.php') en verificar.php, porque si no es así no veo dónde le pasas esa variable a ese archivo.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
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

me dice error Notice: Undefined variable: conexion in C:\xampp\htdocs\deportes\LoginPHP\verificar.ph

Publicado por roberto mendoza (3 intervenciones) el 29/02/2020 16:52:29
y lo agrege
1
2
@include ("conexion.php");
@include ("configuracion.php");
pero la variable conexion se supone que las declaro dentro de conexion.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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<?php
    /*
        Usamos un orden lógico:
        sin esta condición no haría falta la conexión
        por eso incluimos todo lo propio si se cumple este if
	*/
 
    if(isset($_POST['enviar'])) {
        include ("configuracion.php");
        $conexion = new mysqli ($server,$user,$pass,$bd);
        /*
            Aunque el Manual de PHP lo pone como ejemplo
            no conviene mostrar mensajes internos de la base de datos
            es mejor verificar la conexión y mostrar un mensaje personalizado
            Con if (!$conexion) preguntamos "si no se pudo conectar"
        */
        if (!$conexion) {
            /*
                Usaremos una variable que recoja lo que haya ocurrido
                y al final imprimimos esa variable
            */
            $msg="Conexión imposible. Revise las credenciales de conexión";
        } else {
            /*
                Vamos a optar por un poco de claridad:
                mediante operadores ternarios verificaremos los datos del POST
                y al mismo tiempo los guardaremos en variables
                luego usaremos esas variables
            */
            $usuario=!empty($_POST['usuario']) ? $_POST['usuario'] : NULL;
            $password=!empty($_POST['password']) ? $_POST['password'] : NULL;
			$repassword=!empty($_POST['repassword']) ? $_POST['repassword'] : NULL;
 
            /*
                Intentas insertar una variable $nombre
                que no parece estar declarada
                imagino que está en el POST, por eso la defino aquí
                Considera si esta variable es también condición o no para el if
                que verifica si los datos fueron llenados
            */
            $nombre=!empty($_POST['nombre']) ? $_POST['nombre'] : NULL;
			$correo=!empty($_POST['correo']) ? $_POST['correo'] : NULL;
 
            if($usuario && $password && $repassword && $nombre) {
                $sql = 'SELECT * FROM usuarios';
                /*
                    Usaremos el estilo orientado a objetos de mysqli
                    que es el que usaste para crear la conexión
                    Además es un estilo más claro que el procedural
                    Puedes revisar las diferencias en el Manual de PHP
                */
                $rec = $conexion->query($sql);
                /*
                    Es mejor usar un booleano directamente
                */
                $verificar_usuario = FALSE;
                /*
                     No es correcta la lógica que estás siguiendo,
                     porque obtienes todos los usuarios para luego ver si
                     alguno de ellos es igual a $_POST['usuario']
                     sería mejor hacer una consulta del tipo
                     SELECT * FROM usuarios WHERE usuario = $_POST['usuario']
                     Dado que esto implicaría aplicar consultas preparadas y demás
                     te lo pongo en este comentario para que consideres modificar tu lógica
                     Uno de los problemas aquí es que si hay un millón de usuarios
                     tu consulta traería ese millón de usuarios a memoria
                     para luego buscar entre ese millón si está el usuario buscado
                     cuando lo puedes traer sólo a él con un WHERE ....
                */
                 while($result = $rec->fetch_object()) {
                    if($result->usuario == $usuario) {
                        $verificar_usuario = TRUE;
                        /*
                             En caso de seguir con esta lógica, lo cual es ilógico
                             habría que salir del bucle con break cuando la condición se cumpla
                             sino seguirá leyendo las otras filas sin necesidad
                        */
                            break;
                    }
                }
            /*
                Esto también es un poco raro ...
                las claves en PHP deberían verificarse de otro modo,
                pero ese es otro capítulo
            */
if(!$verificar_usuario) {
 
if($password == $repassword) {
	/*
		NOTA SOBRE LA SEGURIDAD: Esta consulta
		es vulnerable a ataques de Inyección SQL
		considera informarte sobre el tema y usar consultas preparadas
	*/
	$sql = "INSERT INTO usuarios (nombre,correo,usuario,password) VALUES
				('$nombre','$correo','$usuario','$password')";
	/*
		Verificamos si la consulta es exitosa
		y si el número de filas afectadas es mayor que 0
		condición que verifica una inserción real
	*/
		if ($conexion->query($sql) && $conexion->affected_rows > 0) {
		echo '<script type="text/javascript">
		alert("Usted se ha registrado correctamente.");
		window.location.href="index.php";
		</script>';
 
 
 
	} else {
		$msg="Error en la inserción";
	}
} else {
	$msg="Las claves no son iguales, intente nuevamente.";
}
} else {
/*
	No se entiende mucho esta parte de la lógica ¿?
*/
$msg="Este usuario ya ha sido registrado anteriormente.";
}
 
} else {
$msg="Por favor llene todos los campos. Faltan datos en el POST";
}
}
 
} else {
$msg="";
}
/*
Al final imprimimos $msg
*/
echo $msg;




como podria declararla perdon
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 Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

me dice error Notice: Undefined variable: conexion in C:\xampp\htdocs\deportes\LoginPHP\verificar.ph

Publicado por Julio (830 intervenciones) el 29/02/2020 16:59:40
¿Qué? ¿Cómo? Entre tanto código y texto me he perdido, no sé para quién son las anotaciones.

¿Qué necesitas declarar?

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
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

me dice error Notice: Undefined variable: conexion in C:\xampp\htdocs\deportes\LoginPHP\verificar.ph

Publicado por roberto mendoza (3 intervenciones) el 29/02/2020 17:32:07
necesito crear un login de usuario ya que el registro de usuario ya me lo ejecuta bien
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 Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

me dice error Notice: Undefined variable: conexion in C:\xampp\htdocs\deportes\LoginPHP\verificar.ph

Publicado por Julio (830 intervenciones) el 29/02/2020 17:37:40
Sí, eso lo he visto al principio. Pero decías que tenías un error de que no estaba definida la variable $conexion, y yo te he comentado que creo que era porque no habías incluido el archivo donde dicha variable se definía.

Y ahí ya me he perdido con todo lo demás que has puesto. No sé si te ha ido bien o no, o qué te sucede ahora. Lo siento.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
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