Dreamweaver: modulo php per prenotazioni

Di: webby81 | 26/09/2020 17:14:56
salve, sto cercando di realizzare un modulo con dei campi da riempire per prenotazioni in dreamweaver, e vorrei che questo modulo facesse qunto richiesto dal codice php ma ciò nn accade inoltre vorrei anche che fosse inviata all'utente che prenota una mail di conferma avvenuta prenotazione ma ciò nn avviene
qualcuno mi puo aiutare a realizzare il mio progetto?
grazie per la vostra eventule collaborazione
ecco quello che sono riuscita a realizzare in dreamweaver:
<html>
<head>
<title> prnotazioni</title>
<div align="center"><font color="#0000FF" size="+2">PRENO<font color="#FF6600">TAZIO</font>NI</font>
</div>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<font size="+2"></head> <body bgcolor="#FFFF00"> </font>
<form name="form1" method="POST" action="invia.php">
<table width="596" height="310" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#0000FF" bgcolor="#FFFF00">
<tr>
<td width="183"><div align="center"><strong>Nome:</strong></div></td>
<td width="407"><input name="nome" type="text" id="nome" size="30" maxlength="30"></td>
</tr>
<tr>
<td height="26"><div align="center"><strong>Cognome:</strong></div></td>
<td><input name="cognome" type="text" id="cognome" size="30" maxlength="30"></td>
</tr>
<tr>
<td><div align="center"><strong>Indirizzo-E- mail</strong></div></td>
<td><input name="emai" type="text" id="emai" size="30" maxlength="30"></td>
</tr>
<tr>
<td><div align="center"><strong>Età </strong></div></td>
<td>Maggiorenne
<input type="checkbox" name="checkbox" value="checkbox">
Minorenne
<input type="checkbox" name="checkbox2" value="checkbox"></td>
</tr>
<tr>
<td><div align="center"><strong>Sesso:</strong></div></td>
<td>M
<input name="maschio" type="checkbox" id="maschio" value="checkbox">
F
<input name="femmina" type="checkbox" id="femmina" value="checkbox"></td>
</tr>
<tr>
<td><div align="center"><strong>Accompagnatore:</strong></div></td>
<td>SI
<input name="si" type="checkbox" id="si" value="checkbox" checked>
NO
<input name="no" type="checkbox" id="no" value="checkbox"> </td>
</tr>
<tr>
<td><div align="center"><strong>NomeAccompagnatore:</strong></div></td>
<td><input name="nomeaccompagnatore" type="text" id="nomeacc2" size="30" maxlength="30"></td>
</tr>
<tr>
<td><div align="center"><strong>CognomeAccompagnatore:</strong></div></td>
<td><input name="cogaccompagnatore" type="text" id="cogaccompagnatore" size="30" maxlength="30"></td>
</tr>
<tr>
<td height="44"> </td>
<td bordercolor="#0000FF" bgcolor="#FFFF00"> <input type="button" name="Submit" value="Invia">
<input name="Reset" type="submit" id="Reset" value="Cancella"> </td>
</tr>
</table>
</form>
</body>
</html>
ecco il codice php:
<?PHP
// Processo di recupero dei dati
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$email = $_POST['email'];
£maggiorenne = $_POST['maggiorenne'];
£minorenne = $_POST['maggiorenne']
$maschio = $_POST['maschio'];
$femmina = $_POST['femmina'];
£si = $_POST['si'];
£no = $_POST['no'];
$nomeaccopagnatore = $_POST['nomeaccopagnatore'];
$cognomeaccopagnatore = $_POST['cognomeaccopagnatore'];
// Configuro il testo del messaggio che apparirà all'amico
$messaggio = " prenotazione $nome, $cognome, $si, $no, $nomeaccopagnatore,
$cognomeaccopagnatore";
// Processo di controllo [Opzionale]
if ($nome==null)
{
echo ("Errore: compilare il campo 'Nome'");
}
else
{
if ($cognome==null)
{
echo ("Errore: compilare il campo 'Cognome'");
}
else
{
if ($email==null)
{
echo ("Errore: compilare il campo 'indirizzo e-mail'");
}
else
if ($si==null)
{
else
{
if ($no==null)
{
echo ("Errore: spuntare il campo 'si',O 'no");
}
else
{
if ($nomeaccopagnatore==si)
{
echo ("Errore: compilare il campo 'nomeaccompagnatore e il campo 'cognomeaccopagnatore '");
}
else
{
if(
echo ("E-mail inviata con successo");
}
else
{
echo ("Errore interno durante l'invio...");
?>
dove ho sbagliato?, come devo correggere

Risposte


risposta

ok grazie dell'aiuto cosa significa:
$footer="______________"; cosa devo mettere?

Di: webby81 | 26/09/2020 17:14:56


Niente si tratta semplicemente della linea che apparirà nella mail.
Fa una cosa, copiati i seguenti codici e avrai un modulo dati decente.
Codice HTML
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>FORM INVIO RICHIESTA</title>
<style type="text/css">
<!--
body {
background-color: #FFFF00;
}
.brd {
border: 3px solid #990000;
background-color: #CCCCCC;
}
.campi {
font-family: Geneva, Arial, Helvetica, sans-serif;
font-size: 11px;
color: #0000CC;
width: 180px;
border: 1px solid #999999;
padding-left: 2px;
}
.etichette {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
color: #333333;
}
.space_10 {
line-height: 10px;
height: 10px;
}
.tasto {
cursor: pointer;
font-family: Arial, Helvetica, sans-serif;
font-size: 11px;
color: #333333;
}
.txtfieldobb {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
color: #990000;
}
.Stile1 {font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #333333; font-weight: bold; }
-->
</style>
<script type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function YY_checkform() { //v4.71
//copyright (c)1998,2002 Yaromat.com
var a=YY_checkform.arguments,oo=true,v='',s='',err=false,r,o,at,o1,t,i,j,ma,rx,cd,cm,cy,dte,at;
for (i=1; i<a.length;i=i+4){
if (a[i+1].charAt(0)=='#'){r=true; a[i+1]=a[i+1].substring(1);}else{r=false}
o=MM_findObj(a[i].replace(/\\[\\d+\\]/ig,""));
o1=MM_findObj(a[i+1].replace(/\\[\\d+\\]/ig,""));
v=o.value;t=a[i+2];
if (o.type=='text'||o.type=='password'||o.type=='hidden'){
if (r&&v.length==0){err=true}
if (v.length>0)
if (t==1){ //fromto
ma=a[i+1].split('_');if(isNaN(v)||v<ma[0]/1||v > ma[1]/1){err=true}
} else if (t==2){
rx=new RegExp("^[\\\\w\\.=-]+@[\\\\w\\\\.-]+\\\\.[a-zA-Z]{2,4}$");if(!rx.test(v))err=true;
} else if (t==3){ // date
ma=a[i+1].split("#");at=v.match(ma[0]);
if(at){
cd=(at[ma[1]])?at[ma[1]]:1;cm=at[ma[2]]-1;cy=at[ma[3]];
dte=new Date(cy,cm,cd);
if(dte.getFullYear()!=cy||dte.getDate()!=cd||dte.getMonth()!=cm){err=true};
}else{err=true}
} else if (t==4){ // time
ma=a[i+1].split("#");at=v.match(ma[0]);if(!at){err=true}
} else if (t==5){ // check this 2
if(o1.length)o1=o1[a[i+1].replace(/(.*\\[)|(\\].*)/ig,"")];
if(!o1.checked){err=true}
} else if (t==6){ // the same
if(v!=MM_findObj(a[i+1]).value){err=true}
}
} else
if (!o.type&&o.length>0&&o[0].type=='radio'){
at = a[i].match(/(.*)\\[(\\d+)\\].*/i);
o2=(o.length>1)?o[at[2]]:o;
if (t==1&&o2&&o2.checked&&o1&&o1.value.length/1==0){err=true}
if (t==2){
oo=false;
for(j=0;j<o.length;j++){oo=oo||o[j].checked}
if(!oo){s+='* '+a[i+3]+'n'}
}
} else if (o.type=='checkbox'){
if((t==1&&o.checked==false)||(t==2&&o.checked&&o1&&o1.value.length/1==0)){err=true}
} else if (o.type=='select-one'||o.type=='select-multiple'){
if(t==1&&o.selectedIndex/1==0){err=true}
}else if (o.type=='textarea'){
if(v.length<a[i+1]){err=true}
}
if (err){s+='* '+a[i+3]+'n'; err=false}
}
if (s!=''){alert('Attenzione i dati sono incompleti o contengono errori:\\t\\t\\t\\t\\t\\n\\n'+s)}
document.MM_returnValue = (s=='');
}
//-->
</script>
</head>
<body>
<form action="mail_result.php" method="post" name="form1" id="form1" onSubmit="YY_checkform('form1 ','Nome','#q','0','Il campo Nome è obbligatorio.','Cognome','#q','0','Il campo Cognome è obbligatorio.','Email','#S','2','Il campo Email è obbligatorio.','Maggiorenne[0]','#q','2','Selezionare il pulsante di scelta Maggiorenne Si o No.','Sesso[0]','#q','2','Selezionare il pulsante di scelta Sesso Maschio o Femmina.','Accompagnatore[0]','#q','2','Selezionare il pulsante di scelta Accompagnatore Si o No.','Nome_Accompagnatore','#q','0','Il campo Nome Accompagnatore è obbligatorio.','Cognome_Accompagnatore','#q','0','Il campo Cognome Accompagnatore è obbligatorio.');return document.MM_returnValue">
<table width="500" border="0" align="center" cellpadding="4" cellspacing="4" class="brd">
<tr>
<td align="right" class="etichette"><strong>Nome:</strong></td>
<td width="50%"><input name="Nome" type="text" class="campi" id="Nome" /></td>
</tr>
<tr>
<td align="right" class="etichette"><strong>Cognome:</strong></td>
<td><input name="Cognome" type="text" class="campi" id="Cognome" /></td>
</tr>
<tr>
<td align="right" class="etichette"><strong>Indirizzo e-mail:</strong></td>
<td><input name="Emai" type="text" class="campi" id="Emai" /></td>
</tr>
<tr>
<td align="right" class="etichette"><strong>Età:</strong></td>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="33%" class="etichette">Maggiorenne</td>
<td width="7%" align="center" class="etichette"><strong>Si </strong></td>
<td width="9%"><input name="Maggiorenne" type="radio" value="si" /></td>
<td width="22%" class="etichette"> </td>
<td width="8%" align="right" class="Stile1">No </td>
<td width="21%"><input name="Maggiorenne" type="radio" value="no" /></td>
</tr>
</table></td>
</tr>
<tr>
<td align="right" class="etichette"><strong>Sesso:</strong></td>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="24%" class="etichette">Maschio</td>
<td width="10%"><input name="Sesso" type="radio" value="maschio" /></td>
<td width="31%" align="right" class="etichette">Femmina</td>
<td width="35%"><input name="Sesso" type="radio" value="femmina" /></td>
</tr>
</table></td>
</tr>
<tr>
<td align="right" class="etichette"><strong>Accompagnatore:</strong></td>
<td><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="8%" class="Stile1">Si</td>
<td width="22%"><input name="Accompagnatore" type="radio" value="si" /></td>
<td width="20%" align="right" class="Stile1">No</td>
<td width="50%"><input name="Accompagnatore" type="radio" value="no" /></td>
</tr>
</table></td>
</tr>
<tr>
<td align="right" class="etichette"><strong>Nome Accompagnatore:</strong></td>
<td><input name="Nome_Accompagnatore" type="text" class="campi" id="Nome_Accompagnatore" /></td>
</tr>
<tr>
<td align="right" class="etichette"><strong>Cognome Accompagnatore:</strong></td>
<td><input name="Cognome_Accompagnatore" type="text" class="campi" id="Cognome_Accompagnatore" /></td>
</tr>
<tr>
<td colspan="2" class="space_10"> </td>
</tr>
<tr>
<td align="right"><input type="submit" class="tasto" value="Invia" /></td>
<td><input name="Submit2" type="reset" class="tasto" value="Ripristina" /></td>
</tr>
<tr>
<td colspan="2" class="txtfieldobb">Tutti i campi sono obbligatori.</td>
</tr>
</table>
</form>
</body>
</html>
Codice php (file da chiamare mail_result.php)
<?
$MailToAddress = "info@tuamail.com"; // qua va messa l'email del sito
$MailFromAddress = $Email;
$MailSubject = "Utente che chiede...."; //questo esce nell'oggetto della mail
if (!$MailFromAddress) {
$MailFromAddress = "info@web.com"; //qua può essere ripetuta l'email o parte di essa, è da chi la riceviamo
}
$Header = "Utente che desidera informazioni..."; //questa parte esce nell'intestazione dell'email
$Footer = "_______________________________________"; // questa riga esce alla fine dell'email
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtm">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Risultato e-mail</title>
<style type="text/css">
<!--
.Stile1 {color: #FF0000}
.Stile2 {
font-family: "Trebuchet MS";
font-size: 12px;
color: #FF0000;
font-weight: bold;
}
.stile3 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 9px;
color: #FF9900;
font-weight: bold;
}
.CORPOMAIL {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000099;
}
.stile4 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
color: #000000;
font-weight: bold;
}
-->
</style>
</head>
<body>
<table width="100%" border="0">
<tr>
<td align="center"><h2>Risultato della Mail </h2></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td class="CORPOMAIL"> <?
if (!is_array($HTTP_POST_VARS))
return;
reset($HTTP_POST_VARS);
while(list($key, $val) = each($HTTP_POST_VARS)) {
$GLOBALS[$key] = $val;
$val=stripslashes($val);
echo "<b><font color= #000000>$key</font></b> = $val
";
$Message .= "$key = $valn";
}
if ($Header) {
$Message = $Header."\n\\n".$Message;
}
if ($Footer) {
$Message .= "\n\\n".$Footer;
}
mail( "$MailToAddress", "$MailSubject", "$Message", "From: $MailFromAddress");
?></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="center" class="stile4">L'e-mail è stata inviata correttamente, sarete ricontattati al più presto.</td>
</tr>
<tr>
<td align="center" class="stile4"> </td>
</tr>
<tr>
<td align="center" class="stile4">Grazie.</td>
</tr>
</table>
</body>
</html>

Di: Gian Paolo | 26/09/2020 17:14:56


grazie sei stato gentilissimo!!!

Di: webby81 | 26/09/2020 17:14:56


Se te lo ricopi è meglio, ho dovuto sistemare delle cose che mi erano sfuggite.

Di: Gian Paolo | 26/09/2020 17:15:56


ma alla fine qualè il codice corretto da copiare l'ultimo o il secondo? in mezzo a tutti questi codici nn sto capendo nulla

Di: webby81 | 26/09/2020 17:15:56

problema risolto

ho capito cosa dovevo ricopiare, grazie è uscito benissimo!

Di: webby81 | 26/09/2020 17:15:56


scusa il ritardo ma solo ora ho scoperto che il codice php nn va in quanto nn ricevo nessuna mail di conferma prenotazione la versione di php che uso e la 5.2.1 come devo fare a risolvere il problema? , ho tentato di risolvere il problema ma nn ci sono riuscita puoi aiutarmi?

Di: webby81 | 26/09/2020 17:15:56


Non ti preoccupare, il PHP va benissimo. Quando metterai il sito on-line funzionerà. Probabilmente il tuo file php.ini locale non è settato per la "Mail function". Io ti consiglio di non toccarlo perché spesso, nonostante si mettano i parametri giusti, non funziona a causa della configurazione che si ha col proprio fornitore di posta. Le prove puoi tranquillamente farle una volta pubblicato il sito.

Di: Gian Paolo | 26/09/2020 17:15:56


ok grazie, nn ci può essere un altro modo per vedere se funziona senza aspettare la publicazione del sito? te lo chiedo perchè una volta che il sito sarà pubblicato in internet il form dev'essere già in grado di ricevere la prenotazione e inviare una mail di conferma, proprio come avvene di solito nei forum:

Di: webby81 | 26/09/2020 17:15:56


Il form e il risultato della email funzioneranno esattamente come li hai settati, appena messo il sito on line.
Tuttavia se vuoi provare a manomettere il php.ini ti posso segnalare questa discussione che dovrebbe aiutarti sui parametri da configurarehttp://forum.html.it/forum/showthread.php?threadid=781563 mi raccomando di farti un backup del file, in caso di errore puoi sempre ripristinarlo.
Se hai già una tua area sul web, potresti provare i due file interessati, senza necessariamente caricare l'intero sito.

Di: Gian Paolo | 26/09/2020 17:15:56

risposta

ho già una mi area sul web con un server fittizio di prova: localhost, ho già provato mettendo il mio indirizzo e-mail nella variabile del destinatario ma nn va purtroppo, grazie per il ilnk
ti faccio sapere come va, a presto

Di: webby81 | 26/09/2020 17:16:56

risposta

ho provato ad impostare il php.ini cosi:
mail function]
; For Win32 only.
;SMTP = localhost
SMTP = out.alice.it
; For Win32 only.
sendmail_from = mioindirizzo@alice.it
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path
ma nn va perchè?
p.s. ovviamente ho messo il mio indirizzo anche in $MailToAddress

Di: webby81 | 26/09/2020 17:16:56


Te l'avevo detto che quasi sicuramente non ti funzionava. Siccome dici di aver messo i file su un'area remota e nemmeno ti funziona, suppongo che questa non supporti php.
Se vuoi provarlo sulla mia area è necessario che tu mi dia una tua email, che puoi mandare attraverso il tuo stesso modulo http://starweb.starnet.it/gianpaolo/forum/moduli/ e che io configurerò in modo che i dati arrivino a te... se vuoi creare una email apposita hai tutto il tempo.
P.S.
Ho cancellato il vecchio post, altrimenti questa pagina diventa interminabile.

Di: Gian Paolo | 26/09/2020 17:16:56

risposta

grazie sei sempre gentilissimo, ti posso assicurare che il mio php funziona ho provato altri script php nn inerenti alla mail è vanno benissimo.
p.s. tu che versione di php usi?
p.s. ho cliccato sul tuo link inserendo i dati nei vari campi, premendo il tasto invia mi esee una schermata con su scritto in grande risultato della mail poi sotto di lato tutti i dati richiesti da me inseriti e sotto la scritta"L'e-mail è stata inviata correttamente, sarete ricontattati al più presto."
Grazie.
A me invece esce solo la sritta risultato della mail in grande e sotto la scritta:L'e-mail è stata inviata correttamente, sarete ricontattati al più presto.
Grazie.
Perchè?
inotre avrei voluto che il sistema funzionasse diversamente, nel senso che avrei voluto che i dati nn co mparissero a video,ma che subito dopo l'invio mi arrivasse una mail con su scritto:
"Complimenti la sua prenotazione è statta effettuata alle ore 17:45", è sotto i dati da me inseriti nel form, è possiblile fare questo?

Di: webby81 | 26/09/2020 17:16:56


Se non ti sono comparsi i dati a sinistra è sintomo che qualcosa non va. La tua email mi è arrivata correttamente. Per quanto riguarda i dati a video si tratta solo del tipo di impostazione, che puoi cambiare a tuo piacimento. Adesso configuro il file in modo che arrivino a te i dati poi mi fai sapere. Io uso PHP 5.1.2

Di: Gian Paolo | 26/09/2020 17:16:56

risposta

anche io per essere piu precisa ti metto tutta la dicitura:
eccola:
mysql-essential-5.1.21-beta-win32.msi
nn mi e arrivato ancora nulla dei dati.

Di: webby81 | 26/09/2020 17:16:56


Scusa ma mysql-essential non si riferisce al database?
Comunque ancora niente?
Prova questa soluzione: nel file mail_result.php intercetta le variabili $HTTP_POST_VARS e cambiale in $_POST. Vedi cosa succede.

Di: Gian Paolo | 26/09/2020 17:16:56


hai ragione ho sbagliato io, la versione è come la tua, per quanto riguarda la mail nn mi è ancora arrivata ma credo di aver risolto il problema: facendo la prova con un altro modulo e un atro script php, che ho trovato in un sito internet, facendo le oppatune modifiche ho provato a fare vari tentativi, inserendo tutti i dati e premendo il tato invia mi usciva sempre la scritta e-mail nn inviata"
poi mi è vento il dubbio che nn avessi configurato bene il php.ini infatti cercando in internet nei vari forum ho trovato quesi semplici consigli:
1- chiudi outlook che è assolutamente inutile per quello che stiamo a fare
2- informati su qual'è la tua connessione internet
3- cerca con google o chiedi a qualcuno li da te l'smtp associato a quella connessione internet
4- cerca sul tuo hard disk php.ini
5- trovato il php.ini aprilo con notepad (blocco note) o altro editor
6- cerca la riga con su scritto "SMTP = ...." (i puntini li ho messi io)
7- se sfortunatamente prima di SMTP ci dovesse essere un ; (puntoevirgola) cancellalo
8- scrivi dopo l'uguale (=) l'smtp della tua connessione (quello del punto 3)
9- salva il php.ini
10- riavvia apache (o se non ci sta nessun pulsante per tale operazione riavvia il tuo PC)
qundi ho configurato così:
[mail function]
; For Win32 only.
SMTP = localhost
SMTP = MIO SMTP
smtp_port = 25
sendmail_from = me@example.com[/b]
poi ho provato ad inviare i dati ed è andato tutto bene.

Di: webby81 | 26/09/2020 17:16:56


Perfetto! Sono contento per te che finalmente hai risolto. Cosa dirti, evidentemente per questione di configurazione, credo, il mio script non ne vuole sapere di girare sul tuo sistema. Misteri dell'informatica

Di: Gian Paolo | 26/09/2020 17:16:56


grazie, mi conforta il fatto di sapere che questo nn è solo un mio problema.
alla prossima! se ci sono altri eventuali problemi, ti ricontatto.

Di: webby81 | 26/09/2020 17:17:56

nuovo problema con modulo

ciao scusami se ti ricontatto dopo tanto tempo, purtroppo ho avuto problemi con lo script php, perchè nn riuscivo ad fare inviare le email ai diversi utenti che prenotavano.
Ora ci sono riuscita, ma per farlo ho dovuto realizzare tre script php. Mi chiedevo se fosse possibile raggruppare questi tre script php in un unico file php.
Scrivo ancora qua perchè il problema riguarda sempre il modulo.

Di: webby81 | 26/09/2020 17:17:56