Form per mandare mail dal sito.

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
L'unica cosa che mi lascia perplesso è che controlli il valore del pulsante di invio, dopotutto se è stato impostato il valore dev'essere per forza quello, no? E se lo fai per prevenire tentativi di hacking lascia perdere, è facilmente aggirabile.
 

Mask84

Nuovo Utente
16 Nov 2009
21
0
0
Perugia
ciao
prova questo (al massimo alessandro1997 inorridirà)
salva la pagina con nome quello_che_vuoi.php (mi raccomando non togliere .php) e la carichi sul sito. la puoi lincare comunque come fai con le pagine htm ricordandoti sempre che finisce con .php

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>scrivici</title>
<!--qui puoi inserire i css ed eventuale javascript -->
</head>
<body>
<!-- inizio php processa ed invia email -->
<?php
/**********************************************************************
la parte tra <?php e ?> comprese, se funzia non ti conviene modificarla
a parte modificare l'indirizzo del destinatario
***********************************************************************/
//leggo che sia stato premuto il tasto di invio
if(isset($_POST['invia']) && $_POST['invia']== "invia"){
	/******************************************
	inizializzo alcune variabili che mi saranno
	utili in seguito
	*******************************************/
	$destinatario="mio_indirizzo@mio:indirizzo.it";//MODIFICARE inserendo l'indirizzo giusto
	$data = date("d.m.Y h:i:s A"); //legge la data e l'ora di invio
	$dasito= $_SERVER['HTTP_REFERER']; //legge il referrer
	$oggetto="messaggio da :";//può essere messo nel form
	$dati_corretti=TRUE;//metto una variabile al valore VERO
	//inizio a leggere i dati dal form
	$nome=trim($_POST['nome']);//leggo da input nome eliminando caratteri non stampabili ecc...
	$cognome=trim($_POST['cognome']);
	$email=trim($_POST['email']);
	$testo=strip_tags(trim($_POST['testo']),'<br>');//tolgo tutti gli eventuali tag escluso <br> per caso ci sia
	/****************************************************************
	faccio alcuni controlli per verificare che non venga
	inviata porcheria. secondo me sono il minimo indispensabile
	se il controllo non è superato metto la variabile $dati_corretti
	al valore FALSE
	*****************************************************************/
	if($nome=="" || !eregi("^([a-z0-9\.\-\ ]){1,40}$", $nome)){
		$dati_corretti=FALSE;//se non corretti metto a NON VERO
	}//fine if controllo nome
	if($cognome=="" || !eregi("^([a-z0-9\.\-\ ]){1,40}$", $cognome)){
		$dati_corretti=FALSE;
	}//fine if controllo cognome
	if($email=="" || !eregi("^([-a-z0-9\._]+)(@[-a-z0-9\._]+)(\.{1,2}[a-z0-9]{2,6})$", $email)){
		$dati_corretti=FALSE;
	}//fine if controllo email
	if($testo==""){
		$dati_corretti=FALSE;
	}//fine if controllo testo
	//verifico se dati corretti, se si preparo l'email e l'invio
	if($dati_corretti){// i dati sono corretti
		$oggetto .=$nome." ".$cognome;
		$messaggio =$testo."/n";
		$messaggio .= "--------------------------------------- /n";
		$messaggio .= "inviato il ".$data." /n";
		$messaggio .= "dal sito ".$dasito." /n";
		$intestazione ="rispondi a: ".$email." /n";
		if(mail($destinatario,$oggetto,$messaggio,$intestazione)){
			echo "<h1>email inviata con successo</h1><br>ti risponderemo quento prima";
			/*********************************************************************************
			la riga sotto serve per tornare alla pagina che vuoi
			dopo 3 secondi content='3....
			alla pagina che vuoi, basta ch tu cambi mia_pagina.htm con quello che ti interessa
			**********************************************************************************/
			echo "<meta http-equiv='Refresh' content='3; URL=mia_pagina.htm'>";// ... ritorna a form
		}else{
			echo "<h1>errore di trasmissione</h1><br>riprova più tardi";
			echo "<meta http-equiv='Refresh' content='3; URL=mia_pagina.htm'>";// ... ritorna a form
		}
	}else{//ci sono delle porcherie
		echo "<h1>il form non è stato riempito correttamente</h1><br>riscrivi";
		/*************************************
		la riga sotto riporta al form ripulito
		**************************************/
		echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";// ... ritorna a form
	}//fine if else dati corretti
}//fine if controllo submit
?>
<!-- fine php processa ed invia email -->
<!--qui puoi inserire altra parte html -->
<!-- inizio form -->
<form action="<?php htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
<table width="700" border="0" cellspacing="2" cellpadding="2">
  <tr>
    <td width="85">&nbsp;</td>
    <td width="485">&nbsp;</td>
    <td width="110">&nbsp;</td>
  </tr>
  <tr valign="top">
    <td>nome</td>
    <td><input name="nome" type="text" id="nome" size="40"></td>
    <td>*</td>
  </tr>
  <tr valign="top">
    <td>cognome</td>
    <td><input name="cognome" type="text" id="cognome" size="40"></td>
    <td>*</td>
  </tr>
  <tr valign="top">
    <td>email</td>
    <td><input name="email" type="text" id="email" size="40"></td>
    <td>*</td>
  </tr>
  <tr valign="top">
    <td>testo</td>
    <td><textarea name="textarea" cols="80" rows="10"></textarea></td>
    <td>*</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>* campi obbligatori </td>
    <td><input name="invia" type="submit" id="invia" value="invia"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td><input type="reset" name="Submit" value="reset"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
</form>
<!-- fine form -->
<!--qui puoi inserire altra parte html -->
</body>
</html>
se non funzia fammelo sapere, puo darsi (facile) che abbia fatto qualche orrore.

a te metterla a posto in modo che sia presentabile

Mi dice sempre che devo ricompilare tutti i campi e io li ho compilati tutti... :(
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Credo che tu abbia fatto qualche macello con le espressioni regolari, ma siccome non me ne intendo e non ho voglia di stare a controllare ne parliamo quando torni. Molto probabilmente però è quello, perché i campi si chiamano come dovrebbero e non trovo altre soluzioni plausibili.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
no non era nelle espressioni regolari, ma nel nome di un campo di input (la texarea)

correggi qui
..........
<tr valign="top">
<td>testo</td>
<td><textarea name="testo" cols="80" rows="10" id="testo"></textarea></td>
<td>*</td>
</tr>
.................
cioè scrivi testo al posto di textarea
(spero che sia l'unico errore)
riprova e sappimi dire
 

Mask84

Nuovo Utente
16 Nov 2009
21
0
0
Perugia
ciao
no non era nelle espressioni regolari, ma nel nome di un campo di input (la texarea)

correggi qui
..........
<tr valign="top">
<td>testo</td>
<td><textarea name="testo" cols="80" rows="10" id="testo"></textarea></td>
<td>*</td>
</tr>
.................
cioè scrivi testo al posto di textarea
(spero che sia l'unico errore)
riprova e sappimi dire


Perfettooooo, ora funziona!!!
Non so come ringraziarti...!
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
in un altro post mi avevano offerto un cesto di frutta, ma un moderatore (comincia per EL...) ne ha voluto una parte, altrimenti mi avrebbe bannato per tentata corruzione (o concussione?)
:hammer:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao,
ultim'ora: mi sono accorto di un errore assurdo

/**********************************************************************
la parte tra <?php e ?> comprese, se funzia non ti conviene modificarla
a parte modificare l'indirizzo del destinatario
***********************************************************************/

togli (o metti uno spazio)

se usi dreamwiewer fa un pessimo effetto
 
Discussioni simili
Autore Titolo Forum Risposte Data
S Form per mandare la mail HTML e CSS 2
M Unire 2 funzioni per l'invio di un form e con l'apertura di un div Javascript 0
L form immagini per il database PHP 0
U PHP bottone per invio mail o ritorno al form PHP 15
T [PHP] Creare Honeypot per form contatti PHP 10
D [WordPress] come fare per estrarre dati da un db MySQL tramite una form e visualizzare il risultato WordPress 0
I Guida/Tutorial configurare PHPMailer per inviare mails tramite contact form? PHP 2
M [PHP] Framework per form complessi (configuratore prodotto) PHP 6
S [PHP] Aiuto creazione form php per completamento modello word PHP 1
Z [MySQL] Campi corretti per form... MySQL 2
sandropochi [PHP] Form per creare filtro di ricerca su DB PHP 8
K [WordPress] Plugin per inserire un form per la ricerca in un database.. come si fa? WordPress 1
U [PHP] form per ricerca multipla: Unknown column 'undefined' in 'where clause' PHP 2
S Concatenare due campi di un form per creare un indirizzo web valido Javascript 7
xone Form completo Testi + multiple image per inserimento Annunci PHP 0
C Come posso integrare il bottone "paga adesso" di paypal e un form php per invio dati? PHP 1
A Form per modifica record database PHP 9
F aiuto per funzionamento sito responsive e form contatti HTML e CSS 29
elpirata Idee per personalizzare form HTML e CSS 9
L errore mysql per form di registrazione PHP 3
E Correzione per form PHP/HTML PHP 3
B Problema form mail per invio doppio allegato PHP 1
P Recupero dati per select form PHP 9
A Problema orario invio mail per form PHP 4
A consiglio uso jquery php per mostrare parte di un form PHP 6
A consiglio uso jquery per mostrare parte di un form jQuery 0
A Aiuto per Select form dinamica PHP 0
L come passare il campo allegato dal file html al fiel php per spedirlo con un form PHP 12
M [risolto] Script ajax per form e mappe Ajax 6
B aiuto per Form di eliminazione record PHP 21
asevenx form per formattare testo e inserirlo in databse PHP 1
U form mail per inviare tracciabilità corriere PHP 0
L Aiuto per ultimazione form invio email PHP 3
F Controlli form per Registrazione utenti PHP 9
A Pulsante per compilare una form php in automatico con dati presi da un db PHP 6
F Crear un form Contatti, per un Bed&Breakfast, dinamico, con Wordpress WordPress 3
A form in php o html per raccolta mail PHP 4
A da dove incominciare per fare vari form PHP 2
M Problema con form per accesso area riservata ai soci PHP 2
P Form per ricerca multipla in MYsql PHP 2
A problema con un semplice form per un loggin in php PHP 2
M Sicurezza dati form per insert e select in database PHP 11
C Aiuto per form PHP 5
A Aiuto per form email con allegato PHP 4
YellowMan Form mail per WordPress in italiano WordPress 2
P Mercatino Form annunci per regione Classic ASP 8
A Un input di tipo button deve per forza essere contenuto in un Form ?? HTML e CSS 6
R Altri controlii per windows form .NET Framework 2
asevenx problema con funzione per far apparire e scomparire un form di commenti PHP 1
G Inserire un campo mysql in un select per form PHP 3

Discussioni simili