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

    Heredoc per inserimento tabella

    ciao a tutti,

    ho uno scipt in php che preleva i dati di una form e tramite la funzione mail
    mando una conferma dei dati all'utente che li ha compilati.
    Ora il mio problema è che vorrei abbellire la mail che riceve chi si registra; pertanto volevo ricorrere all'heredoc per inserire la formattazione html completa ma non riesco ad inserirlo...

    mipotreste consigliare qualche tutorial o manuale o fonte ispiratrice per risolvere?
    grazie mille

    sandro1492

  2. #2
    L'heredoc non ti serve se non per evitare di stare a fare l'escape degli apici.
    A te serve di creare una mail in HTML da inviare come risposta.
    Per farlo, devi crearti gli opportuni header da inserire come 4° parametro della funzione mail().

    Cercando nel forum e leggendo il manuale ufficiale (che ti ho appena linkato), trovi tantissimi esempi su come fare.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    ciao alcio74
    e grazie per le informazioni...
    ho letto il link che mi hai dato ed ho applicato l'esemio che riguarda il send html mail ma in casella di posta mi arriva tutto il codice html e non tradotto.

    ho inserito gli header che specificano che si tratta di una mail con html
    e che sono questi:
    $headers = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

    ma mi arriva appunto con indicato anche html...
    non capisco dove sbaglio.
    grazie sandro1492

  4. #4
    Così su due piedi non è semplice: posta il codice dello script e vediamo quello che si può fare!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    eccoti il codice:
    <?php

    // Get data from form
    if($formMethod == "post") {
    $name = $_POST['name'];
    $surname = $_POST['surname'];
    $birthday = $_POST['birthday'];
    $email = $_POST['email'];
    $telephone = $_POST['telephone'];
    $abbonamento = $_POST['abbonamento'];
    $catprof = $_POST['catprof'];
    $fasceora = $_POST['fasceora'];
    $attivita = $_POST['attivita'];
    $zonaresi = $_POST['zonaresi'];
    $sesso = $_POST['sesso'];
    $agree = $_POST['agree'];}
    else {
    $name = $_GET['name'];
    $surname = $_GET['surname'];
    $birthday = $_GET['birthday'];
    $email = $_GET['email'];
    $telephone = $_GET['telephone'];
    $abbonamento = $_GET['abbonamento'];
    $catprof = $_GET['catprof'];
    $fasceora = $_GET['fasceora'];
    $attivita = $_GET['attivita'];
    $zonaresi = $_GET['zonaresi'];
    $sesso = $_GET['sesso'];
    $agree = $_POST['agree'];}




    // controllo campi vuoti
    if (empty($name) || empty($surname) || empty($birthday) || empty($email) || empty($telephone) || empty($abbonamento) || empty($catprof) || empty($fasceora) || empty($attivita) || empty($zonaresi) || empty($sesso)) {
    echo "One or more fields are missing information.\r\n"; }
    else {
    // Connect to MySQL
    mysql_connect($mySQLhost, $mySQLuser, $mySQLpass)
    or die("Could not connect: " . mysql_error());
    mysql_select_db($mySQLdb);

    // Insert the data into the database
    if (mysql_query("INSERT INTO $mySQLtable (name,surname,birthday,email,telephone,abbonamento ,catprof,fasceora,attivita,zonaresi,sesso,privacy, code) VALUES ('$name','$surname','$birthday','$email','$telepho ne','$abbonamento','$catprof','$fasceora','$attivi ta','$zonaresi','$sesso','$agree','$code')")) {
    echo "<table width=\"400px\" border=\"\0\" style=\"text-align:center;margin-right:auto;margin-left:auto;\">
    <tr>

    <th style=\"color:#ff0000;\">Registrazione avvenuta con Successo!</th>
    <th></th>
    </tr>
    <tr>
    <td>fissa un appuntamento </td>
    <td></td>

    </tr>

    </table>"; }
    else { echo $regFailed ;}

    mysql_close(); }
    ?>
    <?php

    $to = $_POST["email"];
    $from = "registrazione@mail.org";
    $subject = "Dati registrazione";
    // message
    $message = '
    <title style="text-align:center;color:#cc0000;">MODULO REGISTRAZIONE </title>

    <tr>Stampa questa mail e presentalo alla reception</tr>
    <table>
    <tr>
    <th>a</th>
    <th>v</th>
    </tr>

    <tr>
    <td>ID REGISTRAZIONE</td>
    <td>$code</td>
    </tr>

    <tr><hr></tr>
    <tr>

    <td>NOME</td>
    <td>$name</td>
    </tr>
    <tr>
    <td>COGNOME</td>
    <td>$surname</td>
    </tr>
    <tr>
    <td>ABBONAMENTO SCELTO</td>
    <td>$abbonamento</td>
    </tr>
    <tr>
    <td>CATEGORIA PROFESSIONALE</td>
    <td>$catprof</td>
    </tr>
    <tr>
    <td>FASCIA ORARIA</td>
    <td>$fasceora</td>
    </tr>
    <tr>
    <td>ZONA di RESIDENZA</td>
    <td>$zonaresi</td>
    </tr>
    <tr>
    <th>Tutela della Privacy</th>
    <th></th>
    </tr>
    </table>';
    // To send HTML mail, the Content-type header must be set
    $headers = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

    // Mail it
    $headers = "From: " . $from . "\r\n";
    $mailsent = mail ($to, $subject, $message, $headers);
    if ($mailsent) {
    echo "Abbiamo spedito all'indirizzo indicato un Promemoria." . "\r\n" . "Stampalo e presentalo al momento dell'iscrizione." . "\r\n" . "Grazie";
    } else {
    echo "Ci sono stati errori";
    }

    ?>

  6. #6
    C'è un errore nell'ultima concatenazione di variabile $headers.
    Non hai messo il punto, per cui ti stata sovrascritta solo l'ultima riga.
    Codice PHP:
    // To send HTML mail, the Content-type header must be set
    $headers 'MIME-Version: 1.0' "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";

    // Mail it
    $headers .= "From: " $from "\r\n"// <== l'errore era qui 
    Una cortesia, però: la prossima volta che incolli del codice in un post, usa la formattazione PHP (il bottone in alto sopra alla text box dove si scrivono i messaggi).

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    ...grazie mille per la correzione alcio74

    approffitavo per accellerare il mio apprendimento grazie a te chiedendoti due cose.

    Ora la mail arriva come deve ma non mi sostituisce i valori alle variabili ma mi stampa $name e non il suo valore.
    E dove posso trovare documentazione in modo tale da capirlo da solo che era il punto che mancava...

    Grazie ancora e d'ora in poi posterò codice con il bottone ce mia hai indicato

    Mille grazie
    sandro1492

  8. #8
    Originariamente inviato da sandro1492
    Ora la mail arriva come deve ma non mi sostituisce i valori alle variabili ma mi stampa $name e non il suo valore.
    $message è la variabile in cui hai inserito la stringa con il codice HTML.
    Il tuo problema è che hai usato, per racchiudere la stringa, i singoli apici.
    I singoli apici non permettono la sostituzione delle variabili, che invece vanno opportunamente concatenate.
    Quindi, o usi i doppi apici, oppure chioudi il singolo apici, metti il punto di concatenazione, la variabile, di nuovo il punto quindi riapri il singolo apice.

    Originariamente inviato da sandro1492
    E dove posso trovare documentazione in modo tale da capirlo da solo che era il punto che mancava...
    Beh... scusami se te lo faccio notare, ma questo è l'ABC del PHP.
    La concatenzaione delle stringhe la trovi un po' dappertutto per i vari forum/tutorial/documentazione ufficiale.
    Non ti offendere se te lo dico, ma magari dovresti proprio metterti a studiare le basi del linguaggio.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  9. #9
    alcio74 grazie mille

    ho risolto...hai risolto!

    ..e non mi sono offeso, anzi ho apprezzato i tuoi commenti.


    sandro1492

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.