come creare un form con dreamweaver da zero

marcopupi

Nuovo Utente
3 Mag 2010
26
0
0
Salve a tutti
sto creando un sito con photo e dreamweaver , sono ai primissimi passi :)
non riesco a creare un form
la pagina dovrebbe chiamarsi prenotazione-villaggi-vieste-gargano.php
dovrei scrivere :
nome
cognome
richiesta
accetti art. con il pulsantino
invio
e dopo l'invio vorrei che li mandasse in un'altra pag.
aiutatemi ... sto impazzendooo
il sito è www.myvieste.it
ho provato a crearlo ma .. ho avuto diversi problemi.. es. www.myvieste.it/form.php
 

marcopupi

Nuovo Utente
3 Mag 2010
26
0
0
<?php
// specifica la tua email e l'oggetto del messaggio
$your_email = '[email protected]';
$subject = 'richiesta';

// funzione per la visualizzazione degli errori
function show_error($errtxt)
{
// creo la query per la pagina
$query = array('err' => $errtxt);
$query = http_build_query($query);

// reindirizzo alla pagina
header("Location: form.php?{$query}");

// interrompo lo script
exit();
}

// se il form è stato inviato
if(isset($_POST['submit']))
{
// recupero i dati inviati
$name = isset($_POST['name']) ? trim($_POST['name']) : '';
$surname = isset($_POST['surname']) ? trim($_POST['surname']) : '';
$email = isset($_POST['email']) ? trim($_POST['email']) : '';
$message = isset($_POST['message']) ? trim($_POST['message']) : '';
$privacy = isset($_POST['privacy']) ? $_POST['privacy'] : 0;

// controlla che i campi non siano vuoti
if($name == '')
show_error('Non hai inserito il tuo nome.');
if($surname == '')
show_error('Non hai inserito il tuo cognome.');
if(!preg_match('/^([\w\-\+\.]+)@([\w\-\+\.]+).([\w\-\+\.]+)$/', $email))
show_error('L\'e-mail che hai fornito non &egrave; valida.');
if($message == '')
show_error('Non hai inserito il tuo messaggio.');
if(!$privacy)
show_error('Non hai dato il consenso al trattamento dei dati.');

// crea il messaggio da inviare
$msgtxt = "Un nuovo messaggio ti è stato inviato da un utente.\n";
$msgtxt = "L'utente ha fornito queste informazioni:\n";
$msgtxt = "---------------------------------------------------\n";
$msgtxt = "Nome: {$name}\n";
$msgtxt = "Cognome: {$surname}\n";
$msgtxt = "E-mail: {$email}\n";
$msgtxt = "---------------------------------------------------\n";
$msgtxt = "{$message}\n";
$msgtxt = "---------------------------------------------------\n";
$msgtxt = "L'indirizzo IP dell'utente è {$_SERVER['REMOTE_ADDR']}.";

// tenta di inviare il messaggio
if(!mail($your_email, $subject, $msgtxt))
show_error('Impossibile inviare il messaggio. Riprova pi&ugrave; tardi.');

// visualizza il messaggio di avvenuto invio
header('Location: form.php?sent=true');
}
// altrimenti
{
// reindirizza al file del form
show_error('Non hai inviato i dati. Ritenta.');
}
?>



mi da sempre errore di invio..
grazie per l'interessamento
 

marcopupi

Nuovo Utente
3 Mag 2010
26
0
0
<?php
// specifica la tua email e l'oggetto del messaggio
$your_email = '[email protected]';
$subject = 'Nuovo messaggio';

// funzione per la visualizzazione degli errori
function show_error($errtxt)
{
// creo la query per la pagina
$query = array('err' => $errtxt);
$query = http_build_query($query);

// reindirizzo alla pagina
header("Location: form.php?{$query}");

// interrompo lo script
exit();
}

// se il form è stato inviato
if(isset($_POST['submit']))
{
// recupero i dati inviati
$name = isset($_POST['name']) ? trim($_POST['name']) : '';
$surname = isset($_POST['surname']) ? trim($_POST['surname']) : '';
$email = isset($_POST['email']) ? trim($_POST['email']) : '';
$message = isset($_POST['message']) ? trim($_POST['message']) : '';
$privacy = isset($_POST['privacy']) ? $_POST['privacy'] : 0;

// controlla che i campi non siano vuoti
if($name == '')
show_error('Non hai inserito il tuo nome.');
if($surname == '')
show_error('Non hai inserito il tuo cognome.');
if(!preg_match('/^([\w\-\+\.]+)@([\w\-\+\.]+).([\w\-\+\.]+)$/', $email))
show_error('L\'e-mail che hai fornito non &egrave; valida.');
if($message == '')
show_error('Non hai inserito il tuo messaggio.');
if(!$privacy)
show_error('Non hai dato il consenso al trattamento dei dati.');

// crea il messaggio da inviare
$msgtxt = "Un nuovo messaggio ti è stato inviato da un utente.\n";
$msgtxt = "L'utente ha fornito queste informazioni:\n";
$msgtxt = "---------------------------------------------------\n";
$msgtxt = "Nome: {$name}\n";
$msgtxt = "Cognome: {$surname}\n";
$msgtxt = "E-mail: {$email}\n";
$msgtxt = "---------------------------------------------------\n";
$msgtxt = "{$message}\n";
$msgtxt = "---------------------------------------------------\n";
$msgtxt = "L'indirizzo IP dell'utente è {$_SERVER['REMOTE_ADDR']}.";

// tenta di inviare il messaggio
if(!mail($your_email, $subject, $msgtxt))
show_error('Impossibile inviare il messaggio. Riprova pi&ugrave; tardi.');

// visualizza il messaggio di avvenuto invio
header('Location: form.php?sent=true');
}
// altrimenti
{
// reindirizza al file del form
show_error('Non hai inviato i dati. Ritenta.');
}
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova in questo modo

PHP:
<?php
//tutto quello che c'è sopra.......
// controlla che i campi non siano vuoti 
$errore="";//metto il messaggio di errore a vuoto
if($name == ''){
	$errore="Non hai inserito il tuo nome.<br>";
}
if($surname == ''){
	$errore.="Non hai inserito il tuo cognome.<br>";
}
if(!preg_match('/^([\w\-\+\.]+)@([\w\-\+\.]+).([\w\-\+\.]+)$/', $email))}
	$errore.="L'e-mail che hai fornito non &egrave; valida..<br>"; 
}
if($message == ''){
	$errore.="Non hai inserito il tuo messaggio.<br>";
}
if(!$privacy) 
	$errore.="Non hai dato il consenso al trattamento dei dati.<br>"; 
}
if($errore==""){//non sono stati commessi errori
	// crea il messaggio da inviare .......
 	
	// tenta di inviare il messaggio 
	if(!mail($your_email, $subject, $msgtxt)){//messaggio non inviato
		show_error('Impossibile inviare il messaggio. Riprova pi&ugrave; tardi.');
		//io utilizzo questo al posto di header
		echo "<meta http-equiv='Refresh' content='3; URL=form.php'>"; // ... ritorna a form dopo 3 secondi
	}else{//messaggio inviato
		// visualizza il messaggio di avvenuto invio 
		show_error("Grazie per averci contattato, risponderemo quanto prima");
		echo "<meta http-equiv='Refresh' content='3; URL=form.php?sent=true'>"; // ... ritorna a form o dove vuoi
	} 
}else{ // è stato commesso almeno un errore 
	// reindirizza al file del form 
	show_error($errore); 
	echo "<meta http-equiv='Refresh' content='3; URL=form.php'>";
}//fine if-else errori
} //fine if submit
?>

al posto di preg_match usa filter_var
guarda questo link
http://blog.mrwebmaster.it/2010/03/21/validare-email-php5.html
filter_var ti serve poi per validare anche altri tipi di campi

p.s.
guarda che le {} fanno parte del mio stile di programmazione, se non ti piacciono dove non servono puoi toglierle
 

marcopupi

Nuovo Utente
3 Mag 2010
26
0
0
comincio a pensare che nn sono portato per queste cose :)
appena la invio mi dice:
Parse error: syntax error, unexpected '}' in D:\Inetpub\webs\myviesteit\send.php on line 11
questo è il mio form:
( la pagina è : www.myvieste.it/prenotazione-villaggi-vieste-gargano.php )
<form action="send.php" method="post">
<table align="center" cellspacing="10">
<tr>
<td><label>Nome:</label></td>
<td><input type="text" name="name" /></td>
</tr>
<tr>
<td><label>Cognome:</label></td>
<td><input type="text" name="surname" /></td>
</tr>
<tr>
<td><label>E-mail:</label></td>
<td><input type="text" name="email" /></td>
</tr>
<tr>
<td><label>Messaggio:</label></td>
<td><textarea name="message" cols="50" rows="5"></textarea></td>
</tr>
<tr>
<td><label>Privacy:</label></td>
<td>
<input type="radio" name="privacy" value="1" />
Consento il trattamento dei dati</td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Invia" /></td>
<td><input type="reset" name="reset" value="Resetta" /></td>
</tr>
</table>
</form>
questa è la send.php
<?php
//tutto quello che c'è sopra.......
// controlla che i campi non siano vuoti
$errore="";//metto il messaggio di errore a vuoto
if($name == ''){
$errore="Non hai inserito il tuo nome.<br>";
}
if($surname == ''){
$errore.="Non hai inserito il tuo cognome.<br>";
}
if(!preg_match('/^([\w\-\+\.]+)@([\w\-\+\.]+).([\w\-\+\.]+)$/', $email))}
$errore.="L'e-mail che hai fornito non &egrave; valida..<br>";
}
if($message == ''){
$errore.="Non hai inserito il tuo messaggio.<br>";
}
if(!$privacy)
$errore.="Non hai dato il consenso al trattamento dei dati.<br>";
}
if($errore==""){//non sono stati commessi errori
// crea il messaggio da inviare .......

// tenta di inviare il messaggio
if(!mail($your_email, $subject, $msgtxt)){//messaggio non inviato
show_error('Impossibile inviare il messaggio. Riprova pi&ugrave; tardi.');
//io utilizzo questo al posto di header
echo "<meta http-equiv='Refresh' content='3; URL=form.php'>"; // ... ritorna a form dopo 3 secondi
}else{//messaggio inviato
// visualizza il messaggio di avvenuto invio
show_error("Grazie per averci contattato, risponderemo quanto prima");
echo "<meta http-equiv='Refresh' content='3; URL=form.php?sent=true'>"; // ... ritorna a form o dove vuoi
}
}else{ // è stato commesso almeno un errore
// reindirizza al file del form
show_error($errore);
echo "<meta http-equiv='Refresh' content='3; URL=form.php'>";
}//fine if-else errori
} //fine if submit
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
scusa, ma se hai usato quello che ti ho mandato e l'hai scritto pari pari col copia/incolla per forza non funzia.
con
//tutto quello che c'è sopra.......
devi scriverci quella parte sopra del tuo script
con
// crea il messaggio da inviare .......
li devi scrivere la formazione del testo da inviare come hai scritto tu

ho messo così per non far diventare quello che scrivevo troppo lungo
per esempio ti d error di una } chiusa in quanto, nel mio script manca la parte

if(isset($_POST['submit']))
{

analogamente ti darà errore quando richiimi la funzione show_error() in quanto io non l'ho scritta
cioè, io ti avevo dato una traccia, a te il completamento
 

marcopupi

Nuovo Utente
3 Mag 2010
26
0
0
forse nn mi sono spiegato bene :) io sono abbastanza ignorante in materia.. il send.php e il form.php l'ho copiato da un sito e incollato ( modificato la mail e basta.. quindi nn so cosa è giusto o sbagliato... non hai 5 minuti da dedicarmi per scrivere in modo corretto tutto :) non è che nn ho voglia di imparare anzi... ma ho un pochino di fretta... poi se mi dici dove andare a studiare.. ;) lo farò volentieri..
io vorrei che quando inviano il messaggio si aprisse un'altra pag. es. messaggio-inviato.html con scritto un messaggio
per ora ti ringrazio..
ps. se passi dalle parti di varese ti offro una pizza :) al ristorante pizzeria impero :)
grazie ancora
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
in giornata guardo e se faccio in tempo ti mando lo script corretto.

ps. se passi dalle parti di varese ti offro una pizza...
più che la pizza sono in caccia di foto del territorio italiano per il mio sito dedicato all'italia, se ti soddisfo mandamele:)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ecco il form nello zip allegato (dovrebbe funziare).
l’ho chiamato form_MarcoPupi.php, se gli cambi nome attento devi modificare il nome alle righe n° 79 83 e 88 (o vicine).
inoltre devi mettere il tuo indirizzo email alla riga n° 54 (o vicina).
comunque vedi dove sono perche ci sono i commenti

se non funzia fammi sapere indicandomi l’errore e a quale riga
 

marcopupi

Nuovo Utente
3 Mag 2010
26
0
0
sei un grande :) grazie di cuore..
l'ultima domanda..
ma perchè quando mi arriva la mail il mittente è : [email protected]??? e non [email protected]


scrivimi la mail .. almeno ti spedisco le foto.. ;)
oppure mandami una mail su : [email protected]
grazie ancora
cmq oltre le foto se vuoi una pizza o un piatto di spaghetti allo scoglio non c'è problema
anzi :)
ciaooo
buona giornata
ps . se vuoi sapere qualcosa sulla cucina o sulle pizze.. chiedi pure .. su questo sono un genio io :)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it

marcopupi

Nuovo Utente
3 Mag 2010
26
0
0
mi spiego meglio
con il programma che usavo prima .. quando mi arrivava una richiesta
il mittente era : [email protected]
ora è [email protected]
non capisco il motivo.. tutto qui.. cmq funziona perfettamente.. ma la send nn serve più?
ora ti mando le foto..
ciao e grazie ancora...
già che ci sono ti faccio l'ultima domanda.. come mai mi carica a pezzettini il sito?? sbaglio qualcosa??
grazie ancora.. ciaoo
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ma la send nn serve più?
no ho fatto tutto in una pagina, per un invio del genere è meglio.
domani guardo per il [email protected] non è detto che non abbiafatto qualche errori di dimenticanza

come mai mi carica a pezzettini il sito??
parli del caricamento sul server remoto?

se vuoi sapere qualcosa sulla cucina o sulle pizze.. chiedi pure .. su questo sono un genio io
quando passo, se passo, non mancherò di verificare
 

MarcoGrazia

Utente Attivo
15 Dic 2009
852
20
28
62
Udine
www.stilisticamente.com
Il mio consiglio è di dare un po' più di sicurezza a quel form, ora come ora non ne ha e non può bloccare gli spammer, il mio semplice consiglio è di fare quaslche piccola modifica che non fermerà certo gli spammer ma ti farà dormire qualche notte tranquilla in più.
Per esempio dove tu scrivi:
PHP:
// se il form è stato inviato
if(isset($_POST['submit']))
{
// recupero i dati inviati
$name = isset($_POST['name']) ? trim($_POST['name']) : '';
$surname = isset($_POST['surname']) ? trim($_POST['surname']) : '';
$email = isset($_POST['email']) ? trim($_POST['email']) : '';
$message = isset($_POST['message']) ? trim($_POST['message']) : '';
$privacy = isset($_POST['privacy']) ? $_POST['privacy'] : 0;



Io farei diversamente e cioè:
PHP:
// se il form è stato inviato
if(isset($_POST['submit']))
{
// recupero i dati inviati
$name = isset($_POST['name']) ? strip_tags($_POST['name']) : '';
$surname = isset($_POST['surname']) ? strip_tags($_POST['surname']) : '';
$email = isset($_POST['email']) ? strip_tags($_POST['email']) : '';
$message = isset($_POST['message']) ? strip_tags($_POST['message']) : '';
$privacy = isset($_POST['privacy']) ? $_POST['privacy'] : 0;
Ovvero in luogo di trim() che elimina solo alcuni caratteri di tabulazione e gli spazi vuoti, userei strip_tags() che come dice il nome elimina tutti i tag php e html dalla stringa.
E' più sicura in quanto evita che qualcuno usi il tuo form per inviare pericolosi script.
Non usarei nemmeno questo tipo di notazione ma avendo a disposizine il PHP5.2 userei i filtri sicuramente più sicuri per la pulizia del codice dannoso, ma anche così va già meglio di prima.
Altra cosa è il controllo degli indirizzi email, non basta controllare che l'indirizzo sia valido, ma che sia anche unico; uno dei trucchi più usati per sfruttare form come il tuo e inviare email a raffica a spese tue è quello di inviare da lì una stringa piena di indirizzi email separati uno dall'altro da una virgola.
Questo è perfettamente valido, chissà quante volte l'hai fatto anche tu per girare email ai tuoi amici :) ma è anche estremamente pericoloso in un form.
Il modo per evitatre che sfruttino il tuo form è quello di verificare che dopo l'indirizzo email non ci sia una virgola e ovviamente eliminare questa e tutto ciò che segue, usando solo il primo indirizzo valido per l'invio.
Un altro consiglio che mi sento di darti riguarda solo l'accessibilità del form, butta alle ortiche il tasto reset, non serve a nulla, se mi baglio a scrivere un campo lo correggo non cancello l'intero form, specie se ho digitato mezz'ora e mi accorgo di dover modificarne solo una parte.
Invece quel tasto è pericoloso perché se uno si sbaglia a cliccare... le conseguenze le immagini vero? :incazz:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
Ciao
Perche dici che l’indirizzo è errato?

Questo e prima dell’invio
form_marco.jpg


E questo quanto arriva

oggetto:messaggio da borgo

L'utente ha fornito queste informazioni:
---------------------------------------------------
Nome: borgo
Cognome: italia
E-mail: [email protected]
---------------------------------------------------
nel nezzo di camin di nostra vita
mi ritrovai per una selva oscura
che la diritta via era smarrita
---------------------------------------------------
Inviato il 07.05.2010 ore 07:25:36
da indirizzo IP dell'utente 127.0.0.1

poi marcogarzia ha ragione per lo strip_tag, lo metto e ti riinvio, visto che ci sono vedo di aggiungerti un piccolo antispam.
 
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
et voila!
ricarica la pagina e la cartella coi numeri (per l'antispam).
pagina e cartella devono essere assieme.
ricordati di correggere il tuo indirizzo email
 

marcopupi

Nuovo Utente
3 Mag 2010
26
0
0
non lo riesco a inviare
mi dice :
Your message

To: [email protected]
Subject:

did not reach the following recipient(s):

[email protected] on Fri, 7 May 2010 13:58:31 +0200
This message is larger than the current system limit or the recipient's mailbox is full. Create a shorter message body or remove attachments and try sending it again.
<FBCMCL01B02.fbc.local #5.2.3>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
cosa non riesci ad inviare?
il form che ti ho mandato non invia a me ma alla tua email
o forse parli di qualcosa che volevi inviarmi?
 
Discussioni simili
Autore Titolo Forum Risposte Data
C Creare una form con pulsanti di scelta macro Visual Basic 1
B Creare form contatti con php PHP 4
Cosina Creare bottone delete in form upload PHP 5
Cosina Creare bottone delete in form upload PHP 1
L creare oggetti da una classe tramite un form Javascript 0
B [PHP] Creare PDF dopo inserimento dati form PHP 4
D [PHP] Consigli su come creare form PHP 1
T [PHP] Creare Honeypot per form contatti PHP 10
sandropochi [PHP] Form per creare filtro di ricerca su DB PHP 8
S Concatenare due campi di un form per creare un indirizzo web valido Javascript 7
A Creare da form un PDF da inviare come allegato. PHP 1
P Creare form e inviare via mail HTML e CSS 2
E creare un form Presentati al Forum 3
M creare form in un popup HTML e CSS 1
L creare pagine php in modo automatico attraverso form PHP 1
J Creare form registriazione PHP 2
Jam1 Errore nel creare miniature da immagini caricate su un mio form PHP 0
D Come creare validazione form istantanea?? Javascript 1
M Creare un form HTML e CSS 3
M come creare un form di contatto. PHP 19
ypsilon86 Da un FORM creare una Tabella dinamica PHP 7
M liberia fpdf creare form che al premere al bottone di sumit mi crei il pdf PHP 0
P Creare un form in un sito wordpress WordPress 12
J Creare file html da un form in area riservata PHP 9
N creare form a fasi PHP 3
A creare form mail PHP PHP 153
S Creare un form mail PHP 9
G Aiuto per creare un form di invio file Classic ASP 3
H Creare una pagina che si collega a keepvid. come impostare il form? HTML e CSS 3
P creare un form di invio dati PHP 2
I Creare un form di registrazione PHP 7
V AIUTO: creare file php x form PHP 2
E Creare un testo trasparente dietro un div HTML e CSS 5
M Creare traccia di download file sul server HTML e CSS 2
A Cerco programmatore/sviluppatore per creare forum Offerte e Richieste di Lavoro e/o Collaborazione 2
L Creare ancore interne alla pagina PHP 1
I Creare un banner temporaneo JavaScript Javascript 0
C Creare Tabella Dati Meteo prelevandoli da dei Tags in un altro foglio PHP 27
simgia Cordova errore quando cerco di emulare o creare la app Sviluppo app per Android 2
U PHP creare un file excel dopo ricerca nel DB PHP 0
A Creare un cronometro PHP 5
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
F Creare elementi html con javascript Javascript 3
Shyson Modificare codice e creare link PHP 0
M Creare un campo input select quantità di un numero intero prelevato dal db PHP 3
L Creare una forma geometrica Photoshop 1
M [Cerco] aiutanti per creare sito Offerte e Richieste di Lavoro e/o Collaborazione 8
S Libreria PHP per creare file dwg o dxf PHP 0
R Come creare sistema Add to homescreen PHP 3
L Creare un countdown con giorno specifico della settimana PHP 3

Discussioni simili