Visualizzazione risultati 1 fino 5 di 5

Discussione: registrazione log

  1. #1
    Guest

    Exclamation registrazione log

    ciao a tutti, ho un area di upload formata da 2 file:
    il file upload.php con il quale si fa l'upload
    Codice PHP:
    <?
    include("uploader.php"); // Don't put anything above this line or you'll get errors
    ?>
    <p><strong><span style="background: #fff; color: #000"><? if($_REQUEST["message"] == "") echo "seleziona un file da caricare con il tasto sfoglia."; else echo $_REQUEST["message"]?></span></strong></p>
    <form action="upload.php" enctype="multipart/form-data" id="upload" method="post">
    <p><input id="userfile" name="userfile" size="45" type="file" /><input name="upload" type="submit" value="Upload File" /><br /></p>

    <p>i file con le seguenti estensioni non sono accettati: <strong><?=$file_extensions_list?></strong> se hai la necessità di caricare file con una di queste estensioniinvia un email a webmaster@angeliperungiorno.it indicando l'estensione del file che vuoi caricare</p>

    <p>dimensione massima file: <strong> (<?=round($maximum_file_size/1048576)?>MB)</strong></p>




    </form>

    <p><strong>file caricati</strong></p>
    <table style="border: 2px dotted #000; width: 100%">
    <? if($uploaded_files == "") echo " <tr>
    <td colspan=\"2\" style=\"background: #fff; color: #000; text-align: center\"><br /><strong>non hai ancora caricato nessun file.</strong><br /><br /></td>
    </tr>
    "
    ; else echo $uploaded_files ?>
    </table>
    e uploader.php che elabora

    Codice PHP:
    <?
    // Begin options
    $allow_file_deletion = true; // To allow visitors to delete files, leave this at true; otherwise, change it to false
    $file_extensions = array(".doc", ".gif", ".htm", ".html", ".jpg", ".png", ".txt"); // Add or delete the file extensions you want to allow
    $file_extensions_non_ammesse = array(".php", ".asp", ".cgi");
    $file_extensions_list = ".php, .asp, .cgi, .exe"; // Type the same as above, without the quotes separating them
    $max_length = 30; // The maximum character length for a file name
    $maximum_file_size = "26214400"; // In bytes
    $upload_log_file = "upload_log.txt"; // Change this to the log file you want to use
    $folder_directory = "http://angelibrescia.altervista.org/upload/";
    $message = "";
    $set_chmod = 0;
    $site_uri = "http://".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"];
    $upload_directory = "uploaded/";
    $upload_uri = "http://angelibrescia.altervista.org/uploaded";

    if(
    $allow_file_deletion == true) $status = "enabled";
    else
    $status = "disabled";

    if(
    $_REQUEST["delete"] && $allow_file_deletion) {
    $resource = fopen($upload_log_file,"a");
    fwrite($resource,date("F d, Y / h:i:sa")." - ".$_REQUEST["delete"]." deleted by ".$_SERVER["REMOTE_ADDR"]."\n");
    fclose($resource);

    if(
    strpos($_REQUEST["delete"],"/.") > 0);
    elseif(
    strpos($_REQUEST["delete"],$upload_directory) === false);
    //linea esclusa:
    //elseif(substr($_REQUEST["delete"],0,6) == $upload_directory) {
    else {
    unlink($_REQUEST["delete"]);
    $message = "File has been deleted.";
    header("Location: $site_uri?message=$message");
    }
    }

    elseif(
    $_FILES["userfile"]) {
    $resource = fopen($upload_log_file,"a");
    fwrite($resource,date("F d, Y / h:i:sa")." - ".$_FILES["userfile"]["name"]." "
    .$_FILES["userfile"]["type"]." uploaded by ".$_SERVER["REMOTE_ADDR"]."\n");
    fclose($resource);

    $file_type = $_FILES["userfile"]["type"];
    $file_name = $_FILES["userfile"]["name"];
    $file_ext = strtolower(substr($file_name,strrpos($file_name,".")));
    @
    chmod($upload_uri."".$file_name, 0755);
    if(
    $_FILES["userfile"]["size"] > $maximum_file_size) {
    $message = "ERROR: il file che stai cercando si caricare supera il limite di ".$maximum_file_size." bytes. carica un file più piccolo";
    }

    elseif(
    $file_name == "") $message = "ERROR: devi selezionare un file da caricare.";
    elseif(
    strlen($file_name > $max_length)) $message = "ERROR: il nome del file è troppo lungo il massimo è ".$max_length." caratteri. cambia il nome e prova a ricaricarlo";
    elseif(!
    preg_match("/^[A-Z0-9_.\- ]+$/i",$file_name)) $message = "ERROR: il nome del tuo file contiene caratteri non ammessi.";
    // elseif(!in_array($file_ext, $file_extensions)) $message = "ERROR: <ins>$file_ext</ins> questa estensione del file non è // permessa. manda un email a webmaster@angeliperungiorno.it indicando l'estensione del file // (<ins>$file_ext</ins>)";

    elseif(in_array($file_ext, $file_extensions_non_ammesse)) $message = "ERROR: <ins>$file_ext</ins> questa estensione del file non è permessa. manda un email a webmaster@angeliperungiorno.it indicando l'estensione del file (<ins>$file_ext</ins>)";
    else
    $message = upload_file($upload_directory, $upload_uri);
    header("Location: $site_uri?message=$message");
    }

    elseif(!
    $_FILES["userfile"]);
    else
    $message = "ERROR: file non valido.";

    $open = opendir($upload_directory);
    $uploaded_files = "";
    while(
    $file = readdir($open)) {
    if(!
    is_dir($file) && !is_link($file)) {
    $uploaded_files .= " <tr>
    <td style=\"background: #fff; color: #000; text-align: left; width: 70%\">
    <!--linea originale:
    <a href=\"
    $upload_directory$file\" title=\"$file (".filesize($upload_directory.$file)." bytes)\">".$file."</a>
    -->
    <!-- file è la variabile del percorso del file da scaricare
    download.php è il file .php che gestisce il download
    -->
    <a href=\"download.php?file=
    $upload_directory$file\" title=\"$file (".filesize($upload_directory.$file)." bytes)\">".$file."</a>
    ("
    .filesize($upload_directory.$file)." bytes)</td>";
    if(
    $allow_file_deletion)
    $uploaded_files .= "
    <td style=\"background: #fff; color: #000; text-align: right; width: 30%\"><a href=\"?delete=
    $upload_directory".urlencode($file)."\" title=\"Delete File\">Delete File</a></td>";
    else
    $uploaded_files .= "
    <td style=\"background: #fff; color: #000; text-align: right; width: 30%\"><del><strong>Delete File</strong></del></td>"
    ;
    $uploaded_files .= "
    </tr>
    <tr>
    <td colspan=\"2\" style=\"background: #eee; color: #000; text-align: left; text-indent: 20px\">Uploaded <strong>"
    .date("F d, Y / h:ia", filemtime($upload_directory.$file))."</strong></td>";
    $uploaded_files .="
    </tr>
    "
    ;
    }
    }

    function
    upload_file($upload_directory, $upload_uri) {
    $file_name = $_FILES["userfile"]["name"];
    $file_name = str_replace(" ","_",$file_name);
    $file_path = $upload_directory.$file_name;
    $temporary = $_FILES["userfile"]["tmp_name"];

    $result = move_uploaded_file($temporary, $file_path);
    if(!
    chmod($file_path,0777))
    $message = "ERROR: A folder to place the files was not found, or the files need to be CHMODed to 777. si prega di inviare un email a webmaster@angeliperungiorno.it";
    else
    $message = ($result)?"file caricato con successo." : "An error has occurred.";
    return
    $message;
    }
    ?>
    come potete vedere nella pagina uploader.php c'è una linea di codice che salva l'ip e l'ora e il nome del file caricato in un file chiamato upload_log.txt

    ho completato l'area di upload proteggendola con un area riservata in php (premetto che i file protetti non sono importantissimi con un area riservata formata da 3 file e 1 stringa:

    pagina login.php:
    Codice PHP:
    <?
    session_start
    ();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Login</title>

    </head>

    <body>
    <?
    function check($user,$password){
    include(
    "utenti.php");

    foreach(
    $utenti as $user_ => $password_){
    if ((
    $user==$user_) AND ($password==$password_)) {
    return
    true;
    }
    }

    return
    false;
    }

    function
    form_login(){
    ?>
    <form id="login" action="<?=$PHP_SELF?>" method="post">
    <div style="text-align:center;margin-left:auto;margin-right:auto;">
    Utente:<br>
    <input type="text" name="utente" size="20" maxlength="255"><br>
    Password:<br>
    <input type="password" name="password" size="20" maxlength="255"><br><br>
    <input type="submit" value=" OK ">
    </div>
    </form>
    <? }

    if(isset(
    $_POST["utente"])){
    if (
    check($_POST["utente"],$_POST["password"])){
    $_SESSION["utente"] = $_POST["utente"];
    $_SESSION["password"] = $_POST["password"];
    header("Location: menu.php");
    }else{
    form_login();
    }
    }else{
    form_login();
    }
    ?>

    </body>
    </html>
    il file utenti.php contenenti le credenziali
    Codice PHP:
    <?
    /*
    Per aggiungere un nuovo utente scrivere:
    $utenti["nome_utente"] = "password";
    Ad esempio, se si vuole aggiungere l'utente mario con password rossi, scrivere:
    $utenti["mario"] = "rossi";
    */

    $utenti["admin"] = "admin";
    $utenti["user1"] = "password1";

    ?>
    il file area-riservata.php
    Codice PHP:
    <?
    session_start
    ();

    if(!isset(
    $_SESSION["utente"])){
    header("Location:login.php");
    die();
    }

    $utente=$_SESSION['utente'];
    $password=$_SESSION['password'];
    $data=date("j/n/Y");
    $ora=date("H:i:s");
    $apri=fopen("log.html", "a");
    $ip = getenv("REMOTE_ADDR");
    fwrite($apri, "Utente: <b>$utente</b><br/>Data: <b>$data</b> Ora: <b>$ora</b><br/>Ip:<b>$ip</b><hr> ");
    fclose($apri);


    ?>
    la stringa da inserire nelle pagine da proteggere
    Codice PHP:
    <? include("area_riservata.php"); ?>
    come potete vedere nel file area-riservata.php uno script salva i log degli utenti
    QUELLO CHE VOLGIO FARE IO E' CHE NEL FILE upload_log.php venga salvato anche il nome utente di chi ha fatto l'upload oltre a gli altri dati.


    GRAZIE 1000 A TUTTI PER IL VOSTRO AIUTO!!! SIETE FANTASTICI

  2. #2
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    per scrivere il nome utente di chi ha loggato, semplicemente dato che hai salvato come sessione il nome utente , andrai qui in fase di upload file log:
    Codice PHP:
    elseif($_FILES["userfile"]) {
    $resource = fopen($upload_log_file,"a");

    //linea originale:
    //fwrite($resource,date("F d, Y / h:i:sa")." - ".$_FILES["userfile"]["name"]." ".$_FILES["userfile"]["type"]." uploaded by .$_SERVER["REMOTE_ADDR"]."\n");

    fwrite($resource,date("F d, Y / h:i:sa")." - ".$_FILES["userfile"]["name"]." ".$_FILES["userfile"]["type"]." uploaded by Utente = ".$_SESSION["utente"]." with Ip = ".$_SERVER["REMOTE_ADDR"]."\n");

    fclose($resource);
    fai lo stesso per log delete file....però devi controllare se la sezione è scaduta....
    Ultima modifica di EuroSalute : 22-04-2011 alle ore 19.59.07 Motivo: info...
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  3. #3
    Guest

    Predefinito

    Grazie mille, sei stato nuovamente tu il migliore!! Ma in che file devo scrivere il codice ne mi hai dato tu? In downloader.php ??
    Grazie 1000

  4. #4
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    in teoria il file è uploader.php, dove hai il codice summensionato sopra...

    nel file upload.php dovresti avere se non erro:
    Codice PHP:
    <? include("area_riservata.php"); ?>

    <?
    include("uploader.php"); // Don't put anything above this line or you'll get errors
    ?>

    // e il resto del codice....
    e quindi si spiega tutto....

    dimenticavo di dirti che nel file uploader.php hai dimenticato l'estensione .exe nell'array:
    Codice PHP:
    $file_extensions_non_ammesse = array(".php", ".asp", ".cgi"); //hai dimenticato .exe
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  5. #5
    Guest

    Predefinito

    si scusa intendo uploader.php ora comunque funziona.
    grazie 1000 ancora

Tags for this Thread

Regole di scrittura

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