[HELP] Script php
  • In diretta da GamesVillage.it
    • News
    • -
    • In Evidenza
    • -
    • Recensioni
    • -
    • RetroGaming
    • -
    • Anteprime
    • -
    • Video
    • -
    • Cinema

Visualizzazione risultati da 1 a 6 di 6

Discussione: [HELP] Script php

Cambio titolo
  1. #1
      L'avatar di Teo
    Registrato il
    11-02
    Località
    PU
    Messaggi
    12.832

    [HELP] Script php

    Ho problemi con uno script php per fare l'upload dei file...

    Praticamente dopo aver scelto il file e premuto su upload, voglio far comparire il link al file...ma non ci riesco e non capisco perchè...

    Questo è la pagina:
    http://genga.freestarthost.com/upload/upload.php

    Provate ad uppare un file...
    Quando lo avete fatto sotto alla scritta "myfile" compare solo

    http:/genga.freestarthost.com/upload/files/

    e invece dovrebbe comparire

    http:/genga.freestarthost.com/upload/files/nomefile

    Questo è il codice completo:
    Codice PHP:
    $site_name = $_SERVER['HTTP_HOST'];
    $url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
    $url_this =  "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

    $upload_dir = "files/";
    $upload_url = $url_dir."/files/";
    $message ="";

    /************************************************************
     *     Create Upload Directory
     ************************************************************/
    if (!is_dir("files")) {
      if (!mkdir($upload_dir))
          die ("upload_files directory doesn't exist and creation failed");
      if (!chmod($upload_dir,0755))
          die ("change permission to 755 failed.");
    }

    /************************************************************
     *     Process User's Request
     ************************************************************/
    if ($_REQUEST[del] && $DELETABLE)  {
      $resource = fopen("log.txt","a");
      fwrite($resource,date("Ymd h:i:s")."DELETE - $_SERVER[REMOTE_ADDR]"."$_REQUEST[del]\n");
      fclose($resource);
      
      if (strpos($_REQUEST[del],"/.")>0);                  
      else if (strpos($_REQUEST[del],"files/") === false); 
      else if (substr($_REQUEST[del],0,6)=="files/") {
        unlink($_REQUEST[del]);
        print "<script>window.location.href='$url_this?message=deleted successfully'</script>";
      }
    }
    else if ($_FILES['userfile']) {
      $resource = fopen("log.txt","a");
      fwrite($resource,date("Ymd h:i:s")."UPLOAD - $_SERVER[REMOTE_ADDR]"
                .$_FILES['userfile']['name']." "
                .$_FILES['userfile']['type']."\n");
      fclose($resource);

        $file_type = $_FILES['userfile']['type']; 
      $file_name = $_FILES['userfile']['name'];
      $file_ext = strtolower(substr($file_name,strrpos($file_name,".")));

      //File Size Check
      if ( $_FILES['userfile']['size'] > $MAX_SIZE) 
         $message = "The file size is over 2MB.";
      //File Type/Extension Check
      else if (!in_array($file_type, $FILE_MIMES) 
              && !in_array($file_ext, $FILE_EXTS) )
         $message = "Sorry, $file_name($file_type) is not allowed to be uploaded.";
      else
         $message = do_upload($upload_dir, $upload_url);
      
      print "<script>window.location.href='$url_this?message=$message'</script>";
    }
    else if (!$_FILES['userfile']);
    else 
        $message = "File Specificato non valido.";

    /************************************************************
     *     List Files
     ************************************************************/
    $handle=opendir($upload_dir);
    $filelist = "";
    while ($file = readdir($handle)) {
       if(!is_dir($file) && !is_link($file)) {
          $filelist .= "$upload_url$file_name";                                   //modifica qua
          if ($DELETABLE)
            $filelist .= " <a href='?del=$upload_dir$file' title='delete'></a>"; //modifica qua!!!
          $filelist .= "<sub><small><small><font color=grey>  ".date("d-m H:i", filemtime($upload_dir.$file))
                       ."</font></small></small></sub>";
          $filelist .="<br>";
       }
    }

    function do_upload($upload_dir, $upload_url) {

        $temp_name = $_FILES['userfile']['tmp_name'];
        $file_name = $_FILES['userfile']['name']; 
      $file_name = str_replace("\\","",$file_name);
      $file_name = str_replace("'","",$file_name);
        $file_path = $upload_dir.$file_name;

        //File Name Check
      if ( $file_name =="") { 
          $message = "Invalid File Name Specified";
          return $message;
      }

      $result  =  move_uploaded_file($temp_name, $file_path);
      if (!chmod($file_path,0755))
           $message = "change permission to 755 failed.";
      else
        $message = ($result)?"$file_name uploaded successfully." :
                   "Somthing is wrong with uploading a file.";
      return $message;
    }

    ?>

    <center>
       <font color=red><?=$_REQUEST[message]?></font>
       <br>
       <form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post">
         Upload File <input type="file" id="userfile" name="userfile">
         <input type="submit" name="upload" value="Upload">
       </form>
       
       <br><b>My Files</b>
       <hr width=70%>
       <?=$filelist?>
       <hr width=70%>
       <small><sup>Developed By 
       <a style="text-decoration:none" href="http://tech.citypost.ca">CityPost.ca</a>
       </sup></small>
    </center>
    E questa la parte che da problemi:

    Codice PHP:
    $filelist .= "$upload_url$file_name"
    $upload_url lo visualizza, ma $file_name no...

    Qualcuno mi sà spiegare il perchè?

    (sono un totale noob in php ^^ )

  2. #2
    Utente Tostapane L'avatar di WarriorXP
    Registrato il
    10-02
    Località
    MI C.le - LE
    Messaggi
    23.423
    Prova, sempre in quella riga, invece di usare $file_name ad usare $_FILES['userfile']['tmp_name']...

  3. #3
      L'avatar di Teo
    Registrato il
    11-02
    Località
    PU
    Messaggi
    12.832
    Intendi così?
    Codice PHP:
    $filelist .= "l$_FILES['userfile']['tmp_name']"
    In questo caso
    Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in


    Però proprio non capisco...
    La stessa funzione usata poco più sotto funziona alla perfezione...

    Codice PHP:
    }

      
    $result  =  move_uploaded_file($temp_name$file_path);
      if (!
    chmod($file_path,0755))
           
    $message "change permission to 755 failed.";
      else
        
    $message = ($result)?"$file_name uploaded successfully." :
                   
    "Somthing is wrong with uploading a file.";
      return 
    $message;


  4. #4
      L'avatar di Teo
    Registrato il
    11-02
    Località
    PU
    Messaggi
    12.832
    Ho risolto...
    Ma non chiudete...potrei avere ancora bisogno di aiuto...

  5. #5
    Utente Tostapane L'avatar di WarriorXP
    Registrato il
    10-02
    Località
    MI C.le - LE
    Messaggi
    23.423
    Intendevo così:
    Codice PHP:
     $filelist .= $upload_url $_FILES['userfile']['tmp_name']; 

  6. #6
      L'avatar di Teo
    Registrato il
    11-02
    Località
    PU
    Messaggi
    12.832
    Citazione WarriorXP
    Intendevo così:

    Codice PHP:
     $filelist .= $upload_url $_FILES['userfile']['tmp_name']; 
    Ah...
    Così comunque avrebbe dovuto visualizzare solo il nome e non il percorso...ma non faceva uguale...
    Comunque dovevo usare solo $file e non $file_name...

Regole di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •