Visualizzazione risultati 1 fino 8 di 8

Discussione: Aiuto ad un principiante alle prime armi (php)

  1. #1
    Guest

    Predefinito

    Premetto che oggi è il primo giorno che dò un'occhiata ad un codice php, dunque sarà difficile anche farmi capire, ma ci provo!

    Avrei la necessità di monitorare i download di alcuni files ed ho scaricato uno script (estremamente semplice). Lo quoto per completezza:

    <?php
    ################################################## #########
    # FS.Download
    # Version: 1.0b
    # Author: bAAGi
    # Email: baagi@faultysanity.com
    # Company: Faulty Sanity
    # Website: http://www.faultysanity.com/
    ################################################## #########
    # COPYRIGHT
    # You are free to use and modify this script as long as
    # this header section stays intact.
    ################################################## #########

    if(isset($_GET['file']) && $_GET['act']=="download") fs_download($_GET['file']);

    function fs_download($file) {

    $mysqlserver = "localhost";
    $mysqluser = "username";
    $mysqlpass = "password";
    $mysqldbname = "database";

    $serverPath = "/home/mysite/www/coding_stuff/downloads/";
    $urlPath = "http://www.faultysanity.com/coding_stuff/downloads/";

    # Set the date format. Check:
    # http://www.php.net/manual/en/function.date.php
    # for help.

    $dateFormat = "F j, Y";

    #####

    if(ereg("(\.zip|\.exe)$",$file)) {

    $file = basename($file);
    $pathtofile = $serverPath.$file;

    if(file_exists($pathtofile)) {
    $filesize = round(filesize($pathtofile)/1024, 2);
    $filemtime = date($dateFormat, filemtime($pathtofile));
    } else { die("ERROR: File does not exist, please contact the webmaster."); }

    $db = mysql_connect($mysqlserver,$mysqluser,$mysqlpass) or die("Failed to connect to MySQL server");
    if(mysql_select_db($mysqldbname)==false) { mysql_close($db); die("Failed to select database"); }

    if($row = mysql_fetch_array(mysql_query("SELECT dc FROM downloadcount WHERE filename='".$file."'"))) { $dc = $row[dc]; } else { $dc = 0; }

    if(isset($_GET['file']) && $_GET['act']=="download") {
    $downloadfile = $urlPath.$file;
    if(mysql_result(mysql_query("SELECT COUNT(filename) FROM downloadcount WHERE filename='".$file."'"),0)) {
    mysql_query("UPDATE downloadcount SET dc=dc+1 WHERE filename='".$file."'");
    } else {
    mysql_query("INSERT INTO downloadcount (filename,dc) VALUES ('".$file."','1')");
    }
    header ("Location: ".$downloadfile);
    }

    } else { die("ERROR: Invalid file extension"); }

    mysql_close($db);

    return array(path=>"\"download.php?file=".$file."& act=download\" target=\"_top\"",file=>$file,size=>$filesize ."KB",modified=>$filemtime,dcount=>$dc);

    }

    ?>
    Assunto che io abbia settato in maniera corretta i parametri del db, veniamo alle domande:

    1.
    $serverPath = "/membri/fft/"; giusto? Oppure sbaglio già da qui?


    2. allegato allo zip c'era un esempio della parte da includere nella pagina da monitorare:
    <?php

    include "./download.php";

    $a = fs_download("fswordfinder.zip");

    echo "<a href=\"".$a[path]."\">FS.WordFinder</a> - Filename: ".$a[file]." - Size: ".$a[size]." - Last modified: ".$a[modified]."<br />Downloaded: ".$a[dcount]."<br /><br />\n\n";

    $b = fs_download("fssimplecount.zip");

    echo "<a href=\"".$b[path]."\">FS.SimpleCount</a> - Filename: ".$b[file]." - Size: ".$b[size]." - Last modified: ".$b[modified]."<br />Downloaded: ".$b[dcount]."<br /><br />";

    ?>
    io nella pagina ho inserito il giusto percorso per trovare download.php:
    include "../tools/download.php"; (non ho riportato quella esatta, giusto per fare un esempio).
    Poi ho scritto $a = fs_download("filemio.zip"); dove filemio.zip si trova nella stessa cartella della pagina con l'include ed ho lasciato l'echo per la visualizzazione invariato.

    quando però vado sulla pagina mi dà l'errore: ERROR: File does not exist, please contact the webmaster.

    Quindi il problema dovrebbe essere qui:
    if(ereg("(\.zip|\.exe)$",$file)) {

    $file = basename($file);
    $pathtofile = $serverPath.$file;

    if(file_exists($pathtofile)) {
    $filesize = round(filesize($pathtofile)/1024, 2);
    $filemtime = date($dateFormat, filemtime($pathtofile));
    } else { die("ERROR: File does not exist, please contact the webmaster."); }

    ma non sapendo cosa sia ereg, basename etc non riesco ad uscirne. Sbaglio il path, qualcos altro oppure non ci sto capendo assolutamente nulla ed è meglio che io lasci perdere?

    Grazie.

  2. #2
    L'avatar di gve
    gve
    gve non è connesso Utente storico
    Data registrazione
    26-01-2003
    Residenza
    Brescia
    Messaggi
    2,964

    Predefinito

    Guardando lo script pare che $serverPath non sia il tuo spazio ma il posto in cui risiedono i file da monitorare; in pratica perchè lo script funzioni così com'è raccogli i file che vuoi far scaricare e monitorare nella cartella 'download' e quindi imposti $serverPath = "/download" o $serverPath="/membri/fft/download" (credo che sia la stessa cosa) e dovrebbe funzionare tutto.

    Se ancora non funge, fa sapere.
    | Regolamento del Forum | Regolamento di AlterVista | FAQ di AlterVista | Netiquette |

    GVE = GVE Virtual Extension
    AVCM #: 6637

  3. #3
    Guest

    Predefinito

    purtroppo era venuto in mente anche a me ed era l'unico tentativo che avevo fatto prima di postare; nulla da fare :(

    $file = basename($file);
    $pathtofile = $serverPath.$file;

    credo che sia tutto scritto in queste due righe, ora mi metto a cercare il significato di basename; il . in che maniera lega serverpath e file?

    Edito per aggiungere che l'istruzione if(ereg("(\.zip|\.exe)$",$file)) funziona regolarmente, in quanto scrivendomi "ERROR: File does not exist, please contact the webmaster." vuol dire che entra nel ciclo if e dunque ereg=true. Dunque i files all'interno della directory vengono riconosciuti... perché non funziona allora???
    server path l'ho messo /membri/fft/cartellaconifiles
    non è che è sbagliato il .?

  4. #4
    Guest

    Predefinito

    ok, sembra funzionare, ho praticamente provato tutte le combinazioni possibili!

    Comunque mi sa che ne provo un altro... questo non mi piace :P

  5. #5
    Guest

    Predefinito

    se hai bisogno di qualche altro aiuto vieni a trovarci sul forum ^_^

    http://www.php4all.altervista.org


    ciauz!

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da php4all
    se hai bisogno di qualche altro aiuto vieni a trovarci sul forum ^_^

    http://www.php4all.altervista.org


    ciauz!
    Corro e voto! ;)

  7. #7
    Guest

    Predefinito

    accie ^_^

  8. #8
    L'avatar di brunella
    brunella non è connesso AlterVistiano
    Data registrazione
    01-04-2003
    Residenza
    mondo
    Messaggi
    822

    Predefinito

    Citazione Originalmente inviato da fft
    Citazione Originalmente inviato da php4all
    se hai bisogno di qualche altro aiuto vieni a trovarci sul forum ^_^

    http://www.php4all.altervista.org


    ciauz!
    Corro e voto! ;)
    ànchio!
    ciao, rossa

    al mondo esistono 10 tipi di persone:
    quelli che conoscono il binario...
    e quelli che devono chiedere al capostazione!

Regole di scrittura

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