Accedi per seguire   
Seguaci 0
spiug

Inviare Informazioni Tramite L'utilizzo Del Form

25 messaggi in questa discussione

Mi sono reso conto che per mandare informazioni di testo tramite i FORM ci sono 2 metodi:

-uno che si appoggia al client di posta elettronica installato e configurato sul pc del mittente (il che non è sempre perfettamente configurato e funzionante)

-l'altro che ho notato (es. il servizio per contattare l'assistenza della Nokia :) ) manda le informazioni attraverso una pagina in PHP, spedendo quindi tutte le informazioni senza dover contare in un appoggio sul lato del mittente.

Mi chiedevo allora...com'è possibile fare una cosa come nel secondo caso?? E' un servizio gratuito?? O basta solo un po' di codice??

Come funziona la form e come faccio a farmi mandare informazioni tramite l'utilizzo dei form?? nelle guide c'è spiegato quali sonogli input, ma non poi come spedire le info (nel secondo modo).

Vi ringrazio se dissolverete i miei dubbi ;-)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

sì, so che il secondo caso si può fare con un po' di codice...

è gratuito e per inviare la posta sfrutta il server dove c'è il sito (basta che sia configurato).

ho provato una cosa del genere su altervista e funziona.

lo script che ho utilizzato io è per Flatnuke, ma credo che funzioni ugualmente anche da solo...

 // ################ INSTALLATION #################

1. open the .php file where you want to have the contact form in.
2. paste this whole code in there
3. adapt values in the config section below to your needs.
4. upload the file - that's it!

// ############## END INSTALLATION ###############
*/




// ################### CONFIG ###################

// CSS classes & styles
$class_txt = "text";
$class_inputbutton = "inputButton";
$class_inputline = "inputLine";
$class_inputfield = "inputField";
$style_inputline = "width:355px;";
$style_inputfield = "width:355px;";

// email
$target_address = "xxxxx@yyyyy.zzz";					<!-- questo è da cambiare-->
$email_subject = "Messaggio dal sito";

// error messages
$err_name =	"Inserisci il nome.";
$err_phone = "Inserisci il numero di telefono.";
$err_msg = "Please fill out the 'request' field.";
$err_email = "inserisci un indirizzo di posta valido.";

// misc text
$msg_date = "Data";
$msg_company = "";
$msg_name = "Nome";
$msg_address = "Indirizzo";
$msg_city = "CAP/Città";
$msg_phone = "Telefono";
$msg_email = "Email";
$msg_answerby = "Risposta tramite";
$txt_email = "Email";
$txt_phone = "Telefono";
$txt_post = "Post";
$txt_send = "Invia";
$txt_mandatory = "Campo obbligatorio";
$msg_request = "Messaggio";
$msg_indent = 11;

// messages
$txt_thankyou = "<div class='$class_txt'><h2>Grazie per aver contattato l'amministratore!</h2>Il suo messaggio è stato inviato correttamente</div>";
$txt_error = "<div style='color: #cc3300' class='$class_txt'><h2>Errori trovati:</h2>{errors}</div>";	// {errors} is replaced by the errors that occurred



function spaces($num, $fill=" "){
$foo="";
for ($i=0; $i<$num; $i++) $foo.=$fill;
return $foo;
}

function isValidEmail($addr){
if(eregi("^[a-z0-9]+([_.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\\.[a-z]{2,4}$", $addr))
	return true;
else
	return false;
}


// start form evaluation
$error="foo";
if ($_REQUEST['do']=="send"){
$error=false;
if ($_REQUEST['name']=="") $error.="» $err_name<br>";
if ($_REQUEST['message']=="") $error.="» $err_msg<br>"; 
if (!isValidEmail($_REQUEST['email'])) $error.="» $err_email<br>";
if ($error===false){

	$message="$msg_date:".spaces($msg_indent-strlen($msg_date)).date("d M Y, H:i", time());
	if ($_REQUEST['firma']) $message.="\n$msg_company:".spaces($msg_indent-strlen($msg_company)).$_REQUEST['firma'];
	if ($_REQUEST['name']) $message.="\n$msg_name:".spaces($msg_indent-strlen($msg_name)).$_REQUEST['name'];
	if ($_REQUEST['adresse']) $message.="\n$msg_address:".spaces($msg_indent-strlen($msg_address)).$_REQUEST['adresse'];
	if ($_REQUEST['ort']) $message.="\n$msg_city:".spaces($msg_indent-strlen($msg_city)).$_REQUEST['ort'];
	if ($_REQUEST['fon']) $message.="\n$msg_phone:".spaces($msg_indent-strlen($msg_phone)).$_REQUEST['fon'];
	$message.="\n$msg_email:".spaces($msg_indent-strlen($msg_email))."mailto:".$_REQUEST['email'];
	$message.="\n\n".spaces(strlen("$msg_answerby ".$_REQUEST['kontakt'])+1, "=");
	$message.="\n$msg_answerby ".$_REQUEST['kontakt']."!\n";
	$message.=spaces(strlen("$msg_answerby ".$_REQUEST['kontakt'])+1, "=");
	$message.="\n\n$msg_request:\n\n".$_REQUEST['message'];

	mail($target_address, $email_subject, $message, "DA: ".$_REQUEST['email']);
	echo $txt_thankyou;

}else if ($error!==false) $error=str_replace("{errors}", $error, $txt_error);

}

if ($error!==false){

if($error!="foo") echo $error;

// form
echo "<script language='JavaScript' type='text/JavaScript'>\n";
echo "window.onload = function(){ document.form1.firma.focus(); }\n";
echo "</script>\n";
echo "<form name='form1' method='post' action=''>\n";
echo "<table  border='0' cellpadding='1' cellspacing='0' class='txt'>\n";
echo "<tr><td> </td>\n";
echo "<td height='19'> </td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_name*</td>\n";
echo "<td height='19'><input name='name' type='text' class='$class_inputline' style='$style_inputline' value='".$_REQUEST['name']."'>\n";
echo "</td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_address</td>\n";
echo "<td height='19'><input name='adresse' type='text' class='$class_inputline' style='$style_inputline' value='".$_REQUEST['adresse']."'>\n";
echo "</td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_city</td>\n";
echo "<td height='19'><input name='ort' type='text' class='$class_inputline' style='$style_inputline' value='".$_REQUEST['ort']."'>\n";
echo "</td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_phone*</td>\n";
echo "<td height='19'><input name='fon' type='text' class='$class_inputline' style='$style_inputline' value='".$_REQUEST['fon']."'>\n";
echo "</td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_email*</td>\n";
echo "<td height='19'><input name='email' type='text' class='$class_inputline' style='$style_inputline' value='".$_REQUEST['email']."'>\n";
echo "</td></tr>\n";
	echo "<tr><td width='75' class='$class_txt'>$msg_request*</td>\n";
echo "<td height='19'><textarea name='message' cols='45'style='$style_inputfield' rows='10' class='$class_inputfield'>".$_REQUEST['message']."</textarea></td></tr>\n";

echo "<tr><td width='75' > </td>\n";
echo "<td height='19' align='right'>* $txt_mandatory</td></tr>\n";

echo "<tr><td width='75'> </td>\n";
echo "<td height='19'><input name='Submit' type='Submit' class='$class_inputbutton' value='$txt_send'>\n";
echo "<input name='do' type='hidden' id='do' value='send'></td>\n";
echo "</tr></table>\n";
echo "</form>\n";

}
/*
######################### END Contact Form ##########################
#####################################################################
*/  

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

ma...a parte la e-mail di destinazione che altro bisogna configurare?!( segnalami i punti aggiungendo questo in parte <!-- questo è da cambiare-->

Sembrerebbe funzionare (l'ho soltanto provato dal mio pc per ora, poi proverò ad uploadarlo)...

...il problema è che è parecchio complicato come codice, e in caso di modifiche non saprei dove metterci le mani :P (riesco a leggerlo e intuire cosa fà, ma in caso di modifica non saprei cosa toccare senza rovinare tutto :) )

Ma...a te sull'email che ti arriva come vedi i risultati di quello che ti hanno spedito?? Sono ben leggibili o poi devi decifrarli?? (sulle guide ho letto che le informazioni sono accompagnate da un'abbondante seguito di voci sue che si crea...e che così come ti arriva è un casino).

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Si...l'ho appena uloadato sul server e funziona!!!

Ho provato a mandare un nuovo messaggio e funziona, mi è arrivato e pure immediatamente ;-)

Pensa che quello che ho inviato nel primo metodo contemporaneamente tramite Libero deve ancora arrivare <_<

GRAZIE Enrico!!! :up1:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

non c'è nulla da configurare a parte l'indirizzo ;-)

prego :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Un metodo alternativo potrebbe essere quello di mettere le informazioni in un database e scrivere una piccola interfaccia in grado di leggere i dati dal database... ma non chiedermi come si fa in PHP! :P :P :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Un metodo alternativo potrebbe essere quello di mettere le informazioni in un database e scrivere una piccola interfaccia in grado di leggere i dati dal database... ma non chiedermi come si fa in PHP! :P:wub::)

Credo che sia di gran lunga più semplice e meno complicato l'attuale metodo ;-)

Per ora non mi aspetto un gran numero di messaggi...

...comunque grazie Lorenzo delle ottime idee che hai sempre.

In ogni caso ho fatto già alcune modifiche al codice per renderlo più adatto alle mie esigenze (che me ne faccio del luogo e via di residenza?! :P ).

Quindi ho già rimosso quelle due e sosotituita una (stando attento a lasciare l'errore per campo obbligatorio solo per quelli che mi interessano.

Ora vorrei aggiungere pure una ComboBox con un po' di opzioni tra cui scegliere (per specificare il tipo di seganalazione).

A Enrico: ma...anche a te le e-mail arrivano a nome di "noname"?! non dovrebbe comparire come nome del mittente la stringa inserita nel campo NOME??

Se qualcuno se ne intende più di me (e quindi mi riferisco a Bug e Prozac in particolare :P ) potrebbe dare un'occhiatina a come mai questa cosa non funziona e far si che avvenga?! (in pratica far si che il nome del mittente sia il nome scritto nel campo di testo del NOME.)

GRAZIE!!

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Indubbiamente è meno complicato il metodo descritto da Enrico, la mia era una semplice segnalazione. :P :P :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

<?php

// email
$target_address = "spiug@wininizio.it";
$email_subject = "Messaggio dal sito";

// error messaggios
$err_name = "Inserisci il nome.";
$err_phone = "Inserisci il numero di telefono.";
$err_msg = "Ti prego di riempire tutti i campi richiesti.";
$err_email = "Inserisci un indirizzo di posta valido.";

// misc text
$msg_data = "Data";
$msg_name = "Nome";
$msg_phone = "Telefono <font size='1'>(Marca + Modello)</font>";
$msg_email = "Email";
$msg_motivo = "Motivo";
$msg_answerby = "Risposta tramite";
$txt_email = "Email";
$txt_phone = "Telefono";
$txt_post = "Post";
$txt_send = "					Invia il messaggio					";
$txt_obbligatorio = "Campo obbligatorio";
$msg_request = "Messaggio";
$msg_indent = 11;

// messaggios
$txt_thankyou = "<h1>Grazie per avermi contattato!!</h1>Il suo messaggio è stato inviato correttamente";
$txt_error = "<div style='color: #cc3300' ><h2>Errori trovati:</h2>{errors}</div>";



function spaces($num, $fill=" "){
$foo="";
for ($i=0; $i<$num; $i++) $foo.=$fill;
return $foo;
}

function isValidEmail($addr){
if(eregi("^[a-z0-9]+([_.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\\.[a-z]{2,4}$", $addr))
	return true;
else
	return false;
}


// start form evaluation
$error="foo";
if ($_REQUEST['do']=="send"){
$error=false;
if ($_REQUEST['name']=="") $error.="» $err_name<br>";
if ($_REQUEST['messaggio']=="") $error.="» $err_msg<br>";
if (!isValidEmail($_REQUEST['email'])) $error.="» $err_email<br>";
if ($error===false){

	$messaggio="$msg_data:".spaces($msg_indent-strlen($msg_data)).date("d M Y, H:i", time());
	if ($_REQUEST['firma']) $messaggio.="\n$msg_company:".spaces($msg_indent-strlen($msg_company)).$_REQUEST['firma'];
	if ($_REQUEST['name']) $messaggio.="\n$msg_name:".spaces($msg_indent-strlen($msg_name)).$_REQUEST['name'];
	if ($_REQUEST['adresse']) $messaggio.="\n$msg_address:".spaces($msg_indent-strlen($msg_address)).$_REQUEST['adresse'];
	if ($_REQUEST['ort']) $messaggio.="\n$msg_city:".spaces($msg_indent-strlen($msg_city)).$_REQUEST['ort'];
	$messaggio.="\n$msg_email:".spaces($msg_indent-strlen($msg_email))."mailto:".$_REQUEST['email'];
	$messaggio.="\n\n".spaces(strlen("$msg_answerby ".$_REQUEST['kontakt'])+1, "=");
	$messaggio.="\n$msg_answerby ".$_REQUEST['kontakt']."!\n";
	$messaggio.=spaces(strlen("$msg_answerby ".$_REQUEST['kontakt'])+1, "=");
	$messaggio.="\n\n$msg_request:\n\n".$_REQUEST['messaggio'];

	mail($target_address, $email_subject, $messaggio, "DA: ".$_REQUEST['email']);
	echo $txt_thankyou;

}else if ($error!==false) $error=str_replace("{errors}", $error, $txt_error);

}

if ($error!==false){

if($error!="foo") echo $error;

// form
echo "<script language='JavaScript' type='text/JavaScript'>\n";
echo "window.onload = function(){ document.form1.firma.focus(); }\n";
echo "</script>\n";
echo "<form name='form1' method='post' action=''>\n";
echo "<table  border='0' cellpadding='1' cellspacing='10' width='100%'>\n";


echo "<tr><td width='200'>$msg_name*</td>\n";
echo "<td height='19'><input name='name' type='text' size='50' value='".$_REQUEST['name']."'>\n";
echo "</td></tr>\n";


echo "<tr><td width='200'>$msg_phone</td>\n";
echo "<td height='19'><input name='fon' type='text' size='50' value='".$_REQUEST['fon']."'>\n";
echo "</td></tr>\n";


echo "<tr><td width='200'>$msg_email*</td>\n";
echo "<td height='19'><input name='email' type='text' size='50' value='".$_REQUEST['email']."'>\n";
echo "</td></tr>\n";


echo "<tr><td width='200'>$msg_motivo</td>\n";
echo "<td height='19'><select name='motivo'>\n";
echo "<option>Segnalazione programmi\n";
echo "<option>Segnalazione bug\n";
echo "<option>Altro\n";
echo "</select>\n";
echo "</td></tr>\n";


echo "<tr><td width='200'>$msg_request*</td>\n";
echo "<td height='19'><textarea name='messaggio' cols='45' rows='10'>".$_REQUEST['messaggio']."</textarea>\n";
echo "</td></tr>\n";


echo "<tr><td width='200' > </td>\n";
echo "<td height='19' align='right'>* $txt_obbligatorio</td></tr>\n";

echo "<tr><td width='200'> </td>\n";
echo "<td height='19'><input name='Submit' type='Submit' value='$txt_send'>\n";
echo "<input name='do' type='hidden' id='do' value='send'>       <input type='reset' value='Cancella tutto'></td>\n";
echo "</tr></table>\n";
echo "</form>\n";

}

?> 

Ho fatto un po' di modifiche al codice :) ...

però ora mi trovo di fronte a 2 problemi (legati nel gestire l'invio del form in php) :

- vorrei che come mittente al posto di "noname" mi mettesse il nome nel campo NOME (per l'appunto).

- ho fatto un'aggiunta (la Lista a scorrimento), solo che ora vorrei poterne inviare il valore selezionato, e non sò dove mettere le mani in quel groviglio...(credo ci siano anche pezzi da buttare rimasti perchè ho cancellato solo la parte visibile).

Grazie...

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Per il problema del nome forse non ho capito ma sembra funzionare, per il secondo punto ho aggiunto questa istruzione alla linea 63:

$messaggio.="\n$msg_motivo:".spaces($msg_indent-strlen($msg_motivo)).$_REQUEST['motivo'];

:)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

GRAZIE Yuri :up1:

...però quando arriva il messaggio il mittente risulta NOBODY :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ho fatto una piccola modifica, alla linea 68 ho aggiunto

$header = "From: " . $_REQUEST['name'] . " <" . $_REQUEST['email'] . ">";

ed ho modificato la linea 70 (ex 69) cosi:

mail($target_address, $email_subject, $messaggio, $header);

Spero sia questo quello che intendevi :)

:P

PS: Ti ho allegato il file con le modifiche

mail.zip

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Perfetto!!!

Risolto OGNI inconveniente!!

NUOVAMENTE GRAZIE BUG!! :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Lieto :omaggi:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Inviato (modificato)

Salve a tutti!!!

Visto che sono nuovo anche se un pò OFF TOPIC mi chiamo Daniele e sono di Reggio Emilia.

Ho trovato molto interessante questo forum , in particolar modo questo post, visto che anche io stò lavorando attualmente con php.

Ho scaricato il pacchetto zip fornito da Bug, però una volta inserito il code nella pagina e caricato sul server Altervista, ho riscontrato questo problema:

Una volta schiacciato invio mi da errore di pagina non trovata.

Qualcuno può aiutarmi?

Scusate ma sono ancora un novellino in campo e vorrei capire un pò meglio...

Grazie ;-)

Modificato da Ferodo

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Salve a tutti!!!

Visto che sono nuovo anche se un pò OFF TOPIC mi chiamo Daniele e sono di Reggio Emilia.

Ho trovato molto interessante questo forum , in particolar modo questo post, visto che anche io stò lavorando attualmente con php.

Ho scaricato il pacchetto zip fornito da Bug, però una volta inserito il code nella pagina e caricato sul server Altervista, ho riscontrato questo problema:

Una volta schiacciato invio mi da errore di pagina non trovata.

Qualcuno può aiutarmi?

Scusate ma sono ancora un novellino in campo e vorrei capire un pò meglio...

Grazie ;-)

[ben]Ferodo[/ben]

Il codice l'hai uppato così come stava o ci hai prima fatto delle modifiche?

A che livello sei con il php? Riesci a decifrare questo codice e a capire come funziona??

Il tuo dominio (presumo di 3 livello) supporta php (e in questo caso l'utilizzo della funzione mail() )??

:)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

A dir la verità ne capisco ancora poco, ieri ero un pò stanco non ho letto a modo alcune cose...

Non ho fatto nessuna modifica, solo l ho provato su un server di quelli gratuiti, non ho dominio al momento, ma intendo comprarlo a breve, stò cercando di capire quali sono le cose che mi serviranno su questo server.

Non c' è un modo per inviare le mail usando un server gratuito tipo altervista?

Nel caso comprassi un dominio con server come faccio a sapere se supporta il servizio mail?

Grazi per la tua disponibilità, vado subito a presentarmi... :popò:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
A dir la verità ne capisco ancora poco, ieri ero un pò stanco non ho letto a modo alcune cose...

Non ho fatto nessuna modifica, solo l ho provato su un server di quelli gratuiti, non ho dominio al momento, ma intendo comprarlo a breve, stò cercando di capire quali sono le cose che mi serviranno su questo server.

Non c' è un modo per inviare le mail usando un server gratuito tipo altervista?

Nel caso comprassi un dominio con server come faccio a sapere se supporta il servizio mail?

Grazi per la tua disponibilità, vado subito a presentarmi... :popò:

L'importante è che supporti il PHP.

E' una funzione del php che ti permette di inviare un messaggio di posta elettronica ;-)

...ora non sò dirti se il dominio gratuito che possiedi supporti tale linguaggio (penso di si comunque).

I domini che compri (di solito) sono su server che supportano sempre il PHP (se su piattaforma Windows) oppure il PHP (se su piattaforma Linux ;-) ).

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

L'importante è che supporti il PHP.

E' una funzione del php che ti permette di inviare un messaggio di posta elettronica ;-)

...ora non sò dirti se il dominio gratuito che possiedi supporti tale linguaggio (penso di si comunque).

I domini che compri (di solito) sono su server che supportano sempre il PHP (se su piattaforma Windows) oppure il PHP (se su piattaforma Linux ;-) ).

Non so sinceramente, ne capisco troppo poco ancora.

questo è il link, se puoi aiutarmi a capire il problema dov'è ... ;-)

Link

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Semplice, nella action del form richiami la pagina contact.php la tua pagina invece si chiama contatti.php, quindi cambia da così:

<form id ="form1" name="form1" method="post "action="contact.php">

A così:

<form id ="form1" name="form1" method="post "action="contatti.php">

Inoltre da quanto mi pare di capire, quella riga lì non dovrebbe proprio starci, dato che il codice rilasciato ha già un suo form, subito dopo il java script:

	echo "<script language='JavaScript' type='text/JavaScript'>\n";
echo "window.onload = function(){ document.form1.firma.focus(); }\n";
echo "</script>\n";
echo "<form name='form1' method='post' action=''>\n";

Quindi <form id ="form1" name="form1" method="post "action="contatti.php"> puoi proprio rimuoverlo. Vedi se va, ciao :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

@ Ferodo: Bellina la tua moto :):P

(ps: la pagina delle foto è parecchio lunga da caricare per chi non ha una adsl!! :P )

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Grazie mille , ora provo subito la modifica.

Sono contento che ti piaccia la mia motina,

i motori per me sono una vocazione,

senza non riesco proprio a stare !!!

Riguardo alle foto dovrei alleggerirle un pò hai ragione,

il sito è ancora in via di sviluppo,

mi ha aiutato un amico però anche lui è alle prime armi,

ogni tanto ci incasiniamo un pò.

GRazie ancora ragazzi. :omaggi:

:)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Perfetto, ora funziona tutto....

Mitici!!! :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

riprendo questa discussione perchè mi servirebbe fare in modo di allegare un file e inviarlo sempre tramite il form.

è possibile fare una cosa del genere?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Vorresti allegare dei file a messagi di posta spediti via email attravrso una form oppure vuoi fare l'upload di un file su di un server web?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per partecipare

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!


Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.


Accedi Ora
Accedi per seguire   
Seguaci 0