Funciona login en local pero no en servidor
Publicado por MMM (12 intervenciones) el 12/02/2019 14:25:16
Mi problema es que mi pagina del login me accede perfectamente en localhost, pero al subirlo al servidor se queda trabado en control.php (es el que comprueba con la base de datos y si esta correcto nos lleva a la siguiente url).
Subo las partes:
admin.php:
Control.php
Mi problema es que al acceder con usuario y contraseña, se queda bloqeado en control.php, es decir, solo me muestra que 'echo $count' es 1 y nada más, y debería de acceder por if ($count == 1) y acabar llevandome a "admin/aplicacionadmin.html".
Lo que no entiendo es por que en localhost si pasa correctamente control.php y me acaba llevando a "admin/aplicacionadmin.html", y al probarlo en el servidor se queda estancado en control.php.
Y lo mismo me pasa si introduzco mal los datos de usuario o pass, en vez de llevarme de vuelta a admin.php, se queda también pillado en control.php
Soy un poco novato asique no me castigueis demasiado :D
Gracias.
Subo las partes:
admin.php:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
?>
<head>
<title>Autentificaci�n PHP</title>
<link rel="stylesheet" type="text/css" href="<?=DIR_WEB?>css/stylee.css">
</head>
<body>
<h1 style="padding:30px";>Autentificación PHP</h1>
<form action="<?=DIR_WEB?>admin/control.html" method="POST">
<table align="center" width="225" cellspacing="2" cellpadding="2" border="0">
<tr>
<td colspan="2" align="center" bgcolor=#cccccc>Introduce tu clave de acceso
</td>
</tr>
<tr>
<td align="right">USER:</td>
<td><label>
<input type="Text" name="usuario" size="8" maxlength="50" required>
</label></td>
</tr>
<tr>
<td align="right">PASSWD:</td>
<td><label>
<input type="password" name="contrasena" size="8" maxlength="50" required>
</label></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="Submit" value="ENTRAR"></td>
</tr>
</table>
</form>
</body>
Control.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
include_once (DIR_FIS_CLASES . 'acbd.inc.php'); //accede a la conexion
include '../../ctes.php'; // Son donde estan definidos los controles DIR
ini_set("session.use_only_cookies","1");
ini_set("session.use_trans_sid","0");
$conexion = conexion();
/* Comprueba la conexión */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$usu = $_POST['usuario'];
$password = $_POST['contrasena'];
//creamos 2 consultas, una para si el es el admin y otra para si es un usuario normal.
$result = mysqli_query($conexion, "SELECT usuario FROM adminsss WHERE usuario = '$usu' and contrasenia = '$password' and (permisos ='control' or permisos ='admin')");
if ($result === false) {
die('Error1 SQL: ' . mysqli_error($conexion));}
$result2 = mysqli_query($conexion, "SELECT usuario FROM admins WHERE usuario = '$usu' and contrasenia = '$password' and permisos ='usuario'");
if ($result2 === false) {
die('Error2 SQL: ' . mysqli_error($conexion));}
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
$row2 = mysqli_fetch_array($result2, MYSQLI_ASSOC);
$count = mysqli_num_rows($result);
$count2 = mysqli_num_rows($result2);
echo $count;
echo $count2;
//Vemos si el usuario y contraseña son correctos
//Usuario admin (para crear otras cuentas)
if ($count == 1) {
//asigno un nombre a la sesi�n para poder guardar diferentes datos
session_name("loginUsuario");
// inicio la sesi�n
session_start();
//cambiamos la duraci�n a la cookie de la sesi�n
//session_set_cookie_params(0, "/", $HTTP_SERVER_VARS["HTTP_HOST"], 0); ESTA OBSOLETA
session_set_cookie_params(0, "/", $_SERVER["HTTP_HOST"], 0);
//defino la sesi�n que demuestra que el usuario est� autorizado
$_SESSION["autentificado"] = "SI";
//defino la fecha y hora de inicio de sesi�n en formato aaaa-mm-dd hh:mm:ss
$_SESSION["ultimoAcceso"] = date("Y-n-j H:i:s");
header("Location: " . DIR_WEB . "admin/aplicacionadmin.html");
//Usuario normal
}elseif ($count2 == 1) {
//asigno un nombre a la sesi�n para poder guardar diferentes datos
session_name("loginUsuario");
// inicio la sesi�n
session_start();
//cambiamos la duraci�n a la cookie de la sesi�n
//session_set_cookie_params(0, "/", $HTTP_SERVER_VARS["HTTP_HOST"], 0); ESTA OBSOLETA
session_set_cookie_params(0, "/", $_SERVER["HTTP_HOST"], 0);
//defino la sesi�n que demuestra que el usuario est� autorizado
$_SESSION["autentificado"] = "SI";
//defino la fecha y hora de inicio de sesi�n en formato aaaa-mm-dd hh:mm:ss
$_SESSION["ultimoAcceso"] = date("Y-n-j H:i:s");
header("Location: " . DIR_WEB . "admin/aplicacion.html");
}else {
header("Location: ".DIR_WEB."admin.html?errorusuario=si");
}
Mi problema es que al acceder con usuario y contraseña, se queda bloqeado en control.php, es decir, solo me muestra que 'echo $count' es 1 y nada más, y debería de acceder por if ($count == 1) y acabar llevandome a "admin/aplicacionadmin.html".
Lo que no entiendo es por que en localhost si pasa correctamente control.php y me acaba llevando a "admin/aplicacionadmin.html", y al probarlo en el servidor se queda estancado en control.php.
Y lo mismo me pasa si introduzco mal los datos de usuario o pass, en vez de llevarme de vuelta a admin.php, se queda también pillado en control.php
Soy un poco novato asique no me castigueis demasiado :D
Gracias.
Valora esta pregunta


0