Back to top

Autore Topic: insert su DB attraverso form. Fallisce se la pagina è navigata da MAC  (Letto 2651 volte)

Offline klavinet

  • Nuovo arrivato
  • *
  • Post: 25
    • Mostra profilo
Salve, ho cercato tra i post ma non ho trovato niente di simile.


Stiamo realizzando un sito, integrando molto codice php e js nella pagine di joomla.


Abbiamo dei form per l'inserimento di alcuni record nel DB.


I form funzionano perfettamente con tutti gli OS e tutti i Browser, compresi smartphone e Android.


Gli unici a fallire l'inserimento sono i MAC (sia Safari che Fox). Se il sito viene navigato da un MAC il form non va e le insert falliscono.


Qualcuno ha già riscontrato un problema simile? Ci sono soluzioni già note?


Grazie a tutti.


Claudio
« Ultima modifica: 05 Ott 2011, 09:45:09 da klavinet »

Offline klavinet

  • Nuovo arrivato
  • *
  • Post: 25
    • Mostra profilo
allego il codice.

Codice: [Seleziona]

<?
    //echo "OPERAZIONE:".$_POST[operazione]."<br>";
    include '../includes/connect.php';
    if(isset($_POST[operazione])){
        if ($_POST[operazione]=="modifica"){
            $sql="UPDATE prodotti SET tipo_prodotto=\"$_POST[tipo]\",descr_prodotto=\"$_POST[descrizione]\",iva_prod=\"$_POST[iva_prod]\",unit_misura=\"$_POST[unita_misura]\",eurokg_su_netto=$_POST[prezzo],confezione=\"$_POST[confezione]\" WHERE id_prodotto=$_POST[id_prodotto]";
            mysql_query($sql);
            echo "<center><br><br><FONT size=\"10\" color=\"#FFFFFF\"> Modifica effettuata!</FONT></center>";
?>
       <script>parent.location.reload();</script>
     
<?
            //echo $_POST[operazione];
        }
        if ($_POST[operazione]=="inserimento"){
            $check_id="SELECT id FROM fornitori WHERE id_fornitore=$_GET[id_fornitore]";
            //echo $check_id."<br>";
            $result_id=mysql_query($check_id);
            $id_forn=mysql_fetch_array($result_id);
            //echo "FORN:".$id_forn[0];
            $sql="INSERT into prodotti (id_fornitore,tipo_prodotto,descr_prodotto,iva_prod,unit_misura,eurokg_su_netto,confezione,disponibile) VALUES($id_forn[0],\"$_POST[tipo]\",\"$_POST[descrizione]\",\"$_POST[iva_prod]\",\"$_POST[unita_misura]\",$_POST[prezzo],\"$_POST[confezione]\",1)";
            mysql_query($sql);
            //echo $sql."<br>";
?>
             
            Inserimento effettuato!
            <script>parent.location.reload();</script>
   
<?
        }
    }else{
    if (isset($_GET[id_prodotto])){
        $sql="SELECT * FROM prodotti WHERE id_prodotto=$_GET[id_prodotto]";
        //echo $sql."<br>";
        $result=mysql_query($sql);
        $row=mysql_fetch_array($result);
    }
?>
<html>
 
<body background="/images/sfondo form.gif">
    <center>
    <form name="nuovo_prodotto" method="POST" action="#">
        <table><br><br><br>
            <tr>
                <td>
                    <font color="#FFFFFF">Categoria:</font>
                </td>
                <td>
                    <input type="text" size="60" name="tipo" <?if (isset($_GET[id_prodotto])) echo "value=\"".$row[2]."\""?>>
                </td>
            </tr>
            <tr>
                <td>
                <font color="#FFFFFF">Descrizione prodotto:</font>
                </td>
                <td>
                    <input type="text" size="60" name="descrizione" <?if (isset($_GET[id_prodotto])) echo "value=\"".$row[3]."\""?>>
                </td>
            </tr>
           
            <tr>
                <td>
                    <font color="#FFFFFF">IVA%:</font>
                </td>
                <td>
                    <input type="text" name="iva_prod" <?if (isset($_GET[id_prodotto])) echo "value=\"".$row[iva_prod]."\""?>>
                </td>
            </tr>
           
            <tr>
                <td>
                    <font color="#FFFFFF">Peso:</font>
                </td>
                <td>
                    <input type="text" name="unita_misura" <?if (isset($_GET[id_prodotto])) echo "value=\"".$row[4]."\""?>>
                </td>
            </tr>
           
            <tr>
                <td>
                    <font color="#FFFFFF">Confezionamento:</font>
                </td>
                <td>
                   <input type="text" name="confezione" <?if (isset($_GET[id_prodotto])) echo "value=\"".$row[6]."\""?>>
                </td>
            <tr>
                <td>
                    <font color="#FFFFFF">Euro:</font>
                </td>
                <td>
                   <input type="text" name="prezzo" <?if (isset($_GET[id_prodotto])) echo "value=\"".$row[5]."\""?>>
                </td>
            </tr>
            <tr>
                <td>
                    <font color="#FFFFFF">Scheda Tecnica:</font>
                </td>
                <td>
                   <textarea rows="4" cols="47" name="Scheda Tecnica" <?if (isset($_GET[id_prodotto])) echo "value=\"".$row[8]."\""?>>
                </textarea>
                </td>
            </tr>
            <?
                if (isset($_GET[id_prodotto])){
                    echo "<input type='hidden' name='id_prodotto' value='$_GET[id_prodotto]'>";
                    echo "<input type='hidden' name='operazione' value='modifica'>";
                }
                else echo "<input type='hidden' name='operazione' value='inserimento'>";
            ?>
            <tr>
            <td colspan="2">
                <?
                    if (isset($_GET[id_prodotto])) echo "<input type='submit' value='Modifica' >";
                    else echo "<input type='submit' value='Inserisci' >";
                ?>
            </td>
        </tr>
        </table>
    </form>
    </center>
</body>
</html>
<?
}
?>


Su MAC se disabilito JS su Browser lo script funziona, ma la disabilitazione di js fa sorgere altri problemi pertanto questa soluzione non va bene.


C'è qualche incompatibilità su MAC usando script js?

[/code]
« Ultima modifica: 05 Ott 2011, 09:53:54 da klavinet »

mau_develop

  • Visitatore
mi sa che i problemi sono altri, magari di browser.
Comunque sia non mi sembra stiate usando classi e metodi di joomla nei vostri script.
Usare i get e i post direttamente negli script è una pazzia.
M

Offline klavinet

  • Nuovo arrivato
  • *
  • Post: 25
    • Mostra profilo
usiamo sia i metodi di joomla sia php e js puro.


Usare i get e i post direttamente negli script è una pazzia.
M


Perchè?


Comunque sia ,su MAC ,  Safari e Firefox falliscono la insert della greybox.


Ho provato con due MAC. L'assurdo è che se disabilito js nel browser, la greybox si apre e l'insert funziona.
Ma disabilitare js nel browser è da escludere, moltre altre sezioni del sito usano JS.

mau_develop

  • Visitatore
molti dei problemi risiedono negli ultimi browser
="SELECT id FROM fornitori WHERE id_fornitore=$_GET[id_fornitore]";
e se l'id fornitore è una UNION, o una concat con users?
Qui non sei nel framework di joomla altrimenti avevi metodi che consentivano filtro e casting.
M

 



Web Design Bolzano Kreatif