Ciao ragazzi, ho già fatto una ricerca ma pare che non ci sia la soluzione che cerco...
Ho creato una pagina di login in PHP con DWMX sfruttando la tabella "tbl_login" dentro MySQL, comparando dal form di login le variabili con i campi della tabella "user" e "password". Funziona tutto, ma nelle pagine riservato anche se il login è corretto mi fa il redirect a una pagina di rilogin mettendo in URL "Access Denied". Provo a postare il codice:
login.php
codice:
<?php require_once('../Connections/prova.php'); ?>
<?php
session_start();
$FF_LoginAction = $HTTP_SERVER_VARS['PHP_SELF'];
if (isset($HTTP_SERVER_VARS['QUERY_STRING']) && $HTTP_SERVER_VARS['QUERY_STRING']!="") $FF_LoginAction .= "?".htmlentities($HTTP_SERVER_VARS['QUERY_STRING']);
if (isset($HTTP_POST_VARS['username'])) {
$FF_valUsername=$HTTP_POST_VARS['username'];
$FF_valPassword=$HTTP_POST_VARS['pass'];
$FF_fldUserAuthorization="";
$FF_redirectLoginSuccess="riservato.php";
$FF_redirectLoginFailed="riloggati.php";
$FF_rsUser_Source="SELECT user, password ";
if ($FF_fldUserAuthorization != "") $FF_rsUser_Source .= "," . $FF_fldUserAuthorization;
$FF_rsUser_Source .= " FROM tbl_login WHERE user='" . $FF_valUsername . "' AND password='" . $FF_valPassword . "'";
mysql_select_db($database_prova, $prova);
$FF_rsUser=mysql_query($FF_rsUser_Source, $prova) or die(mysql_error());
$row_FF_rsUser = mysql_fetch_assoc($FF_rsUser);
if(mysql_num_rows($FF_rsUser) > 0) {
// username and password match - this is a valid user
$MM_Username=$FF_valUsername;
session_register("MM_Username");
if ($FF_fldUserAuthorization != "") {
$MM_UserAuthorization=$row_FF_rsUser[$FF_fldUserAuthorization];
} else {
$MM_UserAuthorization="";
}
session_register("MM_UserAuthorization");
if (isset($accessdenied) && false) {
$FF_redirectLoginSuccess = $accessdenied;
}
mysql_free_result($FF_rsUser);
session_register("FF_login_failed");
$FF_login_failed = false;
header ("Location: $FF_redirectLoginSuccess");
exit;
}
mysql_free_result($FF_rsUser);
session_register("FF_login_failed");
$FF_login_failed = true;
header ("Location: $FF_redirectLoginFailed");
exit;
}
?>
riservato.php
codice:
<?php
// *** Restrict Access To Page: Grant or deny access to this page
$FF_authorizedUsers=" ";
$FF_authFailedURL="riloggati.php";
$FF_grantAccess=0;
session_start();
if (isset($HTTP_SESSION_VARS["MM_Username"])) {
if (true || !(isset($HTTP_SESSION_VARS["MM_UserAuthorization"])) || $HTTP_SESSION_VARS["MM_UserAuthorization"]=="" || strpos($FF_authorizedUsers, $HTTP_SESSION_VARS["MM_UserAuthorization"])) {
$FF_grantAccess = 1;
}
}
if (!$FF_grantAccess) {
$FF_qsChar = "?";
if (strpos($FF_authFailedURL, "?")) $FF_qsChar = "&";
$FF_referrer = "Restricted Area";
$FF_authFailedURL = $FF_authFailedURL . $FF_qsChar . "accessdenied=" . urlencode($FF_referrer);
header("Location: $FF_authFailedURL");
exit;
}
?>
Son sicuro che il login funzioni perchè se metto in $FF_redirectLoginSuccess una pagina che non ha un sistema di area riservata, avviene correttamente; invece se sbaglio il login mi manda a riloggati.php. Ma se effettuo correttamente il login e rindirizzo ad una pagina che ha il sistema di area riservata, mi manda lo stesso a riloggati.php, perche?
Spero di essermi spiegato e grazie in anticipo!