Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: recupero dati da form

  1. #1
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448

    recupero dati da form

    Ciao ragazzi ho un problema che da settimane non riesco proprio a risolvere.
    Ho un form e dopo aver compilato mi deve inviare 2 e.mail
    - la prima deve essere inviata al sito
    - la seconda invece deve essere inviata a chi compila il modulo (autorisponditore)

    Ho creato questa pagina php

    Codice PHP:

    <?php
    $destinatario 
    "indirizzo@sito.it";
    $subject "Richiesta info";

    $nome=$_POST['nome'];
    $cognome=$_POST['cognome'];
    $indirizzo=$_POST['indirizzo'];
    $nciv=$_POST['nciv'];
    $citta=$_POST['citta'];
    $pv=$_POST['pv'];
    $cap=$_POST['cap'];
    $mail        $_POST['mail'];
    $tel=$_POST['tel'];
    $newsletter     =$_POST['newsletter'];
    $richiesta        $_POST['richiesta'];

    // costruiamo alcune intestazioni generali
    $header "From: $mail\n";
    $header .= "X-Mailer: Il nostro Php\n";

    // generiamo la stringa che funge da separatore
    $boundary "==String_Boundary_x" .md5(time()). "x";

    // costruiamo le intestazioni che specificano
    // un messaggio costituito da più parti alternative
    $header .= "MIME-Version: 1.0\n";
    $header .= "Content-Type: multipart/alternative;\n";
    $header .= " boundary=\"$boundary\";\n\n";

    // questa parte del messaggio viene visualizzata
    // solo se il programma non sa interpretare
    // i MIME poiché è posta prima della stringa boundary
    $messaggio "Se visualizzi questo testo il tuo programma non supporta i MIME\n\n";

    // inizia la prima parte del messaggio in testo puro
    $messaggio .= "--$boundary\n";
    $messaggio .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
    $messaggio .= "Content-Transfer-Encoding: 7bit\n\n";
    $messaggio .= "Messaggio in formato testo.\n\n";

    // inizia la seconda parte del messaggio in formato html
    $messaggio .= "--$boundary\n";
    $messaggio .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
    $messaggio .= "Content-Transfer-Encoding: 7bit\n\n";
    $messaggio .= "<html>
                <body><font>Un utente ha richiesto informazioni commerciali. Ecco i suoi dati:


    Nome: 
    $nome 

    .
    .
    .
    .
     ecc ecc
    .
    .
    </body></html>\n</font></body></html>\n"
    ;

    // chiusura del messaggio con la stringa boundary
    $messaggio .= "--$boundary--\n";

    mail($destinatario$subject$messaggio$header);

    ///////////////////////////////////////////////////////////////////////////

    // INIZIO AUTORISPSTA 
    $mittente_autoresponder "From: [email]indirizzo@sito.it[/email]";
    $destinatario_autoresponder $_POST["mail"];
    $subject_autoresponder "Offerta"

    // costruiamo alcune intestazioni generali
    $header_autoresponder "From: indirizzoemail\n";
    $header_autoresponder .= "X-Mailer: Il nostro Php\n";

    // generiamo la stringa che funge da separatore
    $boundary_autoresponder "==String_Boundary_x" .md5(time()). "x";

    // costruiamo le intestazioni che specificano
    // un messaggio costituito da più parti alternative
    $header_autoresponder .= "MIME-Version: 1.0\n";
    $header_autoresponder .= "Content-Type: multipart/alternative;\n";
    $header_autoresponder .= " boundary=\"$boundary_autoresponder\";\n\n";

    // questa parte del messaggio viene visualizzata
    // solo se il programma non sa interpretare
    // i MIME poiché è posta prima della stringa boundary
    $messaggio_autoresponder "Se visualizzi questo testo il tuo programma non supporta i MIME\n\n";

    // inizia la prima parte del messaggio in testo puro
    $messaggio_autoresponder .= "--$boundary_autoresponder\n";
    $messaggio_autoresponder .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
    $messaggio_autoresponder .= "Content-Transfer-Encoding: 7bit\n\n";
    $messaggio_autoresponder .= "Messaggio in formato testo.\n\n";

    // inizia la seconda parte del messaggio in formato html
    $messaggio_autoresponder .= "--$boundary_autoresponder\n";
    $messaggio_autoresponder .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
    $messaggio_autoresponder .= "Content-Transfer-Encoding: 7bit\n\n";
    $messaggio_autoresponder .= "<html>
                    <body>Qui ce de testo in html</body></html>\n"
    ;

    // chiusura del messaggio con la stringa boundary
    $messaggio_autoresponder .= "--$boundary_autoresponder--\n";

    mail($destinatario_autoresponder$subject_autoresponder$messaggio_autoresponder$header_autoresponder);
    ?>
    Ho provato ma non manda nulla, come mai?? perche?

    Attendo risposte

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2000
    residenza
    Edinburgh
    Messaggi
    401
    Guarda, non ho provato il tuo codice ma ti do un consiglio di cuore, essendo passato dallo stesso problema di recente: evita di mandare email multipart.

    Oggigiorno anche il geek più sfegatato che legge le email da linea di comando usa qualcosa che gli strippa in automatico i tags HTML. Senza contare che diversi providers/lettori di posta hanno problemi con le multipart (ad es. io ho avuto molti casini con GMail). Manda una semplice email in HTML o se proprio non vuoi in formato di testo e ti eviterai molti problemi.

    Altra cosa: stai provando quello script in locale? Perchè a volte mail mandate da localhost vengono filtrate per qualche motivo che ignoro e non arrivano al server (ancora GMail ad esempio).

  3. #3
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448

    risposta

    Grazie nico x avere risposto.
    Allora tutto lo script è gia on line, quindi ilproblema non è il locale.

    Inoltre accetto i tuoi consigli, ma non li capisco: Allora dici: " Manda una semplice email in HTML o se proprio non vuoi in formato di testo e ti eviterai molti problemi."..beh ma come si fa a mandare e.mail in HTML??

    Il mio problema è questo, voglio inviare 2 e.mail in cui il testo si un po formattato, per esempio utilizzare il grassetto o ritornare a capo, o inserire caratteri speciali tipo € o $ ecc ecc..che non riesco a far visualizzarli se non con l'html... fammi sapere ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2000
    residenza
    Edinburgh
    Messaggi
    401
    Hai ragione, rileggendo la mia frase vedo che non è proprio chiarissima...

    Intendevo dire: manda l'email solo in HTML oppure, se proprio vuoi farti paranoie per quel solitario utente che non riesce a visualizzare l'HTML mandala solo testo!

    Comunque, questo manda un email in HTML:

    Codice PHP:
    $newline "\n";     // NOTA: importante mettere le virgolette e non gli apici così viene interpretato come \r\n

    // Settiamo gli headers
    $headers 'X-Mailer: PHP/'.phpversion().$newline.
    'From: '.$from.$newline.
    'Reply-to: '.$from.$newline.
    'Subject: '.$subject.$newline.
    'MIME-Version: 1.0'.$newline.
    'Content-Type: text/html; charset="iso-8859-1"'.$newline.
    'Content-Transfer-Encoding: 7bit';

    return 
    mail($to$subject$body$headers); 
    Se togli le ultime 3 righe di headers (MIME-version, content-type e content-transfer-encoding) mandi l'email solo testo.
    La variabile $body conterrà ovviamente il testo con tutti i tags necessari

  5. #5
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448

    risposta

    ok,ma nel codice che avevo scritto io c'e una parte che invia un e.mail testual nel caso in cui l'utente non supporta i MIME

    Ho letto il tuo codice e il testo dell'e.mail come si scrive? in html o no? Si utilizza una variabile come ho fatto io???

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2000
    residenza
    Edinburgh
    Messaggi
    401
    Esatto, il tuo codice usa un'email multipart che "ricade" sul testo se non viene supportato l'HTML.

    Questo codice invece manda solo HTML (e se uno non lo supporta vedrà i tags come testo, ma è una situazione a dir poco rara).

    Ti riscrivo il codice completo:

    Codice PHP:
    $from "tuaemail@qualcosa.com";
    $to "qualcuno@qualcosa.com";
    $subject "Email di prova";
    $body "Questa &egrave; una [b]mail[/b] di prova in [i]HTML[/i]!";

    $newline "\n";     // NOTA: importante mettere le virgolette e non gli apici così viene interpretato come \r\n

    // Settiamo gli headers
    $headers 'X-Mailer: PHP/'.phpversion().$newline.
    'From: '.$from.$newline.
    'Reply-to: '.$from.$newline.
    'Subject: '.$subject.$newline.
    'MIME-Version: 1.0'.$newline.
    'Content-Type: text/html; charset="iso-8859-1"'.$newline.
    'Content-Transfer-Encoding: 7bit';

    return 
    mail($to$subject$body$headers); 

  7. #7
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448

    risposta

    Ma e' possibile aggiungere una testo che viene visualizzato solamente se non è supportato il linguaggio html?
    Perche leggere un e.mail con i vari tag <html> <body> [b] ecc è poco professionale !
    Grazie

  8. #8
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448

    risp

    Ho provato il tuo codice, e ricevo questa e.mail:

    Questa &egrave; una mail di prova in HTML!

    Bah non ci sto a capi nulla...

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2000
    residenza
    Edinburgh
    Messaggi
    401
    Strano... per curiosità che cosa usi per leggere le email? Perchè quello è il codice che io uso normalmente... e con l'esatto codice che ti ho postato a me manda l'email e la vedo correttamente (cioè non vedo i tags ma vedo bold e inclinato).

  10. #10
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448
    utilizzo mozilla thunderbird come client di posta elettronica

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.