Aiuto per formmail.php

Rikardinho90

Utente Attivo
16 Mar 2009
50
0
0
Salve, qualcuno potrebbe crearmi la pagina formmail.php che invia i dati e l'allegato inseriti nel form al mio indirizzo email?

Il codice del form è questo:

<form action="formmail.php" method="post" enctype="multipart/form-data">
<input name="destinatario" value="indirizzoemailalqualearrivanoidati" type="hidden">

Link
<input name="Link" value="" type="text"><br>
Email:
<input name="Email" value="" type="text"><br>
<br>
Pagamento:
<select name="Pagamento">
<option>paypal</option>
<option>accredito su postepay</option>
</select>

<br>
<br>
Periodo:

<select name="Periodo">
<option>1 mese </option>
<option>2 mesi </option>
<option>3 mesi </option>
<option>4 mesi </option>
<option>5 mesi </option>
<option>6 mesi </option>
<optgroup label="">
</optgroup>
</select>

<br>
<br>
Allega file:
<input name="attachment" type="file"><br>
</div>
<br>


<input value="Invia" type="submit"></div>


</form>



Grazie!
 

steave67

Utente Attivo
24 Ago 2008
148
0
0
posta anche la pagina formmail.php, perchè l'errore sta lì...
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
una piccola osservazione, se non capisco male qui inserirai l'indirizzo e-amail del destinatario

HTML:
<input name="destinatario" value="indirizzoemailalqualearrivanoidati" type="hidden">

non ti conviene in quanto l'indirizzo è facilmente leggibile e quindi spam.
l'indirizzo del destinatario conviene metterlo nella parte php
 

Rikardinho90

Utente Attivo
16 Mar 2009
50
0
0
sisi il form è quello ke ho postato, se puoi invece di mettere l'indirizzo email della mia casella di posta nella pagina del form (<input name="destinatario" value="indirizzoemailalqualearrivanoidati" type="hidden">) mettilo in quella formmail.php come mi hai suggerito tu. Cmq grazie, molto gentile, aspetto ;)
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
ciao
se hai pazienza te la butto giù
il form esatto è quello che hai postato?

per la tua generosità c'è da farti santo subito:mavieni:, tieni conto però che che lo spirito del forum è quello di fornire strumenti per imparare, non quello di lavorare aggratisss.
Per questo però non ti banno, la generosità va premiata.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
per eliox (non più bannatore folle...rinsavito?)
non è solo generosità, ma da circa due mesi non ho un CaZ2O (formula chimica dello zorato di calcio) da fare:dipser:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ecco lo script
a te l'arduo compito poi di sistemerlo con i css (il form è un po' bruttino) e di provarlo (non posso giurare che funzi).
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>form email</title>
</head>

<body>
<?php
/*
fatta pagina unica: form + invio
se fai due pagine questa parte, da <?php a ?>, devi copiarla
nella pagina di invio
*********************************************************************************
comunque leggi anche questo articolo di max bossi
https://www.mrw.it/php/articoli/inviare-email-allegati-usando-php_497.html
da cui ho ricavato lo script per l'invio dell'allegato
*********************************************************************************
*/
if(isset($_POST['invia']) && $_POST['invia']=="invia"){//ho dato il subimt
	$destinatario="mia_email@mio_dominio.com";//indirizzo da sostituire con quello che ti interessa
	/* ***********************************************************************
	recupero i dati testuali dal form e li pulisco da eventuale codice malevolo
	qui dovresti inserire anche le verifiche sulla correttezza dei dati
	e quali dati obbligatori
	?non hai inserito un campo di testo per eventuali commenti?
	?non hai inserito un campo per l'oggetto?
	*************************************************************************** */
	$link=strip_tags(trim($_POST['link']));
	$email=strip_tags(trim($_POST['email']));
	$pagamento=$_POST['pagamento'];
	//riporto il pagamento alla descrizione
	switch($pagamento){
		case "payp":
			$pagamento= "a mezzo paypal";
		break;
		case "payp":
			$pagamento= "con accredito su postepay";
		break;
		default://non è stato selezionato la modalità di pagamento
			$pagamento= "da definire";
		break;
	}//fine switch pagamento
	$periodo=$_POST['periodo'];
	//riporto il periodo alla descrizione
	if($periodo !=""){
		$periodo=str_replace("_"," ",$periodo);//tolgo l'undescore e rimetto lo spazio
	}else{//non è stato selezionato il periodo
		$periodo= "da definire";
	}//fine sistemazione periodo
	$oggetto="richiesta";//se inserisci il campo sostituire con $oggetto=strip_tags(trim($_POST['oggetto']));
	$commenti="";//se inserisci il campo sostituire con $commenti=strip_tags(trim($_POST['commenti']));
	//imposto i dati di testo
	$messaggio="link: ".$link."\n";
	$messaggio.="tipo di pagamento: ".$pagamento."\n";
	$messaggio.="periodo: ".$periodo."\n";
	$messaggio.=$commenti."\n";
	// recupero le variabili relative all'allegato
	$allegato = $_FILES['attachment']['tmp_name'];
	$allegato_type = $_FILES['attachment']['type'];
	$allegato_name = $_FILES['attachment']['name'];
	/*
	qui dovresti inserire la verifica del tipo di allegato e la sua grandezza
	es.: sarebbe opportuno indicare che non sono ammessi file con estenzione .exe
	*/
	//creo 2 variabili che riempirò più avanti...
	$headers = "From: " . $email;
	$msg = "";
	// verifico se il file è stato caricato correttamente via HTTP
	// in caso affermativo proseguo nel lavoro...
	if (is_uploaded_file($allegato)){
  		// apro e leggo il file allegato
		$file = fopen($allegato,'rb');
		$data = fread($file, filesize($allegato));
		fclose($file);
		// adatto il file al formato MIME base64 usando base64_encode
		$data = chunk_split(base64_encode($data));
		// genero il "separatore"
		// serve per dividere, appunto, le varie parti del messaggio.
		// nel nostro caso separerà la parte testuale dall'allegato
		$semi_rand = md5(time());
		$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
		// aggiungo le intestazioni necessarie per l'allegato
		$headers .= "\nMIME-Version: 1.0\n";
		$headers .= "Content-Type: multipart/mixed;\n";
		$headers .= " boundary=\"{$mime_boundary}\"";
		// definisco il tipo di messaggio (MIME/multi-part)
		$msg .= "This is a multi-part message in MIME format.\n\n";
		// metto il separatore
		$msg .= "--{$mime_boundary}\n";
		// questa è la parte "testuale" del messaggio
		$msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
		$msg .= "Content-Transfer-Encoding: 7bit\n\n";
		$msg .= $messaggio . "\n\n";
		// metto il separatore
		$msg .= "--{$mime_boundary}\n";
		// aggiungo l'allegato al messaggio
		$msg .= "Content-Disposition: attachment;\n";
		$msg .= " filename=\"{$allegato_name}\"\n";
		$msg .= "Content-Transfer-Encoding: base64\n\n";
		$msg .= $data . "\n\n";
		// chiudo con il separatore
		$msg .= "--{$mime_boundary}--\n";
	}else{//non ho allegato
		$msg = $messaggio;
	}//fine if else allegato
	// invio la mail
	/*
	al posto della funzione mail() puoi utilizzare la classe phpmailer, vedi articolo di claudio
	https://www.mrw.it/php/articoli/inviare-email-classe-phpmailer_631.html
	*/
	if (mail($destinatario, $oggetto, $msg, $headers)){
		echo "<p>Mail inviata con successo!</p>";
	}else{
		echo "<p>Errore ! riprova pi&ugrave; tardi</p>";
	}//fine if else invio
}//fine if submit
?>
<!--
fatta pagina unica, se vuoi fare due pagine al posto di
$_SERVER[] metti il nome della pagina a cui inviare i dati del form
e con cut/paste porta sulla nuova pagina la parte php
-->
<form method="post" enctype="multipart/form-data" action="<?php $_SEVER['PHP_SELF'] ?>">
<!--
tolto campo hidden, l'indirizzo del destinatario lo trovi nella parte php
-->
Link:
<input name="link" value="" type="text"><br>
Email:
<input name="email" value="" type="text"><br>
<br>
<!--
nelle selct devi mettere il valore da trasmettere alla selezione
-->
Pagamento:
<select name="pagamento">
  <option value="payp">paypal</option>
  <option value="acpp">accredito su postepay</option>
</select>
<br><br>
Periodo:
<select name="periodo">
  <option value="1_mese">1 mese</option>
  <option value="2_mesi">2 mesi</option>
  <option value="3_mesi">3 mesi</option>
  <option value="4_mesi">4 mesi</option>
  <option value="5_mesi">5 mesi</option>
  <option value="6_mesi">6 mesi</option>
</select>
<br><br>
Allega file:
<input name="attachment" type="file"><br>
<br>
<!--
sull pulsante submit ci vuole il nome
aggiungi il pulsante di reset, è comodo
-->
<input name="invia" type="submit" value="invia"></div>
</form>
</body>
</html>

credo di aver messo abbastanza commenti perchè tu possa eventualmente modificarlo


p.s.
di più non posso fare se no eliox mi banna:D
 
Discussioni simili
Autore Titolo Forum Risposte Data
E Aiuto per query PHP 8
I aiuto urgente per thunderbird Posta Elettronica 0
I aiuto per outlook Posta Elettronica 0
T aiuto per trasformare un quiz fatto in JS in un quiz in JQUERY jQuery 0
M Fullcalendar in Codeigniter, un aiuto per la chiamata $ajax ? jQuery 0
P Aiuto per rendere un Bot Telegram Privato PHP 1
A Aiuto per pagina php PHP 0
T cercasi aiuto per file d1 (open-edge db) Database 0
L Aiuto per programma web php/mySQL PHP 2
claudio_lorenzo [Javascript] aiuto su jquery per calcolo altezze dom Javascript 1
T Aiuto per php7 e mysqli PHP 3
T mysql tutorial per importare tabelle access in mysql aiuto MySQL 2
wildcity9 aiuto per sbloccare account instagram bannati Social Media Marketing 0
A Aiuto per configurare il banner di Iubenda su un sito in html HTML e CSS 0
S [PHP] Aiuto creazione form php per completamento modello word PHP 1
Z [HTML] aiuto per visualizzazione su tablet Offerte e Richieste di Lavoro e/o Collaborazione 6
W [PHP] Un aiuto per il mio primo "Multithread" PHP 0
G Vuoi fare successo? Abbiamo bisogno di aiuto per un app! Offerte e Richieste di Lavoro e/o Collaborazione 1
K [javascript] Aiuto per programma subnetting Javascript 0
F ciao, sono ferro e ho bisogno di aiuto per problemi con la mail di alice.it Presentati al Forum 1
L [PHP] aiuto per installazione mrbs PHP 0
1 Aiuto per nuovo sito SEO e Posizionamento 4
K Server per sito di annunci: aiuto nella scelta Hosting 4
P [Javascript] Aiuto per recupero variabili da script Javascript 10
P [PHP] Aiuto per gestione file CSV PHP 24
A scambio lavoro per aiuto con android Sviluppo app per Android 0
A aiuto per un codice... PHP 1
ecosito Aiuto con la traduzione in italiano per capire come installare questo JavaScript jQuery 0
StelladelSud Cerco aiuto per una demo Offerte e Richieste di Lavoro e/o Collaborazione 3
G Piccolo aiuto per php mail PHP 2
G aiuto per semplice menu onclick HTML e CSS 6
F aiuto per funzionamento sito responsive e form contatti HTML e CSS 29
A AIUTO per impostazione doppia cifra in tabella HTML e CSS 6
G Passaggio variabili tra pagine- Aiuto per maturità 2015 PHP 3
G Passaggio variabili tra pagine- Aiuto per maturità 2015 PHP 0
A Aiuto per Flash player Flash 0
J Aiuto per localstorage con jquery/js/json Javascript 4
M Cerco aiuto per una modifica di un codice Javascript 2
A Aiuto per ordine cronologico lista file all'interno di una cartella protetta PHP 2
G Aiuto! Studente cerca aiuto per un codice PHP PHP 1
S Aiuto per 2 codifiche java Java 4
G Aiuto per creare chat stile Facebook Javascript 7
Sevenjeak Aiuto e consigli su adattamento sito per dispositivi mobile HTML e CSS 2
S aiuto per script PHP/OOP PHP 2
J Aiuto per un sitema di upload per un progetto PHP 0
K Aiuto per sito Discussioni Varie 0
D Richiesta aiuto siti per indirizzamento forum HTML e CSS 1
M Aiuto per una libreria per generare grafici PHP 1
B Saluti ed aiuto per pagina web html HTML e CSS 11
I Aiuto per modificare gruppo buddypress WordPress 0

Discussioni simili