Visualizzazione risultati 1 fino 2 di 2

Discussione: Bloccare le pagine in php

  1. #1
    Guest

    Predefinito 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;
    }
    ?>
    Ultima modifica di andreafallico : 18-10-2010 alle ore 16.02.13

  2. #2
    Guest

    Predefinito ecco i file.........

    e tutti gli altri file...
    Codice PHP:
    login.php

    <?php
    include_once("config.php");
    include_once(
    "auth.lib.php");

    list(
    $status, $user) = auth_get_status();

    if(
    $status == AUTH_NOT_LOGGED){
    $uname = strtolower(trim($_POST['uname']));
    $passw = strtolower(trim($_POST['passw']));

    if(
    $uname == "" or $passw == ""){
    $status = AUTH_INVALID_PARAMS;
    }else{
    list(
    $status, $user) = auth_login($uname, $passw);
    if(!
    is_null($user)){
    list(
    $status, $uid) = auth_register_session($user);
    }
    }
    }

    switch(
    $status){
    case
    AUTH_LOGGED:
    header("Refresh: 3;URL=home.html");
    echo
    '<div align="center">Sei gia connesso ... attendi il reindirizzamento</div>';
    break;
    case
    AUTH_INVALID_PARAMS:
    header("Refresh: 3;URL=home.html");
    echo
    '<div align="center">Hai inserito dati non corretti ... attendi il reindirizzamento</div>';
    break;
    case
    AUTH_LOGEDD_IN:
    switch(
    auth_get_option("TRANSICTION METHOD")){
    case
    AUTH_USE_LINK:
    header("Refresh: 3;URL=home.html?uid=".$uid);
    break;
    case
    AUTH_USE_COOKIE:
    header("Refresh: 3;URL=home.html");
    setcookie('uid', $uid, time()+3600*365);
    break;
    case
    AUTH_USE_SESSION:
    header("Refresh: 3;URL=home.html");
    $_SESSION['uid'] = $uid;
    break;
    }
    echo
    '<div align="center">Grazie!'.$user['name'].' ... attendi il reindirizzamento</div>';
    break;
    case
    AUTH_FAILED:
    header("Refresh: 5;URL=home.html");
    echo
    '<div align="center">Fallimento durante il tentativo di connessione ... attendi il reindirizzamento</div>';
    break;
    }
    ?>
    Codice PHP:
    logout.php

    <?php
    include_once("config.php");
    include_once(
    "auth.lib.php");

    list(
    $status, $user) = auth_get_status();
    header("Refresh: 1;URL=home.html");

    if(
    $status == AUTH_LOGGED){
    if(
    auth_logout()){
    echo
    '<div align="center">Disconnessione effettuata! ... attendi il reindirizzamento, Grazie ed arrivederci!</div>';
    }else{
    echo
    '<div align="center">Errore durante la disconnessione ... attendi il reindirizzamento</div>';
    }
    }else{
    echo
    '<div align="center">Non sei connesso ... attendi il reindirizzamento</div>';
    }
    ?>
    Codice PHP:
    reg.lib.php

    <?php
    function reg_register($data){
    //registro l'utente
    global $_CONFIG;

    $id = reg_get_unique_id();
    mysql_query("
    INSERT INTO "
    .$_CONFIG['table_utenti']."
    (name, surname, username, password, temp, regdate, uid)
    VALUES
    ('"
    .$data['name']."','".$data['surname']."','".$data['username']."',MD5('".$data['password']."'),
    '1', '"
    .time()."','".$id."')");

    //Decommentate la riga seguente per testare lo script in locale
    //echo "<a href=\"http://webwin.altervista.org/confirm.php?id=".$id."\">Conferma</a>";
    if(mysql_insert_id()){
    return
    reg_send_confirmation_mail($data['mail'], "test@localhost", $id);
    }else return
    REG_FAILED;
    }

    function
    reg_send_confirmation_mail($to, $from, $id){
    //invio la mail di conferma
    $msg = "Per confermare l'avvenuta registrazione, clicckate il link seguente:
    http://webwin.altervista.org/confirm.php?id="
    .$id."
    "
    ;
    return (
    mail($to, "Conferma la registrazione", $msg, "From: ".$from)) ? REG_SUCCESS : REG_FAILED;
    }

    function
    reg_clean_expired(){
    global
    $_CONFIG;

    $query = mysql_query("
    DELETE FROM "
    .$_CONFIG['table_utenti']."
    WHERE (regdate + "
    .($_CONFIG['regexpire'] * 60 * 60).") <= ".time()." and temp='1'");
    }

    function
    reg_get_unique_id(){
    //restituisce un ID univoco per gestire la registrazione
    list($usec, $sec) = explode(' ', microtime());
    mt_srand((float) $sec + ((float) $usec * 100000));
    return
    md5(uniqid(mt_rand(), true));
    }

    function
    reg_check_data(&$data){
    global
    $_CONFIG;

    $errors = array();

    foreach(
    $data as $field_name => $value){
    $func = $_CONFIG['check_table'][$field_name];
    if(!
    is_null($func)){
    $ret = $func($value);
    if(
    $ret !== true)
    $errors[] = array($field_name, $ret);
    }
    }

    return
    count($errors) > 0 ? $errors : true;
    }

    function
    reg_confirm($id){
    global
    $_CONFIG;

    $query = mysql_query("
    UPDATE "
    .$_CONFIG['table_utenti']."
    SET temp='0'
    WHERE uid='"
    .$id."'");

    return (
    mysql_affected_rows () != 0) ? REG_SUCCESS : REG_FAILED;
    }
    ?>
    Codice PHP:
    register.php

    <html>
    <head>
    <style type="text/css">
    <!--
    .style1 {
    color: #FF0000;
    font-weight: bold;
    }
    -->
    </style>
    </head>
    <body>
    <?php
    include_once("config.php");
    //include_once("reg.lib.php");
    //Funzione per la registrazione
    function reg_register($data){
    //registro l'utente
    global $_CONFIG;

    $id = reg_get_unique_id();
    mysql_query("
    INSERT INTO "
    .$_CONFIG['table_utenti']."
    (name, surname, username, password, temp, regdate, uid, accesso)
    VALUES
    ('"
    .$data['name']."','".$data['surname']."','".$data['username']."',MD5('".$data['password']."'),
    '1', '"
    .time()."','".$id."','".accesso."'.)");

    //Decommentate la riga seguente per testare lo script in locale
    //echo "<a href=\"http://webwin.altervista.org/confirm.php?id=".$id."\">Conferma</a>";
    if(mysql_insert_id()){
    return
    reg_send_confirmation_mail($data['mail'], "webwinstaff@yahoo.it", $id);
    }else return
    REG_FAILED;
    }

    function
    reg_send_confirmation_mail($to, $from, $id){
    //invio la mail di conferma
    $msg = "Grazie per esservi registrati! Per confermare l'avvenuta registrazione, clicckate il link seguente:
    http://webwin.altervista.org/confirm.php?id="
    .$id."
    "
    ;
    return (
    mail($to, "Conferma la registrazione", $msg, "From: ".$from)) ? REG_SUCCESS : REG_FAILED;
    }

    function
    reg_clean_expired(){
    global
    $_CONFIG;

    $query = mysql_query("
    DELETE FROM "
    .$_CONFIG['table_utenti']."
    WHERE (regdate + "
    .($_CONFIG['regexpire'] * 60 * 60).") <= ".time()." and temp='1'");
    }

    function
    reg_get_unique_id(){
    //restituisce un ID univoco per gestire la registrazione
    list($usec, $sec) = explode(' ', microtime());
    mt_srand((float) $sec + ((float) $usec * 100000));
    return
    md5(uniqid(mt_rand(), true));
    }

    function
    reg_check_data(&$data){
    global
    $_CONFIG;

    $errors = array();

    foreach(
    $data as $field_name => $value){
    $func = $_CONFIG['check_table'][$field_name];
    if(!
    is_null($func)){
    $ret = $func($value);
    if(
    $ret !== true)
    $errors[] = array($field_name, $ret);
    }
    }

    return
    count($errors) > 0 ? $errors : true;
    }

    function
    reg_confirm($id){
    global
    $_CONFIG;

    $query = mysql_query("
    UPDATE "
    .$_CONFIG['table_utenti']."
    SET temp='0'
    WHERE uid='"
    .$id."'");

    return (
    mysql_affected_rows () != 0) ? REG_SUCCESS : REG_FAILED;
    }
    //fine :P

    if(isset($_POST['action']) and $_POST['action'] == 'Invia'){
    $ret = reg_check_data($_POST);
    $status = ($ret === true) ? reg_register($_POST) : REG_ERRORS;

    switch(
    $status){
    case
    REG_ERRORS:
    ?>
    <span class="style1">Sono stati rilevati i seguenti errori:</span><br>
    <?php
    foreach($ret as $error)
    printf("<b>%s</b>: %s<br>", $error[0], $error[1]);
    ?>
    <br>Premere "indietro" per modificare i dati
    <?php
    break;
    header("Refresh: 1;URL=home.html");
    case
    REG_FAILED:
    header("Refresh: 3;URL=home.html");
    echo
    "Registrazione Fallita a causa di un errore interno. riprova più tardi o contatta l'admin,<br>
    verrai indirizzato alla home."
    ;
    break;
    case
    REG_SUCCESS:
    header("Refresh: 3;URL=home.html");
    echo
    "Registrazione avvenuta con successo.<br>
    Vi è stata inviata una email contente le istruzioni per confermare la registrazione. Verrai
    indirizzato alla home"
    ;
    break;
    }
    }
    ?>
    </body>
    </html>
    Codice PHP:
    utils.lib.php

    <?php

    function get_users_list(){
    $result = mysql_query("
    SELECT *
    FROM utenti
    WHERE temp='0'
    "
    );
    $data = array();
    while(
    $tmp = mysql_fetch_assoc($result)){
    array_push($data, $tmp);
    };

    return
    $data;
    }

    function
    user_get_id($user){
    return
    mysql_result(mysql_query("
    SELECT id
    FROM utenti
    WHERE username='"
    .$user['username']."' and password='".$user['password']."'
    "
    ), 0, 'id');
    }
    ?>
    Ultima modifica di andreafallico : 18-10-2010 alle ore 16.04.14

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •