Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    addslashes, stripslashes, e altre rotture simili...

    Ciao a tutti, non capisco come mai se invio un modulo che ricarica la stessa pagina dove salva i dati e ripresenta i campi nel modulo pronti per essere modificati, dicevo non capisco come mai alla prima modifica (no all'insert quindi) tutto bene... alla seconda non funziona più il magic_quotes_gpc e la query, se la stampo, non mi presenta il caratteristico \' laddove ho un apice, ad esempio.

    Perchè quella cazzo di direttiva, funziona solo alla prima mandata e non alla seconda?!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    spiega cosa vorresti fare e inserisci la porzione di codice interessata.

  3. #3
    Codice PHP:
    <? if ($_POST) {
        
    $_GET=$_POST;
        
    $_GET["descrizione"]=fix_caps($_GET["descrizione"]);
        if (
    trim($_GET["descrizione"]) && eregi("^[a-zA-Z0-9_\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$"trim($_GET["email"]))) {
            
    $id_azienda=$_GET["id_azienda"];
            
    $sql="SELECT email FROM aziende WHERE id_azienda='$id_azienda'";
            
    $result=mysql_query($sql$link) or die($sql.mysql_error());
            
    $rows=mysql_fetch_assoc($result);
            if (
    $_GET["modifica"]) {
                
    $emails=trim($rows["email"]);
                if (
    $emails$email=explode("\n"$emails);
                if (
    $email) {
                    foreach (
    $email as $valore) {
                        if (
    $valore==$_SESSION["riga_mail"][$_GET["modifica"]]) {
                            
    $corretto=$corretto.trim($_GET["descrizione"])." ".trim($_GET["email"])."\n";
                            
    $testo=$_SESSION["riga_mail"][$_GET["modifica"]];
                            
    $parti=explode(" "$testo);
                            
    $quante_parti=count($parti)-1;
                            
    $email_precedente=$parti[$quante_parti];
                            
    $email_attuale=trim($_GET["email"]);
                        } else {
                            
    $corretto=$corretto.$valore."\n";
                        }
                    }
                }
                
    $emails=trim($corretto);
            } else {
                
    $emails=$rows["email"]."\n".trim($_GET["descrizione"])." ".trim($_GET["email"]);
                
    $email_attuale=$_GET["email"];
            }

            
    $sql="UPDATE aziende SET email='".$emails."' WHERE id_azienda='$id_azienda'";
            
    $result=mysql_query($sql$link) or die($sql.mysql_error());
            
            if (
    $corretto$_SESSION["riga_mail"][$_GET["modifica"]]=trim($_GET["descrizione"])." ".trim($_GET["email"]);
                    
        } else {
            
    $div="<div style=\"color:red; font-weight:bold;\">Problemi con l'inserimento dell'e-mail. Riprovare</div>";
        }
    ?>
    La parte che controlla i dati e aggiorna il db è questa sopra riportata; l'ho messa tutta, anche se in realtà ci saranno cose che non interessano la questione aperta, ed invito a non considerarle. E' un sistema strambo (ho dovuto fare così...) di gestione di un campo text contenente indirizzi email con descrittore separati da \n.

    Ad ogni modo... il problema principale è che se ho nel campo un'apice, al primo update tutto bene... al secondo (la pagina ripropone se stessa a fine operazione) invece non mi mette automaticamente il backslash e quindi passa al db una stringa con errore (UPDATE tabella SET descrizione='Un'ape'... invece del corretto UPDATE tabella SET descrizione='Un\'ape'...).

    PERCHE' questa differenza di comportamento?!

  4. #4

  5. #5

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 © 2024 vBulletin Solutions, Inc. All rights reserved.