• Home
  • Forum
  • Fare Web
  • PHP

Form per invio mail

  • Creatore Discussione Creatore Discussione PinkBetta
  • Data di inizio Data di inizio 28 Set 2010
  • Tag Tag
    commenti
Prec.
  • 1
  • 2
Primo Prec. 2 di 2
P

PinkBetta

Utente Attivo
21 Lug 2009
1.414
0
0
www.pinkbetta.com
  • 30 Set 2010
  • #21
Ho provato a corregerla (il tuo file l'ho visto dopo) e ora va!
Mi sono inviata una mail ed è arrivata, però senza mittente.
La tua invece non è arrivata.
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
  • 30 Set 2010
  • #22
borgo italia ha scritto:
ciao
trovato l'errore, ho mi ero dimenticato io o nel tuo copy/paste era saltato

la riga 95 è la seguente

/preparo delle variabili chi mi possono servire

era saltato un slash, correggi in

//preparo delle variabili chi mi possono servire

oppure tira via completamente la riga (ocio a non tirar via altro) e riraricare e provare
Clicca per allargare...

Questo errore era già stato segnalato nel post numero 13. Ragazzi, leggete bene i 3D per evitare di allungare inutilmente le discussioni
 
A

aphexx

Nuovo Utente
5 Ott 2010
14
0
0
VE
  • 5 Ott 2010
  • #23
ciao borgo,

premettendo che di php non so nulla, se volessi aggiungere allo script che hai fornito a pinkbetta un ulteriore controllo nel quale mi accerto che l'utente abbia preso visione dell'informativa privacy, cosa dovrei modificare/aggiungere?
Grazie per l'aiuto. Michele
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 6 Ott 2010
  • #24
ciao
nella parte html (prima del pulsante di submit devi inserire
HTML:
accetto bala...bla..bla...
<input name="privacy" type="checkbox" value="ok">
nella parte php
PHP:
<?php
//......quello che viene prima
$messaggio=$_POST['messaggio'];
$privacy=$_POST['privacy'];
//e li verifico
if($privacy){$privacy !="ok"){//se diverso da ok privacy non spuntata
	$ok_ko.="<br>NON hai accettato la privacy";//o il testo che preferisci
}
//ecc.. tutto quello che viene dopo....
?>
 
A

aphexx

Nuovo Utente
5 Ott 2010
14
0
0
VE
  • 6 Ott 2010
  • #25
Ti ringrazio, pare funzionare bene.
Ho solo dovuto fare una piccola modifica alla parte IF in quanto Dreamweaver mi dava errore, mentre così pare andar bene.
PHP:
if($privacy !="ok"){//se diverso da ok privacy non spuntata
$ok_ko.="<br>NON hai accettato la privacy";//o il testo che preferisci

Un'ultima domanda, vorrei fare una modifica allo script in modo che l'oggetto della mail che viene ricevuta non sia un generico "richiesta di informazioni" ma quello inserito nell'apposito campo del form.
Ho provato a fare le modifiche del caso prendendo spunto dal tuo codice, ora però non so come fare in modo che l'oggetto venga effettivamente incorporato nella mail che ricevo.
Ti posto il codice da me modificato qui di seguito:

Grazie ancora!

PHP:
<?php
//qui scrivi le funzioni di controllo di quanto immesso nel form
function valida_email($em){//verifica che l'indirizzo email sia sintatticamente corretto
    $em=filter_var($em, FILTER_SANITIZE_EMAIL);
    if(!filter_var($em, FILTER_VALIDATE_EMAIL)){
        return "*#*";//indirizzo non corretto
    }else{
        return $em;//indirizzo corretto
    }
}
function valida_nome($no){
    //suddivido per "didattica", ma poi puoi semplificare
    $no=trim($no);//tolgo gli spazi iniziali e finali, si vuota se messo solo spazi
    $no=strip_tags($no);//tolgo tutti i tag html
    if($no==""){
        return "*#*";//non è stato inserito il nome o solo spazi
    }else{
        return $no;//il nome non dovrebbe essere pericoloso e contiene qualcosa
    }
}
function valida_oggetto($ob){
    //suddivido per "didattica", ma poi puoi semplificare
    $ob=trim($ob);//tolgo gli spazi iniziali e finali, si vuota se messo solo spazi
    $ob=strip_tags($ob);//tolgo tutti i tag html
    if($ob==""){
        return "*#*";//non è stato inserito il nome o solo spazi
    }else{
        return $ob;//il nome non dovrebbe essere pericoloso e contiene qualcosa
    }
}
function valida_testo($tx){
    $tx=trim($tx);
    $tx=strip_tags($tx, "<br> <p>");
    //in questo modo tolgo tutti i tag esclusi qulle di fine liena e paragrafo
    //nel caso l'inio sia in formato html
    if($tx==""){
        return "*#*";//non è stato inserito alcun testo o solo spazi
    }else{
        return $tx;//il testo non dovrebbe essere pericoloso e contiene qualcosa
    }
}
//fine funzioni controllo sono il minimo del fattibile
//qui inizio a raccogliere i dati inviati dal form
if(isset($_POST['invio'])){//è stato premuto il tasto di submit
    //attenta i nomi dentro $_POST devono corrispondere esattamente ai nomi dei campi del form
    //metto a stinga vuota una variabile che mi servirà in seguito
    $ok_ko.="";
    $nome=$_POST['realname'];
    $email=$_POST['email'];
    $subject=$_POST['subject'];
    $messaggio=$_POST['messaggio'];
    $privacy=$_POST['privacy']; 
    //e li verifico
    $nome=valida_nome($nome);
    if($nome=="*#*"){//il nome è vuoto
        $ok_ko.="<br>NON hai inserito il tuo nome e cognome";
    }
    $email=valida_email($email);
    if($email=="*#*"){//il nome è vuoto
        $ok_ko.="<br>NON hai inserito l'indirizzo email o errato";
    }
    $subject=valida_oggetto($subject);
    if($subject=="*#*"){//il nome è vuoto
        $ok_ko.="<br>NON hai inserito l'oggetto del messaggio o errato";
    }
    $messaggio=valida_testo($messaggio);
    if($messaggio=="*#*"){//il nome è vuoto
        $ok_ko.="<br>NON hai inserito il testo";
    }
    if($privacy !="ok"){//se diverso da ok privacy non spuntata
    $ok_ko.="<br>NON hai accettato la privacy";//o il testo che preferisci
    }
    //fine verifiche se la variabile $ok_ko è rimasta vuota tutto OK
    //quindi posso spedire
    if($ok_ko==""){
        
        //preparo delle variabili chi mi possono servire
        $destinatario="pippopippo@gmail.com";//qui devi mettere il tuo indirizzo
        $inviata_il="email inviata il ".date("d/m/y",time())."<br>";//questa è per bellezza
        $inviata_da="email da: ".$email."<hr>";
        $oggetto= "richiesta informazioni";//o altro messaggio
        //nel messaggio concateno alcune variabili ottenendo il testo da inviare
        $testo=$inviata_il.$inviata_da.nl2br($messaggio);
        //invio in formato html
        $headers  = "MIME-Version: 1.0" . "\r\n";
        $headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
        $headers .= "From: $nome <$email>" . "\r\n";
        //e qui ti uso la nativa mail() poi visto che l'appetito vien mengiando....
        //prima o poi passere alla classe maillerphp
        //tento l'invio
        if(mail($destinatario,$oggetto,$testo,$headers)){
            $ok_ko.="<br>Grazie per avermi contattato<br>ti risponder&ograve; quanto prima";
        }else{
            $ok_ko.="<br>c'&eacute; stato un errore di trasmissione: riprova pi&ugrave; tardi";
        }  
        
    }
    //mostri l'avviso se OK o KO
    echo $ok_ko;
    //e ritorni al form pulito
    echo "<meta http-equiv='Refresh' content='4; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    //se fai due pagine al posto di ".htmlspecialchars($_SERVER['PHP_SELF'])."
    //il nome della pagina del form es. URL=contattami.htm
    //se vuoi aumentare o diminuire il tempo di permanenza dell'avviso
    //modifica il valore di content='4; es. content='2;
}
?> 
<div id="container">
<form method='post' action='<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>'>
<p> Nome e Cognome:</p>
<input type=text name="realname">
<p>Email:</p>
<input type=text name="email">
<p>Oggetto:</p>
<input type=text name="subject">
<p>Messaggio:</p>
<textarea name="messaggio" cols="40" rows="5"></textarea>
<br>
<br>
<input name="privacy" type="checkbox" value="ok">
<br />
<input type="Submit" value="invio" name="invio">
</form>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 6 Ott 2010
  • #26
ciao
intanto una cosa, visto che sei un neofita:
se non erro hai fatto la funzione valida_oggetto($ob), se noti è uguale alla valida_nome($no), uno dei motivi per cui si usano le funzioni (o le classi) è per non ripetere sempre lo stesso codice, quini puoi toglerla e puoi scrivere al posto di

PHP:
    $subject=valida_oggetto($subject); 
    if($subject=="*#*"){//il nome è vuoto 
        $ok_ko.="<br>NON hai inserito l'oggetto del messaggio o errato"; 
    }
questo



PHP:
    $subject=valida_nome($subject); 
    if($subject=="*#*"){//il nome è vuoto 
        $ok_ko.="<br>NON hai inserito l'oggetto del messaggio o errato"; 
    }

fatto questo alla riga di invio

if(mail($destinatario,$oggetto,$testo,$headers)){

sostituisci $oggetto con $subject (o viceversa)

p.s.
nella parte if avevo fatto degli errori per il copia/incolla
 
Ultima modifica: 6 Ott 2010
A

aphexx

Nuovo Utente
5 Ott 2010
14
0
0
VE
  • 6 Ott 2010
  • #27
Ciao, funziona alla perfezione!

Il passo successivo sarà quello di implementare i controlli a livello dei singoli box ma per quello mi par di capire che sia necessario ricorrere al javascript...

Grazie mille ancora. Michele
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 6 Ott 2010
  • #28
ciao
se li metti per bellezza ok, altrimenti sono meglio i controlli lato server (vedi quelli che hai in php). i controlli js sono facilmente aggirabili
 
Prec.
  • 1
  • 2
Primo Prec. 2 di 2
Devi accedere o registrarti per poter rispondere.

Discussioni simili

M
Unire 2 funzioni per l'invio di un form e con l'apertura di un div
  • maxnegri2036
  • 11 Dic 2021
  • Javascript
Risposte
0
Visite
1K
Javascript 11 Dic 2021
maxnegri2036
M
U
PHP bottone per invio mail o ritorno al form
  • uffre
  • 3 Nov 2019
  • PHP
Risposte
15
Visite
9K
PHP 7 Nov 2019
uffre
U
C
Come posso integrare il bottone "paga adesso" di paypal e un form php per invio dati?
  • Cirano86
  • 21 Dic 2015
  • PHP
Risposte
1
Visite
2K
PHP 21 Dic 2015
alexgentili
A
B
Problema form mail per invio doppio allegato
  • billdog
  • 25 Ott 2014
  • PHP
Risposte
1
Visite
2K
PHP 1 Nov 2014
marino51
A
Problema orario invio mail per form
  • Antonio Toio Mignano
  • 5 Lug 2014
  • PHP
Risposte
4
Visite
2K
PHP 5 Lug 2014
marino51
L
Aiuto per ultimazione form invio email
  • Lan
  • 5 Mar 2013
  • PHP
Risposte
3
Visite
2K
PHP 9 Mar 2013
Longo8
T
form per invio mail
  • temino
  • 22 Gen 2011
  • PHP
  • 2
Risposte
38
Visite
8K
PHP 29 Mar 2011
micio86
C
Form per invio immagini
  • carlitosteam
  • 25 Feb 2010
  • Javascript
Risposte
15
Visite
8K
Javascript 27 Feb 2010
softhare
P
ASP form invio dati + file per email
  • peogroup
  • 23 Lug 2009
  • Classic ASP
Risposte
4
Visite
7K
Classic ASP 27 Lug 2009
peogroup
P
G
Aiuto per creare un form di invio file
  • Galiant
  • 12 Nov 2008
  • Classic ASP
Risposte
3
Visite
3K
Classic ASP 13 Nov 2008
lukeonweb
M
Collegare iframe e form per l'invio
  • mooug
  • 23 Mar 2008
  • Javascript
Risposte
3
Visite
2K
Javascript 25 Mar 2008
lukeonweb
L
form immagini per il database
  • Laura2002
  • 18 Mag 2021
  • PHP
Risposte
0
Visite
941
PHP 18 Mag 2021
Laura2002
L
T
[PHP] Creare Honeypot per form contatti
  • Tom&Jerry
  • 26 Giu 2019
  • PHP
Risposte
10
Visite
2K
PHP 28 Giu 2019
mr.x
M
D
[WordPress] come fare per estrarre dati da un db MySQL tramite una form e visualizzare il risultato
  • dariotoby
  • 25 Dic 2018
  • WordPress
Risposte
0
Visite
3K
WordPress 25 Dic 2018
dariotoby
D
I
Guida/Tutorial configurare PHPMailer per inviare mails tramite contact form?
  • iTonto
  • 29 Nov 2018
  • PHP
Risposte
2
Visite
2K
PHP 29 Nov 2018
iTonto
I
N
[Java] Piccolo jform per calcolo totale da 2 campi i double
  • nunzio.rizzo74
  • 25 Ott 2018
  • Java
Risposte
0
Visite
1K
Java 25 Ott 2018
nunzio.rizzo74
N
M
[PHP] Framework per form complessi (configuratore prodotto)
  • mardes
  • 3 Ott 2018
  • PHP
Risposte
6
Visite
3K
PHP 17 Ott 2018
Max 1
S
[PHP] Aiuto creazione form php per completamento modello word
  • sagoch
  • 14 Apr 2018
  • PHP
Risposte
1
Visite
2K
PHP 16 Apr 2018
macus_adi
Z
[MySQL] Campi corretti per form...
  • zioweb
  • 20 Ago 2017
  • MySQL
Risposte
2
Visite
1K
MySQL 26 Ago 2017
zioweb
Z
[PHP] Form per creare filtro di ricerca su DB
  • sandropochi
  • 16 Mar 2017
  • PHP
Risposte
8
Visite
10K
PHP 19 Mar 2017
sandropochi
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?