Bloccare le pagine in php
Salve,
ho creato una registrazione completa al mio sito; log-in, log-out, registrazione ecc...
poi ho creato tre tabelle nel db, tabella utenti, permessi, sessioni
ora chiedo dato che non trovo da nessuna parte, vorrei bloccare delle pagine e per vederele l'utente deve effettuare il login...
inoltre vorrei se possibile un script o qualcosa del genere da mettere in alto con scritto il nome utente e il tasto log-out...
vi prego aiuto sto impazzendo :???::???::???:
------
ecco i file della mia registrazione
Codice PHP:
auth.lib.php
<?php
$_AUTH = array(
"TRANSICTION METHOD" => AUTH_USE_COOKIE
);
function auth_set_option($opt_name, $opt_value){
global $_AUTH;
$_AUTH[$opt_name] = $opt_value;
}
function auth_get_option($opt_name){
global $_AUTH;
return is_null($_AUTH[$opt_name])
? NULL
: $_AUTH[$opt_name];
}
function auth_clean_expired(){
global $_CONFIG;
$result = mysql_query("SELECT creation_date FROM ".$_CONFIG['table_sessioni']." WHERE uid='".auth_get_uid()."'");
if($result){
$data = mysql_fetch_array($result);
if($data['creation_date']){
if($data['creation_date'] + $_CONFIG['expire'] <= time()){
switch(auth_get_option("TRANSICTION METHOD")){
case AUTH_USE_COOKIE:
setcookie('uid');
break;
case AUTH_USE_LINK:
global $_GET;
$_GET['uid'] = NULL;
break;
}
}
}
}
mysql_query("
DELETE FROM ".$_CONFIG['table_sessioni']."
WHERE creation_date + ".$_CONFIG['expire']." <= ".time()
);
}
function auth_get_uid(){
$uid = NULL;
switch(auth_get_option("TRANSICTION METHOD")){
case AUTH_USE_COOKIE:
global $_COOKIE;
$uid = isset($_COOKIE['uid']) ? $_COOKIE['uid'] : NULL;
break;
case AUTH_USE_LINK:
global $_GET;
$uid = isset($_GET['uid']) ? $_GET['uid'] : NULL;
break;
}
return $uid ? $uid : NULL;
}
function auth_get_status(){
global $_CONFIG;
auth_clean_expired();
$uid = auth_get_uid();
if(is_null($uid))
return array(100, NULL);
$result = mysql_query("SELECT U.name as name, U.surname as surname, U.username as username, U.password as password
FROM ".$_CONFIG['table_sessioni']." S,".$_CONFIG['table_utenti']." U
WHERE S.user_id = U.id and S.uid = '".$uid."'");
if(mysql_num_rows($result) != 1)
return array(100, NULL);
else{
$user_data = mysql_fetch_assoc($result);
return array(99, array_merge($user_data, array('uid' => $uid)));
}
}
function auth_login($uname, $passw){
global $_CONFIG;
$result = mysql_query("
SELECT *
FROM ".$_CONFIG['table_utenti']."
WHERE username='".$uname."' and password=MD5('".$passw."') and temp = '0'"
);
if(mysql_num_rows($result) != 1){
return array(AUTH_INVALID_PARAMS, NULL);
}else{
$data = mysql_fetch_array($result);
return array(AUTH_LOGEDD_IN, $data);
}
}
function auth_generate_uid(){
list($usec, $sec) = explode(' ', microtime());
mt_srand((float) $sec + ((float) $usec * 100000));
return md5(uniqid(mt_rand(), true));
}
function auth_register_session($udata){
global $_CONFIG;
$uid = auth_generate_uid();
mysql_query("
INSERT INTO ".$_CONFIG['table_sessioni']."
(uid, user_id, creation_date)
VALUES
('".$uid."', '".$udata['id']."', ".time().")
"
);
if(!mysql_insert_id()){
return array(AUTH_LOGEDD_IN, $uid);
}else{
return array(AUTH_FAILED, NULL);
}
}
function auth_logout(){
global $_CONFIG;
$uid = auth_get_uid();
if(is_null($uid)){
return false;
}else{
mysql_query("
DELETE FROM ".$_CONFIG['table_sessioni']."
WHERE uid = '".$uid."'"
);
return true;
}
}
?>
Codice PHP:
config.php
<?php
error_reporting(E_ALL);
$_CONFIG['host'] = "*******";
$_CONFIG['user'] = "*******";
$_CONFIG['pass'] = "*******";
$_CONFIG['dbname'] = "********";
$_CONFIG['table_sessioni'] = "sessioni";
$_CONFIG['table_utenti'] = "utenti";
$_CONFIG['expire'] = 60;
$_CONFIG['regexpire'] = 12; //in ore
$_CONFIG['check_table'] = array(
"username" => "check_username",
"password" => "check_global",
"name" => "check_global",
"surname" => "check_global",
"mail" => "check_global"
);
function check_username($value){
global $_CONFIG;
$value = trim($value);
if($value == "")
return "Il campo non può essere lasciato vuoto";
$query = mysql_query("
SELECT id
FROM ".$_CONFIG['table_utenti']."
WHERE username='".$value."'");
if(mysql_num_rows($query) != 0)
return "Nome utente già utilizzato";
return true;
}
function check_global($value){
global $_CONFIG;
$value = trim($value);
if($value == "")
return "Il campo non può essere lasciato vuoto";
return true;
}
//--------------
define('AUTH_LOGGED', 99);
define('AUTH_NOT_LOGGED', 100);
define('AUTH_USE_COOKIE', 101);
define('AUTH_USE_LINK', 103);
define('AUTH_INVALID_PARAMS', 104);
define('AUTH_LOGEDD_IN', 105);
define('AUTH_FAILED', 106);
define('REG_ERRORS', 107);
define('REG_SUCCESS', 108);
define('REG_FAILED', 109);
$conn = mysql_connect($_CONFIG['host'], $_CONFIG['user'], $_CONFIG['pass']) or die('Impossibile stabilire una connessione');
mysql_select_db($_CONFIG['dbname']);
?>
Codice PHP:
confirm.php
<?php
include_once("config.php");
include_once("reg.lib.php");
if(isset($_GET['id']) and strlen($_GET['id']) == 32){
reg_clean_expired();
$status = reg_confirm($_GET['id']);
switch($status){
case REG_SUCCESS:
header("Refresh: 2;URL=home.html");
echo "La tua registrazione è stata confermata; ora puoi effettuare il login! verrai indirizzato subito
al login";
break;
case REG_FAILED:
header("Refresh: 2;URL=home.html");
echo "La registrazione non può essere confermata, probabilemente poichè è scaduta.";
break;
}
}
?>
Codice PHP:
license.lib.php
<?php
function license_get_list(){
$result = mysql_query("
SELECT *
FROM permessi
");
$data = array();
while($tmp = mysql_fetch_assoc($result)){
array_push($data, $tmp);
};
return $data;
}
function license_change($userid, $perms){
mysql_query("
UPDATE utenti
SET permessi='".$perms."' WHERE id='".$userid."'
");
}
function license_new_id(){
$result = mysql_query("
SELECT (id*2) as next_id
FROM permessi
ORDER BY id DESC
LIMIT 0,1
");
if(mysql_num_rows($result) != 0){
return mysql_result($result, 0, "next_id");
}else{
return 1;
}
}
function license_add($name, $desc){
mysql_query("
INSERT INTO permessi
VALUES ('".license_new_id()."','".$name."','".$desc."')
");
}
function license_user_get_perms($id){
return intval(mysql_result(mysql_query("
SELECT permessi
FROM utenti
WHERE id = '".$id."'
"), 0 ,'permessi'));
}
function license_has($user, $perm){
$permessi = license_user_get_perms(user_get_id($user));
$perm = mysql_result(mysql_query("
SELECT id
FROM permessi
WHERE nome = '".$perm."'
"), 0 ,'id');
return intval($permessi) & intval($perm);
}
function license_get($user){
$permessi = license_user_get_perms(user_get_id($user));
$perm_list = array();
foreach(license_get_list() as $perm){
if($permessi & intval($perm['id'])){
$perm_list[] = $perm;
}
}
return $perm_list;
}
?>