Nueva pregunta

Pregunta:

Fecha: 01-10-2019 05:28:12 (En Español)

cargar una clave password_hash a la base de datos[No resuelta]

Hola necesito ayuda con el siguiente problema, estoy creando un login con encriptando password_hash el cual funciona excelente en el servidor local que tengo (Xampp) pero lleve el codigo a mi dominio Web y por alguna razon no funciona me da error http error 500 y no entiendo porue motivo este es mi codigo

index.php

 <!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>iniciar sesion</title>
	<link rel="stylesheet" type="text/css" href="inistyle.css">
	<link rel="stylesheet" type="text/css" href="animate.css">
</head>
<body>

	<header style="background-color: #EB0000;">
		
	</header>
	<header style="background-color: #000000"></header>
	
	<center>
		<div class="logo">
		<img class="animated bounceInDown" src="img/logo.jpg">
	</div>
		<form action="proceso.php" method="POST">
			<table>
				<td>
					<input class="animated bounceInUp" type="text" name="usuario" value="" placeholder="usuario" required="">
				</td>	
			</table>
			
			<table>
				<td>
					<input class="animated bounceInUp" type="password" name="clave" value="" placeholder="clave" required="">
				</td>	
			</table>
			<table>
				<td>
					<input class="animated bounceInUp" type="submit" value="Ingresar">
				</td>	
			</table>
		</form>
	</center>
</body>
</html>


este es el formulario de ingreso el cual me lleva al archivo proceso.php

proceso.php

 <?php
	session_start();

	$usuario=$_POST['usuario'];
	$clave= $_POST['clave'];
	$_SESSION['usuario']=$usuario;
	

	include("conexion.php");
	$sql="SELECT * FROM usuarios2 WHERE usuario='$usuario'";
	$result=mysqli_query($conexion, $sql);
	$contador=0;	
		
		while($row = mysqli_fetch_array($result)){			
					
			if (password_verify($clave, $row['clave'])) {
						$contador++;
					}
			if ($contador>0) {
					$user=$row['usuario'];
				}	
		}			

		if ($contador>0) {
			if ($user == $usuario) {
			header("location:menu_sistemas");
			}

		if ($user == 'invitado') {
			header("location:menu");
			}

		}else{
			echo "Usuario o Contraseña incorrecta";
		}
?>



aquí esta mi problema ya que en el servidor local tengo acceso perfecto pero en el servidor WEB da error, ahora quiero aclarar lo siguiente, los usuarios ya están en la base de datos ya que los agregue de la base de datos del servidor local, lo que hice fue que como funciono en el servidor local, tome la tabla USUARIOS2 y la exporte, tome el archivo .sql y lo importe a la base de datos del dominio y ahora no puedo acceder a la web porque cada vez que ingreso da error http 500, hice la verificación de console con F12 y no muestra ningún error aclaro tambien que la clave es un Varchar de 255 caracteres

Ahora aqui viene lo interesante, Prove creando un formulario de ingreso desde la web el cual es este

 <!doctype html>
<html>
    
    <head>
    
        <meta charset="utf-8">
        <title>Documento sin título</title>
        
        <style>
		
		table{
			width:300px;
			margin:auto;
			background-color:#FFC;
			border:2px solid #F00;
			padding:5px;
			
		}
		
		td{
			text-align:center;
			
		}
		h1{text-align:center}
		
		</style>
        
    </head>
    
    <body>
    <h1>REGÍSTRATE</h1>
    
        <form action="pagina_insertar_usuarios.php" method="post">
        <table><tr>
          <td>
            Usuario</td><td><input type="text" name="usu" id="usu"></td></tr>
           <tr>
             <td> Contraseña </td><td><input type="text" name="contra" id="contra"></td></tr>
           
           <tr><td colspan="2"> <input type="submit" name="enviando" value="¡Dale!">
        </td></tr></table>
        </form>
    
    </body>
    
</html>


el cual me lleva al siguiente codigo php

 <?php

	$usuario= $_POST["usu"];
	$contrasenia= $_POST["contra"];
	
	$pass_cifrado=password_hash($contrasenia, PASSWORD_DEFAULT, array("cost"=>12));
				
		include("conexion.php");
		
		$sql = "INSERT INTO usuarios2 VALUES('id','$usuario','$pass_cifrado')";
	    mysqli_query($conexion,$sql);		

?>


aplique este método ya que lei que posiblemente podría ser porque los usuarios tenían que ser creados nuevamente desde el archivo en el dominio pero me tope con lo siguiente, cuando yo le digo que cargue la Variable $pass_cifrado pero algo pasa ya que no carga nada a la tabla asi hice lo siguiente:

 <?php

	$usuario= $_POST["usu"];
	$contrasenia= $_POST["contra"];
	
	//$pass_cifrado=password_hash($contrasenia, PASSWORD_DEFAULT, array("cost"=>12));
				
		include("conexion.php");
		
		$sql = "INSERT INTO usuarios2 VALUES('id','$usuario','$contrasenia')";
	    mysqli_query($conexion,$sql);		

?>


en el archivo php Tache la linea del password_hash y cargue la variable $contrasenia y funciona correctamente pero obvio lo que esta es cargando la clave sin ecriptar lo cual no me sirve y Mi pregunta es Porque el Password_hash me esta ocasionando problemas para cargar la clave encriptada y si es así podría ser el password_verify quien me está causando problema en el login con el archivo PROCESO.PHP

cualquier ayuda seria de gran ayuda e importancia ya que tengo el sistema cerrado ya que sin esta seguridad quedaría vulnerable gracias.
Etiquetas: Base de Datos - HTML - HTML5 - MySQL - PHP - PHP Avanzado Votos: 0 - Respuestas: 7 - Vistas: 13 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 01-10-2019 07:23:51 Hola puedes indicar que error te esta dando al momento de insertar
    y una pregunta que valor es tu id
    "INSERT INTO usuarios2 VALUES('id','$usuario','$contrasenia')";
    
      Votos: 0 - Link respuesta
     
  • Fecha: 01-10-2019 08:44:12 hola te explico el id lo agrega solo la base de datos con el auto_increment y el error no me lo indica, en el navegador yo abro los archivos y voy a la consola para ver el error y no hay nada, de verdad no marca ningun error pero voy a la base de datos y no carga los datos ingresados pero si tacho el código password_hash si carga los datos pero si encriptar   Votos: 0 - Link respuesta
     
  • Fecha: 01-10-2019 10:38:01 Qué dicen tus logs?
    Cuando hay un error 500 (Internal Server Error) los errores generalmente no se despliegan sino que se van a un log.

    La ubicación del archivo log depende de la configuración de cada aplicación pero por lo general el log del servidor web captura información relacionada. En el caso de Apache revisa el contenido del archivo /var/log/apache2/error.log. Si estás usando algún framework entonces checa las configuraciones del mismo.

    Saludos
      Votos: 0 - Link respuesta
     
  • Fecha: 03-10-2019 08:40:14 Hola Ernesto, aclaro que en el Servidor local(Xampp) el sistema funciona bien, mi problema es cuando lo llevo a cpanel y cargo los archivos php, cuando realizo el Login por Chrome da error el archivo proceso.php, con respecto al Log estoy revisando la carpeta Log en el Cpanel y tengo una serie de archivos relacionados con el sistema son archivos .gz pero ninguno q diga error   Votos: 0 - Link respuesta
     
  • Fecha: 03-10-2019 09:59:07 Ten en cuenta que hay algunas diferencias si estás usando Windows en local y Linux en el servidor.

    Una de las puñetas habituales es que Windows no distingue mayúsculas y minúsculas, mientras que Linux sí, y quizás haya algunas diferencias a la hora de encriptar. Probaría a inicializar esas claves en el servidor.
      Votos: 0 - Link respuesta
     
  • Fecha: 05-10-2019 13:01:30 Probaste eliminando el array con el coste? Por default el valor que viene es de 10 y según la documentación oficial depende del hardware que soporte el valor que le incrementes   Votos: 0 - Link respuesta
     
  • Fecha: 07-10-2019 16:18:00 Debes revisar qué versión de PHP tiene el servidor. A veces esos servidores no actualizan sus versiones de PHP (aunque password_verfy funciona desde php 5.5) y entonces no tienes disponibles algunas funciones. También busca el archivo llamado 'error.log' en el directorio raíz de tu aplicación, puede ser que encuentres una idea de qué está pasando.   Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com