Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 20 su 20

Discussione: Directory e permessi

  1. #11
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    105
    Forse và messo cosi però non dà nessun errore
    move_uploaded_file($_FILES[$IMG]["tmp_name"], "$percorso/$new_name")error_reporting(E_ALL);

    Questo e parte del mio script alla funzione move_uploaded_file si blocca
    Codice PHP:

                                            
                                            
                                                                        
                                                                        
    # QUESTE RIGHE RENDONO LO SCRIPT COMPATIBILE CON LE VERSIONI
                                                                        # DI PHP PRECEDENTI ALLA 4.1.0
                                                                        
    if(!isset($_FILES)) $_FILES $HTTP_POST_FILES;
                                                                        if(!isset(
    $_SERVER)) $_SERVER $HTTP_SERVER_VARS;
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
    $messaggio_size="";
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                         
                                                                        
    # Creo il nome della cartella che ospita le foto
                                                                        # Directory dove salvare i files Uploadati ( chmod 777, percorso assoluto)
                                                                        
                                                                        
    $codice=time();
                                                                        
                                                                        
    $percorso $_SERVER["DOCUMENT_ROOT"] ."/img/".$codice;
                                                                        
                                                                        
                                                                        
    # COTROLLO IL PESO DELLE IMMAGINI
                                                                        
                                                                        
    if(trim($_FILES["img0"]["size"])>="250000")$messaggio_size=$messaggio_size."L'immagine in miniatura che avete inserito ha un peso di [b]".$_FILES["img0"]["size"]."[/b] bit
    "
    ;
                                                                        if(
    trim($_FILES["img1"]["size"])>="250000")$messaggio_size=$messaggio_size."L'immagine 1 che avete inserito ha un peso di [b]".$_FILES["img1"]["size"]."[/b] bit
    "
    ;
                                                                        if(
    trim($_FILES["img2"]["size"])>="250000")$messaggio_size=$messaggio_size."L'immagine 2 che avete inserito ha un peso di [b]".$_FILES["img2"]["size"]."[/b] bit
    "
    ;
                                                                        if(
    trim($_FILES["img3"]["size"])>="250000")$messaggio_size=$messaggio_size."L'immagine 3 che avete inserito ha un peso di [b]".$_FILES["img3"]["size"]."[/b] bit
    "
    ;
                                                                        
                                                                                        
                                                                                        
                                                                                    
                                                                                        
                                                                        if(
    $messaggio_size!=""){            
                                                                                                echo
    '<table>
                                                                                                    ....
                                                                                                echo"$messaggio_size";    
                                                                                                echo'
                                                                                                    
    ....
                                                                                                    </
    table>';
                                                                        
                                                                        
                                                                        
                                                                        
                                                                                        
                                                                        
                                                                        }else{
                                                                        
                                                                        
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                # CREO LA CARTELLA CON PERMESSI 777
                                                                                
                                                                                mkdir($percorso, 0777);
                                                                                
                                                                                chgrp($percorso, ....);
                                                                                chown($percorso, ....);
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                $y=0;
                                                                                $num=0;
                                                                                $name=0;
                                                                                    while($num<=3):
                                                                                                
                                                                                                # NOME DELL'
    IMMAGINE 
                                                                                                $new_name
    =$name.".jpg";
                                                                                                
    # PERCORSO 
                                                                                                
    $nome_file_immagine $percorso."/".$new_name;
                                                                                                
    # NOME CHE HO DATO AI <INPUT TYPE="file"> NELLA PAGINA PRECEDENTE
                                                                                                
    $IMG="img".$num;
                                                                                                
                                                                                                
                                                                                                
                                                                                                
                                                                                                
                                                                                                    
                                                                                                
    # CONTROLLO CHE SIA STATO SELEZIONATO UN FILE
                                                                                                
                                                                                                
    if(trim($_FILES[$IMG]["name"]) != ""){
                                                                                                
                                                                                                        
    # CONTROLLO L'ESTENSIONE DEL FILE INVIATO CHE DEVE ESSERE JPG
                                                                                                        
                                                                                                        
    $allowed_types = array("image/gif","image/x-png","image/pjpeg","image/jpeg");
                                                                                                        
                                                                                                        
                                                                                                        
                                                                                                        if(
    in_array($_FILES[$IMG]["type"],$allowed_types)) {
                                                                                                        
                                                                                                                
    # CONTROLLO SE IL FILE è NELLA CARTELLA TEMPORANEA
                                                                                                                
    if(is_uploaded_file($_FILES[$IMG]["tmp_name"])) {
                                                                                                                        
                                                                                                                        
    # COPIO IL FILE NELLA DIRECTORY SCELTA
                                                                                                                        
    move_uploaded_file($_FILES[$IMG]["tmp_name"], "$percorso/$new_name");
                                                                                                                        
    #or die("Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload.")
                                                                                                                        
                                                                                                                        # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                                                                                                                        # INIZIO AD ELEBORARE LE IMMAGINI
                                                                                                                        # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                                                                                                                         
                                                                                                                        # Immagine originale 
                                                                                                                        
    $originale ImageCreateFromJpeg ("$nome_file_immagine");
                                                                                                                         
                                                                                                                        
                                                                                                                        
    #  TROVO LE DIMENSIONI DELL'IMMAGINE APPENA UPLODATA
                                                                                                                        
    list($width$height$type$attr) = getimagesize($nome_file_immagine);
                                                                                                                        
    # CALCOLO LA PROPORZIONE IN MODO CHE LE FOTO NON VENGANO STORPIATE
                                                                                                                        
                                                                                                                        
    $poporz=$width/$height;
                                                                                                                        
                                                                                                                        
                                                                                                                        
                                                                                                                                
    # LA PRIMA IMMAGINE PERCIO LA 0.JPG VERRA USATA COME MINIATORA
                                                                                                                                # TUTTE LE ALTRE AVRANNO COME DIMENSIONE PROPORZIONATE ALLE ORIGINALI
                                                                                                                                
    if($num==0){
                                                                                                                                    
    $width_img=100
                                                                                                                                    
    $height_img=$width_img/$poporz;
                                                                                                                                }else{
                                                                                                                                    
    $width_img=300;                      //200
                                                                                                                                    
    $height_img=$width_img/$poporz;
                                                                                                                                } 
                                                                                                                         
                                                                                                                        
    # Creo l'immagine di destinazione
                                                                                                                         
                                                                                                                        
    $piccola ImageCreateTrueColor ($width_img$height_img);
                                                                                                                         
                                                                                                                        
    # Resize 
                                                                                                                         
                                                                                                                        
    imagecopyresampled($piccola$originale0000$width_img$height_img$width$height); 
                                                                                                                        

                                                                                                                        
    # Lo salvo in un file temporaneo dopodichè cancello il file originale 
                                                                                                                        # e rinomino il temporaneo con il nome del file originale 
                                                                                                                        # Salvo la JPG con qualità=50
                                                                                                                         
                                                                                                                        
    $file_temp "img_temp"
                                                                                                                        
    $nome_file_arrivo $percorso."/".$file_temp.".jpg"
                                                                                                                        
    ImageJPEG($piccola$nome_file_arrivo 45);
                                                                                                                         
                                                                                                                        
    # Cancello 
                                                                                                                        
    unlink ($nome_file_immagine); 
                                                                                                                        
    # Rinomino 
                                                                                                                        
    rename ($nome_file_arrivo$nome_file_immagine); 
                                                                                                                        
                                                                                                                        
    # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                                                                                                                        # FINE ELABORAZIONE IMMAGINI
                                                                                                                        # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++            
                                                                                                                            
                                                                                                                        
    $name++;
                                                                                                                
                                                                                                                
                                                                                                                
                                                                                                                
                                                                                                                
                                                                                                                } else {
                                                                                                                    
                                                                                                                    
    $error=1;
                                                                                                                    
                                                                                                                    
                                                                                                                }
                                                                                                                    
                                                                                                        }else{
                                                                                                            
                                                                                                                
    $error=2;
                                                                                                            
                                                                                                                
    $num="3";
                                                                                                            
                                                                                                        }
                                                                                                                
                                                                                                }else{
                                                                                                        
    # SE <INPUT TYPE="file"> E VUOTO  PROCEDI CON IL CICLO
                                                                                                        # OGNI QUALVOLTA <INPUT TYPE="file"> è VUOTO LA VARIABILE $y si incrementera di 1
                                                                                                        # SE ALLA FINE DEL CICLO LA VARIABILE $y AVRA COME VALORE 4 VUOL DIRE CHE NON è STATO INSERITO NESSUN 
                                                                                                        # FILE NELLA PAGINA PRECEDENTE E PERCIò AVVERTO CON UN MSG
                                                                                                        
                                                                                                        
    $y++;
                                                                                                }
                                                                                            
                                                                                            
                                                                                
    $num++;
                                                                                endwhile;
                                                                                
                                                                                
                                                                                
    # INDICO NEL DATABASE CHE SONO STATE INSERITE DELLE FOTO
                                                                                            
                                                                                            # CONTROLLO CHE CI SIANO FOTO 
                                                                                            
    if($y!=4){
                                                                                                
    $o=3;
                                                                                                
    $num3=$o-$y;
                                                                                                
    $campi="img0='1' ";
                                                                                                
    $c=1;
                                                                                                while(
    $c<=$num3):
                                                                                                    
    $campi=$campi.",";
                                                                                                    
    $campi=$campi."img".$c."='1'";
                                                                                                    
    $c++;
                                                                                                endwhile;
                                                                                                
                                                                                                
                                                                                            
                                                                                            
                                                                                                
                                                                                                                                                                                        
                                                                                                        
    $modifica=mysql("$DB","UPDATE catalogo SET $campi WHERE codice='$codice'");    
                                                                                             
                                                                                             }
                                                                                    
                                                                                
                                                                                    
                                                                                    
                                                                                
    #>>>>>>>>>>>>>>>>>>>>>>>>>FINE UPLOAD<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                                                                                
                                                                                    
    if(($error==1)||($error==2)||($y==4)){
                                                                                
                                                                                                        
                                                                                                        echo
    '<table 
                                                                                                                    ....                                                                                                
                                                                                                          
                                                                                                                                      if($error==1)echo"CI SONO DEI PROBLEMI CON IL TRASFERIMENTO DELLE IMMAGINI";
                                                                                                                                    if($error==2)echo"AVETE INSERITO UN FILE NON VALIDO
    I FILE INVIATI DEVONO AVERE COME ESTENSIONE .jpg";
                                                                                                                                    if($y==4)echo"NON è STATO SELEZIONATO NESSUN FILE ";
                                                                                                                        
                                                                                                          
                                                                                                                      ....
                                                                                                             </table>'
    ;
                                                                                                        
                                                                                                        
                                                                                                        
                                                                                                        
                                                                                                        
                                                                                                        
                                                                                                        
                                                                                                        
                                                                                                        
                                                                                                        
                                                                                    }else{
                                                                                
                                                                                                                echo
    '<table 
                                                                                                                        ...
                                                                                                                        echo"[b]Le immagini sono state collocate nella cartella del prodotto appena inserito[/b]

    ";                                
                                                                                                                    
                                                                                                                                                        
                                                                                                                echo'    
    ...
                                                                                                                    
                                                                                                                     </
    table>';
                                                                                                        
                                                                                    }    
                                                                                
                                                                                
                                                                        
                                                                        }
                                                                        


                                            
                                            
                                            
                                            
                                            
                    
                                            
                        }
            } 

  2. #12
    [supersaibal]Originariamente inviato da york75
    NO
    Va messo cosi?
    move_uploaded_file($_FILES[$IMG]["tmp_name"], "$percorso/$new_name")error_reporting(E_ALL); [/supersaibal]



    mi stupisci di come non dia errori così... così come minimo deve darti errori di parsing

    Codice PHP:
    //meglio ad inizio file
    error_reporting(E_ALL);

    ...

    move_uploaded_file($_FILES[$IMG]["tmp_name"], "$percorso/$new_name"); 
    la prima funzione serve solo ad assicurarti che tutti gli errori vengano riportati.. può essere che il tuo php.ini sia configurato per non riportarne o addirittura loggarli ma non visualizzarli...

    quindi controlla il tuo php.ini
    e dai una lettura alla pillola sull'error reporting che trovi nel thread in rilievo con l'elenco delle pillole


  3. #13
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    105
    mi sono dimenticato di dire che questo script in locale funziona benissimo

  4. #14
    [supersaibal]Originariamente inviato da york75
    mi sono dimenticato di dire che questo script in locale funziona benissimo [/supersaibal]
    non conta molto...

    hai fatto quello che ti ho detto? -.-

    non ne veniamo a capo se non collabori -.-

  5. #15
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    105
    Sto cercando di collaborare ma....
    mi spiegheresti semplicemente come fare!
    E la prima volta che mi capita questa cosa.
    Ti ringrazio!

  6. #16
    te l'ho detto... metti

    error_reporting(E_ALL);

    ad inizio file, in modo da assicurarti che gli errori vengano segnalati...

    in ogni caso leggi la pillola sull'error reporting, così configuri bene il php per segnalare gli errori


  7. #17
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    105
    ok questo l'ho fatto ma non esce nessun errore

  8. #18
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    105
    ok questo l'ho fatto ma non esce nessun errore!

  9. #19
    Utente di HTML.it L'avatar di pyotrex
    Registrato dal
    Feb 2003
    Messaggi
    554
    Purtroppo non ho tempo per leggere e provare il codice ma se è un problema di permessi questo ti potrebbe essere utile http://freephp.html.it/articoli/view_articolo.asp?id=71 e mi raccomando se non lo hai ancora fatto, ascolta il consiglio di Guidoz e utilizza sempre l'error reporting settato al max in fase di sviluppo
    Vivrò una vita intera e fortunatamente morirò una volta sola

  10. #20
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    105
    Gli errori non escono perchè il server e settato per non visualizarli nei browser, anche con il comando error_reporting(E_ALL); non succede nulla.
    Comunque ho trovato il file "err.log" che mi da questo errore alla funzione move_uploaded_file();

    PHP Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 979797 is not allowed to access /home/......./...../1114021464 owned by uid 333 in /home/........ins_img.php on line 295, referer: http://www..........?c=1114021464

    Cosa vuole dire questo errore?
    Vuol dire per caso che anche lo script "ins_img.php" deve appartenere allo stesso gruppo e al stesso utente della directory creata, e nella quale verranno spostate le immagini.

    Se la risposta è si come faccio a modificare il gruppo e l'utente al file ins_img.php

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.