Foros del Web » Programando para Internet » PHP »

mensaje en login de php

Estas en el tema de mensaje en login de php en el foro de PHP en Foros del Web. Buenas tardes es mi primera pregunta y bueno quisiera hacer que en mi login de php me de un mensaje de felicidades en caso de ...
  #1 (permalink)  
Antiguo 25/11/2013, 13:46
 
Fecha de Ingreso: noviembre-2013
Mensajes: 7
Antigüedad: 10 años, 4 meses
Puntos: 0
Pregunta mensaje en login de php

Buenas tardes es mi primera pregunta y bueno quisiera hacer que en mi login de php me de un mensaje de felicidades en caso de que el usuario meta la contraseña y el usuario correcto o en su defecto un mensaje de error. mi login queda así

primero la pagina de registro

<form action="post.php" method="POST">
<p align=center>NAME: <input type="text" name="name"><br></br></p>
<p align=center>PASWORD: <input type="text" name="pass"><br></br></p>
<div align=center><input type="submit" value="submit"></div>
</form>

despues esto nos manda a una pagina con un mensaje:

<form action="login.php" method="POST">
<h2>Bienvenido: <?php echo $_POST["name"]; ?><br></br></h>
tu pasword es: <?php echo $_POST["pass"]; ?>
<div align=center><input type="submit" value="submit"></div>
</form>

después esto no manda al login y es aquí donde empieza la pesadilla , lo que se quiere es que en base a los datos anteriores nos pueda decir el login usuario correcto o en su defecto usuario incorrecto o un mensaje de error, pero no me decide nada mi login el cual queda así:

<?php
session_start();
if ($_POST['name']) {
if ($_POST['name'] == "usuario" && $_POST['`pass'] == "contraseña") {
$_session['autorizado'] = TRUE;
header("http://localhost/XDXD/XDXDXD");
} else {
$mensaje="Nombre o usuario incorrectos";
}
}
?>
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
<p align=center>Introduce tu nombre de usuario y tu contraseña</p>
<p align=center><?php echo $mensaje; $mensaje = ""; ?></p>
<form action="#" method="post">
<fieldset>
<p align=center><label>Usuario: <input name="usuario" /></p></label>
<p align=center><label>Contraseña: <input name="contraseña" type="password" /></p></label>
<div align=center><input type="submit" value="Entrar" /></div>
</fieldset>
</form>
</body>
</html>

Cabe mecionar que es una pagina de prueba no es nada oficial solo de prueba.

Última edición por robertouchiha; 25/11/2013 a las 14:31
  #2 (permalink)  
Antiguo 27/12/2013, 15:27
Avatar de jordirmz  
Fecha de Ingreso: enero-2013
Ubicación: Catalunya
Mensajes: 14
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: mensaje en login de php

Hola,

En principio en código está bien pero vigila que hay un error en la línea 4:

if ($_POST['name'] == "usuario" && $_POST['`pass'] == "contraseña") {

Como has dicho que era un sitio de prueba supongo que todavía no lo has implementado y lo tienes en mente pero aún así te lo digo. Recuerda de limpiar las variables POST que entran para evitar posibles agujeros de seguridad que comprometan tu código.

Comprueba si el error era por esa tilde y nos cuentas.

Un saludo
  #3 (permalink)  
Antiguo 27/12/2013, 17:15
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: mensaje en login de php

No tiene sentido que muestres el mensaje de éxito en un formulario, lo puedes imprimir como una simple cadena. Esto sería así:

Trabajando con una base de datos
Código PHP:
Ver original
  1. //Me conecto a la base de datos
  2. $conexion = new mysqli ("servidor", "usuario", "password", "bd");
  3.  
  4. //Si no me puedo conectar, muestro un mensaje se termina el script
  5. if ($conexion->connect_error)
  6.      exit ("Error: No se pudo realizar la conexión");
  7.  
  8. //Caso contrario, seguimos con el script
  9.  
  10. //Desinfecto los datos recibidos de posible contenido malicioso
  11. $user = $conexion->real_escape_string(strip_tags($_POST["name"]));
  12. $pass = $conexion->real_escape_string(strip_tags($_POST["pass"]));
  13.  
  14. //Hago la consulta
  15. $consulta = $conexion->query(sprintf("SELECT * FROM usuario WHERE user = '%s' AND pass = '%s'", $user, $pass));
  16.  
  17. //Si los datos existen en la base de datos
  18. if ($consulta->num_rows) {
  19.      echo "Identificación realizada con éxito";
  20.      echo "<script>
  21.               setTimeout(function() {
  22.                    location.href = 'inicio.php';
  23.               }, 3000);
  24.           </script>";
  25. }
  26. //Caso contrario
  27. else {
  28.      echo "Los datos no coinciden con los de la base de datos";
  29.      echo "<script>
  30.               setTimeout(function() {
  31.                    location.href = 'login.php';
  32.               }, 3000);
  33.           </script>";
  34. }
  35.  
  36. $consulta->free(); //Libero la memoria de los resultados de la consulta
  37. $conexion->close(); //Cierro la conexión a la base de datos

Cuando los datos coinciden con los de la base de datos, se imprime un mensaje de éxito y se redirecciona hacia inicio.php que en este ejemplo sería la página a la que el usuario accedería si se identifica correctamente, caso contrario, se imprime un mensaje de mala identificación y se redirecciona hacia login.php que es en donde está el formulario.

La redirección la hago con JavaScript y no con la función header, ya que estoy imprimiendo un mensaje antes de redireccionar, con lo cual, dicha función no tendría efecto.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 27/12/2013, 17:22
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: mensaje en login de php

Y esto harías en el caso de que no trabajes con una base de datos, sino con datos predeterminados en el archivo, como en el ejemplo que nos muestras:

Código PHP:
Ver original
  1. //Desinfecto los datos de posible contenido malicioso
  2. $user = addslashes(strip_tags($_POST["name"]));
  3. $pass = addslashes(strip_tags($_POST["pass"]));
  4.  
  5. //Predetermino los valores correctos
  6. $preUser = "Usuario";
  7. $prePass = "Password";
  8.  
  9. //Comparo los datos recibidos con los predeterminados, si coinciden, muestro un mensaje de éxito y realizo la redirección hacia inicio.php, caso contrario, muestro un mensaje de mala identificación y hago la redirección hacia login.php
  10. if (!strcmp($user, $preUser) && !strcmp($pass, $prePass)) {
  11.      echo "Identificación realizada con éxito";
  12.      echo "<script>
  13.               setTimeout(function() {
  14.                    location.href = 'inicio.php';
  15.               }, 3000);
  16.           </script>";
  17. }
  18. else {
  19.      echo "Los datos no coinciden con los de la base de datos";
  20.      echo "<script>
  21.               setTimeout(function() {
  22.                    location.href = 'login.php';
  23.               }, 3000);
  24.           </script>";
  25. }

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 24/01/2014, 10:10
 
Fecha de Ingreso: noviembre-2013
Mensajes: 7
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: mensaje en login de php

muchas gracias y lo probare

Etiquetas: html, login, mensaje, registro
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:27.