Location: PHPKode > projects > Spacemarc News > spacemarc-news/admin/functions.php
<?php

/*****************************************************************
*  Spacemarc News
*  Version: 1.2.0
*  Author and copyright (C): Marcello Vitagliano
*  Web site: http://www.spacemarc.it
*  License: GNU General Public License
*
*  This program is free software: you can redistribute it and/or
*  modify it under the terms of the GNU General Public License
*  as published by the Free Software Foundation, either version 3
*  of the License, or (at your option) any later version.
*
*  Current file: functions.php
*****************************************************************/

function passwords() {
    define('SALT', '0123456789abcdefghij>-+*/%!=[$');
    global $lang, $user_password_new, $user_password1_error, $user_password2_error, $user_password2_short, $user_password2_empty, $user_password_ok, $q_riga;
    
    if (trim($_POST['user_password1']) != '' && md5(SALT . $_POST['user_password1']) != $q_riga['user_password']) {
        $user_password1_error = "<div id=\"error2\">" . $lang['pwd_no_corr'] . "</div>";
        $user_password2_error = NULL;
        $user_password2_short = NULL;
        $user_password_new = $q_riga['user_password'];
        $user_password_ok = 0;
    }
    elseif (trim($_POST['user_password2']) != '' && trim($_POST['user_password1']) == '') {
        $user_password1_error = NULL;
        $user_password2_error = "<div id=\"error2\">" . $lang['pwd_att'] . "</div>";
        $user_password2_short = NULL;
        $user_password_new = $q_riga['user_password'];
        $user_password_ok = 0;
    }
    elseif (trim($_POST['user_password2']) != '' && trim(strlen($_POST['user_password2'])) < 8) {
        $user_password2_short = "<div id=\"error2\">" . $lang['pwd_min_chars'] . "</div>";
        $user_password_new = $q_riga['user_password'];
        $user_password_ok = 0;
    }
    elseif (trim($_POST['user_password1']) != '' && trim($_POST['user_password2']) == '') {
        $user_password2_empty = "<div id=\"error2\">" . $lang['pwd_new'] . "</div>";
        $user_password_new = $q_riga['user_password'];
        $user_password_ok = 0;
    }
    elseif (trim($_POST['user_password1']) == '' && trim($_POST['user_password2']) == '') {
        $user_password1_error = NULL;
        $user_password_new = $q_riga['user_password'];
        $user_password_ok = 1;
    }
    else {
        $user_password_new = md5(SALT . $_POST['user_password2']);
        $user_password_ok = 1;
    }
}

function nome_cognome() {

    //controllo nome_cognome
    global $lang, $q_riga, $nome_cognome_errato, $user_nome_cognome_ok, $nome_cognome;
    
    if (isset($_POST['nome_cognome']) && $_POST['nome_cognome'] != $q_riga['nome_cognome']) {
        $nome_cognome = trim($_POST['nome_cognome']);
    }
    else {
        $nome_cognome = $q_riga['nome_cognome'];
    }
    
    if (trim($_POST['nome_cognome']) == '') {
        $nome_cognome_errato = "<div id=\"error2\">" . $lang['required'] . "</span>";
        $user_nome_cognome_ok = 0;
    }
    else {
        $nome_cognome_errato = NULL;
        $user_nome_cognome_ok = 1;
    }
}

function check_email() {
    global $lang, $email_errata, $email_esiste, $email_ok, $user_email_ok, $user_email_nascosta_val, $tab_utenti, $q_riga, $email;
    
    if (isset($_POST['email']) && $_POST['email'] != $q_riga['email']) {
        $email = trim($_POST['email']);
    }
    else {
        $email = $q_riga['email'];
    }

    //controllo validità indirizzo email
    
    if (!preg_match('/^[.a-z0-9_-]+@[.a-z0-9_-]+\.[a-z]{2,4}$/', $email)) {
        $email_errata = "<div id=\"error2\">" . $lang['wrong_email'] . "</div>";
        $user_email_ok = 0;
    }
    else {
        $email_errata = NULL;
        $user_email_ok = 1;
    }
    
    if (isset($_POST['user_email_nascosta'])) {
        $user_email_nascosta_val = 1;
    }
    else {
        $user_email_nascosta_val = 0;
    }

    //verifico se l'email già esiste
    
    if (isset($_GET['user_id'])) {
        
        if (!get_magic_quotes_gpc()) {
            $_POST['email'] = mysql_real_escape_string($_POST['email']);
        }
        $sql = "SELECT user_id, email FROM $tab_utenti WHERE user_id !=" . intval($_GET['user_id']) . " AND email='" . trim($_POST['email']) . "' LIMIT 1";
    }
    else {
        
        if (!get_magic_quotes_gpc()) {
            $_POST['email'] = mysql_real_escape_string($_POST['email']);
        }
        $sql = "SELECT user_id, email FROM $tab_utenti WHERE user_id !=" . intval($_SESSION['user_id']) . " AND email='" . trim($_POST['email']) . "' LIMIT 1";
    }
    $email_result = mysql_query("$sql");
    $riga = mysql_fetch_array($email_result);
    
    if (mysql_num_rows($email_result) > 0) {
        $email_esiste = "<div id=\"error2\">" . $lang['user_email_exists'] . "</div>";
        $email_ok = 0;
    }
    else {
        $email_esiste = NULL;
        $email_ok = 1;
    }
    
    if ($email_ok == 0 && $user_email_ok == 0) {
        $email_esiste = NULL;
    }
}

function data_nascita() {
    global $lang, $data_nascita_errata, $user_data_nascita_ok, $user_data_nascita2;
    
    if (trim($_POST['data_nascita']) != '') {
        $data_nascita = $_POST['data_nascita'];
        
        if (!preg_match('/^\d{1,2}\/\d{1,2}\/\d{4}$/', $data_nascita)) {
            $data_nascita_errata = "<div id=\"error2\">" . $lang['wrong_date'] . "</div>";
            $user_data_nascita_ok = 0;
        }
        else {
            $data_nascita_errata = NULL;
            $user_data_nascita_ok = 1;
        }
    }
    else {
        $data_nascita = NULL;
        $data_nascita_errata = NULL;
        $user_data_nascita_ok = 1;
    }
    $user_data_nascita2 = $data_nascita;
}

function altri_campi() {
    global $user_attivo_val, $rb_mostra_link, $rb_permessi_utente, $q_riga, $sito, $im_num, $occupazione, $citta, $hobby;

    //controllo checkbox user attivo/disattivo
    
    if (isset($_POST['user_attivo']) && $q_riga['attivo'] == 1) {
        $user_attivo_val = 0;
    }
    elseif (isset($_POST['user_attivo']) && $q_riga['attivo'] == 0) {
        $user_attivo_val = 1;
    }
    else {
        $user_attivo_val = $q_riga['attivo'];
    }

    //controllo sito
    
    if (isset($_POST['sito']) && $_POST['sito'] != $q_riga['sito']) {
        $sito = trim($_POST['sito']);
    }
    else {
        $sito = $q_riga['sito'];
    }
    
    if (isset($_POST['rb']) && $_POST['rb'] == 'sito' && (trim($sito) == '' || !(stristr($sito, 'http://')))) {
        $sito = 'http://' . $_POST['sito'];
    }

    //controllo numero im
    
    if (isset($_POST['im_num']) && $_POST['im_num'] != $q_riga['im_num']) {
        $im_num = trim($_POST['im_num']);
    }
    else {
        $im_num = $_POST['im_num'];
    }

    //controllo occupazione
    
    if (isset($_POST['occupazione']) && $_POST['occupazione'] != $q_riga['occupazione']) {
        $occupazione = trim($_POST['occupazione']);
    }
    else {
        $occupazione = $q_riga['occupazione'];
    }

    //controllo città
    
    if (isset($_POST['citta']) && $_POST['citta'] != $q_riga['citta']) {
        $citta = trim($_POST['citta']);
    }
    else {
        $citta = $q_riga['citta'];
    }

    //controllo hobby
    
    if (isset($_POST['hobby']) && $_POST['hobby'] != $q_riga['hobby']) {
        $hobby = trim($_POST['hobby']);
    }
    else {
        $hobby = $q_riga['hobby'];
    }

    //controllo mostra_link
    $rb_mostra_link = (isset($_POST['rb'])) ? $_POST['rb'] : $q_riga['mostra_link'];

    //controllo permessi utente
    $rb_permessi_utente = (isset($_POST['rbp'])) ? $_POST['rbp'] : $q_riga['permessi'];
}

function post_im() {

    //controllo im
    global $im_selected1, $im_selected2, $im_selected3, $im_selected4, $im_selected5, $im_selected6;
    
    switch ($_POST['im']) {
        case "scegli":
            $im_selected1 = 'selected="selected"';
            $im_selected2 = NULL;
            $im_selected3 = NULL;
            $im_selected4 = NULL;
            $im_selected5 = NULL;
            $im_selected6 = NULL;
        break;
        case "msn":
            $im_selected1 = NULL;
            $im_selected2 = 'selected="selected"';
            $im_selected3 = NULL;
            $im_selected4 = NULL;
            $im_selected5 = NULL;
            $im_selected6 = NULL;
        break;
        case "icq":
            $im_selected1 = NULL;
            $im_selected2 = NULL;
            $im_selected3 = 'selected="selected"';
            $im_selected4 = NULL;
            $im_selected5 = NULL;
            $im_selected6 = NULL;
        break;
        case "y!m":
            $im_selected1 = NULL;
            $im_selected2 = NULL;
            $im_selected3 = NULL;
            $im_selected4 = 'selected="selected"';
            $im_selected5 = NULL;
            $im_selected6 = NULL;
        break;
        case "skype":
            $im_selected1 = NULL;
            $im_selected2 = NULL;
            $im_selected3 = NULL;
            $im_selected4 = NULL;
            $im_selected5 = 'selected="selected"';
            $im_selected6 = NULL;
        break;
        case "gtalk":
            $im_selected1 = NULL;
            $im_selected2 = NULL;
            $im_selected3 = NULL;
            $im_selected4 = NULL;
            $im_selected5 = NULL;
            $im_selected6 = 'selected="selected"';
        break;
    }
}

function upload() {
    global $lang, $maxfilesize, $upload_msg, $upload_path, $file_rinominato;
    
    if (!isset($_FILES['userfile'])) {
        $_FILES['userfile']['tmp_name'] = NULL;
    }
    $check_chmod = substr(sprintf('%o', fileperms($_SERVER['DOCUMENT_ROOT'] . "/" . $upload_path)) , -3);
    $chmod_validi = array(
        777,
        767
    );
    
    if (!in_array($check_chmod, $chmod_validi)) {
        $upload_msg = NULL;
    }
    else {

        //se non è stato caricato nessun file non scrivo alcun messaggio
        
        if (!is_uploaded_file($_FILES['userfile']['tmp_name'])) {
            $upload_msg = NULL;
        }
        else {

            //se il file caricato ha il Type differente da quelli validi mostro il messaggio di errore e cancello il file temporaneo
            
            if ($_FILES['userfile']['type'] != "image/gif" && $_FILES['userfile']['type'] != "image/pjpeg" && $_FILES['userfile']['type'] != "image/jpeg" && $_FILES['userfile']['type'] != "application/zip" && $_FILES['userfile']['type'] != "application/x-zip-compressed" && $_FILES['userfile']['type'] != "application/pdf" && $_FILES['userfile']['type'] != "application/x-download") {
                unlink($_FILES['userfile']['tmp_name']);
                $upload_msg = " - <div id=\"error2\">" . $lang['wrong_file'] . "</div>";
            }
            else {

                //se il file supera la dimensione massima mostro il messaggio di errore
                
                if ($_FILES['userfile']['size'] > $maxfilesize) {
                    unlink($_FILES['userfile']['tmp_name']);
                    $upload_msg = " - <div id=\"error2\">" . $lang['big_file'] . "</div>";
                }
                else {

                    //rinomino il file anteponendo la data (ggmaa) e un numero random per evitare di sovrascriverlo se già esistente
                    $random = rand(000, 999);
                    $data_file = date("jny");
                    $file_rinominato = $data_file . "_" . $random . "_" . str_replace(" ", "-", $_FILES['userfile']['name']);
                    $user_dir = $_SERVER['DOCUMENT_ROOT'] . "/" . $upload_path . "/" . $_SESSION['user_id'];

                    //se non c'è la directory dell'utente che fa l'upload la creo con il file indice al suo interno
                    
                    if (!is_dir($upload_path . "/" . $_SESSION['user_id'])) {
                        @mkdir("$user_dir", 0777);
                        $file_index = @fopen("$user_dir/index.html", "w");
                        @fclose($file_index);

                        //se il file è valido lo copio nella directory di destinazione e rimuovo il file temporaneo
                        copy($_FILES['userfile']['tmp_name'], "$user_dir/" . $file_rinominato);
                        unlink($_FILES['userfile']['tmp_name']);
                    }
                    else {

                        //se il file è valido lo copio nella directory di destinazione e rimuovo il file temporaneo
                        copy($_FILES['userfile']['tmp_name'], "$user_dir/" . $file_rinominato);
                        unlink($_FILES['userfile']['tmp_name']);
                    }
                    $uploadnew = "http://" . $_SERVER['HTTP_HOST'] . "/" . $upload_path . "/" . $_SESSION['user_id'];

                    //se il file è un .zip o .pdf mostro solo il tag BBcode altrimenti anche il link diretto
                    
                    if ($_FILES['userfile']['type'] == 'application/zip' || $_FILES['userfile']['type'] == "application/x-zip-compressed" || $_FILES['userfile']['type'] == 'application/pdf' || $_FILES['userfile']['type'] == 'application/x-download') {
                        $estensione = substr($file_rinominato, strpos($file_rinominato, "."));
                        $upload_msg = " - FIle inviato: <a href=\"javascript:;\" onclick=\"addText('[url=$uploadnew/$file_rinominato]Scarica file " . $estensione . "[/url]'); return(false)\" class=\"piccolo\">inserisci</a>";
                    }
                    else {
                        $upload_msg = " - File inviato: <a href=\"javascript:;\" onclick=\"addText('[img]$uploadnew/" . $file_rinominato . "[/img]'); return(false)\" class=\"piccolo\">inserisci</a> o <a href=\"$uploadnew/" . $file_rinominato . "\" target=\"_blank\" class=\"piccolo\">visualizza</a>";
                    }
                }
            }
        }
    }
}

function immagine_apertura() {
    global $immagine, $img_ap, $img_ap_checked, $img_ap_status;
    
    if (isset($_POST['immagine']) && $_POST['immagine'] != 'http://' && $_POST['immagine'] != '') {
        $immagine = $_POST['immagine'];
        $immagine = htmlspecialchars(trim($immagine) , ENT_QUOTES);
        $img_ap = "<div class=\"imgap\"><img src=\"" . $immagine . "\" border=\"1\" alt=\"Immagine\" width=\"96\" height=\"86\" align=\"left\" /></div>";
        $img_ap_checked = 'checked="checked"';
        $img_ap_status = "inline";
    }
    else {
        $immagine = NULL;
        $img_ap = NULL;
        $img_ap_checked = NULL;
        $img_ap_status = "none";
    }
}

function sostituzione() {
    global $lang, $testo, $img_path, $nosmile;

    //sostituisco i BBcode con i tags HTML e con gli smilies
    $testo = nl2br(htmlspecialchars($_POST['testo'], ENT_QUOTES));
    
    if (isset($_POST['nosmile'])) {
        $replace = array(
            '[b]' => '<b>',
            '[/b]' => '</b>',
            '[i]' => '<i>',
            '[/i]' => '</i>',
            '[u]' => '<u>',
            '[/u]' => '</u>',
            '[ul]' => '<ul>',
            '[/ul]' => '</ul>',
            '[li]' => '<li>',
            '[/li]' => '</li>',
            '&amp;' => '&'
        );
        $nosmile == 1;
        $testo = strtr($testo, $replace);
    }
    else {
        $nosmile == 0;
        $replace = array(
            '[b]' => '<b>',
            '[/b]' => '</b>',
            '[i]' => '<i>',
            '[/i]' => '</i>',
            '[u]' => '<u>',
            '[/u]' => '</u>',
            '[ul]' => '<ul>',
            '[/ul]' => '</ul>',
            '[li]' => '<li>',
            '[/li]' => '</li>',
            '&amp;' => '&',
            ':cool:' => '<img src="' . $img_path . '/cool.gif" alt="cool" />',
            ':)' => '<img src="' . $img_path . '/smile.gif" alt="smile" />',
            '):' => '<img src="' . $img_path . '/mad.gif" alt="mad" />',
            ':p' => '<img src="' . $img_path . '/tongue.gif" alt="tongue" />',
            ':D' => '<img src="' . $img_path . '/biggrin.gif" alt="biggrin" />',
            ';)' => '<img src="' . $img_path . '/wink.gif" alt="wink" />',
            ':o' => '<img src="' . $img_path . '/ohh.gif" alt="ohh" />',
            ':zizi:' => '<img src="' . $img_path . '/zizi.gif" alt="zizi" />',
            ':(' => '<img src="' . $img_path . '/sad.gif" alt="sad" />',
            ':green:' => '<img src="' . $img_path . '/mrgren.gif" alt="mrgren" />',
            ':dotto:' => '<img src="' . $img_path . '/dotto.gif" alt="dotto" />',
            ':cry:' => '<img src="' . $img_path . '/cry.gif" alt="cry" />',
            ':parolaccia:' => '<img src="' . $img_path . '/parolaccia.gif" alt="parolaccia" />',
            ':incupito:' => '<img src="' . $img_path . '/incupito.gif" alt="incupito" />',
            ':stordito:' => '<img src="' . $img_path . '/stordito.gif" alt="stordito" />',
            ':info:' => '<img src="' . $img_path . '/info.png" alt="info" />',
            ':star:' => '<img src="' . $img_path . '/star.png" alt="star" />',
            ':alert:' => '<img src="' . $img_path . '/alert.png" alt="alert" />',
            ':???:' => '<img src="' . $img_path . '/question.png" alt="question" />',
            ':check:' => '<img src="' . $img_path . '/check.png" alt="check" />',
            ':wiki:' => '<img src="' . $img_path . '/wikipedia.png" alt="wikipedia" />',
            ':chat:' => '<img src="' . $img_path . '/chat.png" alt="chat" />',
            ':www:' => '<img src="' . $img_path . '/www.png" alt="www" />',
            ':man:' => '<img src="' . $img_path . '/man.png" alt="man" />',
            ':mail:' => '<img src="' . $img_path . '/mail.png" alt="mail" />',
            ':fb:' => '<img src="' . $img_path . '/facebook.gif" alt="facebook" />',
            ':li:' => '<img src="' . $img_path . '/linkedin.gif" alt="linkedin" />',
            ':ms:' => '<img src="' . $img_path . '/myspace.gif" alt="myspace" />',
            ':tw:' => '<img src="' . $img_path . '/twitter.gif" alt="twitter" />',
            ':gw:' => '<img src="' . $img_path . '/gwave.png" alt="gwave" />'
        );
        $testo = strtr($testo, $replace);
    }

    //cerco eventuali BBcode URL, email, dimensione testo, quote ecc...
    $testo_cerca = array(
        "{\[email\](\r\n|\r|\n)*([a-zA-Z0-9\._-]+@(([a-zA-Z0-9_-])+\.)+[a-z]{2,6})\[/email\]}siU",
        "{\[email=(\w[\w\-\.\+]*?@\w[\w\-\.]*?\w\.[a-zA-Z]{2,4})\](.+)?\[\/email\]}siU",
        "{(\[)(url)(])((http|ftp|https)://)([^;<>\*\(\)\"\s]*)(\[/url\])}siU",
        "{(\[)(url)(=)(['\"]?)((http|ftp|https)://)([^;<>\*\(\)\"\s]*)(\\4])(.*)(\[/url\])}siU",
        "{(\[)(callto)(])((callto):)([^;<>\*\(\)\"\s]*)(\[/callto\])}siU",
        "{(\[)(callto)(=)(['\"]?)((callto):)([^;<>\*\(\)\"\s]*)(\\4])(.*)(\[/callto\])}siU",
        "{(\[)(size)(=)(['\"]?)([0-9]*)(\\4])(.*)(\[/size\])}siU",
        "{\[img\](\r\n|\r|\n)*((http|https)://([^;<>\*\(\)\"\s]+)|[a-z0-9/\\\._\- ]+)\[/img\]}siU",
        "{\[quote\](\r\n|\r|\n)*(.+)\[/quote\]}siU",
        "{\[code\](\r\n|\r|\n)*(.+)\[/code\]}siU",
        "{\[yt\]([0-9A-Za-z-_]{11})\[/yt]}siU"
    );

    //...e li sostituisco con gli appositi tags HTML
    $testo_sostituisci = array(
        "<a href=\"mailto:\\2\">\\2</a>",
        "<a href=\"mailto:\\1\">\\2</a>",
        "<a href=\"\\4\\6\" target=\"_blank\">\\4\\6</a>",
        "<a href=\"\\5\\7\" target=\"_blank\">\\9</a>",
        "<a href=\"\\4\\6\" target=\"_blank\">\\4\\6</a>",
        "<a href=\"\\5\\7\" target=\"_blank\">\\9</a>",
        "<span style=\"font-size: \\5pt;\">\\7</span>",
        "<img src=\"\\2\" border=\"0\" alt=\"immagine\" title=\"\" />",
        "<div style=\"background-color:#FFFFFF; margin:0 auto; width:90%; \" class=\"text2\"><b>Citazione:</b></div><div style=\"background-color:#F9F9F9; margin:0 auto; width: 90%; height: auto; border: 1px solid #DEE3E7; padding: 3;\" class=\"text2\">\\2</div>",
        "<div style=\"background-color:#FFFFFF; margin:0 auto; width:90%; \" class=\"text2\"><b>Codice:</b></div><div style=\"background-color:#F9F9F9; width:560px; height: auto; padding:3px; line-height: 7px; border: 1px solid #E1E1E1; white-space: nowrap; overflow: auto;\" class=\"text\"><pre>\\2</pre></div>",
        "<object width=\"320\" height=\"265\"><param name=\"movie\" value=\"http://www.youtube.com/v/\\1&hl=it&fs=1&\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/\\1&hl=it&fs=1&\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"320\" height=\"265\"></embed></object>"
    );
    $testo = preg_replace($testo_cerca, $testo_sostituisci, $testo);
}

function permessi() {
    global $lang, $q_riga_perm, $maxfilesize, $file_dir, $upload_path, $upload_msg, $letture, $stampe;
    $check_chmod = substr(sprintf('%o', fileperms($_SERVER['DOCUMENT_ROOT'] . "/" . $upload_path)) , -3);
    $chmod_validi = array(
        777,
        767
    );
    
    if (in_array($check_chmod, $chmod_validi)) {
        $upload_ok = $lang['chmod'] . " &quot;" . $file_dir . "&quot;" . ': ' . substr(sprintf('%o', fileperms($_SERVER['DOCUMENT_ROOT'] . "/" . $upload_path)) , -3) . $upload_msg;
    }
    else {
        $upload_ok = "<span style=\"color: rgb(255, 0, 0);\"> " . $lang['permessi_non_validi'] . " per la directory &quot;$file_dir&quot;</span>";
    }
    
    if ($q_riga_perm['permessi'] == "upload") {
        $p_permessi = '<tr><td bgcolor="#DEE3E7" align="center" class="text"><b>Upload file</b> <span class="text2">' . $lang['uploadtext'] . $maxfilesize / 1024 . ' KiB</span></td>';
        $p_permessi.= '<td bgcolor="#EEEEEE" align="left" class="text2"><input type="file" name="userfile" size="20" />';
        $p_permessi.= $upload_ok . '</td></tr>';
    }
    elseif ($q_riga_perm['permessi'] == "letturestampe") {
        $p_permessi = '<tr><td bgcolor="#DEE3E7" align="center" class="text"><b>Letture e stampe</b></td>';
        $p_permessi.= '<td bgcolor="#EEEEEE" align="left" class="text2"><input type="text" name="letture" size="2" value="' . $letture . '" maxlength="8" onkeypress="return onlynumbers(event,\'0123456789\')" /> ' . $lang['numletture'] . '  &nbsp; <input type="text" name="stampe" size="2" value="' . $stampe . '" maxlength="8" onkeypress="return onlynumbers(event,\'0123456789\')" /> ' . $lang['numstampe'] . '</td></tr>';
    }
    elseif ($q_riga_perm['permessi'] == "tutto") {
        $p_permessi = '<tr><td bgcolor="#DEE3E7" align="center" class="text"><b>Upload file</b> <span class="text2">' . $lang['uploadtext'] . $maxfilesize / 1024 . ' KiB</span></td>';
        $p_permessi.= '<td bgcolor="#EEEEEE" align="left" class="text2"><input type="file" name="userfile" size="20" />';
        $p_permessi.= $upload_ok . '</td></tr>';
        $p_permessi.= '<tr><td bgcolor="#DEE3E7" align="center" class="text"><b>Letture e stampe</b></td>';
        $p_permessi.= '<td bgcolor="#EEEEEE" align="left" class="text2"><input type="text" name="letture" size="2" value="' . $letture . '" maxlength="8" onkeypress="return onlynumbers(event,\'0123456789\')" /> ' . $lang['numletture'] . '  &nbsp; <input type="text" name="stampe" size="2" value="' . $stampe . '" maxlength="8" onkeypress="return onlynumbers(event,\'0123456789\')" /> ' . $lang['numstampe'] . '</td></tr>';
    }
    elseif ($q_riga_perm['permessi'] == "nessuno") {
        $p_permessi = NULL;
    }
    
    return $p_permessi;
}

function operazioni_utente() {
    global $lang, $q_user_id_del, $tab_utenti, $tab_news, $q_riga, $img_path, $q_user_id;

    //posso cancellare e disattivare solo se sono admin
    
    if ($_SESSION['livello_id'] == 1 && isset($_GET['user_id']) && $_GET['user_id'] != $_SESSION['user_id'] && preg_match('/^[0-9]{1,4}$/', $_GET['user_id'])) {

        //cancellazione utente
        
        if (isset($_POST['cbdel'])) {
            $q_user_id_del = $_GET['user_id'];

            //posso cancellare solo l'utente che non ha inserito news
            $totale_news = mysql_result(mysql_query("SELECT COUNT(id) FROM $tab_news WHERE user_id=$q_user_id_del") , 0);
            
            if ($totale_news == 0) {
                
                if (mysql_query("DELETE FROM $tab_utenti WHERE user_id=$q_user_id_del AND livello_id>1 LIMIT 1")) {
                    $delete_msg = "<div id=\"success\">" . $lang['utente_cancellato'] . " <img src=\"$img_path/attendi.gif\" title=\"Attendi\" alt=\"Attendi...\" /></div><br />
                  				<script language=\"JavaScript\" type=\"text/javascript\">
                  				<!--
                  				function doRedirect() {
                  				location.href = \"utenti.php\";
                  				}
                  				window.setTimeout(\"doRedirect()\", 2000);
                  				//-->
                  				</script>";
                }
                else {
                    $delete_msg = "<div align=\"center\"><div id=\"error\">" . $lang['canc_user_error'] . "</div><br /><span class=\"text2\">" . mysql_error() . "</span><br /><br />";
                }
                
                return $delete_msg;
            }
            else {
                
                return $delete_msg;
            }
        }

        //attivazione utente
        elseif (isset($_POST['user_attivo'])) {
            $q_user_id_del = $_GET['user_id'];
            $redirect = (isset($_GET['user_id'])) ? "profilo_admin.php?user_id=$q_user_id_del" : "profilo_admin.php";
            
            if (mysql_query("UPDATE $tab_utenti SET attivo=1 WHERE user_id=$q_user_id_del AND attivo=0 LIMIT 1")) {
                $attivato_msg = "<div align=\"center\"><span class=\"text\"><b>" . $lang['utente_attivato'] . "</b></span> <img src=\"$img_path/attendi.gif\" title=\"Attendi\" alt=\"Attendi...\" /></div><br />
    				<script language=\"JavaScript\" type=\"text/javascript\">
    				<!--
    				function doRedirect() {
    				location.href = \"$redirect\";
    				}
    				window.setTimeout(\"doRedirect()\", 2000);
    				//-->
    				</script>";
            }
            else {
                $attivato_msg = "<div id=\"error\">" . $lang['attiva_user_error'] . "</div><br /><span class=\"text2\">" . mysql_error() . "</span><br /><br />";
            }
            
            return $attivato_msg;
        }

        //disattivazione utente
        elseif (isset($_POST['user_disattivo'])) {
            $q_user_id_del = $_GET['user_id'];
            $redirect = (isset($_GET['user_id'])) ? "profilo_admin.php?user_id=$q_user_id_del" : "profilo_admin.php";
            
            if (mysql_query("UPDATE $tab_utenti SET attivo=0, mostra_link='nome' WHERE user_id=$q_user_id_del AND attivo=1 AND livello_id>1 LIMIT 1")) {
                $disattivato_msg = "<div align=\"center\"><span class=\"text\"><b>" . $lang['utente_disattivato'] . "</b></span> <img src=\"$img_path/attendi.gif\" title=\"Attendi\" alt=\"Attendi...\" /></div><br />
    				<script language=\"JavaScript\" type=\"text/javascript\">
    				<!--
    				function doRedirect() {
    				location.href = \"$redirect\";
    				}
    				window.setTimeout(\"doRedirect()\", 2000);
    				//-->
    				</script>";
            }
            else {
                $disattivato_msg = "<div id=\"error\">" . $lang['disatta_user_error'] . "</div><br /><span class=\"text2\">" . mysql_error() . "</span><br /><br />";
            }
            
            return $disattivato_msg;
        }
    }

    //cancellazione news dell'utente
    
    if (isset($_POST['cbdelnews'])) {
        $q_user_id_del = (isset($_GET['user_id']) && $_SESSION['livello_id'] == 1) ? intval($_GET['user_id']) : intval($_SESSION['user_id']);
        $redirect = (isset($_GET['user_id']) && $_SESSION['livello_id'] == 1) ? "profilo_admin.php?user_id=$q_user_id_del" : "profilo_admin.php";
        
        if (mysql_query("DELETE FROM $tab_news WHERE user_id=$q_user_id_del")) {
            $delete_news_msg = "<div align=\"center\"><span class=\"text\"><b>" . $lang['canc_news_user_ok'] . "</b></span> <img src=\"$img_path/attendi.gif\" title=\"Attendi\" alt=\"Attendi...\" /></div><br />
    				<script language=\"JavaScript\" type=\"text/javascript\">
    				<!--
    				function doRedirect() {
    				location.href = \"$redirect\";
    				}
    				window.setTimeout(\"doRedirect()\", 2000);
    				//-->
    				</script>";
        }
        else {
            $delete_news_msg = "<div id=\"error\">" . $lang['canc_news_user_error'] . "</div><br /><span class=\"text2\">" . mysql_error() . "</span><br /><br />";
        }
        
        return $delete_news_msg;
    }
}

function page_bar($indirizzo, $pagina_attuale, $numero_pagine, $rec_page) {
    $paginazione = NULL;
    
    if ($pagina_attuale > 1) {
        $paginazione.= "\n<a href=\"$indirizzo&amp;start=" . (($pagina_attuale - 2) * $rec_page) . "\" class=\"pager\">Indietro</a>&nbsp;&nbsp;";
    }
    
    if ($pagina_attuale > 5 && $numero_pagine > 6) {
        $pagina_inizio = $pagina_attuale - 2;
    }
    else {
        $pagina_inizio = 1;
    }
    
    if ($pagina_attuale < ($numero_pagine - 3)) {
        $pagina_fine = ($numero_pagine > 6 ? max(($pagina_attuale + 2) , 6) : $numero_pagine);
    }
    else {
        $pagina_fine = $numero_pagine;
    }
    
    if ($pagina_inizio > 1) {
        $paginazione.= "<a href=\"$indirizzo&amp;start=0\" class=\"pager\" title=\"INIZIO\">1</a>&nbsp;... ";
    }
    
    for ($pagina = $pagina_inizio;$pagina <= $pagina_fine;++$pagina) {
        
        if ($pagina == $pagina_attuale) {
            $paginazione.= "<span class=\"pagertext\">[$pagina]</span> ";
        }
        else {
            $paginazione.= "<a href=\"$indirizzo&amp;start=" . (($pagina - 1) * $rec_page) . "\" class=\"pager\">" . $pagina . "</a>&nbsp;";
        }
    }
    
    if (($numero_pagine - $pagina_fine) > 0) {
        $paginazione.= "... <a href=\"$indirizzo&amp;start=" . (($numero_pagine - 1) * $rec_page) . "\" class=\"pager\" title=\"FINE\">$numero_pagine</a>&nbsp;";
    }
    
    if ($pagina_attuale < $numero_pagine) {
        $paginazione.= "&nbsp;<a href=\"$indirizzo&amp;start=" . (($pagina_attuale) * $rec_page) . "\" class=\"pager\">Avanti</a>";
    }
    
    return ($paginazione);
}

//cancella i file di upload dell'utente

function full_rmdir($dirname) {
    global $lang, $del_ok;
    
    if ($dirHandle = @opendir($dirname)) {
        $old_cwd = getcwd();
        chdir($dirname);
        
        while ($file = readdir($dirHandle)) {
            
            if ($file == '.' || $file == '..') continue;
            
            if (is_dir($file)) {
                
                if (!full_rmdir($file)) {
                    
                    return FALSE;
                }
            }
            else {

                //se non riesco a cancellare il file (es. permessi negati)
                
                if (!unlink($file)) {
                    
                    return FALSE;
                }
            }
        }
        closedir($dirHandle);
        chdir($old_cwd);
        
        if (!rmdir($dirname)) {
            
            return FALSE;
        }

        //ok, ho cancellato la directory
        $del_ok = "<div id=\"success\">" . $lang['canc_dir_files_ok'] . "</div><br />";
        
        return TRUE;
    }
    else {

        //non riesco ad accedere alla directory: non esiste o è già stata cancellata
        
        return FALSE;
    }
}

function check_login() {
    global $dir_admin, $tab_utenti;
    $cookie = (isset($_COOKIE['accesso_news'])) ? $_COOKIE['accesso_news'] : NULL;
    
    if ($cookie) {
        $parte1 = substr($cookie, 0, 32);
        $check_user = "SELECT user_id, livello_id, nome_cognome, token, attivo FROM $tab_utenti WHERE MD5(token)='$parte1' LIMIT 1";
        $result = mysql_query("$check_user");
        $riga = mysql_fetch_assoc($result);
        
        if (md5($riga['token']) != $parte1 || $riga['attivo'] == 0) {
            header("Location: " . $dir_admin . "/logout.php");
            exit();
        }
        else {
            $_SESSION['loggato'] = "login_ok";
            $_SESSION['user_id'] = $riga['user_id'];
            $_SESSION['livello_id'] = $riga['livello_id'];
            $_SESSION['nome_cognome_sess'] = $riga['nome_cognome'];
        }
    }
    elseif (isset($_SESSION['loggato']) && $_SESSION['loggato'] == 'login_ok') {
        $check_user = "SELECT attivo FROM $tab_utenti WHERE user_id=" . $_SESSION['user_id'] . " LIMIT 1";
        $result = mysql_query("$check_user");
        $riga = mysql_fetch_assoc($result);
        
        if ($riga['attivo'] == 0) {
            header("Location: " . $dir_admin . "/logout.php");
            exit();
        }
    }
    else {
        header("Location: " . $dir_admin . "/logout.php");
        exit();
    }
}

function NewPassword() {
    $caratteri = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_+";
    srand((double)microtime() * 1000000);
    $elaborazione = '';
    
    for ($contatore = 0;$contatore < 8;$contatore++) {
        $numeroCasuale = rand(0, strlen($caratteri) - 1);
        $carattere = substr($caratteri, $numeroCasuale, 1);
        $elaborazione = $elaborazione . $carattere;
    }
    
    return $elaborazione;
}
?>
Return current item: Spacemarc News