@reggio perdona la curiosità ma il form contatti sarebbe per il sito che hai in firma? Se la risposta è si, sei sicuro che la tua azienda non valga 100€ (scaricabili con fattura) per un form contatti serio?
@reggio perdona la curiosità ma il form contatti sarebbe per il sito che hai in firma? Se la risposta è si, sei sicuro che la tua azienda non valga 100€ (scaricabili con fattura) per un form contatti serio?
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui
EDIT: leggi in fondo per scaricare il file, dal sito il codice non si capisce
Ciao reggio,
ti posto il codice PHP e HTML di un form fatto da me:
Codice PHP:<article class="contact"> <h2>Contattami</h2> <?php if(!isset($_POST['submit'])) { ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" name="contactform" method="post"> <label for="nome">Nome<span class="required">*</span></label> <input type="text" name="nome" id="nome" placeholder="Inserisci il tuo nome" required>
<label for="cognome">Cognome<span class="required">*</span></label> <input type="text" name="cognome" id="cognome" placeholder="Inserisci il tuo cognome" required>
<label for="compagnia">Compagnia</label> <input type="text" name="compagnia" id="compagnia" placeholder="Dove lavori?">
<label for="email">Indirizzo Email<span class="required">*</span></label> <input type="email" name="email" id="email" pattern="^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$" placeholder="e.g. utente@gmail.com" required> <label for="brevedescr">Breve descrizione del progetto<span class="required">*</span></label> <input type="text" name="brevedescr" id="brevedescr" placeholder="Breve descrizione del progetto" required> <label for="progetto">Descrizione completa<span class="required">*</span></label><br> <textarea name="progetto" id="progetto" cols="40" rows="3" placeholder="Descrivi con più dettagli possibili il progetto" required></textarea> <label for="capacita">Tue capacità in ambito informatico</label> <input type="text" name="capacita" id="capacita" placeholder="Es. Programmatore, grafico..."> <?php require_once('recaptchalib.php'); $publickey = ""; // you got this from the signup page echo recaptcha_get_html($publickey); ?> <br> <input type="submit" name="submit" id="submit" value="Send"> </form> <?php }else{ require_once('recaptchalib.php'); $privatekey = ""; $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);
if (!$resp->is_valid) { // What happens when the CAPTCHA was entered incorrectly die ("Il codice reCAPTCHA non è stato inserito correttamente. Torna indietro e riprova."); } else { $to = ""; $headers = "From: ".$_POST['email']; $subject = $_POST['brevedescr']; $body = "Nuova richiesta per la creazione di un sito web: \n".$_POST['nome']." ".$_POST['cognome']. " (".$_POST['email'] .")"; $body .= " della compagnia ".$_POST['compagnia']; $body .= "\n\n Ha proposto questo progetto: \n\n".$_POST['brevedescr']."\n".$_POST['progetto']; $body .= "\n\n Ha anche queste capacità in ambito informatico: ".$_POST['capacita']; $send_contact=mail($to,$subject,$body,$headers); if($send_contact){ echo "Messaggio ricevuto! Grazie per avermi contattato"; }else { echo "Errore! Riprova più tardi"; } } } ?> </article>
Adesso cerco di analizzartelo parte per parte:
article e h2 sono parte di HTML della mia pagina, tu puoi ovviamente cambiarli. Quando si completa un form e si invia, si può inviare o con $_GET o con $_POST, sono due metodi, ma che alla fine inviano il form... L' if dice: SE ( NON è PIENO (L'INVIO CON POST DELLA VARIABILE submit)) ALLORA ESEGUI...Codice PHP:<article class="contact"> <h2>Contattami</h2> <?php if(!isset($_POST['submit'])) { ?>
si apre il form con un'action in PHP, che dice di inviare il form alla stessa paginaCodice PHP:<form action="<?php echo $_SERVER['PHP_SELF']; ?>" name="contactform" method="post">
Poi ci sono tutti i campi, che non ti sto a spiegare perchè da quanto ho capito qualcosina di HTML conosci
Questo è il PHP che da Google (https://www.google.com/recaptcha/intro/index.html) per il captcha. Molto utile per evitare spamCodice PHP:<?php require_once('recaptchalib.php'); $publickey = "LA TUA CHIAVE PUBBLICA"; // you got this from the signup page echo recaptcha_get_html($publickey); ?>
Ora si parte dalla parte di PHP puro, infatti fino a qua è servito per creare il form, da adesso, invece, si crea l'email con tutte le info:
Viene dall'if sopra descritto, in pratica se è stato inviato un form allora fai le operazioni seguenti:Codice PHP:}else{
La prima parte viene sempre da il captcha di google. L'if serve per vedere se la chiave inserita è corretta, altrimenti da un erroreCodice PHP:require_once('recaptchalib.php'); $privatekey = "LA CHIAVE PRIVATA"; $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);
if (!$resp->is_valid) { // What happens when the CAPTCHA was entered incorrectly die ("Il codice reCAPTCHA non è stato inserito correttamente. Torna indietro e riprova."); } else {
CREAZIONE EMAIL CON SUCCESSIVO INVIO (l'email che arriverà a te):
Serve per definire l'email del destinatario (la tua)Codice PHP:$to = "email destinatario";
Serve per definire chi l'ha inviata, lascialo cosìCodice PHP:$headers = "From: ".$_POST['email'];
Questo è l'oggetto della email. Se vuoi indicare che viene dal tuo sito puoi per esempio mettere:Codice PHP:$subject = $_POST['brevedescr'];
In questo modo l'oggetto della mail sarà: (Sito): oggetto scelto da chi ti contattaCodice PHP:$subject = "(Sito): ".$_POST['brevedescr'];
Questa invece è la parte un pochino più complicata, è il corpo del messaggio:
Ho ripetuto 4 volte $body, non vuol dire altro che continua ad inserirmi contenuti in body. Dal secondo in poi ho messo .=, che vuol dire tieni quello che c'è in $body e aggiungigli la parte seguenteCodice PHP:$body = "Nuova richiesta per la creazione di un sito web: \n".$_POST['nome']." ".$_POST['cognome']. " (".$_POST['email'] .")"; $body .= " della compagnia ".$_POST['compagnia']; $body .= "\n\n Ha proposto questo progetto: \n\n".$_POST['brevedescr']."\n".$_POST['progetto']; $body .= "\n\n Ha anche queste capacità in ambito informatico: ".$_POST['capacita'];
Con queste righe viene scritto:
Nuova richiesta per la creazione di un sito web: (a capo (\n))
Nome Cognome (Email) della compagnia compagnia(a capo x2)
Ha proposto questo progetto: (a capo x2)
breve descrizione (oggetto)(a capo)
progetto (c'è nel form)(a capo x2)
Ha anche queste capacità in ambito informatico: capacità
Questo non fa altro che inviare la email, controllare che sia stata inviata correttamente (con l'if) e chiudere i vari if che erano ancora aperti (captcha e if iniziale).Codice PHP:$send_contact=mail($to,$subject,$body,$headers); if($send_contact){ echo "Messaggio ricevuto! Grazie per avermi contattato"; }else { echo "Errore! Riprova più tardi"; } } }
RISULTATO FINALE:
http://imgur.com/EwZ75LL
http://imgur.com/PPUmSMA
Spero di essere stato abbastanza chiaro. Se tuttavia non avessi capito qualcosa non esitate a chiedere. Inoltre, se vuoi, posso anche aiutarti a mettere l'intero script sul sito totalmente gratuitamente. In tal caso contattami a marco.mt19@hotmail.it
EDIT: sfortunatamente il sito non riconosce la dentatura di notepad++, così ti allego il file .php
https://mega.co.nz/#!RRdB3YxI!-OwSnq...ZlhIKgSFfQnW54
Ultima modifica di mt19; 20-05-2014 a 21:56 Motivo: Aggiunto link download PHP
Ciao e grazie per la grande disponibilità
proseguo commentando e inizio con le domande più banali per poi aumentare con le difficoltà ;P
Allora, se non ho capito male, il file contatti.php è uno script (?) un "programma" che gira sui browser, e in pratica dice al browser COME "disegnare" la pagina in HTML giusto? +/-?
Io ho un contratto con Aruba come questo: http://hosting.aruba.it/hosting_con_....asp?offerta=1
posso usare PHP?
Lo chiedo perchè in passato ho provato Joomla (asp) e per farlo andare ho dovuto cambiare contratto (credo mancasse il database MySQL che come vedi nel mio contratto è OPZIONALE): con PHP NON serve un database?
Fatto!
Per leggerlo e modificarlo uso note pad: và bene?
E per vederne l'anteprima cosa posso usare? Mi basta copiare il file contatti.php in www.miosito.it\contatti.php ? o come?
??? non capisco, vedo solo pagine nere con pubblicità, ma senza il tuo form da compilare ... perchè?
appena riesco a vedere il tuo esempio mi butto sulle tue spiegazioni così da capire bene di cosa stai parlando
Urka!!!questo "recaptcha" è quello che chiede all'utente di inserire delle lettere a caso per controllare se è un umano o un robot?
Fico, uno cosa però, il problema dello spam non nasce dalla "scannerizzazione" del codice alla ricerca di un indirizzo@miosito.it ?
Il "recaptcha" aiuta veramente a bloccare lo spam?
Se, dopo aver visto e capito questo esempio, volessi inserire un paio di tendine a scelta multipla, qualche OptionButton e qualche CheckBox, sapresti dirmi come inserirli e come riportare le risposte in email?
Grazie ancora e a presto!![]()
PHP alla fine non fa altro che dare in output HTML. In pratica, tramite delle condizioni (gli if) e molto altro, non fa altro che creare una pagina in HTML... In ogni caso il codice PHP non può essere visto da un browser, inoltre PHP non usa la CPU del PC del client (chi guarda la pagina), ma del server.
Sì, puoi usare PHP su quel server e per questo script in PHP non serve un database.
No, usa notepad++ (http://notepad-plus-plus.org/), è gratis, apre di tutto (quasi qualsiasi linguaggio) ed è quello che ho usato io, quindi vedrai la formattazione del testo come si deve, anche coi colori diversi
No, nello script che ti ho passato io non basta: a parte che mancherebbe tutta la parte grafica che io per ovvi motivi non ho messo, visto che non è quello che hai chiesto (e che sono molto scarso in fatto di template). Inoltre nel codice che ti ho passato c'è recaptcha, che ha bisogno di un altro file e va configurato con una chiave interna e una esterna (che prendi registrandoti al sito).
Il file comunque lo puoi scaricare dal sito recaptcha. Inoltre ti passo un paio di cose utili per configurarlo:
https://developers.google.com/recaptcha/docs/php (guida specifica per PHP)
https://code.google.com/p/recaptcha/...:phplib-Latest (il file PHP che devi caricare insieme a contact.php)
Quelle sono due foto della mia posta in GMail. Era un modo per farti vedere come arrivava l'email.
Questo è il mio form:
http://imgur.com/delete/RtTdU9bvVw8AsHy
ovviamente ho tolto tutto quello che non centrava (scusa se non si vede benissimo, ma per farlo entrare nella pagina ho dovuto togliere zoom)
Ecco i direct link per le immagine che ti avevo già mandato (così non vedrai più le pubblicità, ma direttamente le immagini):
https://i.imgur.com/EwZ75LL.png
https://i.imgur.com/PPUmSMA.png
Buona fortuna...Spero capirai tutto
Si, recaptcha è proprio quella cosa che ogni tanto è veramente odiosa!
Creare un programmino che riempia automaticamente i campi e continui a mandare email è una cosa semplicissima e velocissima da fare. Recaptcha è un modo per evitare lo spam. Ti assicuro che è veramente molto utile! Pochi programmi sono riusciti a passarlo, e comunque non ci riescono sempre... Se vogliono spammarti devono proprio metterci molto molto impegno!
Certamente:
il codice HTML delle checkbox è:
E il codice da inserire nel PHP è semplicemente:codice HTML:<input type="checkbox" name="check" value="si" />
Ovviamente puoi cambiare il nome della checkbox, ma poi lo devi cambiare anche nella variabile POST. Occhio a non avere nel form due input con lo stesso nome.Codice PHP:$_POST['check']
Per saperne di più: http://blog.informaticalab.com/come-...ckbox-con-php/
Le option button in realtà si chiamano radio button, l'HTML è:
E il codice PHP sarà sempre uguale:codice HTML:<input type="radio" name="colore" value="rosso">rosso <input type="radio" name="colore" value="nero">nero
Per vedere un esempio: http://forum.html.it/forum/showthread/t-980477.htmlCodice PHP:$_POST['colore']
Ho già capito che dovrò rispondere a molte, moltissime domandeSfortunatamente sono molto occupato in questi giorni, quindi se non mi faccio sentire subito... Bhe, sei avvisato
Ma non disperare, che non mi dimentico
Ultima modifica di mt19; 21-05-2014 a 23:24 Motivo: Sono nabbo e mi dimentico di mettere dei link :D
1) G R A Z I E ! !
2) Ok ho già capito parecchie cose, bene bene
ehm, vado subito di spudoratezza: non è che mi passeresti il tuo codice con anche la parte grafica (ma sarà un altro file o sarà tutto nello stesso file) perchè altrimenti non saprei da dove partire e senza "vedere" nulla sul browser farei ancora più fatica a capire se sono sulla strada giusta .. ovviamente se il tuo non puoi passarmelo, và benissimo anche un template a caso, mi basta sapere che una volta buttato in rete e registrato il recaptcha e indicato l'indirizzo email corretto, il tutto funzioni, dopo penserò a rivedere la grafica e ad aggiungere "checkbox" e "radio button"
dici questo sito? https://www.google.com/recaptcha/admin#whyrecaptcha
Afferrato, mi hai convinto!
eh eh ehtemo anche io
![]()
allora ci conto!
Bye!
Ti passerei molto volentieri il mio tema, se fosse stato fatto da me, ma visto che l'ho comprato da themeforest, per contratto, non posso passartelo... Comunque se cerchi in giro trovi qualcosa di carino e gratis, ma devi poi modificare il codice HTML per inserire il form e il codice PHP... In ogni caso se è un sito di un'azienda che, pertanto, ha già un template, allora il contact form si deve rifare a quel template.
Se invece è solo per provare a vedere se il form funziona, allora puoi anche lasciarlo senza stile:
aggiungi un
All'inizio ecodice HTML:<html><body>
alla fine, configuri recaptcha e il risultato sarà così:codice HTML:</html></body>
https://i.imgur.com/MCVfYD3.png
A me non va il rcaptcha perchè le chiavi (private e public) le sto già utilizzando su un altro sito, quindi ne dovrei creare altre, altrimenti dovrebbe funzionare...
Allora, il file che devi caricare assieme al form di contatti (nella stessa cartella) si chiama recaptchalib.php e lo scarichi da qua:
https://code.google.com/p/recaptcha/...:phplib-Latest
Mentre se ti serve la guida per configurare recaptcha, guarda questa:
https://developers.google.com/recaptcha/docs/php
Il sito che mi hai indicato tu è quello di recaptcha, da li tu ti dovrai registrare per creare le tue chiavi. Se vuoi ti passo anche questa guida (sempre ufficiale), presa dalla wiki di google, magari capisci ancora meglio:
https://code.google.com/p/recaptcha/...SetUpRecaptcha
P.s. spero che non abbia problemi a leggere guide in inglese, altrimenti è abbastanza complicata la cosa (il materiale specifico è quasi per la totalità in inglese...)
Spero di non averti incasinato ulteriormente le idee, aspetto nuove domande
Ciao!
Una altra opzione http://www.zoho.com/creator/online-f.../features.html