zona van usar una script recomendable qué que página para paginas nuestro los listos invoca forma externo etiqueta ejemplos donde desde código colocar coloca codigos archivo php mysql login registration

php - van - ¿Cómo completo este script de inicio de sesión?



es la forma en la que se invoca un archivo externo de javascript desde nuestro html: (3)

Casi he completado mi script de inicio de sesión, pero no sé cómo verificar si el nombre de usuario y la contraseña son correctos. Aquí están mis archivos de script.

  1. index.php:

    <html> <body> <form action="action1.php" method="post"> Username: <input type="text" name="uname"> Password: <input type="password" name="pword"> <input type="submit"> </form> </body> </html>

El archivo index.php es solo la página que uso para recopilar la información de mis usuarios para el registro.

  1. action1.php:

    <?php $con = mysql_connect("localhost", "root", ""); if (!$con) { die (''Could not connect: '' . mysql_error()); } mysql_select_db("user1", $con); $sql="INSERT INTO useri1 (uname, pword) VALUES (''$_POST[uname]'',''$_POST[pword]'')"; if (!mysql_query($sql, $con)) { die(''Error: '' . mysql_error()); } echo "1 record added"; mysql_close($con); ?>

El archivo action1.php es solo la página que registra a los usuarios en la base de datos.

  1. login.php:

    <html> <body> <form action="checklogin.php" method="post"> Username: <input type="text" name="uname1"> Password: <input type="password" name="pword1"> <input type="submit"> </form> </body> </html>

El archivo login.php es solo la página que uso para que los usuarios escriban su información de inicio de sesión.

Ahora este es mi problema, no tengo idea de cómo verificar la información de inicio de sesión de los usuarios para que puedan pasar al área de solo miembros. Soy un novato y cualquier ayuda es GRANMENTE apreciada.

Gracias,

Devin


Deberías ejecutar una consulta siguiendo las líneas de esto:

$user_check_query = "SELECT * FROM useri1 WHERE uname=" . $_POST[''uname''] . " AND pword=" . $_POST[''pword''] .";";

Y si la consulta devuelve un valor, entonces pueden continuar. Si la consulta no devuelve nada, no pueden pasar. En cuanto a la lógica, observe el código que ha creado y vea cómo crear sentencias if y else para manejar la lógica.


Necesita hacer una consulta SELECT, algo similar a

SELECT STRCMP(''{$_POST[''pword'']}'', pword) FROM useri1 WHERE uname = ''{$_POST[''uname'']}''

Esto debería devolver un valor en el rango [-1, 1] - si no es 0, la contraseña es incorrecta. Si no hay filas, el usuario no existe.

También debe pensar en las inyecciones de SQL, pero podría ser un ejercicio para otro día.


En primer lugar, desea utilizar mysqli en lugar de mysql, porque mysql está desactualizado y ya no se desarrolla activamente. En segundo lugar, desea comenzar a escaparse de las consultas de su base de datos para detener la inyección de sql. En el siguiente código, utilicé una sesión para realizar un seguimiento del usuario. Puede obtener más información sobre las sesiones aquí .

<?php session_start(); $mysqli = new mysqli(''localhost'', ''root'', DB_PASSWORD, ''user1''); /* check connection */ if ($mysqli->connect_error) die(''Connect Error ('' . $mysqli->connect_errno . '') '' . $mysqli->connect_error); /* escape string from sql injection */ $userName = $mysqli->real_escape_string($_POST[''uname1'']); /* query database */ $result = $mysqli->query("SELECT `pword` FROM `user1` WHERE `uname` = ''".$userName."''"); if ($result->num_rows == 1) { while ($col = $result->fetch_array(MYSQLI_ASSOC)) { // This presumes you''re storing your passwords in plain text. // If you hashed your passwords or anything, you would have to do the same to $_POST[''pword''] if ($_POST[''pword''] == $col[''pword'']) { // You could do anything here, but sessions are a way of keeping track of a user. $_SESSION[''userName''] = $_POST[''uname1'']; $_SESSION[''loggedIn''] = true; } } } $result->close(); /* don''t forget to close the connection */ $mysqli->close(); ?>