Avatar billede brops Nybegynder
14. april 2003 - 00:41 Der er 17 kommentarer og
2 løsninger

automatisk bekræftelses mail...

jeg har et ASP-Script hvor en buger kan tilmelde sig mit system,
1: nå de har tilmeldt sig vil jeg gerne have der automatisk bliver sendt en E-Mail med Burgernummer, Password, osv til dem,
når de godkender bliver de videresent til flg. Script:

<% @Language=JavaScript %>
<%
function createDatabaseConnection() {
  con = Server.CreateObject("ADODB.Connection");
  con.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("database.mdb")+";");
  return con;
}

function toSqlDate(date) {
  return "'" + date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getYear() + "'";
}
%>
<%
  function strcmp(s1, s2) {
    if  (s1.lenght != s2.length) {
      return false;
    }

    for (i = 0; i < s1.length; i++) {
      if (s1[1] != s2[i]) {
        return false;
      }
    }
    return true;
  }
%>
<%
  OK = 0;
  FORKERT_KODEORD = 1;
  BRUGER_EKSISTERER = 2;
  UGYLDIG_EMAIL = 3;

  con = createDatabaseConnection();

  // kontroller om bruger er logget ind...
  brugerID = -1
  if(Request.Cookies("person") !="") {
    brugerID = opdaterperson(Request.Cookies("person"));
  } else {
    brugerID = tilfojperson();
  }
printResult (OK);

  function opdaterperson(brugerID) {
    sql = "UPDATE person SET ";
    sql += "Clan='" + Request.Form("Clan") + "', ";
    sql += "Clantag='" + Request.Form("Clantag") + "', ";
    sql += "kontaktperson='" + Request.Form("navn") + "', ";
    sql += "Adresse='" + Request.Form("Adresse") + "',";
    sql += "postnummer='" + Request.Form("postnummer") + "', ";
    sql += "City='" + Request.Form("City") + "', ";
    sql += "email='" + Request.Form("email") + "', ";
    sql += "IRC='" + Request.Form("IRC") + "', ";
    sql += "tform='" + Request.Form("tform") + "', ";
    sql += "pass='" + Request.Form("pass") + "'";
    sql += " WHERE brugerID=" + brugerID;
    con.execute(sql);
    return brugerID;
  }

  function tilfojperson(brugerID) {
  // kontroller
    if (!strcmp(Request.Form("pass"),Request.Form("passA"))) {
      printResult(FORKERT_KODEORD);
    }
 
    // kontroller om brugernavnet allerede eksistere
    res = con.execute("SELECT brugerID FROM person WHERE email='" + Request.Form("email") + "'");
    if (!res.EOF) { // brugeren eksisterer
      printResult(BRUGER_EKSISTERER);
    }

  // Kontroller om email er gyldig
    Valid_EMail=false;
    email=""+Request.Form("email");
    if (email=="undefined") {
        email="";
    }
    if (email!="") {
        eRegEmail=new RegExp("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,3}$","gi");
        test=email.match(eRegEmail);
        if (test==email) {
            Valid_EMail=true;
        }
    }
    if (!Valid_EMail) {
      printResult(UGYLDIG_EMAIL);
    }
 
    sql = "INSERT INTO person (Clan, Clantag, navn, Adresse, Postnummer, City, email, IRC, tform, pass) VALUES(";
    sql += "'" + Request.Form("Clan") + "', ";
    sql += "'" + Request.Form("Clantag") + "', ";
    sql += "'" + Request.Form("navn") + "', ";
    sql += "'" + Request.Form("Adresse") + "', ";
    sql += "'" + Request.Form("postnummer") + "', ";
    sql += "'" + Request.Form("City") + "', ";
    sql += "'" + Request.Form("email") + "', ";
    sql += "'" + Request.Form("IRC") + "', ";
    sql += "'" + Request.Form("tform") + "', ";
    sql += "'" + Request.Form("pass") + "', ";
   
    con.execute(sql);
    res = con.execute("SELECT brugerID FROM person WHERE email='" + Request.Form("email") + "'");
    return res.Fields("brugerID");
  }
 
  function printResult(status) {
%>
<html>
<head>
<title>The E League</title>
</head>
<body bgcolor="#FFFFFF">
<td> <%
  if (status == OK) {
%> <h1><font face="Verdana">Brugerbekræftelse</font></h1>
  <font face="Verdana"> Dine Brugerdata er nu afsendt, <br>
  brugerID: <%=brugerID%>.<br>
  Email: <%=Request.Form("email")%> <br>
  Password: <%=Request.Form("pass")%> <br>
  Hvis der ikke står noget password er du ikke gemt i brugerdatabasen.
  Dette navn skal du du bruge når du logger ind, stiller spørgsmål til ligaen,
  og indberetter resultater mm. Eventuelle Spørgsmål og kommentare kan du sende
  til <a href=mailto:jonas_skovmose@mail.dk>jonas_skovmose@mail.dk</a> "mærk"
  emnet "The E League".
  <p>Tak for din interesse for ligaen...</p>
  <%
  } else if (status == FORKERT_KODEORD || status == BRUGER_EKSISTERER || status == UGYLDIG_EMAIL) {
%>
  <h1>Fejl</h1>
  der opstod en fejl i forbindelse med afsending af din tilmelding til The E League.
  <br>
  Din tilmelding blev ikke afsendt </font> <p> <font face="Verdana">
    <%
    if (status == FORKERT_KODEORD) {
%>
    De to indtastet kodeord var ikke ens. Hvis det er fordi du ar ladet begge
    felter været blanke er du <U><strong>ikke</strong></u> blevet registreret
    og vil derfor heller ikke komme til at deltage i ligaen. </font>
  <p><font face="Verdana">Klik <a href=brugerinfo.asp>her</a> for at komme tilbage
    til registreringsformen,</font></p>
  <font face="Verdana">
  <%
    } else if (status== BRUGER_EKSISTERER) {
%>
  Der er allerede registreret en Bruger med det angivet email (<%=Request.Form("email")%>). Hvis du allerede har registreret dig som bruger kan du <a href=login.asp>logge
  ind</a> ved at bruge dit Brugernavn og password, fra tidliger registrering.
  <br>
  Hvis ikke du kan huske dit password kan du få det tilsendt på en email fra <a href=login.asp>log
  ind-siden</a> </font> <p><font face="Verdana">Hvis ikke det er dig der er registreret
    kan du indtaste et andet E-mail <a href=brugerinfo.asp>her</a></font></p>
  <%
    } else {
%>
  Hen indtastede e-mail er ikke gyldig. <a href="#tilbage" onclick="history.go(-1);return false">Gå tilbage</a> og prøv igen.</font></p>
  <%
    }
  }
%> </td></tr>
</table>
</body>
</html>
<%
    Response.End();
  }
%>

hvor skal dette sættes ind?, hvad kræver det af der hvor jeg bliver hostet, jeg har ikke meget forstand på ASP, derfor spørger jeg jer, bedes sættes ind i scriptet for mig...
Tingene har flg navne i min Database:
brugerID
Clan
Clantag
navn - brugernavn
adresse
postnummer
City
email - det er den det skal sendes til
tform
IRC
pass

alle disse oplysninger skal sendes til brugeren der opretter sig.

2: jeg vil vide hvad det kræver er må man gerne evt. give en guide til hvordan jeg sætte min IIS server op så jeg kan teste det, og hvordan/hvad det kræver af Hosteren, links til dem der understøtter det må gerne gives....

3: hvorfor virker dette ikke???
  function tilfojperson(brugerID) {
  // kontroller
    if (!strcmp(Request.Form("pass"),Request.Form("passA"))) {
      printResult(FORKERT_KODEORD);
det skulle kontollere passwordne er ens...
behøves i ikke svare på... men må godt..

4: se desuden SPG: http://www.eksperten.dk/spm/340253

jeg sætter 120 point, men ved ikk om det er nok... 30 for hver svar på et af de fire SPG...
Avatar billede stigp Nybegynder
14. april 2003 - 00:58 #1
Spørgsmål 1 kan nemt gøres ved hjælpe af et asp komponent. De fleste har det komponent der hedder JMail.

Det gøres på denne måde:

Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ServerAddress = "smtp.mail.dk" 'du skal ændre dette til din smtp server for din udbyder
JMail.Sender = "john@john.dk" 'din email
JMail.Subject = "Emne" ' emnet
JMail.SenderName = "John the man" 'dit navn
JMail.AddRecipient Request.Form("email") 'modtagers email.
JMail.Body = "body" 'alle de øvrige oplysninger
JMail.Priority = 3
JMail.Execute

Jeg vil anbefale dig www.cliche.dk jeg har benyttet både dem og b-one.nu men cliche har en langt bedre support og det hele kører og koster stort set ingenting. Husk at vælge win2000 server hvis du tager dette. De understøtter også Jmail
Avatar billede mm12010 Nybegynder
14. april 2003 - 09:49 #2
3: hvorfor virker dette ikke???

if(!(strcmp(Request.Form("pass") == String(Request.Form("passA")))){
Avatar billede mm12010 Nybegynder
14. april 2003 - 09:54 #3
3: hvorfor virker dette ikke???

if(!(String(Request.Form("pass") == String(Request.Form("passA"))){
Avatar billede coolstar Nybegynder
14. april 2003 - 11:32 #4
stigp havde svaret inden jeg kom ind :)
Så ganske rigtigt jmail er sagen :)
Avatar billede brops Nybegynder
14. april 2003 - 16:28 #5
tak for det...men stigp hvor skal jeg sætte det ind???. linienummer er nok, eller bare smid scriptet på jonas_skovmose@mail.dk, i JMail.Body = "body" 'alle de øvrige oplysninger
kan jeg der skrive og have linieskift(<br>) og (<p>) samt andre koder uden at det har indflydelse på hvad om det bliver sendt... så længe det bare er indenfor "Body" eller giver det problemer??? jeg ved godt det er et dumt SPG men jeg har ikke meget forstand på ASP, og forreste skal det oxo virke vis man bare rette i sine info...:)
Avatar billede stigp Nybegynder
14. april 2003 - 16:52 #6
Du kan indsætte det til sidst. Bare dine variabler er lavet først.

Angående body delen kan du definere den enten som plain text. JMail.ContentType = "text/plain" eller så du kan bruge html koder JMail.ContentType = "text/html"

Læs eventuelt mere på http://host.cdesystems.com/faq/jmail_asp_online_manual.htm
Avatar billede brops Nybegynder
14. april 2003 - 19:39 #7
hmm undskyld, jeg er ikk helt med skal jeg sætte den ind her:
function printResult(status) {
%>

Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ServerAddress = "smtp.mail.dk" 'du skal ændre dette til din smtp server for din udbyder
JMail.Sender = "jonas_skovmose@mail.dk" 'din email
JMail.Subject = "Bruger registrering af The E League" ' emnet
JMail.SenderName = "Brops" 'dit navn
JMail.AddRecipient Request.Form("email") 'modtagers email.
JMail.Body = "hej du har nu tilmeldt dig The E League under: <br> brugernavnet:(Request.Form("navn"))... osv." 'alle de øvrige oplysninger
JMail.ContentType = "text/html"
JMail.Priority = 3
JMail.Execute


<html>
<head>
<title>The E League</title>

eller hvad, jeg har ikke meget styr på ASP endnu som jeg skrev, men arbejder på at lære det:)
Avatar billede brops Nybegynder
14. april 2003 - 19:41 #8
forresten jeg regner med at vælge www.cliche.dk men hvad er deres optid, sammenlignet med andre udbydder, jeg har været uheldig og har brændt fingerne på b-none øøhhhh one :)
Avatar billede stigp Nybegynder
14. april 2003 - 20:29 #9
Det skal ned i body delen.

Og så inde i <% (asp kode)

Jeg har kun brugt cliche i 1 måned og har ikke haft et nedbrud endnu.
Avatar billede brops Nybegynder
14. april 2003 - 20:33 #10
hvis du vil have point for cliche so smid et svar her:  http://www.eksperten.dk/spm/340253
tak for hjælpen, lukker lige i morgen :) er på vej ud af døren
Avatar billede brops Nybegynder
14. april 2003 - 20:39 #11
skal det ikke være Set JMail = Server.CreateObject("JMail.SMTP.Mail") istedet for Set JMail = Server.CreateObject("JMail.SMTPMail") ????
Avatar billede brops Nybegynder
14. april 2003 - 22:01 #12
jeg kan ikk får Jmail til at virke.....
har sat det som følger:

<% @Language=JavaScript %>
<%
function createDatabaseConnection() {
  con = Server.CreateObject("ADODB.Connection");
  con.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("database.mdb")+";");
  return con;
}

function toSqlDate(date) {
  return "'" + date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getYear() + "'";
}
%>
<%
  function strcmp(s1, s2) {
    if  (s1.lenght != s2.length) {
      return false;
    }

    for (i = 0; i < s1.length; i++) {
      if (s1[1] != s2[i]) {
        return false;
      }
    }
    return true;
  }
%>
<%
  OK = 0;
  FORKERT_KODEORD = 1;
  BRUGER_EKSISTERER = 2;
  UGYLDIG_EMAIL = 3;

  con = createDatabaseConnection();

  // kontroller om bruger er logget ind...
  brugerID = -1
  if(Request.Cookies("person") !="") {
    brugerID = opdaterperson(Request.Cookies("person"));
  } else {
    brugerID = tilfojperson();
  }
printResult (OK);

  function opdaterperson(brugerID) {
    sql = "UPDATE person SET ";
    sql += "Clan='" + Request.Form("Clan") + "', ";
    sql += "Clantag='" + Request.Form("Clantag") + "', ";
    sql += "kontaktperson='" + Request.Form("navn") + "', ";
    sql += "Adresse='" + Request.Form("Adresse") + "',";
    sql += "postnummer='" + Request.Form("postnummer") + "', ";
    sql += "City='" + Request.Form("City") + "', ";
    sql += "email='" + Request.Form("email") + "', ";
    sql += "IRC='" + Request.Form("IRC") + "', ";
    sql += "tform='" + Request.Form("tform") + "', ";
    sql += "pass='" + Request.Form("pass") + "'";
    sql += " WHERE brugerID=" + brugerID;
    con.execute(sql);
    return brugerID;
  }

  function tilfojperson(brugerID) {
  // kontroller
    if (!strcmp(Request.Form("pass"),Request.Form("passA"))) {
      printResult(FORKERT_KODEORD);
    }
 
    // kontroller om brugernavnet allerede eksistere
    res = con.execute("SELECT brugerID FROM person WHERE email='" + Request.Form("email") + "'");
    if (!res.EOF) { // brugeren eksisterer
      printResult(BRUGER_EKSISTERER);
    }

  // Kontroller om email er gyldig
    Valid_EMail=false;
    email=""+Request.Form("email");
    if (email=="undefined") {
        email="";
    }
    if (email!="") {
        eRegEmail=new RegExp("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,3}$","gi");
        test=email.match(eRegEmail);
        if (test==email) {
            Valid_EMail=true;
        }
    }
    if (!Valid_EMail) {
      printResult(UGYLDIG_EMAIL);
    }
 
    sql = "INSERT INTO person (Clan, Clantag, navn, Adresse, Postnummer, City, email, IRC, tform, pass) VALUES(";
    sql += "'" + Request.Form("Clan") + "', ";
    sql += "'" + Request.Form("Clantag") + "', ";
    sql += "'" + Request.Form("navn") + "', ";
    sql += "'" + Request.Form("Adresse") + "', ";
    sql += "'" + Request.Form("postnummer") + "', ";
    sql += "'" + Request.Form("City") + "', ";
    sql += "'" + Request.Form("email") + "', ";
    sql += "'" + Request.Form("IRC") + "', ";
    sql += "'" + Request.Form("tform") + "', ";
    sql += "'" + Request.Form("pass") + "', ";
   
    con.execute(sql);
    res = con.execute("SELECT brugerID FROM person WHERE email='" + Request.Form("email") + "'");
    return res.Fields("brugerID");
  }
 
  function printResult(status) {
%>
<html>
<head>
<title>The E League</title>
</head>
<body bgcolor="#FFFFFF">

<%

Set JMail = Server.CreateObject("JMail.SMTPMail");
JMail.ServerAddress = "smtp.mail.dk" 'du skal ændre dette til din smtp server for din udbyder
JMail.Sender = "jonas_skovmose@mail.dk" 'din email
JMail.Subject = "Brugerinfo fra The E League" 'emnet
JMail.SenderName = "The E League" 'dit navn
JMail.AddRecipient Request.Form("email") 'modtagers email.
JMail.Body = "Hej <br> <br> Dette er en bekræftelse på at du har tilmeldt dig The E league
  <br>Dine Brugerinfo er:
  <br>BrugerID: <%=Request.Form("BrugerID")%>
  <br>E-Mail: <%=Request.Form("email")%>
  <br>Passwors: <%=Request.Form("pass")%>
  Dette er desuden også de oplysninger du skal bruge når du henvender dig til The E League.<br>
  Andre:
  <br>Clan: <%=Request.Form("Clan")%>
  <br>Clantag: <%=Request.Form("Clantag")%>
  <br>Kontaktpersonsnavn: <%=Request.Form("Navn")>
  <br>Adresse: <%=Request.Form("Adresse")%>
  <br>Postummer/By: <%=Request.Form("Postnummer")%> <%=Request.Form("City")%>
  <br>Turneringsform: <%=Request.Form("tform")%>
  <br>IRC-Channel: <%=Request.Form("IRC")%>
  hvis du vil deltage i ligaen skal du indbetale for <%=Request.Form("tform") som er 25 kr per turnerringsform,
  penge skal i følge <a href="www.the-e-league.dk/regler.asp">reglerne</a> indbetales på reg.#### konto ###-####-####
  mange tak for din interesse for <a href="www.the-e-league.dk">www.The-E-League.dk</a>
  <br><br>
  Der bliver sendt en mail ud med oplysninger om hvem der er i hvilke puljer din clan er i.<br>
  <br>
  MVH <a href="www.the-e-league.dk">The E League</a>" 'modtagers email.
JMail.ContentType = "text/html"
JMail.Priority = 3
JMail.Execute
%>

<td> <%
  if (status == OK) {
%> <h1><font face="Verdana">Brugerbekræftelse</font></h1>
  <font face="Verdana"> Dine Brugerdata er nu afsendt, <br>
  brugerID: <%=brugerID%>.<br>
  Email: <%=Request.Form("email")%> <br>
  Password: <%=Request.Form("pass")%> <br>
  Hvis der ikke står noget password er du ikke gemt i brugerdatabasen.
  Dette navn skal du du bruge når du logger ind, stiller spørgsmål til ligaen,
  og indberetter resultater mm. Eventuelle Spørgsmål og kommentare kan du sende
  til <a href=mailto:jonas_skovmose@mail.dk>jonas_skovmose@mail.dk</a> "mærk"
  emnet "The E League".
  <p>Tak for din interesse for ligaen...</p>
  <%
  } else if (status == FORKERT_KODEORD || status == BRUGER_EKSISTERER || status == UGYLDIG_EMAIL) {
%>
  <h1>Fejl</h1>
  der opstod en fejl i forbindelse med afsending af din tilmelding til The E League.
  <br>
  Din tilmelding blev ikke afsendt </font> <p> <font face="Verdana">
    <%
    if (status == FORKERT_KODEORD) {
%>
    De to indtastet kodeord var ikke ens. Hvis det er fordi du ar ladet begge
    felter været blanke er du <U><strong>ikke</strong></u> blevet registreret
    og vil derfor heller ikke komme til at deltage i ligaen. </font>
  <p><font face="Verdana">Klik <a href=brugerinfo.asp>her</a> for at komme tilbage
    til registreringsformen,</font></p>
  <font face="Verdana">
  <%
    } else if (status== BRUGER_EKSISTERER) {
%>
  Der er allerede registreret en Bruger med det angivet email (<%=Request.Form("email")%>). Hvis du allerede har registreret dig som bruger kan du <a href=login.asp>logge
  ind</a> ved at bruge dit Brugernavn og password, fra tidliger registrering.
  <br>
  Hvis ikke du kan huske dit password kan du få det tilsendt på en email fra <a href=login.asp>log
  ind-siden</a> </font> <p><font face="Verdana">Hvis ikke det er dig der er registreret
    kan du indtaste et andet E-mail <a href=brugerinfo.asp>her</a></font></p>
  <%
    } else {
%>
  Hen indtastede e-mail er ikke gyldig. <a href="#tilbage" onclick="history.go(-1);return false">Gå tilbage</a> og prøv igen.</font></p>
  <%
    }
  }
%> </td></tr>
</table>
</body>
</html>
<%
    Response.End();
  }
%>

den kommer med denne fejl:
Fejltype:
Der opstod en Microsoft JScript-kompileringsfejl (0x800A03EC)
Tegnet ';' var ventet
/modtag.asp, line 117, column 4
Set JMail = Server.CreateObject("JMail.SMTPMail");
---^

hvorfor det???
er det ikk det rigtige sted min jmail er sat ind.

eller er det fordi det skal sættes ind et andet sted (i et andet skript)?????

plz hjælp mig...
Avatar billede brops Nybegynder
15. april 2003 - 16:55 #13
hmmm ingen der kan fortælle mig hvad der er galt stigp det var din kode kan du ikke sige det???

jeg står og skal bruge det
Avatar billede stigp Nybegynder
15. april 2003 - 18:11 #14
Understøtter din nuværende udbyder JMail?

Den skriver at det er en javascript fejl, men det er jo ikke javascript.

Prø´v at mail filen på: mail@stig-petersen.dk
Avatar billede brops Nybegynder
15. april 2003 - 18:14 #15
hmmm nej det er ikke javascript men det er scriptet i <% @Language=JavaScript %>
ved ikke om den gør jeg har bare testet den hjemme på min egen server som er en IIS server det er der den giver fejlen:) sender det nu...
Avatar billede brops Nybegynder
20. april 2003 - 20:58 #16
lukker nu tak for hjælpen
Avatar billede brops Nybegynder
24. april 2003 - 21:20 #17
lukker men stigp har du kigget på det jeg sendte dig???
Avatar billede mm12010 Nybegynder
25. april 2003 - 01:03 #18
Set JMail = Server.CreateObject("JMail.SMTPMail");

skal være:

JMail = Server.CreateObject("JMail.SMTPMail");
Avatar billede brops Nybegynder
25. april 2003 - 08:29 #19
ved jeg... har jeg rettet... se evt. spg http://www.eksperten.dk/spm/343699
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester