Bueno, hoy vengo con un problema que me ocurre unicamente con el codigo de login, ningun otro me tira ese error y no sé por que (algunas veces arranca, con otro usuario y contraseña), pero normalmente tira error 500
Este es el codigo, no sé que error tiene como para que tire HTTP 500
<?php
session_start();
function logerror($reason) {
$_SESSION['logerror'] = $reason;
header("Location: login.php");
die('Redireccionando...');
}
if (!isset($_POST['usuario']) || !isset($_POST['pswd'])) {
logerror("Falta algun dato");
}
if (strlen(preg_replace("([a-zA-Z0-9.-])", "", $_POST['usuario'])) > 0) {
logerror("El usuario no debe contener caracteres no permitidos");
}
if (strlen(preg_replace("([a-zA-Z0-9.-])", "", $_POST['pswd'])) > 0) {
logerror("La contraseña no debe contener caracteres no permitidos");
}
if (strlen($_POST['usuario']) < 6) {
logerror("El usuario debe de tener 6 o mas caracteres");
}
if (strlen($_POST['pswd']) < 6) {
logerror("La contraseña debe de tener 6 o mas caracteres");
}
//$haspass = //ENCRIPTACION DE LA CONTRASEÑA MEDIANTE CRYPT();
$db = new mysqli ("localhost", "***", "***", "***");
$query = $db->query("SELECT * FROM usrs WHERE usuario='".$_POST['usuario']."'");
if ($query->num_rows > 0) {
if ($query['pswd'] == $haspass) {
$db->close();
unset($db);
logerror("Login correcto");
} else {
$db->close();
unset($db);
logerror("Contraseña incorrecta");
}
} else {
$db->close();
unset($db);
logerror("El usuario no existe");
}
?>
Error 500 normalmente es de configuración del servidor, te da solo con ese script o con cualquiera?
¿Qué servidor de aplicaciones estás utilizando?
¿El servidor lo tienes local o en un hosting?
¿Qué tal es tu conexión a internet?, siempre es estable o en ocasiones falla?.
Solo da en ese script
Uso apache2, sobre una base Linux Debian 7.8 (si mal no recuerdo) y si, mi conexion es estable, sobre eso, ayer le pase un vistazo muy centrado, y averigue este error
if ($query['pswd'] == $haspass) {
En vez de haber usado
if ($query->fetch_assoc()['pswd'] == $haspass) {
Ya lo tengo solucionado :D, pero gracias a todos por responder :)