Avatar billede brops Nybegynder
10. april 2003 - 12:47 Der er 20 kommentarer og
1 løsning

igen en fejl!!!

tja så er jeg på den igen....
faktisk er det er en fortsættelse af: http://www.eksperten.dk/spm/338797 jeg har lavet den side som skal skrive det ind i databasen men får denn fejlmelding: Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0408)
Tegnet er ugyldigt
/modtag.asp, line 4, column 36
function createDatabaseConnection() {

mit script er som følger:

<% Language=JavaScript %>

<%
function createDatabaseConnection() {
  con = Server.CreateObjekt("ADODB.Connection");
  con.Open("brugerdatabase");
  return con;
}

function toSqlDate(date) {
  return "'" + date.getDate() + "-" + (date.getMonth() + 1) + "-" + dategatYear() + "'";
}
%>

<%
  OK = 0;
  FORKERT_KODEORD = 1;
  BRUGER_EKSISTERER = 2;

  con = createDatabaseConnection();

  // kontroller om bruger er logget ind...
  Brugernavn = -1
  if(Request.Cookies("personinfo") !="") {
    Brugernavn = opdaterpersoninfo(Request.Cookies("personinfo"));
  } else {
    Brugernavn = tilfojpersoninfo();
  }
printResult (OK);

  function opdaterpersoninfo(Brugernavn) {
    sql = "UPDATE personinfo 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 += "By='" + request.Form("By") + "',";
    sql += "email='" + request.Form("email") + "',";
    sql += "IRC='" + request.Form("IRC") + "',";
    sql += "form='" + request.Form("form") + "',";
    sql += " WHERE Brugernavn=" + Brugernavn;
    con.execute(sql);
    return Brugernavn;
  }

  function tilføjpersoninfo(Brugernavn) {
    // kontroller, at de to kodeord er ens
    if (!strcmp(Request.Form("password1"),Request.Form("password2"))) {
      printResult(FORKERT_KODEORD);
    }
 
    // kontroller om brugernavnet allerede eksistere
    res = con.execute("SELECT Brugernavn FROM personinfo WHERE email='" + Request.Form("email") + "'");
    if (!res.EOF) { // brugeren eksisterer
      printResult(BRUGER_EKSISTERER);
    }
 
    sql = "INSERT INTO personinfo (Clan, Clantag, navn, Adresse, Postnummer, By, email, IRC, password) VALUES(";
    sql += "'" + Request.Form("Clan") + "', ";
    sql += "'" + Request.Form("Clantag") + "', ";
    sql += "'" + Request.Form("navn") + "', ";
    sql += "'" + Request.Form("Adresse") + "', ";
    sql += Request.Form("postnummer") + "', ";
    sql += "'" + Request.Form("By") + "', ";
    sql += "'" + Request.Form("email") + "', ";
    sql += "'" + Request.Form("IRC") + "', ";
    sql += "'" + Request.Form("form") + "', ";
    sql += "'" + Request.Form("password") + "',)";
 
    con.execute(sql);
    res = con.execute("SELECT Brugernavn FROM personinfo WHERE email'" + Request.Form("email") + ",");
    return res.Fields("Brugernavn");
  }
 
  function printResult(status) {
%>

<html>
<head>
  <title>The E League</title>
</head>
<td>
<%
  if (status == OK) {
%>
<h1>Brugerbekræftelse</h1>
Dine Brugerdata er nu afsendt, du har valgt brugernavn: <%=Brugernavn%> og password: <%=password>. 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) {
%>

<h1>Fejl</h1>
der opstod en fejl i forbindelse med afsending af din tilmelding til The E League.
<br>Din tilmelding blev ikke afsendt
<p>
<%
    if (status == FORKERT_KODEORD) {
%>
    De to indtastet kodeord var ikke en. 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.
    <p>Klik <a href=brugerinfo.asp>her</a> for at komme tilbage til registreringsformen,</p>
<%
    } else {
%>
Der er allerede registreret en Bruger med det angivet Brugernavn (<%=Request.Form("Brugernavn")%>).
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>
<p>Hvis ikke det er dig der er registreret kan du indtaste et andet brugernavn <a href=brugerinfo.asp>her</a></p>
<%
    }
  }
%>
  </td>
  </tr>
  </table>
</body>
</html>
<%
    Response.End();
  }
%>

hvad er der galt???
Avatar billede erikjacobsen Ekspert
10. april 2003 - 13:13 #1
Du skal skrive din linie: <% Language=JavaScript %>  korrekt!
Avatar billede brops Nybegynder
10. april 2003 - 13:41 #2
ok så er det rettet men hvorfor så denne fejl??
Fejltype:
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] Datakildenavnet blev ikke fundet, og der er ikke angivet en standarddriver.
/modtag.asp, line 6
jeg har oplyst system-DNS og bruger samme navn overalt, nemlig brugerdatabase
Avatar billede brops Nybegynder
10. april 2003 - 13:43 #3
sorry havde lige overset noget, men nu giver den denne istedet
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] Driverens SQLSetConnectAttr mislykkedes.
/modtag.asp, line 6
Avatar billede erikjacobsen Ekspert
10. april 2003 - 13:45 #4
Du skal kigge på din odbc opsætning
Avatar billede brops Nybegynder
10. april 2003 - 13:53 #5
ok jeg har sat det op som følgende:
den er sat både i bruger-DNS og System-DNS under navnet brugerdatabase og den henviser til min database der hvor den ligger, ellers er der ikk pillet ved noget det er standart opsætnign for Win2000 pro
Avatar billede brops Nybegynder
10. april 2003 - 14:16 #6
jeg fandt en "gammel" asp bog frem for at kigge på ODBC opsætningen og fandt nogle "småfejl i min opsætning, men nu giver den så denne fejlmeldening istedet:
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access-driver] Microsoft Jet-databasemotoren kan ikke åbne filen "(ukendt)". Den er allerede åbnet med udelt adgang af en anden bruger, eller du skal have tilladelse til at vise dataene.
/modtag.asp, line 6
nogen der kan hjælpe mig???
Avatar billede brops Nybegynder
10. april 2003 - 14:26 #7
den løste jeg selv så.... men hvorfor får jeg så denne fejl???
Fejltype:
Der opstod en Microsoft JScript-kørselsfejl (0x800A138F)
Et objekt var ventet
/modtag.asp, line 27
Avatar billede erikjacobsen Ekspert
10. april 2003 - 15:41 #8
Du skal bare stave rigtigt.
Avatar billede brops Nybegynder
10. april 2003 - 15:56 #9
k tak jeg har mere bøvl :(
Fejltype:
Der opstod en Microsoft JScript-kørselsfejl (0x800A138F)
Et objekt var ventet
/modtag.asp, line 49
hvis ikke det snart funker tror jeg jeg dropper det...:(
Avatar billede erikjacobsen Ekspert
10. april 2003 - 16:00 #10
Selvfølgelig kan du droppe det. Men hvad med at lære lidt fundamentale
ting om dit udviklingsværktøj inden du begynder at bruge det? Der er
forskel på store og små bogstaver i variabelnavne i JScript. Det er nok
dit problem i den linie.
Avatar billede brops Nybegynder
10. april 2003 - 16:08 #11
tja... det var egentlig ment som at det her skulle være det der kunne give mig lidt af det grundlæggenede, jeg har læst et par ASPbøger... men jeg vil heller prøve det i praksis...
kan du ikke fortælle mig heltpræcic hvad der er galt i linien...(jeg har skrevet den af efter en bog) og der er de identiske...:(
du må mget undskylde hvis jeg er træls, men jeg håber da et jeg lær noget af det jeg laver...
Avatar billede brops Nybegynder
10. april 2003 - 17:03 #12
er der ingen der vil svare mig???
erikjacobsen såfrem du vil have point så smid et svar...
Avatar billede erikjacobsen Ekspert
10. april 2003 - 17:51 #13
Nej tak, jeg skal ikke have points.
Du siger fx både Request og request - kun én af dem er korrekt
Avatar billede brops Nybegynder
10. april 2003 - 17:52 #14
hmmmm jeg er meget dum ved det opdaget jeg havde glemt at implementere en "String" i starten men nu giver den mig den her fejl på min kode, som er rettet til det her...
<% @Language=JavaScript %>

<%
function createDatabaseConnection() {
  con = Server.CreateObject("ADODB.Connection");
  con.Open("database");
  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;

  con = createDatabaseConnection();

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

  function opdaterperson(ID) {
    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 += "By='" + request.Form("By") + "', ";
    sql += "email='" + request.Form("email") + "', ";
    sql += "IRC='" + request.Form("IRC") + "', ";
    sql += "form='" + request.Form("form") + "', ";
    sql += " WHERE ID=" + ID;
    con.execute(sql);
    return ID;
  }

  function tilfojperson(ID) {
    if (!strcmp(Request.Form("password1"),Request.Form("passwors2"))) {
      printResult(FORKERT_KODEORD);
    }
 
    // kontroller om brugernavnet allerede eksistere
    res = con.execute("SELECT ID FROM person WHERE email='" + Request.Form("email") + "'");
    if (!res.EOF) { // brugeren eksisterer
      printResult(BRUGER_EKSISTERER);
    }
 
    sql = "INSERT INTO person (Clan, Clantag, navn, Adresse, Postnummer, By, email, IRC, form, password) VALUES(";
    sql += "'" + Request.Form("Clan") + "', ";
    sql += "'" + Request.Form("Clantag") + "', ";
    sql += "'" + Request.Form("navn") + "', ";
    sql += "'" + Request.Form("Adresse") + "', ";
    sql += "'" + Request.Form("postnummer") + "', ";
    sql += "'" + Request.Form("By") + "', ";
    sql += "'" + Request.Form("email") + "', ";
    sql += "'" + Request.Form("IRC") + "', ";
    sql += "'" + Request.Form("form") + "', ";
    sql += "'" + Request.Form("password") + "',)";
 
    con.execute(sql);
    res = con.execute("SELECT ID FROM person WHERE email'" + Request.Form("email") + ",");
    return res.Fields("ID");
  }
 
  function printResult(status) {
%>

<html>
<head>
  <title>The E League</title>
</head>
<td> <font face="Verdana">
  <%
  if (status == OK) {
%>
  </font><font face="Verdana">
  <h1><font face="Verdana">Brugerbekræftelse</font></h1>
  <font face="Verdana"> Dine Brugerdata er nu afsendt, dit brugerID:
  <%=ID%>. 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) {
%>
  <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></font> <p> <font face="Verdana">
    <%
    if (status == FORKERT_KODEORD) {
%>
    De to indtastet kodeord var ikke en. 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 {
%>
  Der er allerede registreret en Bruger med det angivet ID (<%=Request.Form("ID")%>). 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><font face="Verdana">
  <p><font face="Verdana">Hvis ikke det er dig der er registreret kan du indtaste
    et andet brugernavn <a href=brugerinfo.asp>her</a></font></p>
  <font face="Verdana">
  <%
    }
  }
%>
  </font></font></td>
<font face="Verdana"></tr> </table> </font>
</body>
</html>
<%
    Response.End();
  }
%>

fejlmeldning:
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i INSERT INTO-sætningen.
/modtag.asp, line 85
Avatar billede erikjacobsen Ekspert
10. april 2003 - 17:55 #15
Du skal ikke have komme til sidst:  "',)";
Avatar billede brops Nybegynder
10. april 2003 - 17:56 #16
jeg har lige rette det med stort lille...
Avatar billede brops Nybegynder
10. april 2003 - 18:13 #17
har jeg rettet men den giver stadig samme fejl
Avatar billede erikjacobsen Ekspert
10. april 2003 - 19:04 #18
Nå, ja, BY er et reserveret ord i SQL, så det kan du ikke
bare bruge. Du kan evt skrive [by]
Avatar billede brops Nybegynder
10. april 2003 - 19:07 #19
ok skal det gøres overalt hvor der står by????
Avatar billede brops Nybegynder
10. april 2003 - 21:08 #20
har løst det... havde også noget med form....lukker den hvis ikke du vil have point
Avatar billede brops Nybegynder
10. april 2003 - 22:00 #21
lukker
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