[PHP] Form di contatto

Richieste per scripts, codici, software e quant'altro saranno pubblicate in questa sezione del forum. Hai una richiesta? Pubblicala qui!
Rispondi
Avatar utente
Kobain
Messaggi: 10
Iscritto il: 25/03/2017, 22:34

[PHP] Form di contatto

Messaggio da Kobain »

Buon pomeriggio a tutti,

Per un sito in cui lavoro c'è da fare in form di contatto simile a questo sito http://trustedhelpers.brainly.com però modificando alcune cose

A me serve il form così:

La tua mail (che sarà data solamente al moderatore principale e all'admin)

La tua età

Il tuo username su Brainly (distungui minuscole e maiuscole)

Perchè vuoi diventare moderatore?

Serve quindi anche vedere il PHP per ricevere il form via mail.

E se possibile, indicatemi un programma per Windows che faccia da editor per HTML, in modo da modificare la pagina a mio piacere.

Grazie in anticipo!
Avatar utente
Dragone2
Amministratore
Messaggi: 107
Iscritto il: 30/07/2014, 18:35
Località: Italia
Contatta:

Messaggio da Dragone2 »

Ciao,
Per quanto riguarda il form ti basterà semplicemente copiare il codice HTML di quello che ti interessa. La cosa importante, invece, è lo script PHP che dovrai utilizzare per inviare l'e-mail. Te ne ho preparato uno, testato e funzionante. Ti avverto però che non ha controlli per prevenire lo spam, ma funziona correttamente. Dovrai salvarlo come "Mail.php" e inserirlo nella stessa directory della tua pagina del form, a meno che non vuoi integrare codice HTML e PHP insieme oppure dargli un altro nome / altra posizione. In tal caso ricordati di modificare l'action del tuo form HTML con la posizione corretta dello script PHP.

Codice: Seleziona tutto

<?php
	/********************* Form di invio e-mail *********************/
	/*** A cura di Dragone2 - https://www.risposteinformatiche.it ***/
	/****************************************************************/
	/************************ CONFIGURAZIONE ************************/
	/* Inserisci in $webmaster il tuo indirizzo e-mail, ad esempio  */
	/* $webmaster = "mia-email@email.it";				*/
	/* Inserisci in $mittente l'indirizzo e-mail dal quale vuoi     */
	/* ricevere le e-mail, ad esempio: $mittente = "info@prova.it";	*/
	/* Inserisci in $oggetto l'oggetto dell'email che riceverai,	*/
	/* ad esempio $oggetto = "[Nuova e-mail da MioSito.it]";	*/
	$webmaster = "tuo-indirizzo@email.it";
	$mittente = "info@tuosito.it";
	$oggetto = "[Nuova e-mail da MioSito.it]";
	/********************** FINE CONFIGURAZIONE **********************/
	$errore = "";
	if(isset($_POST["email"], $_POST["eta"], $_POST["username"], $_POST["testo"])) {
		$email = trim($_POST["email"]);
		$eta = trim($_POST["eta"]);
		$username = trim($_POST["username"]);
		$testo = strip_tags($_POST["testo"]);
		if(!$email)
			$errore .= "Indirizzo email richiesto! ";
		if(!$eta)
			$errore .= "Et&agrave; richiesta! ";
		if(!$username)
			$errore .= "Nome utente richiesto! ";
		if(!$testo)
			$errore .= "Non hai inserito un messaggio!";
		if(!$errore) {
			$messaggio = "<html><body><p>Ciao,</p>
			<p>Hai ricevuto una nuova e-mail dal tuo modulo di contatto.</p>
			<p><b>Username</b>: ".$username."</p>
			<p><b>E-mail</b>: <a href=\"mailto:".$email."\">".$email."</a></p>
			<p><b>Et&agrave</b>: ".$eta."</p>
			<p><b>Messaggio:</b> ".$testo."</p>
			</body></html>";
			$headers = 'From: '.$username.' <'.$mittente.'>' . "\r\n" ;
			$headers .= 'Reply-To: '. $email . "\r\n" ;
			$headers .= 'X-Mailer: PHP/' . phpversion();
			$headers .= "MIME-Version: 1.0\r\n";
			$headers .= "Content-type: text/html; charset=UTF-8\r\n"; 
			if(mail($webmaster, $oggetto, $messaggio, $headers)) echo "<p>E-mail inviata correttamente!</p>";
			else echo "<p><b>Errore</b> durante l'invio dell'e-mail! Riprova pi&ugrave; tardi.</p>";
		}
	}
?>
Per ciò che riguarda il form invece, dovrà essere impostato come segue:
Nella parte HEAD della tua pagina HTML dovrai inserire i vari script in JavaScript:

Codice: Seleziona tutto

<head>
	<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
	<script src="//builder-assets.unbounce.com/published/jquery.validate.min-3b750e1.z.js" type="text/javascript"></script>
	<script src="//builder-assets.unbounce.com/published/additional-methods-09a5c5a.z.js" type="text/javascript"></script>
	<script src="//builder-assets.unbounce.com/published/jquery.ubpoverlay-d9900bb.z.js" type="text/javascript"></script>
	<script type="text/javascript" src="//d2xxq4ijfwetlm.cloudfront.net/m/lp-webapp/api/unbounce.js"></script>
	<script type="text/javascript">
	var lp = lp || {};
	lp.jQuery = jQuery.noConflict( true );
	</script>
	<script>lp.jQuery().ready(function() {lp.jQuery("#lp-pom-button-66").bind("click tap touchstart", function(e) {e.preventDefault();e.stopPropagation();lp.jQuery("div.lp-pom-form form").submit();});});</script>
</head>
Nella parte BODY della tua pagina HTML, invece, dovrai inserire il form con i relativi id modificati correttamente per corrispondere alle variabili $_POST["<campo-id-input>"] utilizzate nel file PHP:

Codice: Seleziona tutto

<body>
	<div class="lp-element lp-pom-form" id="lp-pom-form-65">
		<form action="Mail.php" method="POST">
			<fieldset class="clearfix">
				<div class="lp-pom-form-field clearfix" id="container_email">
					<label for="email" class="main lp-form-label" id="label_email">Email (will only be shared with team leaders and may be used to contact you)&nbsp;*</label><input type="text" id="email" name="email" class="text form_elem_email">
				</div>
				<div class="lp-pom-form-field clearfix" id="container_age">
					<label for="age" class="main lp-form-label" id="label_age">Your Age&nbsp;*</label><input type="text" id="eta" name="age" class="text form_elem_age">
				</div>
				<div class="lp-pom-form-field clearfix" id="container_username">
					<label for="username" class="main lp-form-label" id="label_username">Your Brainly Username&nbsp;*</label><input type="text" id="username" name="username" class="text form_elem_username">
				</div>
				<div class="lp-pom-form-field clearfix" id="container_why">
					<label for="why" class="main lp-form-label" id="label_why">Why would you like to be a Trusted Helper? *</label><textarea id="testo" name="why" class="text form_elem_why"></textarea>
				</div>
			</fieldset>
		</form>
		<a class="lp-element lp-pom-button" id="lp-pom-button-66" href="#"><span class="label">APPLY</span></a>
	</div>
</body>
Ovviamente dovrai anche recuperare il CSS e risistemarlo un po', oltre che ai vari scripts di controllo dell'input presenti alla fine della pagina che hai linkato. Se non riesci con JavaScript, a causa di jQuery, puoi inserire un:

Codice: Seleziona tutto

<input type="submit" value="Invia"/>
Prima della chiusura del tag del form.
Per ciò che riguarda un suggerimento relativo all'editor da utilizzare per fare modifiche HTML, ti suggerisco Notepad++, che è un ottimo editor con il quale puoi scrivere codice per dei linguaggi di programmazione, come C, C++, PHP e moltissimi altri.
Immagine
Avatar utente
Kobain
Messaggi: 10
Iscritto il: 25/03/2017, 22:34

Messaggio da Kobain »

Ciao, grazie per la risposta. Devo metterlo sul mio sito Altervista, ma non nella directory principale ma in una directory tipo miosito.altervista.org/form/ e come lo metto il PHP?
Avatar utente
Dragone2
Amministratore
Messaggi: 107
Iscritto il: 30/07/2014, 18:35
Località: Italia
Contatta:

Messaggio da Dragone2 »

Ciao, non ha importanza di dove lo metti, basta che gli specifichi la posizione in <form action="posizione/del/tuo/script.php".
Il file PHP è un semplicissimo file di testo con il codice PHP che ti ho dato sopra, quindi puoi creare un file via FTP o dal pannello di controllo di Altervista e inserire lì il contenuto.
Se hai la pagina HTML situata in http://sito.altervista.org/Contatti.html puoi tranquillamente inserire il file PHP in http://sito.altervista.org/Mail.php
o in una subdirectory che desideri, ricordandoti di modificare il percorso nel sopracitato form.
Immagine
Avatar utente
Kobain
Messaggi: 10
Iscritto il: 25/03/2017, 22:34

Messaggio da Kobain »

Va bene, ma i mittenti cambiano ogni volta, essendo un form di contatto. Posso mettere il mio alias come risponditore automatico, per esempio dopo che chi ha compilato il form riceva una mail dall'alias Altervista tipo "esamineremo la tua richiesta..."
Avatar utente
Dragone2
Amministratore
Messaggi: 107
Iscritto il: 30/07/2014, 18:35
Località: Italia
Contatta:

Messaggio da Dragone2 »

La variabile $mittente dello script PHP che ti ho dato è un indirizzo e-mail che può anche essere fasullo, tipo "noreply@risposteinformatiche.it". Non è l'indirizzo e-mail di chi ti ha contattato tramite il modulo di contatto. Quindi dovresti inserirci il tuo alias altervista, se metti indirizzi gmail o di altri domini l'e-mail potrebbe finire in spam.
Immagine
Avatar utente
Kobain
Messaggi: 10
Iscritto il: 25/03/2017, 22:34

Messaggio da Kobain »

Va bene grazie, provo e ti faccio sapere. Gentilissimo!
Rispondi