Ciao,
non ho potuto vedere il sito perché sono in ufficio ma lo farò stasera da casa.
Per il tuo problema hai bisogno prima di tutto di un form fatto più o meno così:
codice:
<form method="post" action="sendmail.php">
<div class="testo_contatti">nome:</div>
<div class="div_casella"><input type="text" class="textform" maxlength="100" name="nome"></div>
<div class="testo_contatti">indirizzo e-mail:</div>
<div class="div_casella"><input type="text" class="textform" maxlength="200" name="e_mail"></div>
<div class="testo_contatti">messaggio:</div>
<div class="div_casella"><textarea class="c_textarea" name="testo"></textarea></div>
<div class="div_pulsante"><input type="submit" class="pulsante" name="inviadati" value="invia"></div>
</form>
che invia, via post, nome, indirizzo e messaggio ad un programmino php di nome sendmail.php (nel seguito).
Questo esempio è preso da un mio sito reale quindi ha una sua formattazione ma tu chiaramente puoi modificarla come ti pare.
I campi inviati hanno un "name" che permetterà al programma di distinguerli, quindi se ne aggiungi altri cura che abbiano nomi diversi.
E poi ti serve il programma che riceve i dati inviati dal form e li inserisce in una mail che ti verrà spedita.
Crea un file di nome sendmail.php e mettici dentro questo codice (ah, già, sto dando per scontato che tu sia su un server linux/apache, se invece sei su windows ti servirà un programmino analogo in asp ma per quello devi chiedere nella sezione apposita del forum):
codice:
<?php
$nome = htmlspecialchars($_POST['nome']);
$e_mail = htmlspecialchars($_POST['e_mail']);
$testo = htmlspecialchars($_POST['testo']);
$destinatari = "aaa@bbb.it <aaa@bbb.it>";
$intestazioni = "From: info@repticula.net <info@repticula.net>\r\n";
$intestazioni .= "Reply-To: info@repticula.net <info@repticula.net>\r\n";
$oggetto = "Richiesta di informazioni";
$messaggio = "Nome: " . $nome . "\r\nE-mail: " . $e_mail . "\r\nMessaggio: " . $testo;
if (!mail($destinatari, $oggetto, $messaggio, $intestazioni)) {
header("Location: errore_spedizione.htm");
} else {
header("Location: conferma_spedizione.htm");
};
?>
Ti spiego cosa fa in modo che tu possa modificarlo se vuoi.
Le prime tre righe ricevono i dati del form e li caricano in tre variabili.
htmlspecialchars serve per evitare che attraverso la mail ti inviino del codice maligno.
Usala sempre, anche per eventuali altri campi che aggiungerai al form.
In realtà non è una protezione molto forte ma visto che si tratta solo di una mail che arriva a te può bastare. Se un domani vorrai fare cose più delicate come caricare dati in un database o elaborare in qualche modo i dati ricevuti o inviare mail ad altre persone questa protezione potrebbe non bastare più.
Dove ho scritto aaa@bbb.it devi mettere la tua mail.
Dove ho scritto info@repticula.net devi mettere una mail del sito, sicuramente ne hai una, in genere si chiama info oppure postmaster oppure webmaster. Se non la metti è facile che il messaggio venga considerato spam e cestinato dal tuo provider di posta.
L'oggetto è quello che comparirà nella mail che ti arriverà.
L'istruzione che segue costruisce una stringa concatenando i dati ricevuti in input e dei ritorni a capo.
Il punto serve a concatenare, il \r\n serve ad andare a capo.
Questo vuol dire che nel messaggio che ti arriverà ci sarà, nell'ordine
La stringa "Nome: "
Il nome indicato nel form
un ritorno a capo seguito dalla stringa "E-mail: "
eccetera
Se aggiungerai altri campi al form dovrai anche inserirli in questa stringa.
Infine la if spedisce la mail e si chiede se tutto è andato bene o se c'è stato qualche errore e visualizza due pagine html che dovrai fare (errore_spedizione.htm e conferma_spedizione.htm) che dicano all'utente qualcosa come "grazie per averci inviato la mail" oppure "Invio non riuscito, ci spiace".
E infine metti queste due nuove pagine e il file sendmail.php nella root del tuo sito.
Non dovrebbe essere necessario nient'altro.
Per la search invece la cosa è più complessa, prova a chiedere al forum php.
Ciao