Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    272

    problema con invio parametri

    Ciao a tutti,
    ho questo problema:
    in una pagina web ho un modulo che deve sia inserire dei dati in un db, sia inviare un'email che indica una nuova registrazione.
    Il modulo insert mi viene generato automaticamente da Dreamweaver:
    [scrivo le parti essenziali]

    <form name="register" method="POST" action=" <%= MM_editAction %> ">
    <input name="nome" type="text" class="testo" id="nome"> nome
    <input name="cognome" type="text" class="testo" id="cognome"> cognome
    <input type="image" src="immagini/+.gif">
    <input type="hidden" name="MM_insert" value="register">
    </form>


    codice asp [parte essenziale]

    <%
    ' *** Insert Record: set variables

    If (CStr(Request("MM_insert")) = "register") Then

    MM_editConnection = MM_cnmain_STRING
    MM_editTable = "account2"
    MM_editRedirectUrl = "registerjet2.asp "
    MM_fieldsStr = "nome|value|cognome|value"
    MM_columnsStr "nome|',none,''|cognome"

    etc.etc
    %>

    La pagina registerjet2.asp deve raccogliere i dati e inviare un'email tramite CDONTS.NewMail che uso sempre.

    Dim strNome
    Dim strCognome


    strNome = Request.Form("nome")
    strCognome = Request.Form("cognome")


    Il problema non è nell'insert, ma nei dati che non vengono passati, evidentemente Request.Form non va bene, sapreste dirmi qualcosa?

  2. #2

    Re: problema con invio parametri

    Originariamente inviato da darlette
    Il modulo insert mi viene generato automaticamente da Dreamweaver:
    ...che brutta cosa ....

    cmq torniamo a noi....

    Hai postato il codice del form...come hai detto la pagina per L'INSERT nel DB ti funziona....giusto?

    per cui deduco che non rieci a spedire la mail giusto?
    Tanto...lo fanno tutti... posso farlo anche io vero?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    272
    già...i dati vengono inseriti tranquillamente, il problema credo sia nel fatto che la pagina registerjet2.asp viene richiamata da MM_editRedirectUrl = "registerjet2.asp" (e non tramite l'attributo action della form) e facendo le prove ho notato che i parametri (nome e cognome) non vengono passati.

  4. #4
    Per cui
    request.form("nome") etc...

    sono vuote giusto?

    uhmmm

    se ti serve inviare la mail all'ultimo iscritto....visto che inserisce senza problemi...recuperi i dati...aprendo la tab del DB e pescando l'ultimo record inserito e poi utilizzi quei dati...

    Ma come metodo è un po bruttino...




    Posta il codice completo della pagina va...
    Tanto...lo fanno tutti... posso farlo anche io vero?

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    272
    Il codice delle due pagine è lunghissimo.... sarebbe un pò complicato postarlo tutto, cmq quello della pagina che invia l'email è:


    <%@LANGUAGE="VBSCRIPT"%>

    <%
    Dim strNome
    Dim strCognome
    Dim strMittente
    Dim strEmailBody
    Dim strEmailA
    Dim strOS
    Dim strUrlAsp
    Dim strIP
    Dim strDominio
    Dim strForm
    Dim strServer
    Dim strOggetto

    strNome = Request.Form("nome")
    strCognome = Request.Form("cognome")
    strUser = Request.Form("user")
    strMittente = Request.Form("email")
    strEmailA = "info@email.it"

    strOggetto="Registrazione nuovo utente"
    strDominio = Request.ServerVariables("HTTP_HOST")
    strIP = Request.ServerVariables("REMOTE_ADDR")
    strForm = Request.ServerVariables("HTTP_REFERER")
    strOS= Request.ServerVariables("HTTP_USER_AGENT")
    strServer = Request.ServerVariables("SERVER_SOFTWARE")
    strUrlAsp = Request.ServerVariables("URL")

    'crea il corpo dell'email
    strEmailBody = strEmailBody & "Un nuovo utente si è registrato:" & vbCrLf
    strEmailBody = strEmailBody & strNome&" " &strCognome&"" & vbCrLf
    strEmailBody = strEmailBody & "I suoi dati sono i seguenti:" & vbCrLf
    strEmailBody = strEmailBody & "username:" &strUser&"" & vbCrLf
    strEmailBody = strEmailBody & "email:" &strMittente&"" & vbCrLf
    strEmailBody = strEmailBody & "L'utente non risulta ancora convalidato." & vbCrLf


    Set objEMail = Server.CreateObject("CDONTS.NewMail")
    objEMail.From = strMittente
    objEMail.To = strEmailA
    objEMail.Subject = strOggetto
    objEMail.Body = strEmailBody
    objEMail.Send
    Set objEMail = Nothing
    Response.Redirect "javascript:window.open('registrazione_ok.asp','re gistrazione_ok','width=400,height=360,toolbar=no,l ocation=no,status=no,menubar=no,scrollbars=yes,res izable=no');void(0);"
    %>

    La parte del modulo l'ho scritta sopra, ovviamente non tutti i dati perchè era troppo lunga

  6. #6
    Scusa io sono 1 pochino di gomma nel capire cosa fanno gli altri

    la prima cosa che ti chiedo è
    codice:
    Dim strNome
    Dim strCognome
    Dim strMittente
    Dim strEmailBody
    Dim strEmailA
    Dim strOS
    Dim strUrlAsp
    Dim strIP
    Dim strDominio
    Dim strForm
    Dim strServer
    Dim strOggetto
    ma lo hai scritto tu ho hai fatto dei click e lo ha scritto dreamweaver?
    ........è la stessa cosa di...
    codice:
    Dim strNome, strCognome, strMittente, strEmailBody, strEmailA, strOS, strUrlAsp, strIP, strDominio, strForm, strServer, strOggetto
    ma sono meno righe

    quello che vorrei vedere è l'insert into nella tabella....

    se possibile ...fai 1 pagina sola per l'insert into e per l'invio mail

    1 sola pagina...sopra l'insert into e sotto la spedizione della mail...

    sei su aruba?

    esempio
    codice:
    Dim nome
    
    nome = request.Form("nome")
    
    strSql = "INSERT INTO nome tabella " 
    strSql = strSql & "(nome) "
    strSql = strSql & " VALUES (" & (nome) & ")"
    cn.Execute strSql
    cn.Close()
    set cn = nothing
    
    ' ora spedisci la mail...se sei su aruba usa l'oggetto CDOSYS
    
    http://vademecum.aruba.it/start/contatto/contatto.htm
     
    %>
    Tanto...lo fanno tutti... posso farlo anche io vero?

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    272
    scusa sono tornata ora in ufficio...
    non sono su aruba...
    tu quindi mi consigli di includere il codice che manda l'email nella stessa pagina che fa l'insert o sbaglio?

  8. #8
    codice:
    Dim nome
    
    nome = request.Form("nome")
    
    strSql = "INSERT INTO nome tabella " 
    strSql = strSql & "(nome) "
    strSql = strSql & " VALUES (" & (nome) & ")"
    cn.Execute strSql
    cn.Close()
    set cn = nothing
    
    ' ora spedisci la mail...se sei su aruba usa l'oggetto CDOSYS
    
    http://vademecum.aruba.it/start/contatto/contatto.htm
     
    %>
    praticamente ti ho postato il codice quasi pronto....


    si nella stessa pagina ....ma perchè hai fatto 2 pagine diverse??...
    tipo...

    pagina 1 = pagina del form
    pagina 2 = pagina insert into
    pagina 3 = pagina mail

    pagina 1 ---va alla ---> pagina 2 --- e la pagina 2---> va alla pagina 3

    non dirmi che hai fatto una cosa così^?
    :berto:

    se così fosse ...per forza che perdi il request.form ... lo perdi dal momento che vai alla pagina 2 ....

    Tanto...lo fanno tutti... posso farlo anche io vero?

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    272
    Hai ragione!!! Ho provato ad inserire il codice che invia l'email direttamente nel codice dell'insert e ora funziona correttamente.
    Grazie....non ci avevo pensato! Mi sei stato d'aiuto

  10. #10

    Ma allora facevi davvero 2 pagine


    ....e io che pensavo fosse 1 scherzo....

    Tanto...lo fanno tutti... posso farlo anche io vero?

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.