Jump to content

Problemas con php y mysql


sol

Mensajes recomendados

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 

Enlace para comentar
Compartir en otros sitios

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.

 

 

Enlace para comentar
Compartir en otros sitios

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

 

  1. $query = "INSERT INTO usuarios (usuario, pass)
  2.           VALUES ('$_POST[username]', '$_POST[pass]')";

 

Enlace para comentar
Compartir en otros sitios

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

 

  1. $query = "INSERT INTO usuarios (usuario, pass)
  2.           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.

Enlace para comentar
Compartir en otros sitios

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);

 

Enlace para comentar
Compartir en otros sitios

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);

 

Enlace para comentar
Compartir en otros sitios

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();
        }
}
?>

Enlace para comentar
Compartir en otros sitios

<?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

Enlace para comentar
Compartir en otros sitios

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

Enlace para comentar
Compartir en otros sitios

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);
    	}

 

Enlace para comentar
Compartir en otros sitios

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

Enlace para comentar
Compartir en otros sitios

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);

 

Enlace para comentar
Compartir en otros sitios

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();
        }
}
?>

 

Enlace para comentar
Compartir en otros sitios

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();
			
		}
	}
?>

 

Enlace para comentar
Compartir en otros sitios

  • Dilong locked this tema
Guest
Este tema está cerrado a otras respuestas.
  • Recientemente navegando por este tema   0 miembros

    • No hay usuarios registrados visitando esta página.
×
×
  • Crear nuevo...