• User

    Visto che mi hai aiutato così tanto ti chiedo un' altra cosa analoga alla precedente:

    Nel file registrazione3.php c'è un form che permette di caricare le immagini:

    [php]
    <form action="upload.php" method="post" enctype="multipart/form-data">
    <input name="userfile" type="file" size="25" />
    <input name="invia" type="submit" value="Carica" />
    </form>
    [/php]si va quindi nel file upload.php:

    [php]
    <?php
    // upload
    $path = "upload_img/";
    list($width, $height, $type, $attr) = getimagesize($_FILES['userfile']['tmp_name']);
    if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
    if (($_FILES['userfile']['type']=="image/gif") || ($_FILES['userfile']['type']=="image/png") || ($_FILES['userfile']['type']=="image/jpeg") || ($_FILES['userfile']['type']=="image/jpg")) {
    if (file_exists($path . $_FILES['userfile']['name'])) {
    echo "Un File con lo stesso nome è già presente nel sito<br>\n";
    $newupload=1;
    }
    else{
    $res = copy($_FILES['userfile']['tmp_name'], $path .$_FILES['userfile']['name']);
    if (!$res) {
    echo "Upload fallito!<br>\n";
    }
    else {
    $okupload=1;
    echo "Upload riuscito<br>\n";
    echo "Nome File: ".$_FILES['userfile']['name']."<br>\n";
    echo "Grandezza File: ".$_FILES['userfile']." bytes<br>\n";
    echo "Tipo File : ".$_FILES['userfile']['type']."<br>\n";

                                            $image=$_FILES['userfile']['name'];
                                            $punt_db=mysql_connect($host,$user,$psw) or $conn="Errore nella connessione al database&";
                                            mysql_select_db($db,$punt_db) or die("Impossibile raggiungere il database".$db);
                                            $select_query="UPDATE `elenco` SET `immagine` = '$image' WHERE `cf` = '$_SESSION'";    
                                            $result=mysql_query($select_query,$punt_db) or die("Errore nella query".mysql_error());
                                            mysql_close($punt_db);
                                                                
                                            //resize
                                            include"code/classe_resize.php";
                                            $resize = new resize;
                                            $resize->urlimage = "upload_img/".$image;
                                            $resize->fisso = 0;
                                            $resize->maxX = 120;
                                            $resize->maxY = 200;
                                            $resize->latofisso = "X";
                                            $resize->folder = "resize_img/";
                                            $resize->newName = "";
                                            $resize->go();
                                            
                                            if(count($resize->errore)==0){
                                                echo "Nome file originale: ".$resize->originalName."<br>";
                                                echo "Altezza file originale: ".$resize->originalY."<br>";
                                                echo "Larghezza file originale: ".$resize->originalX."<br>";
                                                echo "Nuova Altezza: ".$resize->newY."<br>";
                                                echo "Nuova Larghezza: ".$resize->newX."<br>";
                                            }
                                            else{
                                                echo implode("<br>", $resize->errore);
                                            }
                                        }
                                    }
                                }
                            }                                    
                            else {
                                echo "Il file che si ata cercando di caricare non è del formato corretto<br>\n"; 
                                $newupload=1;
                            }
                            
                            ?>
                            </div></th>
                            <th width="140" scope="col">                              
                              <div align="right">
                                  <?php 
                                    echo "<img src=\"resize_img/".$image."\">";
                                ?>
                            </div></th>
                          </tr>
                        </table>
                        </div>
                        <?php 
                        if($newupload==1){
                        echo"<div style=\"margin-top:20px;\">";
                        echo "Dal momento che sul server esiste gia un' immagine con lo stesso nome ti invitiamo a rinominare la tua immagine e di ricaricarla sul server tramite il modulo sottostante.";
                        echo "</div>";
                        echo "<div style=\"margin-top:20px; text-align:center;\">";
                        echo"<form action=\"upload.php\" method=\"post\" enctype=\"multipart/form-data\">";
                        echo "<input name=\"userfile\" type=\"file\" size=\"25\" />";
                        echo "<input name=\"invia\" type=\"submit\" value=\"Carica\" />";
                        echo "</form>";
                        echo "</div>";
                        }
                        if($okupload==1){
                        echo"<div style=\"margin-top:40px;\">";
                        echo "Ti ringraziamo per aver pubblicato la tua immagine, come puoi notare dalla nota a sinistra della stessa, è stato apportato un ridimensionamento automatico in modo da permetterne l' inserimento all' interno del tuo \"Curriculum\".<br><br>";
                        echo "Con questo ultimo passaggio la tua iscrizione è completa.<br>";
                        echo "Grazie,<br>";
                        echo "Lo Staf del Sacca Tennis Team";
                        echo "</div>";
                        }
                        ?>
    

    [/php]in cui è incluso un' altro file "classe_resize.php":

    [php]
    <?php
    class resize{
    var $urlimage = "upload_img";
    var $maxX = 100;
    var $maxY = 100;
    var $fisso = 1;
    var $latofisso = "XY";
    var $folder = "resize_img/";
    var $newName = "";

    function controlladati(){
        $this->errore = array();
        $this->Estensione = "";
        $this->originalX = 0;
        $this->originalY = 0;
        $this->originalName = "";
        $this->newX = 0;
        $this->newY = 0;
        
        if($this->urlimage==""){
            array_push($this->errore,"Scegliere un file da ridimensionare");
        }elseif(!file_exists($this->urlimage) || !is_file($this->urlimage)){
            array_push($this->errore,"Il file selezionato non esiste");
        }
        if(!is_numeric($this->maxX) || !is_numeric($this->maxY) || $this->maxX<0 || $this->maxY<0){
            array_push($this->errore,"L'altezza e la larghezza dell'immagine devono essere numerici");
        }
        if(!file_exists($this->folder) || !chmod($this->folder,0777)){
            array_push($this->errore,"La cartella di destinazione non esiste o non è scrivibile");
        }
        if($this->fisso!=0 && $this->fisso!=1){
            array_push($this->errore,"La variabile di dimensione fissa deve essere 0 o 1");
        }
        if($this->latofisso!="XY" && $this->latofisso!="X" && $this->latofisso!="Y"){
            array_push($this->errore,"La variabile di lato fisso devono essere X o Y o XY");
        }
        if(count($this->errore)>0){
            return false;
        }else{
            return true;
        }
    }
    
    function go(){
        if($this->controlladati()){
            $filename = basename($this->urlimage);
            $this->originalName = $filename;
            if($this->newName==""){$this->newName=$filename;}
            $this->Estensione = strtolower(substr($filename, strrpos($filename, "."), strlen($filename)-strrpos($filename, ".")));
            if($this->Estensione==".jpeg" || $this->Estensione==".jpg"){
                $handle_immagine = imagecreatefromjpeg($this->urlimage);
            }elseif($this->Estensione==".gif"){
                $handle_immagine = imagecreatefromgif($this->urlimage);
            }elseif($this->Estensione==".png"){
                $handle_immagine = imagecreatefrompng($this->urlimage);
            }else{
                array_push($this->errore,"Formato immagine non valido");
                return null;
            }
            $handle_immagine_adattata=$this->adatta($handle_immagine);
            imagejpeg($handle_immagine_adattata, $this->folder.$this->newName, 80);
            chmod($this->folder.$this->newName,0777);
            unset($handle_immagine);
            unset($handle_immagine_adattata);
        }
    }
    
    function adatta($handle_immagine){
        $this->originalX=imagesx($handle_immagine);
        $this->originalY=imagesy($handle_immagine);
        if($this->fisso==1){
            $this->newX=$this->maxX;
            $this->newY=$this->maxY;
        }else{
            if($this->latofisso=="XY"){
                if ($this->originalX/$this->originalY>$this->maxX/$this->maxY) {
                    $this->newX=$this->maxX;
                    $this->newY=($this->originalY/$this->originalX)*$this->maxX;
                } else {
                    $this->newX=($this->originalX/$this->originalY)*$this->maxY;
                    $this->newY=$this->maxY;
                }
            }elseif($this->latofisso=="X"){
                $this->newX=$this->maxX;
                $this->newY=($this->originalY/$this->originalX)*$this->maxX;
            }elseif($this->latofisso=="Y"){
                $this->newX=($this->originalX/$this->originalY)*$this->maxY;
                $this->newY=$this->maxY;
            }else{
                if ($this->originalX/$this->originalY>$this->maxX/$this->maxY) {
                    $this->newX=$this->maxX;
                    $this->newY=($this->originalY/$this->originalX)*$this->maxX;
                } else {
                    $this->newX=($this->originalX/$this->originalY)*$this->maxY;
                    $this->newY=$this->maxY;
                }
            }
        }
        $tmp_immagine = imagecreatetruecolor($this->newX, $this->newY);
        $handle_immagine_adattata = imagecopyresampled($tmp_immagine, $handle_immagine, 0, 0, 0, 0, $this->newX, $this->newY, $this->originalX, $this->originalY);
        return $tmp_immagine;
        
    }
    

    }

    ?>

    [/php]

    ebbene.. stessa cosa di prima... in FF si vede la pagina in IE na mazza...
    sapresti aiutarmi anche in questo caso??
    te ne sarei enormemente grato!!!
    grazie


  • ModSenior

    Comunque questi errori dovrebbe darli su entrambi... forse in FF vedi quella in cache prova a fare f5 per aggiornare...

    poi guarda nel sorgente della pagina se c'è scritto qualche errore perchè controllare tutto quel codice...


  • User

    se refresho nella pagina upload mi fa una verifica se il file esiste gia (se l'ha gia caricato) e infatti mi dice che è gia presente e se infatti guardo la cartella corrispondente il file c'è...
    con IE invece non fa nulla...
    non capisco proprio dove sia l'errore... ho ricontrollato il codice e non mi sembra di aver notato nulla di strano...
    riusciresti con calma a buttarci un occhio?
    grazie mille


  • User

    mi sa che il bug venga da qui:

    [php]
    if (file_exists("$path".$_FILES['userfile']['name'])) {
    echo "Un File con lo stesso nome è già presente nel sito<br>";
    [/php]lanciando un echo infatti non mi visualizza nulla... (solo con IE ovviamente...)
    ma non capisco.. dovrebbe essere ok


  • ModSenior

    puoi mettere il link se è online?


  • User

    certamente!
    ti do il link della pagina iniziale del processo di registrazione poichè le paggine successive fanno dei controlli pertanto è meglio partire da lì:

    fantasyarena.netsons.org/registrazione.php

    pass provvisoria per proseguire: saccatennis

    magari riuscissi a risolvermi anche questa bega non indifferente...
    grazie mille
    ciao


  • ModSenior

    Dal punto 2 al punto 3 mi dice che non è stato inserito nome o cognome di chi esercità la patria potestà...


  • User

    è perchè se sei minorenne richiede i dati di un genitore..
    bypassa dandogli una data dove risulti maggiorenne.. no so 1 gennaio 1980 er esempio


  • ModSenior

    veramente gl iavevo messo come anno di nascita il 1955... lol


  • User

    ma come...??? ho appena provato e me li accetta.. con IE..
    prima questo problema me lo dava ma con la correzione che mi hai passato non me lo da piu'.. riprova adesso


  • ModSenior

    Io uso firefox...

    ora riprovo ke ti devo dire 😄

    EDIT: mi ha detto che l'upload è stato concluso con successo con firefox


  • User

    infatti... ok!
    il problema è con IE.. hai IE tab con firefox?
    altrimenti usa IE direttamente e vedrai che la pagina di upload non funzia


  • ModSenior

    Con ie da errore effettivamente comuqnue da quello ke ho visto è dato dal fatto che quando premi invio dal passo 2 per andare al 3 ti fa un reflsh richeidendoti di rimandare o meno il dati in post precedentemente

    io direi di mettere in dei campi nascosti i dati provenienti dal passo 1 in modo che dal passo 2 rimandi i valori del passo 1 e quelli del passo 2...


  • User

    ti ha dato il problema con IE?


  • ModSenior

    Si con IE7 mi da questo problema... ci sn un pò di errorini mi sa... io ho sempre detto che un unico browser sarebbe la cosa migliore 😄 e non cambio idea 😄


  • User Attivo

    Secondo me il problema è del programmatore, non del browser.
    Studia un po di più PHP e sopratutto Impara HTML perchè non hai chiuso nemmeno un input, poi non devi lamentarti se ti da degli errori è come se una macchina benzina ci metti l'acqua per andare e pretendi che va.

    Quei file li sono un macello


  • User

    l' HTML in parte è generato da dremweaver...
    in quanto allo studio di php è vero.. sto imparando ma come posso risolvere il problema?
    cosa intendi per non aver chiuso nemmenoun imput? con FF gira tutto bene..

    Se poi fossi un genuo di php e html non chiederei certamente aiuto..

    Per quel che riguarda il passaggio di dati con le sessioni ho visto che i dati si passano a tutte le pagine quindi non so se i campi nascosti mi risolverebbero i problemi..
    mah..


  • ModSenior

    Per quanto riguarda gli input mi sembrano chiusi tutti correttamente...
    da firefox mi è sembrato faccia un reflesh della pagina che con firefox infatti mi cheideva se renviare i dati mentre con ie da quel problema perchè non ti cheide di reinviare ma ti la pagina come scaduta

    dovresti postare la parte che usi per cambiare pagina per vedere come fai...

    per quanto può riguardare la legibilità (ma che comunque ai fini dello script è influente) ti consiglio ad esempio invece di scrivere
    [PHP]
    echo "<tr>";
    echo "<th width="357" height="21" scope="col"><div align="left">";
    echo "<input type="checkbox" name="consenso" value="checkbox">";
    echo "acconsento al trattamento dati di <b>".$_POST[nome]." ".$_POST[cognome]."</b></div></th>";
    echo "<th width="140" scope="col"><div align="left"><input type="submit" name="Submit" value="Invia"></div></th>";
    [/PHP]
    [PHP]
    echo '<tr>
    <th width="357" height="21" scope="col"><div align="left">
    <input type="checkbox" name="consenso" value="checkbox">
    acconsento al trattamento dati di <b>'.$_POST['nome'].' '.$_POST['cognome'].'</b></div></th>
    <th width="140" scope="col"><div align="left"><input type="submit" name="Submit" value="Invia"></div></th>';
    [/PHP]


  • User

    infatti ora uso quella sintassi poichè mi risulta più chiara quando vado a rileggermi il codice..
    effettivamente non capivo a cosa si riferisse Skyline riguardo gli input, ma come ribadisco non sono praticissimo di html/php quindi non mi esprimo..
    che cosice ti servirebbe? per passare da una pagina all' altra utilizzo il form corrispondente che poi mi rimanda alla pagina successiva


  • User Attivo

    gli input si chiudono <input type="checkbox" name="consenso" value="checkbox" />
    con lo slash oppure con </input>

    poi senza studio non si arriva da nessuna parte