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

    Problema inserimento mysql apostrofo

    Ciao ragazzi mi e sorto un problema piuttosto strano nell'inserimento all'interno di un database di alcune frasi con l'apostrofo ('). Vi posto lo script dell'inserimento, controlla semplicemente se la classe è una o l'altra e esegue l'insert..
    Se $fras:ciao e $trad:ciao' Non mi inserisce la frase

    Se $fras:ciao e $trad:ciao Me lo inserisce tranquillamente

    Mi potete aiutare?? Grazie

    Codice PHP:
    <?php
    session_start
    ();

    $_SESSION["id"] = 0;


    $fras=$_POST['ins_fras'];
    $trad=$_POST['ins_trad'];




    $classe=$_SESSION['classe'];
    if (
    $classe == '2^ Digea'){
    //mi connetto al database
    $archivio=mysql_connect("www.loveessence.altervista.org""loveessence""fopfesutku63");
    $beta=mysql_select_db("my_loveessence");

    if (empty(
    $fras) || empty($trad)){

        echo 
    "<script type=\"text/javascript\">alert(\"Ci sono dei campi vuoti!\"); history.go(-1)</script>";
    }
    else{

        
    $select=mysql_query("SELECT * FROM 2digea_frasi WHERE frase='$fras'");

        if (
    mysql_num_rows($select) == 1){
            echo 
    "<script type=\"text/javascript\">alert(\"Questa frase e' gia' inserita!\"); history.go(-1);</script>";
        }
        else if (
    mysql_num_rows($select) === 0){
        
    $query=mysql_query("INSERT INTO 2digea_frasi (frase,traduzione) VALUES ('$fras','$trad')");

        
    $_SESSION["id"] = 1;
        echo 
    "<script type=\"text/javascript\">alert(\"Frase inserita!\"); history.go(-1); </script>";
        }
    }


    }
    else if (
    $classe == '1^ Dam'){

      
    //mi connetto al database
    $archivio=mysql_connect("www.loveessence.altervista.org""loveessence""fopfesutku63");
    $beta=mysql_select_db("my_loveessence");

    if (empty(
    $fras) || empty($trad)){

        echo 
    "<script type=\"text/javascript\">alert(\"Ci sono dei campi vuoti!\"); history.go(-1)</script>";
    }
    else{

        
    $select=mysql_query("SELECT * FROM 1dam_frasi WHERE frase='$fras'");

        if (
    mysql_num_rows($select) == 1){
            echo 
    "<script type=\"text/javascript\">alert(\"Questa frase e' gia' inserita!\"); history.go(-1);</script>";
        }
        else if (
    mysql_num_rows($select) === 0){
        
    $query=mysql_query("INSERT INTO 1dam_frasi (frase,traduzione) VALUES ('$fras','$trad')");

        
    $_SESSION["id"] = 1;
        echo 
    "<script type=\"text/javascript\">alert(\"Frase inserita!\"); history.go(-1); </script>";
        }
    }

    }

    ?>
    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

  2. #2

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Bhe che dire..Grazie, anche se ho trovato un modo simile..Se al posto di inserire un apice ne unserisco 2 '' (non le virgolette ")..Me ne inserisce uno correttamente =)
    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

  4. #4
    Originariamente inviato da CiRi..Cuber
    Bhe che dire..Grazie, anche se ho trovato un modo simile..Se al posto di inserire un apice ne unserisco 2 '' (non le virgolette ")..Me ne inserisce uno correttamente =)
    Cio' che tu inserisci e' un carattere di escape per dire alla stringa SQL che quello che segue non e' da considerare come carattere di controllo ma un un carattere ascii. Di norma per mysql questo carattere e' il backslash \ pero' a te funziona con l'apice ' ci sara' una diversa impostazione nel file php.ini oppure nella configurazione di mysql.

    Che significa questo? che la tua stringa funziona qui e forse non di la'.

    Meglio usare quindi la funzione mysql_real_escape_string() che provvedera' ad inserire il corretto carattere, come anche chiaramente spiegato nel link che ti ho postato prima.

    In realtà però il sistema migliore per fare l'escape che ci serve è quello di usare (quando disponibile, ovviamente) la funzione apposita dedicata al database che ci interessa. Nel caso di MySql si tratta di mysql_real_escape_string() o di mysqli_real_escape_string() , a seconda di quale versione della libreria stiamo utilizzando. Alle funzioni devono essere passati come parametri la stringa di cui ci serve l'escape e l'identificativo di connessione al database (che quindi dobbiamo avere già effettuato). Attenzione! L'ordine dei parametri è rovesciato fra le due funzioni (la connessione va come secondo per mysql_real_escape_string, come primo per mysqli_real_escape_string; se si usa mysqli nella notazione a oggetto, la connessione ovviamente non serve).
    Tale funzione infatti tiene conto del character set attivo nella connessione, il che consente una maggiore precisione nell'identificazione dei caratteri di cui fare l'escape.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.