Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Aiuto per form cdosys

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    46

    Aiuto per form cdosys

    Ciao a tutti,
    uso il form cdosys scaricato da aruba che riporto sotto, avrei una necessità: è possibile modificarlo in modo che se un campo non obbligatorio viene lasciato vuoto, nella mail che ricevo compaia comunque, in corrispondenza di tale campo, un testo, tipo non compilato?
    Grazie per l'attenzione.

    Questa è la pagina HTML

    <HTML>
    <HEAD>
    <TITLE>modulo contatto cdosys formato html</TITLE>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
    <style type="text/css">
    A:link, A:visited { text-decoration: none }
    A:hover { text-decoration: underline }
    </style>
    <script language="JavaScript" 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 MM_validateForm() { //v4.0
    var i,p,q,nm,test,num,min,max,errors='',args=MM_valida teForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
    if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
    if (p<1 || p==(val.length-1)) errors+='- '+nm+' deve essere valida.\n';
    } else if (test!='R') { num = parseFloat(val);
    if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
    if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
    min=test.substring(8,p); max=test.substring(p+1);
    if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' campo obbligatorio.\n'; }
    } if (errors) alert('Inserire email valida:\n'+errors);
    document.MM_returnValue = (errors == '');
    }
    //-->
    </script>
    </HEAD>
    <BODY BGCOLOR=#FFFFFF text="#333333">
    <div align="center">
    <table width="715" border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td width="63%" valign="top">
    <table border="0" cellpadding="0" cellspacing="0" width="40%" align="center">
    <tr>
    <td width="100%">
    <form action="formcdosys.asp" method="post" name="form1" onSubmit="MM_validateForm('Nome','','R','Cognome', '','R','email','','RisEmail');return document.MM_returnValue">
    <table width="361" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td width="170"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#333333">Nome *</font></td>
    <td width="191"><font color="#333333" size="2" face="Verdana, Arial, Helvetica, sans-serif">
    <input type="text" name="nome" size="20">
    </font></td>
    </tr>
    <tr>
    <td width="170"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#333333">Cognome *</font></td>
    <td width="191"><font color="#333333" size="2" face="Verdana, Arial, Helvetica, sans-serif">
    <input type="text" name="cognome" size="20">
    </font></td>
    </tr>
    <tr>
    <td width="170"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#333333">Telefono</font></td>
    <td width="191"><font color="#333333" size="2" face="Verdana, Arial, Helvetica, sans-serif">
    <input type="text" name="tel" size="20">
    </font></td>
    </tr>
    <tr>
    <td width="170"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#333333">E-mail
    *</font>
    </td>
    <td width="191"><font color="#333333" size="2" face="Verdana, Arial, Helvetica, sans-serif">
    <input type="text" name="email" size="20">
    </font></td>
    </tr>
    <tr>
    <td width="170">
    <font size="2" color="#333333" face="Verdana, Arial, Helvetica, sans-serif">
    provenienza</font>
    </td>
    <td width="191"><font color="#333333" size="2" face="Verdana, Arial, Helvetica, sans-serif">
    <input type="text" name="provenienza" size="20">
    </font></td>
    </tr>
    <tr>
    <td width="170"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#333333">Messaggio</font></td>
    <td width="191">
    <font size="1" color="#333333" face="Verdana, Arial, Helvetica, sans-serif">
    <textarea name="messaggio" rows="5" cols="33" wrap="VIRTUAL"></textarea>
    </font> </td>
    </tr>
    </table>
    <p align="center">
    <font size="1" color="#333333" face="Verdana, Arial, Helvetica, sans-serif">
    <input type="submit" name="Submit" value="Contatto">
    </font> </p>
    </form>


    <font size="2" face="Verdana, Arial, Helvetica, sans-serif">* richiesto
    </font> </td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    </div>
    </BODY>
    </HTML>


    Questo è il file formcdosys.asp



    <%
    '============Linkbruttocane su specifiche MSDN================
    '* il corpo finale del messaggio contiene tutti i campi *
    '* inseriti nella pagina html, in pratica puoi mettere *
    '* tutti i campi che ti servono nel modulo di invio senza *
    '* fare altre configurazioni aggiuntive. *
    '================================================= ============

    DIM corpoMessaggio, numeroCampi, invioA, invioDa, nomeDominio, indirizzoIp, modulo, browserSistemaOperativo

    '* voce da modificare con il proprio indirizzo email

    invioA = "miacasella@miodominio.it"

    '* voce da modificare con un indirizzo email che funga da mittente:
    '* in caso di errore riceverete notifica a questo indirizzo un MAILER-DAEMON
    '* dato che cdosys supporta questa notifica

    invioDa = "emailmittente@technet.it"

    '------------fine modifiche necessarie------------------

    nomeDominio = Request.ServerVariables("HTTP_HOST")
    indirizzoIp = Request.ServerVariables("REMOTE_ADDR")
    modulo = Request.ServerVariables("HTTP_REFERER")
    browserSistemaOperativo = Request.ServerVariables("HTTP_USER_AGENT")

    '*rilevo i campi del form

    FOR numeroCampi = 1 TO (Request.Form.Count() - 1)
    IF NOT Request.Form(numeroCampi) = "" THEN
    corpoMessaggio = corpoMessaggio & vbCrLf & Request.Form.Key(numeroCampi) & " = " & Trim(Request.Form(numeroCampi))
    END IF
    NEXT

    '* creo gli oggetti cdosys sul server e li gestisco

    DIM iMsg, Flds, iConf

    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
    Set Flds = iConf.Fields

    Flds(cdoSendUsingMethod) = cdoSendUsingPort
    Flds(cdoSMTPServer) = "smtp.aruba.it"
    Flds(cdoSMTPServerPort) = 25
    Flds(cdoSMTPAuthenticate) = cdoAnonymous ' 0
    Flds.Update

    With iMsg
    Set .Configuration = iConf
    .To = invioA
    .From = Request.Form("email")
    .Sender = invioDa
    .Subject = "Contatto dal dominio " & nomeDominio
    .TextBody = "Questi i dati inseriti nel modulo presente alla pagina " & modulo & " da utente con indirizzo IP " & indirizzoIp & " browser e sistema operativo " & browserSistemaOperativo & vbCrLf & corpoMessaggio & ""
    .Send
    End With
    %>
    <script>
    document.location.replace('grazie.asp');
    </script>

  2. #2
    Avresti dovuto postare nel forum ASP, comunque:

    codice:
    '*rilevo i campi del form
     
    FOR numeroCampi = 1 TO (Request.Form.Count() - 1)
     IF NOT Request.Form(numeroCampi) = "" THEN
     corpoMessaggio = corpoMessaggio & vbCrLf & Request.Form.Key(numeroCampi) & " = " & Trim(Request.Form(numeroCampi))
    ELSE
    corpoMessaggio = corpoMessaggio & vbCrLf & Request.Form.Key(numeroCampi) & " = Non compilato"  
     END IF
     NEXT

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    46
    Grazie sei stato gentilissimo,
    ancora una cosa, scusa se approfitto,
    si potrebbe fare la stessa cosa su un singolo campo?

    Ad esempio:

    .HTMLBody = "Nome:" & Request.Form("Nome") &""

    come sopra se non viene compilato restituisca non compilato .

    Grazie ancora.

    P.S. Per la sezione sbagliata mi scuso ma stavo leggendo un post nella sezione JavaScript e ho postato li erroneamente.

  4. #4
    Non c'è di che...
    codice:
    '*rilevo i campi del form
     
    FOR numeroCampi = 1 TO (Request.Form.Count() - 1)
     IF NOT Request.Form(numeroCampi) = "" THEN
     corpoMessaggio = corpoMessaggio & vbCrLf & Request.Form.Key(numeroCampi) & " = " & Trim(Request.Form(numeroCampi))
    ELSE
    nomeCampo=Request.Form.Key(numeroCampi)
    IF(nomeCampo="Nome" or nomeCampo="Cognome" or nomeCampo="Email")THEN'ecc.
       corpoMessaggio = corpoMessaggio & vbCrLf & Request.Form.Key(numeroCampi) & " = Non compilato"
    END IF  
     END IF
     NEXT
    Questo codice mette nella mail il "Non Compilato" solo per i campi "Nome", "Cognome" e "Email". Puoi aggiungere o togliere i campi che ti servono separandoli con "or".

    Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    46
    Grazie di tutto,
    solo un'ultima cosa (questa è davvero l'ultima ), sto creato un form con un campo nascosto, ma questo appare comunque nella mail che ricevo è possibile non visualizzarlo?

    Ciao.

  6. #6
    codice:
    '*rilevo i campi del form
     
    FOR numeroCampi = 1 TO (Request.Form.Count() - 1)
    IF(Request.Form.Key(numeroCampi)<>"nomeCampoHidden")THEN 
     IF NOT Request.Form(numeroCampi) = "" THEN
     corpoMessaggio = corpoMessaggio & vbCrLf & Request.Form.Key(numeroCampi) & " = " & Trim(Request.Form(numeroCampi))
    ELSE
    nomeCampo=Request.Form.Key(numeroCampi)
    IF(nomeCampo="Nome" or nomeCampo="Cognome" or nomeCampo="Email")THEN'ecc.
       corpoMessaggio = corpoMessaggio & vbCrLf & Request.Form.Key(numeroCampi) & " = Non compilato"
    END IF  
     END IF
    END IF 
     NEXT
    Puoi escludere altri campi usando "or" come per i campi "Non compilato".

    Ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    46
    Grazie,
    funziona, però se inserisco un secondo campo separato da or come mi hai detto, mi da errore, questo è quanto ho inserito:

    IF(Request.Form.Key(numeroCampi)<>"campo1" or "campo2")THEN

    sbaglio qualcosa?

  8. #8
    Originariamente inviato da enidel
    Grazie,
    funziona, però se inserisco un secondo campo separato da or come mi hai detto, mi da errore, questo è quanto ho inserito:

    IF(Request.Form.Key(numeroCampi)<>"campo1" or "campo2")THEN

    sbaglio qualcosa?
    Sì è sbagliata la condizione
    codice:
    IF(Request.Form.Key(numeroCampi)<>"campo1" or Request.Form.Key(numeroCampi)<>"campo2")THEN

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    46
    Originariamente inviato da lucavizzi
    Sì è sbagliata la condizione
    codice:
    IF(Request.Form.Key(numeroCampi)<>"campo1" or Request.Form.Key(numeroCampi)<>"campo2")THEN
    Ho provato, ma in questo caso mi mostra sia il campo1 che il campo2

    Edit:
    sostituendo or con and, tutto OK.

    Grazie di nuovo per la tua disponibilità.
    Ciao.

  10. #10
    Giusto, and...

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.