Jump to content
Sign in to follow this  
sol

Problemas con php y mysql

Recommended Posts

sol    7

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 

Share this post


Link to post
Share on other sites
sol    7
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.

 

 

Share this post


Link to post
Share on other sites

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]')";

 

Share this post


Link to post
Share on other sites
sol    7
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.

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites
sol    7

no me funciona, 

para mi aparte de ese problema es la versión de php. que tiene que ser php 7.0. 

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites
sol    7
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();
        }
}
?>

Share this post


Link to post
Share on other sites
<?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

Share this post


Link to post
Share on other sites
sol    7

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

Share this post


Link to post
Share on other sites
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);
    	}

 

Share this post


Link to post
Share on other sites
sol    7

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

Share this post


Link to post
Share on other sites
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);

 

Share this post


Link to post
Share on other sites
sol    7

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

 

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...