Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    176

    Problema apostrofi form mail

    Salve a tutti!
    Ho creato un form di iscrizione che se compilato mi invia una mail.
    Per evitare errori da parte di chi lo compila ho creato una pagina che funge da anteprima.
    Ho un problema però con i cognomi che hanno l'apostrofo.

    Nella prima prima pagina ho creato un semplice form che invia i dati alla seconda pagina che deve sia visualizzare i valori precedentemente scritti che inviare tramite un tasto conferma la mail vera e propria.
    Ecco i punti del codice che mi interessa farvi vedere:
    Codice PHP:
    <?
    //qui ho richiamato i valori
    $cognome $_POST['cognome']; 
    //inserisco la funzione stripslashes per visualizzare gli apostrofi eventuali (e infatti funziona)
    $cognome stripslashes($cognome);
    //se non scrivo niente mi avvisa
    if (trim($cognome) == ""):
    echo 
    "campo non compilato";
    //altrimenti mi fa vedere i miei dati per la conferma
    else:
    echo 
    "$cognome";
    ?>
    Fin qui tutto ok. La pagina mi visualizza correttamente i cognomi che hanno l'apostrofo, ad es. O'Neil

    Per inviare i dati alla pagina succesiva ho aggiunto un form di tipo hidden così:
    codice:
    <form id="webiscrizione" action="webiscrizione-conferma.php" method="POST" onsubmit="return check()">
    <input type="hidden" name="cognome" value='<?echo $cognome?>' />
    <input class="pulsanti" type="submit" value="Conferma">
    </form>
    La pagina tre, che ho chiamato "webiscrizione-conferma.php" ha questo codiche (preso paro paro da queste pagine e lievemente modificato):
    Codice PHP:
    <?
    $cognome 
    $_POST['cognome'];                   
    // L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
    $to "mioindirizzo@email.it";
    // IL SOGGETTO DELLA MAIL
    $subject "ISCRIZIONE: $nome $cognome";
    // COSTRUIAMO IL CORPO DEL MESSAGGIO
    $body "Questa iscrizione è stata inviata utilizzando il modulo web bla bla bla";
    $body .= "Nome: " $nome"\n";
    $body .= "Cognome: " $cognome"\n";
    $body .= "Data di nascita: " $giorno."/"$mese."/"$anno"\n";
    $body .= "Indirizzo: " $indirizzo"\n";
    $body .= "CAP: " $codicepostale"\n";
    $body .= "Comune: " $comune"\n";
    $body .= "Provincia: " $provincia"\n";
    $body .= "Recapito telefonico: " $tel"\n";
    $body .= "Indirizzo e-mail: " $mail"\n\n";
    $body .= "Note: " $note"\n";
    // INTESTAZIONI SUPPLEMENTARI
    $headers "From: $nome $cognome<$mail>";
    // INVIO DELLA MAIL
    if(@mail($to$subject$body$headers)) { // SE L'INOLTRO E' ANDATO A BUON FINE...
    echo "<h4>Grazie $nome, la tua domanda di iscrizione è stata inoltrata con successo.</h4>";
    } else {
    // ALTRIMENTI...
    echo "<h4>Spiacenti $nome, si sono verificati dei problemi nell'invio del modulo di iscrizione.</h4>";
    }
    ?>
    La mail mi arriva correttamente ma il cognome, nel nostro esempio "O'Neill" diventa "O" e non capisco come mai. Ho smanettato con le varie funzioni addslashes, stripslashes.. ma non riesco a risolvere il problema! Sono ancora agli inizi e purtroppo mi sono arenato. Se serve posso postate tutte le pagine.
    Grazie e spero in un vostro aiuto!
    Ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    272
    value='<?echo $cognome?>'

    in altre parole

    value='O'Neill'

    quindi chiudi prima le virgolette senza volerlo.

    value="O'Neill"

    andrà meglio

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    176
    Grande!
    Grazie mille!

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.