Salve a tutti, ho reso un sito da html a asp, senza pretese eh, anche perchè ho dovuto scegleire asp per questioni di hosting ed è un linguaggio che non conosco così ho dovuto imparar le due cose che mi servivano...
Ora mi trovo a dover organizzare un form di contatto (quelli del tipo "lavora con noi") e la realtiva pagina che cattura i dati dal form e li invia via email.
Ho alcuni problemi da risolvere e quindi vi posto i codici.
Premetto che in questo form nella sua parte centrale deve cambiare a seconda della pagina d provenienza (e questa cosa accade correttamente) perchè vengono visualizzati alcuni campi se la persona che compila il form si sta proponendo per il lavoro nella parte commerciale, tecnica o di rivenditore (alcuni esempi...).
Ecco i codici: (per comodità di forum dei campi che la pagina raccoglie correttamente metto solo i fondamentali, altri li ometto lasciando spazio a quelli che mi creano problemi)
Il form:
Codice PHP:
<form method="post" name="inviacurriculum" id="inviacurriculum" action="inviomail.asp" >
<fieldset id="anagrafe">
<legend>[b]DATI PERSONALI[/b]</legend>
<label for="cognome">* Cognome: </label> <input name="cognome" size="30" tabindex="1" id="cognome" />
<label for="email">* E-mail: </label> <input name="email" size="30" tabindex="6" id="email" />
<label for="cognome">* Tel: </label> <input name="tel" size="30" tabindex="7" id="telefono" /> [no spazi o separatori]
</fieldset>
(omessi dati come nome, sesso ecc che non servivano qui)
<fieldset id="ruolo">
<legend>[b]RUOLO[/b]</legend>
<%if request("jobform")="formcommerciale" then %>
<input name="tipo_contatto" type="hidden" value="contatto_commerciale" />
(questo campo lo ho messo per capire dopo nell'invio email che sezione specifica devo controllare e quindi inviare per email solo i campi di quella sezione)
<label for="arealavoro">Area di lavoro: </label> [b] COMMERCIALE [/b]
<label for="lingue">Lingue straniere conosciute: (se di sufficiente livello sia scritto che orale)</label>
<input name="lingua" id="lingua" type="checkbox" tabindex="8" value="Inglese" /> Inglese
<input name="lingua" id="lingua" type="checkbox" tabindex="8" value="Francese" /> Francese
<input name="lingua" id="lingua" type="checkbox" tabindex="8" value="Tedesco" /> Tedesco
Olandese
<input name="lingua" id="lingua" type="checkbox" tabindex="8" value="Altro" /> Altro (specificare nel campo Note)
</fieldset>
<%end if%>
<%if request("jobform")="formtecnico" then %>
<input name="tipo_contatto" type="hidden" value="contatto_tecnico" />
<label for="arealavoro">Area di lavoro: </label> [b] TECNICO [/b]
<%end if%>
<%if request("jobform")="formrivenditore" then %>
<input name="tipo_contatto" type="hidden" value="contatto_rivenditore" />
<label for="arealavoro">Area di lavoro: </label> [b] RIVENDITORE DI ZONA [/b]
<label for="regione">Regione:</label>
<input name="regione" id="regione" type="checkbox" tabindex="8" value="Abruzzo" /> Abruzzo
<input name="regione" id="regione" type="checkbox" tabindex="8" value="Calabria" /> Calabria
<input name="regione" id="regione" type="checkbox" tabindex="8" value="Campania" /> Campania
<input name="regione" id="regione" type="checkbox" tabindex="8" value="Emilia-Romagna" /> Emilia-Romagna
[ecc ecc]
<input name="regione" id="regione" type="checkbox" tabindex="8" value="Estero" /> STATI ESTERI (specificare nella sezione Note)
<%end if%>
<label for="note">Note</label>
<textarea id="note" cols="60" rows="10" tabindex="9"> </textarea>
<label for="carica">Carica il tuo Curriculum Vitae:</label> <input name="upload" type="file" id="file" tabindex="10" size="30" />
</fieldset>
<fieldset id="autorizza">
<input type="submit" id="submit" tabindex="11" value="Invia richiesta" />
<input type="reset" id="reset" tabindex="12" value="Cancella" />
</fieldset>
</form>
Bene, ora la relativa pagina INVIOMAIL.ASP. Il codice non è mio ma son partito da una base trovata in internet a cui ho aggiunto i campi che mi servivano e iserito gli if di controllo e il body della mail.
Codice PHP:
<%
Option Explicit
dim fCognome, fNome, fSesso, fDatanascita, fEmail, fTel, fTipocontatto, fNote
(alcuni campi non li vedete nel form di prima perchè tanto li legge correttamente e ho risparmiato righe inutili da farvi leggere)
fCognome = Request.Form("cognome")
fNome = Request.Form("nome")
fSesso = Request.Form("sesso")
fDatanascita = Request.Form("datanascita")
fEmail = Request.Form("email")
fTel = Request.Form("tel")
fTipocontatto = Request.Form("tipo_contatto") [legge il campo hidden di cui parlavo sopra per indicare nella mail per che sezione lavorativa si propone la persona]
fNote = Request.Form("notevarie")
[manca la cosa dell'allegare il file che non so come si fa con asp]
if fTipocontatto="contatto_commerciale" then
dim fLingua
fLingua = Request.Form("lingua")
end if
'if fTipocontatto="contatto_tecnico" then
[devo ancora decidere qui che campi inserire per la parte tecnica così intanto lascio il codice commentato]
'end if
if fTipocontatto="contatto_rivenditore" then
dim fRegione
fRegione = Request.Form("regione")
end if
response.write fCognome + " " + fNome + " " + fSesso + " " + fDatanascita + " " + fEmail + " " + fTel + " " + fTipocontatto + " lingua:" + fLingua + " regione:" + fRegione + " note:" + fNote
dim oMail
Set oMail = Server.CreateObject("CDONTS.NewMail")
oMail.To = "***@***.it"
oMail.From = "+++@+++.it"
oMail.Subject = "email di prova"
oMail.Body = "Nuova proposta
" &_
"Tipo di contatto: " + fTipocontatto + "
" &_
"Cognome: " + fCognome + "
" &_
"Nome: " + fNome + "
" &_
"Sesso: " + fSesso + "
" &_
"Data di nascita: " + fDatanascita + "
" &_
"Email: " + fEmail + "
" &_
"Tel: " + fTel + "
" &_
"Informazioni specifiche di sezione:
"
if fTipocontatto = "contatto_commerciale" then
oMail.Body = oMail.Body + "Lingue conosciute: " + fLingua + "
"
end if
'if fTipocontatto = "contatto_tecnico" then
'end if
if fTipocontatto = "contatto_rivenditore" then
oMail.Body = oMail.Body + "Zone di interesse: " + fRegione + "
"
end if
oMail.Body = oMail.Body + "
" &_
"Note: " + fNote + "
" &_
"FINE DATI EMAIL"
oMail.Importance = 1 ' 0=bassa, 1=normale , 2=alta
oMail.BodyFormat = 0 ' 0=HTML, 1=testo
oMail.MailFormat = 1 ' 0=MIME , 1=testo
oMail.Send
Set oMail = Nothing
response.write "Messaggio inviato"
%>
Ora i problemi che ho sono:
1. quando invio il form a video come vedete stampo (per controllo in fase di progettazione) i dati letti dal form. Lui legge le lingue e le regioni, quindi riconosce le "sezione di provenienza" (commerciale ecc) però non legge la textarea note, anche se nel form scrivo qualcosa nella textarea Note lui non me la stampa dopo a video, quindi non la riceve e non capisco il perchè.
2. sempre quando premo invia nel form a video compare sempre un errore,
Microsoft VBScript runtime error '800a01b6'
Object doesn't support this property or method: 'Body'
inviomail.asp, line 75
che si riferisce in questo caso alla porzione di codice con l'ultimo if di controllo (in base alla sezione ovviamente), in sto caso
Codice PHP:
if fTipocontatto = "contatto_rivenditore" then
oMail.Body = oMail.Body + "Zone di interesse: " + fRegione + "
"
end if
sempre qualla dove c'è sto oMail.Body insomma... e non capisco cosa sia.
i "&_" servono per andare a capo con il codice e non credo sia sbagliato quello, no?
3. Non invia la mail perchè non stampa mai a video la conferma e quindi non esegue nemmeno l'istruzione "response.write "Messaggio inviato" "
4. la mail, impostata come html dal parametro "oMail.BodyFormat = 0 ' 0=HTML, 1=testo" ho provato una volta a levare tutti gli if di controllo che danno problemi (vedi punto 2) e non mi arriva come html, ossia io nel testo della mail leggo "
" quando invece dovrei vederne il risultato, ossia un a capo. Come mai?
5. Non ho idea di come si possa fare per l'allegare un file, ma prima spero di poter risolvere gli altri 4 punti
So che ho scritto tanto e lungo ma ho cercato di essere il più chiaro possibile, se non ho ben spiegato qualcosa ditemelo che cercherò di chiarire.
Spero che qualcuno mi aiuti così che riesca a risolvere