PHP - problema php parte final

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

problema php parte final

Publicado por cesar (36 intervenciones) el 30/04/2019 18:43:10
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
if($numero_registro !=0) {
 
echo "<h2> OK! </h2>";


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

****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: cesar@gmail.com Password: •••• aqui pondra 1234 que es la contraseña y segun el problema si me ponen por ejemplo

Email: juan@gmail.com 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 FORMULARIO del problema es este 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
<!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>


y el el programa php ya corregido objeto del problema 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
31
32
<?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() ); }

agradezco su aYUDA INIFINITAMENTE
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 cesar
Val: 109
Ha disminuido su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

problema php parte final

Publicado por cesar (36 intervenciones) el 01/05/2019 18:22:30
VEO CON PREOCUPACION QUE NADIE RESPONDE MI PREGUNTA Y ME URGE LAS RESPUESTA

creo aqui tenemos la respuesta sacado de un google
1
2
3
4
//Si existe el usuario lo va a redireccionar a la pagina de Bienvenida.
 if($nr == 1){
   header ("Location:bienvenido.php");
 }   // ESTA ES NUESTRA SITUACION

1
2
3
4
5
6
7
8
9
//Si no existe lo va a enviar al login otra vez. EL CASO QUE NOS OCUPA
else if($nr <= 0) {     //yo pòndria debajo 
echo "<h2> KO! </h2>";
               header("Location:index.html");
 }
 }
 else{
 echo $conexion->error;
 }

tenemos que adaptar esta situacion al caso en estudio cosa que yo hago poniendo else if($nr <= 0) { //yo pòndria debajo
echo "<h2> KO! </h2>"
COmo lo pondria ud eso es lo que deseo saber y que funcione
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.037
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

problema php parte final

Publicado por xve (6928 intervenciones) el 01/05/2019 19:53:12
Hola Cesar, no puedes poner nada antes del header("location... ya que no se vera o te dará error...

Lo que yo haría, seria pasar un parámetro a la pagina index, para que sepa que tiene que mostrar un mensaje de error... algo así:
1
2
3
4
5
...
else if($nr <= 0) {     //yo pòndria debajo 
    header("Location:index.php?error=1");
    return;
}

Luego en la pagina index.php, pondría antes del formulario algo como:
1
2
3
if(isset($_GET["error"]) && $_GET["error"]==1) {
    echo "<div class='red'>Datos no encontrados</div>";
}

De esta manera, muestras el error en la pagina donde se añaden los datos del formulario.


NOTA: Recuerda poner siempre un return después del header("location:....") ya que si no, el resto de código que puede haber se ejecuta.
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: 109
Ha disminuido su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

problema php parte final

Publicado por cesar (36 intervenciones) el 01/05/2019 21:01:26
RECUERDA DEBO ADAPTAR TU TRABAJO A MI FORMULARIO Y A LO QUE QUERE EL PROFE que es que en ver de datos no encuentro aparezca KO
ENEMOS ahi la primera parte

1
2
3
4
5
6
if($numero_registro !=0) {
 
echo "<h2> OK! </h2>";
}else{
 
header ("location: index.html"); } }catch(Exception $e){


Lo que yo haría, seria pasar un parámetro a la pagina index, php o index .html . para que sepa que tiene que mostrar un mensaje de error... algo así:

1
2
3
4
5
6
yo lo adaptaria asi segun tu ejemplo
else if($nnumero de regustro  <= 0) {
    header("Location:index.php?error=1");
 
    return;
}



Luego en la pagina index.php, pondría antes del formulario algo como:

1
2
3
4
if(isset($_GET["error"]) && $_GET["error"]==1) {
    echo "<div class='red'>KO!!/div>";    ///el profesor no quiere le ponga datos no encontrados sino KO szi los datos son errorneos 
 
}

te recuerdo aqui la tarea u observacion **Haz que si el usuario se logea correctamente, muestre el mensaje de "OK" **y si no se logea correctamente muestre el mensaje de "KO""
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: 109
Ha disminuido su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

problema php parte final

Publicado por cesar (36 intervenciones) el 02/05/2019 03:40:35
Yo pondria esto
1
2
3
if(isset($_GET["error"]) && $_GET["error"]==1) {
    echo "<div class='red'> KO</div>" ;
}
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.037
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

problema php parte final

Publicado por xve (6928 intervenciones) el 02/05/2019 08:20:37
Cesar, según comentas en el chat, "debe mostrat un mensaje en el mismo sitio que mostro el ok o sea en el php" todo tiene que estar en la misma pagina, entonces, no puedes hacer un header("location....") en el archivo php. ya que si no, no se mostrara nunca el mensaje.
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: 109
Ha disminuido su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

problema php parte final

Publicado por cesar (36 intervenciones) el 02/05/2019 15:51:47
Alfinal que pongo entonces su respuesta de antes sin poner el un header("location....") ?????

Yo pondria esto como ud to puso arriba

if(isset($_GET["error"]) && $_GET["error"]==1) {
echo "<div class='red'> KO</div>" ;

Necesito mañana viernes muy temprano esa rrespuesta
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 Mauro
Val: 1.668
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

problema php parte final

Publicado por Mauro (467 intervenciones) el 02/05/2019 13:47:28
Hola César:

Ten cuidado con esta parte:

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

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

Dos temas veo:

1. Cuando en el if usas "$numero_registro =0" estás asignando un 0 a $numero_registro en lugar de comparar con 0 (Eso se haría usando "$numero_registro == 0"). Esto hace que la condición sea siempre falsa, con lo cual, jamas se emitirá el mensaje KO.
2. Al hacer un header("location ...") estás redirigiendo al navegador fuera de tu página... depende de qué tan rápido sea el navegador para hacer esto, el usuario nunca verá el mensaje.

Saludos
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: 109
Ha disminuido su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

problema php parte final

Publicado por cesar (36 intervenciones) el 02/05/2019 15:45:21
}else{ if($numero_registro =0)
{ echo " "KO"
";
header ("location: index.html"); }

A ver esa es su respuesta??? de no ser asi porque ud dice que si pone el = 0 if usas "$numero_registro =0" estás asignando un 0 a $numero_registro en lugar de comparar con 0 (Eso se haría usando "$numero_registro == 0"). Esto hace que la condición sea siempre falsa, con lo cual, jamas se emitirá el mensaje KO.
ENTONCES CUAL es su respuesta donde pongo el KO para que se emita el mensaje y como bajo que codigo lo pongo
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: 109
Ha disminuido su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

problema php parte final

Publicado por cesar (36 intervenciones) el 02/05/2019 17:07:53
CON UNA SOLA LINEA DE CODIGO EL USUARIO LUIS RESOLVIÓ EL PROBLEMA

}else{

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

GRACIAS A TODOS PERO POR FAVOR NO ME LA PONGAN TAN DIFICIL
gracias a luis hacia EL mi palabra de agradecimiento por haberme soluCIONado algo que parecia tan dificil tarde casi una semana ern resoilverlo
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 Mauro
Val: 1.668
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

problema php parte final

Publicado por Mauro (467 intervenciones) el 02/05/2019 18:50:04
Lo que te comentaba era para que lo tengas en cuenta en otras situaciones donde te puedas encontrar con problemas similares.

Simplemente te señalaba que el operador = (Un solo igual) corresponde con la operación de asignación, mientras que == (dos iguales seguidos) corresponde a comparación.

En tu caso particular parece que el elseif no era necesario (bastaba con el else) como te señaló Luis, pero creo que vale la pena dejar el comentario para otros lectores que puedan tener una duda similar.

Suerte y espero la próxima no tardes semanas en resolver estas cuestiones :)
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