sol Posted July 6, 2018 Report Share Posted July 6, 2018 Hola. Les cuento estoy haciendo un curso de diseño web y tengo que presentar una web. La cosa es que la web tiene un registro de usuario que guada el pass en hast y el login no me reconose el hast sino que esta echo para que leea tal cual esta en la base de datos. Alguien save como puedo modificar eso. Que el login me descripte el codigo hast Link to comment Share on other sites More sharing options...
colcrt Posted July 6, 2018 Report Share Posted July 6, 2018 imagino que por hast te refieres a un hash publica el código del formulario y te ayudo! Link to comment Share on other sites More sharing options...
sol Posted July 6, 2018 Author Report Share Posted July 6, 2018 hace 7 horas, colcrt dijo: imagino que por hast te refieres a un hash publica el código del formulario y te ayudo! ok muchas gracias, el registro esta conformado por dos archivos php, uno llamado registro y el otro llamado registro_usuario. y este esta hash. registro.php Debes iniciar sesión para ver el contenido del enlace en esta publicación. registro_usario.php Debes iniciar sesión para ver el contenido del enlace en esta publicación. y la parte de login esta formado por mas partes,index.html , validar.php conexion.php cerrar.php y cerrar.php aunque los mas importantes son index.html y validar.php validar.php Debes iniciar sesión para ver el contenido del enlace en esta publicación. index.html Debes iniciar sesión para ver el contenido del enlace en esta publicación. Link to comment Share on other sites More sharing options...
colcrt Posted July 6, 2018 Report Share Posted July 6, 2018 según veo son dos formularios uno de registro y uno de logeo de usuarios es así? bien ahora por partes en el de registro usas el registro.php para ingresar la información y mediante registro_usario.php insertas la información en las tablas de mysql es asi? lo que no entiendo es por que dices que se genera un hash $query = "INSERT INTO usuarios (usuario, pass) VALUES ('$_POST[username]', '$_POST[pass]')"; Link to comment Share on other sites More sharing options...
sol Posted July 6, 2018 Author Report Share Posted July 6, 2018 hace 2 horas, colcrt dijo: según veo son dos formularios uno de registro y uno de logeo de usuarios es así? bien ahora por partes en el de registro usas el registro.php para ingresar la información y mediante registro_usario.php insertas la información en las tablas de mysql es asi? lo que no entiendo es por que dices que se genera un hash $query = "INSERT INTO usuarios (usuario, pass) VALUES ('$_POST[username]', '$_POST[pass]')"; me confundi de archivo. este es el registro_usuario.php Debes iniciar sesión para ver el contenido del enlace en esta publicación. Link to comment Share on other sites More sharing options...
ChanSK Posted July 6, 2018 Report Share Posted July 6, 2018 Solo debes pasar esto $hash = password_hash($form_pass, PASSWORD_BCRYPT); en la variable de login, osea cuando pasas los post para iniciar sesion le pasas tambien el crypt para que te lea la pass encriptada, pero requierda fixear los strings para evitar inyecciones, y crea algunas funciones para ello Saludos PD: seria algo tipo asi $pass = $_POST['password']; $passHash = password_hash($pass, PASSWORD_BCRYPT); Link to comment Share on other sites More sharing options...
sol Posted July 6, 2018 Author Report Share Posted July 6, 2018 no me funciona, para mi aparte de ese problema es la versión de php. que tiene que ser php 7.0. Link to comment Share on other sites More sharing options...
colcrt Posted July 7, 2018 Report Share Posted July 7, 2018 es el login el que da problema verdad? bien mirando el código me percate de esta parte en validar.php tienes esta variable $pass = $_POST['txtpass']; y esta parte que es la que verifica que sea el pass y que exista! //VALIDANDO EXISTENCIA DEL USUARIO $sql = mysql_query("SELECT * from usuarios where usuario = '$usuario' and pass = '$pass' "); if ($row = mysql_fetch_array($sql)) { session_start(); $_SESSION['usuario'] = $usuario; header("Location: ../index.php"); }else { header("Location: ../index.html"); exit(); } } lo que tienes que hacer es lo que que te dice chanSK $p = $_POST['txtpass']; $pass = password_hash($p, PASSWORD_BCRYPT); Link to comment Share on other sites More sharing options...
sol Posted July 7, 2018 Author Report Share Posted July 7, 2018 hace 30 minutos, colcrt dijo: es el login el que da problema verdad? bien mirando el código me percate de esta parte en validar.php tienes esta variable $pass = $_POST['txtpass']; y esta parte que es la que verifica que sea el pass y que exista! //VALIDANDO EXISTENCIA DEL USUARIO $sql = mysql_query("SELECT * from usuarios where usuario = '$usuario' and pass = '$pass' "); if ($row = mysql_fetch_array($sql)) { session_start(); $_SESSION['usuario'] = $usuario; header("Location: ../index.php"); }else { header("Location: ../index.html"); exit(); } } lo que tienes que hacer es lo que que te dice chanSK $p = $_POST['txtpass']; $pass = password_hash($p, PASSWORD_BCRYPT); cuando ago login me sale este error. Parse error: syntax error, unexpected '$_SESSION' (T_VARIABLE) in /data/webs/sites/l/i/linkuei/web/control/validar.php on line 19 asi es como lo tengo a validar.php <?php include('conexion.php'); if (isset($_POST['login'])) { //VARIABLES DEL USUARIO $usuario = $_POST['txtusuario']; $p = $_POST['txtpass']; $pass = password_hash($p, PASSWORD_BCRYPT); //VALIDAR CONTENIDO EN LAS VARIABLES O CAJAS DE TEXTO if (empty($usuario) | empty($pass)) { header("Location: ../index.html"); exit(); } //VALIDANDO EXISTENCIA DEL USUARIO $sql = mysql_query("SELECT * from usuarios where usuario = '$usuario' and pass = '$pass' "); if ($row = mysql_fetch_array($sql)) { session_start(); $_SESSION['usuario'] = $usuario; header("Location: ../index.php"); }else { header("Location: ../index.html"); exit(); } } ?> Link to comment Share on other sites More sharing options...
colcrt Posted July 7, 2018 Report Share Posted July 7, 2018 <?php include('conexion.php'); if (isset($_POST['login'])) { //VARIABLES DEL USUARIO $usuario = $_POST['txtusuario']; $p = $_POST['txtpass']; $pass = password_hash($p, PASSWORD_BCRYPT); //VALIDAR CONTENIDO EN LAS VARIABLES O CAJAS DE TEXTO if (empty($usuario) | empty($pass)){ header("Location: ../index.html"); exit(); } //VALIDANDO EXISTENCIA DEL USUARIO $sql = mysql_query("SELECT * from usuarios where usuario = '$usuario' and pass = '$pass' "); if ($row = mysql_fetch_array($sql)){ session_start(); $_SESSION['usuario'] = $row->usuario; header("Location: ../index.php"); } else { header("Location: ../index.html"); exit(); } } ?> creería que ese es el error sino no tengo ni idea xD sol 1 Link to comment Share on other sites More sharing options...
sol Posted July 7, 2018 Author Report Share Posted July 7, 2018 ahora sale este error Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /data/webs/sites/l/i/linkuei/web/control/conexion.php:5 Stack trace: #0 /data/webs/sites/l/i/linkuei/web/control/validar.php(2): include() #1 {main} thrown in /data/webs/sites/l/i/linkuei/web/control/conexion.php on line 5 Link to comment Share on other sites More sharing options...
colcrt Posted July 7, 2018 Report Share Posted July 7, 2018 sube el archivo conexion.php y lo miro haber si doy con el chiste xD sol 1 Link to comment Share on other sites More sharing options...
ChanSK Posted July 7, 2018 Report Share Posted July 7, 2018 hace 2 horas, sol dijo: ahora sale este error Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /data/webs/sites/l/i/linkuei/web/control/conexion.php:5 Stack trace: #0 /data/webs/sites/l/i/linkuei/web/control/validar.php(2): include() #1 {main} thrown in /data/webs/sites/l/i/linkuei/web/control/conexion.php on line 5 como dice ahi, mysql_connect no esta definido, por que estaras usando otra version superior de mysql /*Quedando algo asi*/ DEFINE("HOST", "localhost"); DEFINE("USER", "root"); DEFINE("PASS", "1234"); DEFINE("DB", "tudatabase"); $conexion = new mysqli(HOST, USER, PASS, DB); if ($conexion->connect_error) { die('Error de Conexión (' . $conexion->connect_errno . ') ' . $conexion->connect_error); } sol 1 Link to comment Share on other sites More sharing options...
sol Posted July 7, 2018 Author Report Share Posted July 7, 2018 ahora me sale este error. el registro funciona bien, lo que no me anda es el login para que el usuario entre Fatal error: Uncaught Error: Call to undefined function mysql_query() in /data/webs/sites/l/i/linkuei/web/control/validar.php:16 Stack trace: #0 {main} thrown in /data/webs/sites/l/i/linkuei/web/control/validar.php on line 16 Link to comment Share on other sites More sharing options...
colcrt Posted July 8, 2018 Report Share Posted July 8, 2018 hace 11 horas, sol dijo: ahora me sale este error. el registro funciona bien, lo que no me anda es el login para que el usuario entre Fatal error: Uncaught Error: Call to undefined function mysql_query() in /data/webs/sites/l/i/linkuei/web/control/validar.php:16 Stack trace: #0 {main} thrown in /data/webs/sites/l/i/linkuei/web/control/validar.php on line 16 publica el código del archivo conexion.php omite o cambia los datos sensibles, lo que pasa es q tienes una versión de php reciente 7.0 y para lo cual las funciones de tus archivos son obsoletas por eso salta ese error para php 7.0 seria algo asi $sql = mysqli_query($success, "SELECT * FROM login WHERE username = '".$_POST['username']."' and password = '".md5($_POST['password'])."'"); $row = mysqli_num_rows($sql); sol 1 Link to comment Share on other sites More sharing options...
sol Posted July 8, 2018 Author Report Share Posted July 8, 2018 ese es mi problema, php7.0 ya que no se como seria las sentencias. estoy usando un login en un php que no es compatible con la versión de php que uso en el servidor de prueba de miarroba el registro de usuario para mi web. funciona de lujo conecta a la base de datos y guarda los nuevos usarios este esta echo en php7.0 en cambio ala hora de que los usuarios agan login da error y es por que usa un php que no es compatible con miarroba. esta es la aparte de validacion del login el cual meda problemas y el otro problema es que el registro me lo guarda en codificación hash <?php include('conexion.php'); if (isset($_POST['login'])) { //VARIABLES DEL USUARIO $usuario = $_POST['txtusuario']; $pass = $_POST['txtpass']; //VALIDAR CONTENIDO EN LAS VARIABLES O CAJAS DE TEXTO if (empty($usuario) | empty($pass)) { header("Location: ../index.html"); exit(); } //VALIDANDO EXISTENCIA DEL USUARIO $sql = mysql_query("SELECT * from usuarios where usuario = '$usuario' and pass = '$pass' "); if ($row = mysql_fetch_array($sql)) { session_start(); $_SESSION['usuario'] = $usuario; header("Location: ../index.php"); }else { header("Location: ../index.html"); exit(); } } ?> Link to comment Share on other sites More sharing options...
colcrt Posted July 8, 2018 Report Share Posted July 8, 2018 intenta así, importante es que la variable $link debe ser la de la conexión la que te dice chansk en el archivo conexion.php <?php include('conexion.php'); if (isset($_POST['login'])) { //VARIABLES DEL USUARIO $usuario = $_POST['txtusuario']; $p = $_POST['txtpass']; $pass = password_hash($p, PASSWORD_BCRYPT); //VALIDAR CONTENIDO EN LAS VARIABLES O CAJAS DE TEXTO if (empty($usuario) | empty($pass)){ header("Location: ../index.html"); exit(); } //VALIDANDO EXISTENCIA DEL USUARIO //$sql = mysql_query("SELECT * from usuarios where usuario = '$usuario' and pass = '$pass' "); $query = "SELECT * from usuarios where usuario = '$usuario' and pass = '$pass' "; $result = mysqli_query($link, $query); //if ($row = mysql_fetch_array($sql)){ if ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){ session_start(); $_SESSION['usuario'] = $row->usuario; header("Location: ../index.php"); mysqli_free_result($result); mysqli_close($link); } else { mysqli_free_result($result); mysqli_close($link); header("Location: ../index.html"); exit(); } } ?> sol 1 Link to comment Share on other sites More sharing options...
Recommended Posts