• User

    Grossissimo problema php legato a IE

    ho un grossissimo problema con IE che FF invece non mi da assolutamente.. allora: ho 2 file uno sorgente e uno di destinazione:

    sorgente (nome file registrazione2.php):

    [php]
    <?php
    session_start();

    include "code/config.php";

    $_SESSION[nome]=$_POST[nome];
    $_SESSION[cognome]=$_POST[cognome];
    $_SESSION=$_POST;
    $_SESSION[day]=$_POST[day];
    $_SESSION[month]=$_POST[month];
    $_SESSION[year]=$_POST[year];
    $_SESSION[luogonascita]=$_POST[luogonascita];
    $_SESSION[residente]=$_POST[residente];
    $_SESSION[indirizzo]=$_POST[indirizzo];
    $_SESSION[cap]=$_POST[cap];
    $_SESSION[telefono]=$_POST[telefono];
    $_SESSION[cellulare]=$_POST[cellulare];
    $_SESSION[email]=$_POST[email];
    $_SESSION[pw]=$POST[pw];
    .
    .
    .
    .
    .
    // configurare la data dividendola? potete utilizzare anche un explode io per comodità ho preferito inserire variabili a mano^
    ^
    $gior_iniz = $_POST[day];
    $mes_iniz = $_POST[month];
    $ann_iniz = $_POST[year];
    // data di oggi
    $current_day=date("j");
    $current_mon=date("n");
    $current_yr=date("Y");
    // andiamo a calcolare la differenza!
    $base_mon_max = date ("t",mktime (0,0,0,$mes_iniz,$gior_iniz,$ann_iniz));
    $base_day_diff = $base_mon_max - $gior_iniz;
    $base_mon_diff = 12 - $mes_iniz - 1;
    $start_day = 1;
    $start_mon = 1;
    $start_yr = $ann_iniz + 1;
    $day_diff = ($current_day - $start_day) + 1;
    $mon_diff = ($current_mon - $start_mon) + 1;
    $yr_diff = ($current_yr - $start_yr);
    $day_diff = $day_diff + $base_day_diff;
    $mon_diff = $mon_diff + $base_mon_diff;
    if ($day_diff >= $base_mon_max)
    {
    $day_diff = $day_diff - $base_mon_max;
    $mon_diff = $mon_diff + 1;
    }
    if ($mon_diff >= 12)
    {
    $mon_diff = $mon_diff - 12;
    $yr_diff = $yr_diff + 1;

    $_SESSION[diffyear]=$yr_diff;

    }
    .
    .
    .
    .
    if($yr_diff<18){
    echo "Essendo <b>minorenne</b> abbiamo bisogno dell' autorizzazione di un genitore o di chi esercita la patria potestà, secondo quanto prevede il DL 196/2003
    (codice in materia di protezione dei dati personali) che prevede la tutela delle persone e di altri soggetti
    rispetto al trattamento dei dati personali, ad utilizzare foto, riprese video, registrazioni o interviste funzionali
    alla documentazione delle attività svolte.<br> Il materiale di cui sopra potrà venire impiegato all' interno o all'
    esterno della struttura, su riviste specializzate o anche all' inerno dello stesso sito ufficiale del Sacca Tennis Team.<br>";
    echo "<div style="margin-top:10px; background-color:#FFFF66;">";
    echo "<b>Dati di chi esercita la Patria Potestà</b>";
    echo "</div>";
    echo "<div style="margin-top:10px;">";
    echo "<form action="registrazione3.php" method="post" enctype="multipart/form-data" name="genitore">";
    echo "<table width="500" border="0" align="center" cellpadding="0" cellspacing="1">";
    echo "<tr>";
    echo "<th width="165" scope="col"><div align="left">nome </div></th>";
    echo "<th width="165" scope="col"><div align="left">cognome </div></th>";
    echo "<th width="166" scope="col"><div align="left">codice fiscale </div></th>";
    echo "</tr>";
    echo "<tr>";
    echo "<td><input type="text" name="nomegenitore"></td>";
    echo "<td><input type="text" name="cognomegenitore"></td>";
    echo "<td><input type="text" name="cfgenitore"></td>";
    echo "</tr>";
    echo "<tr>";
    echo "<td colspan="3"> </td>";
    echo "</tr>";
    echo "<tr>";
    echo "<td colspan="3"><div align="right">";
    echo "<table width="500" border="0" cellspacing="1" cellpadding="0">";
    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>";
    echo "</tr>";
    echo "</table>";
    echo "</div></td>";
    echo "</tr>";
    echo "</table>";
    echo "</form>";
    echo "</div>";
    }
    else{
    echo "Essendo <b>maggiorenne</b> ti chiediamo di autorizzarci, secondo quanto prevede il DL 196/2003
    (codice in materia di protezione dei dati personali) che prevede la tutela delle persone e di altri soggetti
    rispetto al trattamento dei dati personali, ad utilizzare foto, riprese video, registrazioni o interviste funzionali
    alla documentazione delle attività svolte.<br> Il materiale di cui sopra potrà venire impiegato all' interno o all'
    esterno della struttura, su riviste specializzate o anche all' inerno dello stesso sito ufficiale del Sacca Tennis Team.<br>";
    echo "<div style="margin-top:10px; background-color:#FFFF66;">";
    echo "<b>Autorizzazione</b>";
    echo "</div>";
    echo "<div style="margin-top:10px;">";
    echo "<form action="registrazione3.php" method="post" enctype="multipart/form-data" name="medesimo">";
    echo "<table width="500" border="0" align="center" cellpadding="0" cellspacing="1">";
    echo "<tr>";
    echo "<td width="496" colspan="3"><div align="right">";
    echo "<table width="500" border="0" cellspacing="1" cellpadding="0">";
    echo "<tr>";
    echo "<th width="357" height="31" scope="col"><div align="left">";
    echo "<input type="checkbox" name="consenso" value="checkbox">";
    echo "acconsento al trattamento dei mieidati personali</div></th>";
    echo "<th width="140" scope="col"><div align="left"><input type="submit" name="Submit" value="Invia"></div></th>";
    echo "</tr>";
    echo "</table>";
    echo "</div></td>";
    echo "</tr>";
    echo "</table>";
    echo "</form>";
    echo "</div>";
    }
    ?>
    [/php]e quello di destinazione (registrazione3.php):

    [php]
    <?php
    session_start();
    include "code/config.php";

    // per evitare che se uno fa un history back da upload reinserisca i valori con un nuovo record o che qualcuno si inserisca 2 volte
    $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);
    $result= mysql_query("SELECT * FROM elencoWHERE cf = '$_SESSION'");
    while($record=mysql_fetch_object($result)){
    $nome=$record->nome;
    }
    if ($nome==$_SESSION[nome]){
    echo "<script>alert('Risulti essere già iscritto.');";
    echo "document.location.href=".$redirect.";</script>";
    $nodoppi=1;
    }

    if($_SESSION[diffyear]>17){
    if(!isset($_POST[consenso])) { //se il checkbox è deselezionato
    echo "<script>alert('Non è stato dato il consenso al trattamento dei dati personali');"; //istruzioni di scrittura
    echo "history.back();</script>";
    }
    else{
    if($nodoppi!=1){
    $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="INSERT INTO elenco (id,nome,cognome,cf,day,month,year,luogonascita,residente,indirizzo,cap,telefono,cellulare,email,nomegenitore,cognomegenitore,cfgenitore,immagine)
    VALUES ('','$_SESSION[nome]','$_SESSION[cognome]','$_SESSION','$_SESSION[day]','$_SESSION[month]','$_SESSION[year]','$_SESSION[luogonascita]','$_SESSION[residente]','$_SESSION[indirizzo]','$_SESSION[cap]','$_SESSION[telefono]','$_SESSION[cellulare]','$_SESSION[email]','non necessario','non necessario','non necessario',avatar_default.gif')";
    $result=mysql_query($select_query,$punt_db) or die("Errore nella query".mysql_error());
    mysql_close($punt_db);
    }
    }
    }

    else if($_SESSION[diffyear]<18){
    if(!isset($_POST[consenso])) { //se il checkbox è deselezionato
    echo "<script>alert('Non è stato dato il consenso al trattamento dei dati personali');"; //istruzioni di scrittura
    echo "history.back();</script>";
    }
    else{
    $luncf=strlen($_POST[cfgenitore]);
    if (($_POST[nomegenitore]=="")||($_POST[cognomegenitore]=="")||($_POST[cfgenitore]=="")||($luncf!=16)){
    echo "<script>alert('Attenzione Non è stato inserito il nome o il cognome di chi esercita la Patria Potestà oppure il codice fiscale inserito non è corretto');";
    echo "history.back();</script>";
    }
    else {
    if($nodoppi!=1){
    $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="INSERT INTO elenco (id,nome,cognome,cf,day,month,year,luogonascita,residente,indirizzo,cap,telefono,cellulare,email,nomegenitore,cognomegenitore,cfgenitore,immagine)
    VALUES ('','$_SESSION[nome]','$_SESSION[cognome]','$_SESSION','$_SESSION[day]','$_SESSION[month]','$_SESSION[year]','$_SESSION[luogonascita]','$_SESSION[residente]','$_SESSION[indirizzo]','$_SESSION[cap]','$_SESSION[telefono]','$_SESSION[cellulare]','$_SESSION[email]','$_POST[nomegenitore]','$_POST[cognomegenitore]','$_POST[cfgenitore]','avatar_default.gif')";
    $result=mysql_query($select_query,$punt_db) or die("Errore nella query".mysql_error());
    mysql_close($punt_db);
    }
    }
    }
    }

    ?>

    [/php]Ci sarebbe abche un primo file che tuttavia non riporto in quanto sarebbe superfluo dal momento che non contiene altro che il form per l' inserimento dei dati che poi vengono verificati nel file registrazione2.php...

    Il problema nasce con IE dal momento che nel passare dal file registrazione2.php a registrazione3.php se il soggetto è minorenne tutto va liscio se invece è maggiorenne mi da l' errore:

    Errore nella queryYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '')' at line 2

    Non capisco dove possa essere l' errore dal momento che con Mozilla FF tutto fila liscissimo...

    AIUTATEMI!!!!!


  • ModSenior

    avatar_default.gif'

    dovevi mettere

    'avatar_default.gif'


  • User

    garzie mille!!!!
    funziona!!!!
    cavoli però... perchè allora non con FF va???
    misteri del web!!!


  • 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..