PHP - problema con archivo php y conectar bases de datos

 
Vista:
Imágen de perfil de cesar
Val: 193
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

problema con archivo php y conectar bases de datos

Publicado por cesar (77 intervenciones) el 27/04/2019 18:31:57
El trabajo consiste en hacer un formulario y conectarse a la base la cual esta adjunta con 2 usuarios añadidos como se ve en el adjunto databasesql ,rar no tuve problema en hacer esto ni el formulario que debe tener 2 campos el cual esta adjunto con el nombre de index.html.rar

el problema se presenta con el php expuesto a continuación que presenta 3 notices y un error que no me dejan ejecutar el problema los cuales están al final del programa

lo que deseo es que se ejecute el programa y pueda correr el programa y conectarme a la base de datos y eliminar el error que da SQLSTATE[HY093] , si desean modificar el mismo se puede hacer sin modificar los campos del formulario email y password todo el programa php fue sacado de un sistema de login desde you tube el cual no presento errores de ningun tipo en su conexion

son libres de modificar cualquier cosa de la database menos sus usuarios estoy trabajando con xaamp

espero su ayuda


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
<?php
 
try{
 
    $base=new PDO("mysql:host=localhost; dbname=database"  ,  "root",  "");
 
    $base->setAttribute (PDO::ATTR_ERRMODE,  PDO::ERRMODE_EXCEPTION) ;
 
	$sql="SELECT  *  FROM  USUARIOS WHERE USUARIOS=  :Email AND PASSWORD=  :Password";
 
    $resultado =$base->prepare ($sql);
 
	$Email=htmlentities(addslashes($_POST["Email"]));
 
    $Password=htmlentities(addslashes($_POST["Password"])); 
 
    $resultado->bindValue(":Email", $Email);
 
    $resultado->bindValue(":PASSWORD", $PASSWORD);
 
    $resultado->execute();
 
    $numero_registro=$resultado->rowCount();
 
	if($numero_registro !=0) {
 
	    echo "<h2>ADELANTE!!</h2>";
 
	}else{
 
	   header ("location: index.php");
 
	}
 
}catch(Exception $e){
 
	die("Error:  "  . $e->getMessage() );
 
}

progama pho da los siguientes errores

Notice: Undefined index: Email in C:\xampp\htdocs\servidor\index.php on line 14 la linea dice $Email=htmlentities(addslashes($_POST["Email"]));

Notice: Undefined index: Password in C:\xampp\htdocs\servidor\index.php on line 16 que dice $Password=htmlentities(addslashes($_POST["Password"]));


Notice: Undefined variable: PASSWORD in C:\xampp\htdocs\servidor\index.php on line 20 que dice $resultado->bindValue(":PASSWORD", $PASSWORD);

y este ERROR
Error: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
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 Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

problema con archivo php y conectar bases de datos

Publicado por Alejandro (839 intervenciones) el 27/04/2019 19:07:40
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
1. Las variables $_POST['Email'] y $_POST['Password'] no existen. Esto puede ser por no especificar en tu formulario el method="post", porque ejecutas directamente el php sin que un formulario le envié información o tienes el formulario en el mismo php y no se ha enviado a si mismo.

2. La variable $PASSWORD no esta definida, PHP es sensible a mayúsculas y minúsculas ($PASSWORD != $Password).
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 cesar
Val: 193
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

problema con archivo php y conectar bases de datos

Publicado por cesar (77 intervenciones) el 27/04/2019 19:28:35
gracias por responder el formulario index.rar(333,0 B) esta anexo voy a pasartelo
por codigo
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
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>titulo</title>
 
</head>
 
<body>
<form action="index.php" method="post" >
 
<table>
<tr>
<td>Email:</td>
<td><input type="text" name="Email" ></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="Password" name="Password" ></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="enviar" value="ENVIAR"></td>
</tr>
</table>
</form>
</body>
</html>


ahi lo tienes ese fue el que hice tratare de conextarte potr chat
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 Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

problema con archivo php y conectar bases de datos

Publicado por Alejandro (839 intervenciones) el 27/04/2019 19:39:58
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Todo parece indicar que tienes el formulario junto con el código PHP
La primera vez que lo abres te da los Notices y al presionar ENVIAR, desaparecen los Notices

Necesitas evaluar si estas recibiendo información
1
2
3
4
5
6
7
8
<form action="index.php" method="post" >
...
</form>
 
<?php
if( isset($_POST) ){
      // Trabajas con las variables recibidas 
}
?>
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 cesar
Val: 193
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

problema con archivo php y conectar bases de datos

Publicado por cesar (77 intervenciones) el 27/04/2019 19:57:19
entonces debo enpezar con
<form action="index.php" method="post" >
...
</form>

asi empieza el formulario

1
2
3
<?php
 
if( isset($_POST) ){

// Trabajas con las variables recibidas esto lo pondria al final quedando asi
en quev lineas sigo donde esta el index casi al final o sea aqui

ARMANDOLO TODO CREO QUE QUEDA ASI

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
<form action="index.php" method="post" >
...
</form>
 
<?php
 
try{
 
$base=new PDO("mysql:host=localhost; dbname=database" , "root", "");
 
$base->setAttribute (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION) ;
 
$sql="SELECT * FROM USUARIOS WHERE USUARIOS= :Email AND PASSWORD= :Password";
 
$resultado =$base->prepare ($sql);
 
$Email=htmlentities(addslashes($_POST["Email"]));
 
$Password=htmlentities(addslashes($_POST["Password"]));
 
$resultado->bindValue(":Email", $Email);
 
$resultado->bindValue(":PASSWORD", $PASSWORD);
 
$resultado->execute();
 
$numero_registro=$resultado->rowCount();
 
<?php
 
if( isset($_POST) ){
// y que sigue a la { 
o pongo y termina la llave ahi
 
 
}
if($numero_registro !=0) {
 
echo "<h2>ADELANTE!!</h2>";
 
 
}else{
 
header ("location: index.php");
 
}
 
}catch(Exception $e){
 
die("Error: " . $e->getMessage() );

disculpe este tema me cuesta mucho
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 cesar
Val: 193
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

problema con archivo php y conectar bases de datos

Publicado por cesar (77 intervenciones) el 27/04/2019 21:11:47
amigo Error: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined el navegador da este error nada mas al ejecutar prueba que me pedistes me quedo en el chat mientras tanto
A lo otros amigos les digo que el amigo ALejandro corrigio el error 3 quedaron este error mencionado pendientes y 2 notices pero al conectarme a la base de datos solo dio el error SQLSTATE[HY093
en resumen
Notice: Undefined index: Email in C:\xampp\htdocs\servidor\index.php on line 14 la linea dice $Email=htmlentities(addslashes($_POST["Email"]));

Notice: Undefined index: Password in C:\xampp\htdocs\servidor\index.php on line 16 que dice $Password=htmlentities(addslashes($_POST["Password"]));

y este ERROR
Error: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
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 cesar
Val: 193
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

problema con archivo php y conectar bases de datos

Publicado por cesar (77 intervenciones) el 27/04/2019 22:58:56
alejandro estamos en las mismas
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
sin imagen de perfil
Val: 11
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

problema con archivo php y conectar bases de datos

Publicado por Luis (4 intervenciones) el 28/04/2019 19:00:23
Aquí esta la solución.

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
<?php
 
try{
 
    $base=new PDO("mysql:host=localhost; dbname=database"  ,  "root",  "");
 
    $base->setAttribute (PDO::ATTR_ERRMODE,  PDO::ERRMODE_EXCEPTION) ;
 
// Y aquí está la solución en tu consulta SELECT * FROM USUARIOS WHERE USUARIOS= :Email AND PASSWORD= :Password" en el //where el campo USUARIO no existe en la BD es email

	$sql="SELECT  *  FROM  USUARIOS WHERE EMAIL =  :Email AND PASSWORD =  :Password";
 
    $resultado =$base->prepare ($sql);
 
//Aqui estaba el error la funcion que estás usando es para cambiar caracteres especiales es decir htmlentities  
	$Email= filter_input(INPUT_POST,'email',FILTER_SANITIZE_STRING);
 
    $Password= filter_input(INPUT_POST,'password',FILTER_SANITIZE_STRING);
 
    $resultado->bindValue(":Email", $Email);
 
    $resultado->bindValue(":Password", $Password);
 
    $resultado->execute();
 
    $numero_registro=$resultado->rowCount();
 
	if($numero_registro !=0) {
 
	    echo "<h2>ADELANTE!!</h2>";
 
	}else{
 
	   header ("location: index.php");
 
	}
 
}catch(Exception $e){
 
	die("Error:  "  . $e->getMessage() );
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de cesar
Val: 193
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

problema con archivo php y conectar bases de datos

Publicado por cesar (77 intervenciones) el 28/04/2019 19:19:21
bueno espero de verdad esta sea la solucion para darle un buen reconocimiernto
$Email= filter_input(INPUT_POST,'email',FILTER_SANITIZE_STRING);

$Password= filter_input(INPUT_POST,'password',FILTER_SANITIZE_STRING);
estas dos lineas van o no las modificacion ayer
me imagino todo lo de mas sigue igual
ok antes de los resultados
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
sin imagen de perfil
Val: 11
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

problema con archivo php y conectar bases de datos

Publicado por Luis (4 intervenciones) el 28/04/2019 20:02:09
Cesar fijate bien linea por linea en el post te puse los comentarios en el codigo

// Y aquí está la solución en tu consulta SELECT * FROM USUARIOS WHERE USUARIOS= :Email AND PASSWORD= :Password" en el //where el campo USUARIO no existe en la BD es email

y aqui

//Aqui estaba el error la funcion que estás usando es para cambiar caracteres especiales es decir htmlentities

para que lo entiendas

prueba para que entiendas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de cesar
Val: 193
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

problema con archivo php y conectar bases de datos

Publicado por cesar (77 intervenciones) el 28/04/2019 22:00:21
SIGUERN LOS ERRORES AMIGO LUIS

mas errores pero ahora es el php que no abre el mensaje del usuario en google dio este error al marcar email y password en el navegador con el html
Esta página no funciona
La página localhost te ha redirigido demasiadas veces.
Borrar las cookies.
ERR_TOO_MANY_REDIRECTS
BORRE COOKIES Y NADA
PRUEBO EN FIREFOX Y NADA EL MENS QUE DA ES ESTE
LA PÁGINA NO ESTÁ REDIRIGIENDO ADECUADAMENTE

FIREFOX
HA DETECTADO QUE EL SERVIDOR ESTÁ REDIRIGIENDO LA SOLICITUD A ESTA DIRECCIÓN DE UNA MANERA EN LA QUE NUNCA TERMINARÁ.

ESTE PROBLEMA A VECES ESTÁ CAUSADO POR DESACTIVAR O RECHAZAR LA RECEPCIÓN DE COOKIES.

HTTP://LOCALHOST/SERVIDOR/INDEX.PHP ESTO ES LO QUE SALE ALLI EN LA BARRA IGUAL QUE AYER
UNA PREGUNTA EL XAAMPP DEBE ESTAR APAGADO NI PRENDIDO NI APAGADO DEJA DE DAR EL ERROR
PEDI PROROGA HASTA EL MARTES

tienes teamviewer o alquien de los expertos para teminar de solucionar esto
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 italo_pm
Val: 920
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

problema con archivo php y conectar bases de datos

Publicado por italo_pm (193 intervenciones) el 29/04/2019 18:13:53
Hola

escribes:

1
HTTP://LOCALHOST/SERVIDOR/INDEX.PHP ESTO ES LO QUE SALE ALLI EN LA BARRA IGUAL QUE AYER

ojo que tu file en el file rar se llama index.html

por comidad los files si trabajas con php, puedes llamarlos con extension .php (asi no tengan codigo php)

renombra de index.html a index.php tu file, y abrelo nuevamente:

1
LOCALHOST/SERVIDOR/index.php

por otra parte, podria darse el caso, que tengas el config del mysql con el case sensitive

esto es un error:

1
..... SELECT * FROM USUARIOS ......

ya que tu tabla se llama usuarios y no USUARIOS.

por otra parte tambien (como ya te indicaron) otro error es:

1
$sql="SELECT * FROM USUARIOS WHERE USUARIOS= :Email AND PASSWORD= :Password";

tu tabla se llama usuarios

y sus campos son:

1
2
3
4
`ID` int(11) NOT NULL,
  `NOMBRE` varchar(255) NOT NULL,
  `EMAIL` varchar(255) NOT NULL,
  `PASSWORD` varchar(255) NOT NULL

entonces,

1
USUARIOS= :Email

es un error, ya que usuarios es el nombre de la tabla y no del campo email, si deseas buscar por email debera quedar:

1
$sql="SELECT * FROM usuarios WHERE EMAIL = :Email AND PASSWORD = :Password";

para que funcione php y mysql XAMPP debe siempre estar activo y funcionando.

a todo esto, una de los errores principales es que no has probado la query en mysql. Te hubieras ahorrado tantos errores, asi como tambien si hubieras escrito el contenido de tus files en el tema y no adjuntandolos, seguramente hubieras recibido mas ayuda.

Si tienes errores, escribelos, tambien el codigo que has utlizado.

salud2.
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 cesar
Val: 193
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

problema con archivo php y conectar bases de datos

Publicado por cesar (77 intervenciones) el 29/04/2019 23:33:37
gracias por su comentarios ya eso esta resuelto hay nuevas observaciones
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 cesar
Val: 193
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

problema con archivo php y conectar bases de datos

Publicado por cesar (77 intervenciones) el 29/04/2019 23:42:20
amigo el profe me hizo estas observaciones en realidad es una que creo se resolver dice el
"En vez de muestre el mensaje bienbenido, tiene que mostrar el formulario de login que hiciste.

una vez muestre tu formulario:
Haz que si el usuario se logea correctamente, muestre el mensaje de "OK" y si no se logea correctamente muestre el mensaje de "KO""

Y YO LE RESPONDI LO QUE CREO MAS LOGICO
exacto el primero muestra entonces en vez de montar adelante debe mostrar OK y no adelante es la segunda parte la que no entiendo eso ira tengo la duda debe ser algo como
1
2
3
4
5
6
7
8
9
10
11
if($numero_registro !=0) {
 
    echo "<h2> "OK" </h2>";  //no pongo ADELANTE!! pongo ok 
 
}else{
 if($numero_registro =0) {
 
    echo "<h2> "KO" </h2>";
 
   header ("location: index.html");
}
es eso correcto es lo mas lógico el if normal y un else
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 cesar
Val: 193
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

problema con archivo php y conectar bases de datos

Publicado por cesar (77 intervenciones) el 30/04/2019 02:09:58
AQUI ES EL PROGRAMA CON EL OK INCLUIDO
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
<?php
 
try{
 
    $base=new PDO("mysql:host=localhost; dbname=database"  ,  "root",  "");
 
    $base->setAttribute (PDO::ATTR_ERRMODE,  PDO::ERRMODE_EXCEPTION) ;
 
	$sql="SELECT  *  FROM  usuarios WHERE EMAIL =  :Email AND PASSWORD =  :Password";
 
    $resultado =$base->prepare ($sql);
 
	$Email= filter_input(INPUT_POST,'email',FILTER_SANITIZE_STRING);
 
    $Password= filter_input(INPUT_POST,'password',FILTER_SANITIZE_STRING);
 
    $resultado->bindValue(":Email", $Email);
 
    $resultado->bindValue(":Password", $Password);
 
    $resultado->execute();
 
    $numero_registro=$resultado->rowCount();
 
	if($numero_registro !=0) {
 
	    echo "<h2> OK! </h2>";
 
	}else{
 
	   header ("location: index.html");
	}
 
}catch(Exception $e){
 
	die("Error:  "  . $e->getMessage() );
}

CREO EL PROBLEMA SE RESUELVE ASI

}else{
if($numero_registro =0) {

echo "<h2> "KO" </h2>";

header ("location: index.html");
}


FALTA RESOLVER SI ESTO ES CORRECTO
LO QUE quieren es que yo luego de poner en el formulario mi email y password que si yo pongo un dato incorrecto de ve salir la palabra KO

O SEA SI ESTE ES EL RAZONAMIENTO CORRECTO
}else{
if($numero_registro =0) {

echo "<h2> "KO" </h2>";


si no DONDE DEBO PONER EL KO SI EL USUARIO SE LOQUEA MAL???
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 cesar
Val: 193
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

problema con archivo php y conectar bases de datos

Publicado por cesar (77 intervenciones) el 30/04/2019 18:04:02
El profesor me hizo estas observaciones en realidad es una que creo se resolver dice el una vez muestre tu formulario: **Haz que si el usuario se logea correctamente, muestre el mensaje de "OK" **y si no se logea correctamente muestre el mensaje de "KO""****

El primero debe mostrar OK YA ESA parte esta corregida

1
2
3
4
5
6
7
8
if($numero_registro !=0) {
 
    echo "<h2> OK! </h2>";
 
}else{
 
   header ("location: index.html");
}
CREO EL PROBLEMA SE RESUELVE ASI

1
2
3
4
5
}else{ if($numero_registro =0) { echo "

"KO"
";
header ("location: index.html"); }

FALTA RESOLVER SI ESTO QUE YO PUSE EN MI RAZONAMIENTO ES ES CORRECTO o no y es mi pregunta
LO QUE quieren es que yo luego de poner en el formulario mi email y password que si yo pongo un dato incorrecto debe salir la palabra KO

}else{ if($numero_registro =0) { //aqui tampoco estoy seguro si va esto $numero_registro =0//

echo "<h2> "KO" </h2>";
header ("location: index.html"); }

****si mi razonamiento es incorrecto DONDE DEBO PONER EL KO en el programa SI EL USUARIO SE LOQUEA MAL???**** y que funcione FORMULARIO

titulo

Email: Password: COMENTARIOS el usuario debe poner Email: [email protected] Password: •••• aqui pondra 1234 que es la contraseña y segun el problema si me ponen por ejemplo

Email: [email protected] Password: 3456 como pasword debe aparecer KO ok donde ve eso en el programa php que mostro a continuacion para que me de el mensaje KO ????? esa es mi duda a contestar

el programa php ya corregido es este

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
try{
 
$base=new PDO("mysql:host=localhost; dbname=database" , "root", "");
 
$base->setAttribute (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION) ;
 
$sql="SELECT * FROM usuarios WHERE EMAIL = :Email AND PASSWORD = :Password";
 
$resultado =$base->prepare ($sql);
 
$Email= filter_input(INPUT_POST,'email',FILTER_SANITIZE_STRING);
 
$Password= filter_input(INPUT_POST,'password',FILTER_SANITIZE_STRING);
 
$resultado->bindValue(":Email", $Email);
 
$resultado->bindValue(":Password", $Password);
 
$resultado->execute();
 
$numero_registro=$resultado->rowCount();
 
if($numero_registro !=0) {
 
echo "<h2> OK! </h2>";
}else{
 
header ("location: index.html"); } }catch(Exception $e){
 
die("Error: " . $e->getMessage() ); }

agradezco su aYUDA INIFINITAMENTE
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