Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    [Mx] nell'invio mail i doppi apici mi vengono backslashati...

    Come mai in un form Flash-Php che ho fatto, che inserisce prima i dati in un database e poi li invia x email a me, nell'inserimento db tutto ok, mentre nell'invio email (formato html), gli apici e i doppi apici mi vengono backslashati?

    ad esempio se in un campo viene scritto
    "ciao"
    nell'email leggo
    \"ciao\"

    È il php a compilare l'email in formato html, e non gli ho dato nessuna istruzione di strippaggio tag, quindi al limite una cosa del genere dovrebbe generarmi errore nell'interpretare i tag... e invece dell'errore vedo sti tag...

    mi conviene usare un pregreplace e trasformare gli apici in " (codice html) oppure qualcos'altro?

    A proposito, i caratteri di accapo, ovviamente nell'email non si vedono... pregreplace pure li? Mi sembra che nel database il carattere di accapo viene inserito, quindi dovrei poterlo fare...
    ...però cosa metto nel primo campo (find) "\n" ?
    わさび

  2. #2
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    Re: [Mx] nell'invio mail i doppi apici mi vengono backslashati...

    uppete,
    nessuno ha qualche consiglio? (o coniglio?)
    わさび

  3. #3
    ma perche' posti problemi php su ActionScript ???

    comunque sia
    questa
    http://www.devpro.it/php4_id_35.html

    richiamata e dichiarata a inizio file, ti risolve ogni problema di backslashes ... occhio pero' che se la usi su files dove i dati vanno in database, devi usare le funzioni di escape ( come bisognoerebbe fare sempre ... )

    tipo

    mysql_escape_string( $dato )

    o

    mysql_real_rescape_string( $dato )


    o nel caso specifico di MySQL, un semplice addslashes( $dato )

    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #4
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da andr3a
    ma perche' posti problemi php su ActionScript ???
    =_0'
    comunque sia
    questa
    http://www.devpro.it/php4_id_35.html

    richiamata e dichiarata a inizio file, ti risolve ogni problema di backslashes ... occhio pero' che se la usi su files dove i dati vanno in database, devi usare le funzioni di escape ( come bisognoerebbe fare sempre ... )

    tipo

    mysql_escape_string( $dato )

    o

    mysql_real_rescape_string( $dato )


    o nel caso specifico di MySQL, un semplice addslashes( $dato )

    Grazie 1000 ora me la spizzo
    わさび

  5. #5
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Non ho capito una cosa:
    I dati nel database ci vanno a finire bene, perchè devo usare l'addslashes( $dato )?
    È nell'email che mi aggiunge gli slash quando compila i campi...
    Devo usare la funzione RemoveMagicQuotes() per ogni campo in cui potrebbero andare a finire gli apici e i doppi apici?

    Un'altra cosa...
    nella tua classe hai scritto is_array con la A maiuscola
    わさび

  6. #6
    Originariamente inviato da Trinità76
    Non ho capito una cosa:
    I dati nel database ci vanno a finire bene, perchè devo usare l'addslashes( $dato )?
    È nell'email che mi aggiunge gli slash quando compila i campi...
    Devo usare la funzione RemoveMagicQuotes() per ogni campo in cui potrebbero andare a finire gli apici e i doppi apici?
    quella classe funziona cosi' ... che poi' c'e' pure l' esempio ma tanto non leggete mai niente ...

    inizio pagina php, prima di qualunque altra cosa
    require( 'RemoveMagicQuotes.class.php' );
    $RM= &new RemoveMagicQuotes();

    BASTA
    non devi fare altro, e' gia' tutto parsato in automatico, ogni GET, ogni POST, ogni COOKIE, rispolve il problema del magic_quotes_gpc() impostato a on su molti hoster per evitare i problemi fagiani di SQL INJECTIONS, per questo i dati che vanno in database devono essere slashati, altrimenti ti dumpo o deleto un intero db con una sql injection ... mi basta scriverti

    " or id = id per avere tutte le informazioni

    o con una subselect

    " AND ( DROP DATABASE 'tuosito' )

    per cancellarti il db, c'e' un articolo apposito su freephp.html.it, leggilo


    Originariamente inviato da Trinità76
    Un'altra cosa...
    nella tua classe hai scritto is_array con la A maiuscola
    le funzioni integrate di php sono case-insensitive ... nei miei codici troverai sempre
    is_Array()

    is_Int()

    is_Double()

    is_Float()

    toUpperCase()
    toLowerCase()

    e' il mio modo di scrivere codice php , per me piu' leggibile


    P.S. ognuno scrive codice secondo le SUE abitudini, chi scrive con metodo da tempo, riconosce i propri scripts a occhi chiusi ...
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da andr3a
    quella classe funziona cosi' ... che poi' c'e' pure l' esempio ma tanto non leggete mai niente ...
    No, l'esempio l'ho letto, mi sono letto pure su it.php.net gli utilizzi di get_magic_quotes_gpc e di stripslashes... È che non avendoli mai usati fino ad ora non ne capivo la funzionalità.

    le funzioni integrate di php sono case-insensitive ... nei miei codici troverai sempre
    is_Array()

    is_Int()

    is_Double()

    is_Float()

    toUpperCase()
    toLowerCase()

    e' il mio modo di scrivere codice php , per me piu' leggibile

    P.S. ognuno scrive codice secondo le SUE abitudini, chi scrive con metodo da tempo, riconosce i propri scripts a occhi chiusi ...
    Te l'ho segnalato perchè pensavo fosse un errore, non voglio farti cambiare le tue abitudini.

    Grazie x le info ancora
    わさび

  8. #8
    Originariamente inviato da Trinità76
    Te l'ho segnalato perchè pensavo fosse un errore, non voglio farti cambiare le tue abitudini.
    in ogni linguaggio di programmazione di solito le variabili sono tutte minuscole, le funzioni cominciano in minuscolo e "separano" col maiuscolo e le classi cominciano sempre con la lettera maiuscola

    $pippo_spende;
    function quantoSpendePippo() {}
    class Pippo() {}



    Originariamente inviato da Trinità76
    Grazie x le info ancora
    di nulla
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    ehm :fagiano:

    Come immaginavo se non capisco al 100% la sintassi non riesco ad utilizzare bene la funzione, anzi classe.
    Tornando all'esempio del mio vecchio thread,
    ho passato a tutte le variabili come da tuo consiglio l'addslashes in questo modo
    Codice PHP:
    $jmnome = isset($_POST['jmnome']) ? addslashes($jmnome) : ""
    quindi nel dbase gli apici e i doppi apici vengono "scritti" con gli slash, e fin qui ok.

    Ora, la stessa pagina php che inserisce i dati nel database successivamente manda anche un'email con i dati compilati.
    Al che ho fatto passare il tuo script
    Codice PHP:
    $removeMagicQuotes = &new RemoveMagicQuotes(); 
    ...però nell'email questa volta se ci sono parametri con gli apici ad esempio 'roma' in output dell'email mi vengono fuori \\\'roma\\\'

    Esattamente non capisco la sintassi di quell'
    &$what
    e dell'
    &new

    Quando richiamo la classe praticamente si scansiona tutte le variabili prese in $_GET, $_POST e $_COOKIE e riporta le stringhe nel valore originario però non riesco a farlo funzionare...
    わさび

  10. #10
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    Re: ehm :fagiano:

    Niente da fare, non capisco xchè mi aggiunge i backslash anzicchè toglierli...

    se io faccio
    Codice PHP:
    $string "'ciao'";
    echo 
    $string."
    \n"
    ;
    $string addslashes($string);
    echo 
    $string."
    \n"
    ;
    echo 
    "get_magic_quotes_gpc= ".get_magic_quotes_gpc($string)."
    \n"
    ;
    if( 
    get_magic_quotes_gpc($string) ) {
        echo 
    "dentro l'if
    \n"
    ;
        
    $string stripslashes($string);
    }
    echo 
    $string."
    \n"

    in output ho:
    'ciao'
    \ 'ciao\ '
    get_magic_quotes_gpc= 1
    dentro l'if
    'ciao'

    È quello che fa la tua funzione: ...si cerca i caratteri backslashati da addslashes nelle variabili post, get e cookie, e li strippa... però nel mio caso gli slash me li ritrovo triplicati :master:
    わさび

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.