• User

    Mail in HTML e riconoscimento variabili PHP

    Salve a tutti,

    premetto che di HTML e PHP non capisco nulla
    ma avendo un buon intuito sono riusciuto a inviare i dati di un Form via email, se in formato testo è tutto OK

    se trasformo la mail in formato HTML mi arriva in HTML come lo formattata io ma i valori delle variabili PHP utilizzate non riesco più a visualizzarle

    sicuramente è un errore di scrittura ma non so proprio come risolverlo

    Ad esempio:

    all'interno del messaggio, laddove dovrebbe apparire il valore della variabile php

    nel codice HTML è scritto:

    <tr>
    <td width="546" height="18"><font face="Arial" color="#5D5D5D" size="2">Nominativo: "<?php echo $nome; ?>"</font></td>
    </tr>

    Quando la mail mi arriva
    visualizzo solo

    Nominativo ""

    perdendo così il valore della variabile

    Come dovrei scrivere???

    Grazie a chi vorrà rispondermi

    Buona serata


  • User Attivo

    Quello che hai scritto è corretto, dovresti allargare un po' il punto di vista così vediamo se c'è qualche errore prima, o di concetto.


  • User

    @margheritebianche said:

    Quello che hai scritto è corretto, dovresti allargare un po' il punto di vista così vediamo se c'è qualche errore prima, o di concetto.

    grazie per l'interessamento

    allora
    questo è il codice:

    <?php

    $receiverMail = "[EMAIL="[email protected]"][email protected][/EMAIL]";
    $subject = "TEST";
    $name = "Form";

    $nome_azienda = ltrim(rtrim(strip_tags($_POST['nome_azienda'])));
    $via = ltrim(rtrim(strip_tags($_POST['via'])));
    $tel = ltrim(rtrim(strip_tags($_POST['tel'])));
    $settore = ltrim(rtrim(strip_tags($_POST['settore'])));

    $msgbody = '
    <html>
    <head>
    <title>Dati TEST</title>
    </head>
    <body bgcolor="#F8F8F8">
    <table width="564" height="139" cellspacing="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#111111">
    <tr>
    <th width="558" height="24" bgcolor="#333333">
    <p align="left"><font face="Arial" color="#F8F8F8">TEST</font></th>
    </tr>
    <tr>
    <th width="358" height="1" bgcolor="#F3F3F3"></th>
    </tr>
    <tr>
    <td width="546" height="8"></td>
    </tr>
    <tr>
    <td width="546" height="18"><font face="Arial" size="2" color="#5D5D5D">Nome
    azienda: "<?php echo $nome_azienda?>"</font></td>
    </tr>
    <tr>
    <td width="546" height="18"><font face="Arial" size="2" color="#5D5D5D">Via: "<?php echo $via; ?>"</font></td>
    </tr>
    <tr>
    <td width="546" height="18"><font face="Arial" size="2" color="#5D5D5D">
    Telefono: "<?php echo $tel; ?>"</font></td>
    </tr>
    <tr>
    <td width="546" height="18"><font face="Arial" size="2" color="#5D5D5D">
    Settore: "<?php echo $settore; ?>"</font></td>
    </tr>
    </table>
    </body>
    </html>
    ';

    $intestazioni = "MIME-Version: 1.0\r\n";
    $intestazioni .= "Content-type: text/html; charset=iso-8859-1\r\n";

    // invio del messaggio
    mail($receiverMail, $subject, $msgbody, $intestazioni, "From: $name");

    ?>

    Nella mia casella postale arriva regolarmente il messaggio
    formattato come avevo richiesto
    ma non vengono restituiti valori dei campi del form (variabili php)

    il testo della mail che arriva è questo:

    [LEFT]TEST[/LEFT]
    Nome azienda: ""
    Via: ""
    Telefono: ""
    Settore: ""


  • User Attivo

    non devi fare un echo della variabile... basta che fai:

    $stringa = 'blablabla'.$altravariabile.'blablabla';


  • User

    @CZero said:

    non devi fare un echo della variabile... basta che fai:

    $stringa = 'blablabla'.$altravariabile.'blablabla';

    Ciao,

    da neofità e perfetto "ignorante" in materia....
    non ho capito nulla

    in pratica
    come si compone questa stringa
    e dove devo metterla

    comunque grazie per la risposta
    e .... per l'eventuale aiuto


  • User Attivo

    Visto che sei dentro il php non e' necessario, come ti ha detto CZero, fare <?php echo...
    Però siccome sei all'interno di una stringa tra apice singolo devi chiuderla, concatenare e riaprirla.
    Quindi, ad esempio:

    
    <td width="546" height="18"><font face="Arial" size="2" color="#5D5D5D">Via: "<?php echo $via; ?>"</font></td>
    
    

    diventa:

    
    <td width="546" height="18"><font face="Arial" size="2" color="#5D5D5D">Via: "' . $via . '"</font></td>
    
    

  • User

    Ho provato e funziona benissimo

    grazie a CZero per aver trovato l'errore

    e grazie a margheritebianche per la spiegazione e l'esempio pratico

    Buona giornata