Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di ttcc
    Registrato dal
    Dec 2008
    Messaggi
    489

    addslashes or mysql_real_escape_string()

    salve a tutti
    ho un problemino con il mio editor (notepad++) o qualche altra cosa che non so
    ho preparato un form di prova:
    il file del form:

    Codice PHP:
    <form action="prova1.php" method="post">
    <
    input type="text" name="nome"
    <
    input type="submit" value="submit"
    </
    form
    il file che elabora il form:

    Codice PHP:
    <?php 
    $nome
    =$_POST['nome'];
      echo 
    $nome
    ?>
    se nel form inserisco ad esempio D'angelo (o qualsiasi altro nome con l'apostrofo) ho come output: D\\'angelo.
    perchè????
    se non uso neanche alcuna funzione php?
    ps il dato poi dovrebbe andare in tabella mysql ma il codice ancora non losa!
    mi spiegate?
    grazie

  2. #2

  3. #3
    perche' hai magic_quote_gpc in ON nel php.ini.

    ti viene in aiuto l'utile la pillola di Luca200.

    http://forum.html.it/forum/showthrea...ostid=10166292

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

  4. #4
    Utente di HTML.it L'avatar di ttcc
    Registrato dal
    Dec 2008
    Messaggi
    489
    e veroooo!!!! ero su tutt'altri lidi.
    grazie

  5. #5
    Utente di HTML.it L'avatar di ttcc
    Registrato dal
    Dec 2008
    Messaggi
    489
    ciao ragazzi,
    ho ancora bisogno di aiuto
    non riesco a chiudere il cerchio....insomma,
    1-ho il form, nel file di elaborazione inserisco i dati nella tabella mysql ".. cognome=d'angelo..". Tutto perfetto.
    2-ho un output della tabella che mi riporta il cognome correttamente (D'angelo).
    il problema mi nasce qui di seguito:
    3 creo l'eventualità di modifica. porto l'id e tutti dati della tabella con "select" in un nuovo form con il solito "value ="<?php echo $cognome; ?>" e qui succede una cosa che non capisco... o mi sfugge (ancora una volta), nel campo del form dedicato al cognome mi esce solo "..D..". Se mi faccio un output dei valori appena "selected" ho ancora "D'angelo" tutto intero.

    mi potete spiegare?
    grazie mille

  6. #6
    Utente di HTML.it L'avatar di Laxus
    Registrato dal
    Oct 2010
    Messaggi
    251
    è possibile che l'apice del risultato abbia chiuso inavvertitamente l'attributo value?
    echo "<input type='text' name='lol' value='D'angelo '>";
    controlla la sorgente dell'output; in questo caso conviene applicare sempre dei filtri!

  7. #7
    se devi mettere il contenuto di un campo di testo del db in un form devi evitare che apici o virgolette contenuti nel testo possano chiudertti l'input
    in sostanza devi convertire apici e virgolette in entità html:
    cioè utilizzare htmlentities mettendo come secondo parametro ENT_QUOTES
    http://www.php.net/manual/en/function.htmlentities.php

    ERGO:

    Codice PHP:
    <input type="text" name="bho" value="<?php echo htmlentities(stripslashes($valore), ENT_QUOTES); ?>" />

  8. #8
    Utente di HTML.it L'avatar di ttcc
    Registrato dal
    Dec 2008
    Messaggi
    489

    accade che qualche volta vai dall'altra parte del mondo per cercare la soluzione, quando poi basta accendere il cervello e trovi la soluzione davanti a te. tutto risolto. avevo scritto:
    -... value=' <?php echo $cognome; ?>'.. -
    anzichè
    -... value=" <?php echo $cognome; ?>".. -
    grazie di tutto

  9. #9
    non risolvi per nulla...
    se il cognome contiene le virgolette invece dell'apice (apostrofo) il problema ti si ripresenterà...

  10. #10
    Originariamente inviato da oly1982
    se devi mettere il contenuto di un campo di testo del db in un form devi evitare che apici o virgolette contenuti nel testo possano chiudertti l'input
    in sostanza devi convertire apici e virgolette in entità html:
    cioè utilizzare htmlentities mettendo come secondo parametro ENT_QUOTES
    http://www.php.net/manual/en/function.htmlentities.php

    ERGO:

    Codice PHP:
    <input type="text" name="bho" value="<?php echo htmlentities(stripslashes($valore), ENT_QUOTES); ?>" />
    Finalmente un utilizzo corretto di htmlentities()

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