Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Veröffentlichen von Kleinanzeigenprojekt
Frage
Hi Leute,
mein Problem ist mein Kleinanzeigenmarkt läuft auf meinen Rechner, aber nicht im Web!
Irgendwie liegt es an der DSN!
Die Fehlermeldung lautet:Microsoft OLE DB Provider for ODBC Drivers error 80004005
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
/102774/Members/8-12.asp, line 108
Und dies ist mein Script von 8-12.asp:
<% Clientside-Script schreiben: WriteScript db_dsn = "asp" db_table = "Anzeige" db_user = "webaccess" db_password = "geheim" db_pagesize = 3 doc_path = Request.ServerVariables("URL") doc_name = mid(doc_path, InstrRev(doc_path, "/")+1) NavigationAnzeigen Mindestlängen Kennwort und Benutzername: uid_password = 5 uid_user = 6 Formulardaten abfragen: kennwort = Request.Form("password") benutzername = Request.Form("benutzername") kategorie = Request.Form("kategorie") header = Request.Form("header") anzeige = Request.Form("anzeige") Formulardaten prüfen: wurden Formulardaten gesendet? if not Request.Form.Count=0 then ok = true Ja, aber nicht alles ausgefüllt: if kennwort="" or header="" or anzeige="" or benutzername="" then fehler = "Sie haben nicht alle Felder ausgefüllt! "
ok = false
end if
Ja, aber Kennwort zu kurz:
if len(kennwort)Ihr Kennwort muß mindestens " & uid_password & " Zeichen umfassen!"
ok = false
end if
Ja, aber Benutzername zu kurz:
if len(benutzername)Ihr Benutzername muß mindestens " & uid_user & " Zeichen umfassen!"
ok = false
end if
Ja, alles in Ordnung, Daten in Datenbank eintragen:
if ok then
db_benutzername = StringConvert(benutzername)
db_kennwort = StringConvert(kennwort)
db_header = StringConvert(header)
db_anzeige = StringConvert(anzeige)
if not CheckUser(db_benutzername, db_kennwort, db_header, db_anzeige, kategorie) then
fehler = fehler + "Ihr Benutzername ist bereits vergeben. Bitte suchen Sie sich einen anderen Benutzernamen aus. "
ok = false
end if
end if
Statusmitteilung ausgeben:
if ok then
Response.Redirect("8-13.asp?seite=1&kategorie=" & kategorie)
else
fehler = "
<% FormularAnzeigen end if else FormularAnzeigen end if function StringConvert(text) StringConvert = "" & Replace(text, "", "") & "" end function sub GetSelection(kat) if kat="" then kat=0 else kat=Cint(kat) end if sql = "select * from kategorien" set db = Server.CreateObject("ADODB.Connection") db.Open "dsn=" & db_dsn & ";uid=" & db_user & ";pwd=" & db_password set rs = db.Execute(sql) Response.Write "" end sub function CheckUser(user, pwd, head, text, kat) rem on error resume next set db = Server.CreateObject("ADODB.Connection") db.Open "dsn=" & db_dsn & ";uid=" & db_user & ";pwd=" & db_password sql = "select count(*) as Anzahl from Anzeige WHERE benutzername=" & user timestamp = "" & CDate(now()) & "" sql2 = "INSERT INTO Anzeige (benutzername, password, header, anzeige, kategorie, aufgabedatum, lastaccess) VALUES (" & user & "," & pwd & "," & head & "," & text & "," & kat & "," & timestamp & "," & timestamp & ")" set rs = db.Execute(sql) if rs(0)=0 then db.Execute(sql2) CheckUser=true else sql = "SELECT count(*) as Anzahl from Anzeige WHERE benutzername=" & user & " AND password=" & pwd set rs = db.Execute(sql) if rs(0)>0 then Benutzer ist schon registriert db.Execute(sql2) CheckUser=true else CheckUser=false end if end if db.Close set db = Nothing set rs = Nothing end function sub FormularAnzeigen %><% end sub sub WriteScript %> <% end sub sub NavigationAnzeigen %>
<% end sub %> Ich hoffe ihr könnt mir helfen und sagen was ich machen oder abändern muss! Vielen Dank im vorraus!
Kleinanzeigen-Aufgabe
<% Clientside-Script schreiben: WriteScript db_dsn = "asp" db_table = "Anzeige" db_user = "webaccess" db_password = "geheim" db_pagesize = 3 doc_path = Request.ServerVariables("URL") doc_name = mid(doc_path, InstrRev(doc_path, "/")+1) NavigationAnzeigen Mindestlängen Kennwort und Benutzername: uid_password = 5 uid_user = 6 Formulardaten abfragen: kennwort = Request.Form("password") benutzername = Request.Form("benutzername") kategorie = Request.Form("kategorie") header = Request.Form("header") anzeige = Request.Form("anzeige") Formulardaten prüfen: wurden Formulardaten gesendet? if not Request.Form.Count=0 then ok = true Ja, aber nicht alles ausgefüllt: if kennwort="" or header="" or anzeige="" or benutzername="" then fehler = "
- " + fehler + "
Bitte korrigieren Sie die Fehler und senden Sie das Formular dann erneut ab!
" %>Es sind leider noch Fehler aufgetreten:
<%=fehler%>
<% FormularAnzeigen end if else FormularAnzeigen end if function StringConvert(text) StringConvert = "" & Replace(text, "", "") & "" end function sub GetSelection(kat) if kat="" then kat=0 else kat=Cint(kat) end if sql = "select * from kategorien" set db = Server.CreateObject("ADODB.Connection") db.Open "dsn=" & db_dsn & ";uid=" & db_user & ";pwd=" & db_password set rs = db.Execute(sql) Response.Write "" end sub function CheckUser(user, pwd, head, text, kat) rem on error resume next set db = Server.CreateObject("ADODB.Connection") db.Open "dsn=" & db_dsn & ";uid=" & db_user & ";pwd=" & db_password sql = "select count(*) as Anzahl from Anzeige WHERE benutzername=" & user timestamp = "" & CDate(now()) & "" sql2 = "INSERT INTO Anzeige (benutzername, password, header, anzeige, kategorie, aufgabedatum, lastaccess) VALUES (" & user & "," & pwd & "," & head & "," & text & "," & kat & "," & timestamp & "," & timestamp & ")" set rs = db.Execute(sql) if rs(0)=0 then db.Execute(sql2) CheckUser=true else sql = "SELECT count(*) as Anzahl from Anzeige WHERE benutzername=" & user & " AND password=" & pwd set rs = db.Execute(sql) if rs(0)>0 then Benutzer ist schon registriert db.Execute(sql2) CheckUser=true else CheckUser=false end if end if db.Close set db = Nothing set rs = Nothing end function sub FormularAnzeigen %><% end sub sub WriteScript %> <% end sub sub NavigationAnzeigen %>
| Anzeigenannahme | Anzeigenmarkt besuchen | Eigene Anzeigen verwalten |
<% end sub %> Ich hoffe ihr könnt mir helfen und sagen was ich machen oder abändern muss! Vielen Dank im vorraus!
Antwort 1 von sasch
betriebssystem?
Antwort 2 von Karl
Hallo Frank,
Das ist Dein Openstring:
set db = Server.CreateObject("ADODB.Connection")
db.Open "dsn=asp;uid=webaccess;pwd=geheim".
Wenn Du nicht dafür gesorgt hast dass Dein ISP eine DSN auf die
Datenbank = "name"
im Verzeichnis = "Verzeichnis"
mit der DSN = "asp"
Userid = "webaccess"
Password = "geheim"
auf dem Server angelegt hat, wist Du ausser einer Fehlermeldung nichts erhalten.
Lösung: vom ISP eine DSN alegen lassen,
oder, wenn es eine Access.mdb ist, dsn-los arbeiten.
Wenn Du MDAC Version >=2.5 benutzt, dann
Provider=MSDASQL.1;Connect Timeout=15;Extended Properties=DBQ=" & Server.MapPath("/verzeicnis/datenbank.mdb") & ";DefaultDir=" & Server.MapPath("/verzeichnis") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;ImplicitCommitSync=Yes;MaxBufferSize=512;"
Treiber Version 2
wenn die DB in einem Unterverzeichnis steht
Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("\Unterverzeichnis") & "\datenbank.mdb;
wenn die DB im Hauprverzeichnis steht
DBQ=" & Server.Mappath("datenbank.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};
oder Du gibst das Verzeichnis voll an
Driver={Microsoft Access Driver (*.mdb)}; DBQ="D:\Webdaten\irgendeinverzeichnis\nocheinverzechnis\datenbank.mdb;
@sasch: Stromversorgung?, Bildschirm?
mfg Karl
Das ist Dein Openstring:
set db = Server.CreateObject("ADODB.Connection")
db.Open "dsn=asp;uid=webaccess;pwd=geheim".
Wenn Du nicht dafür gesorgt hast dass Dein ISP eine DSN auf die
Datenbank = "name"
im Verzeichnis = "Verzeichnis"
mit der DSN = "asp"
Userid = "webaccess"
Password = "geheim"
auf dem Server angelegt hat, wist Du ausser einer Fehlermeldung nichts erhalten.
Lösung: vom ISP eine DSN alegen lassen,
oder, wenn es eine Access.mdb ist, dsn-los arbeiten.
Wenn Du MDAC Version >=2.5 benutzt, dann
Provider=MSDASQL.1;Connect Timeout=15;Extended Properties=DBQ=" & Server.MapPath("/verzeicnis/datenbank.mdb") & ";DefaultDir=" & Server.MapPath("/verzeichnis") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;ImplicitCommitSync=Yes;MaxBufferSize=512;"
Treiber Version 2
wenn die DB in einem Unterverzeichnis steht
Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("\Unterverzeichnis") & "\datenbank.mdb;
wenn die DB im Hauprverzeichnis steht
DBQ=" & Server.Mappath("datenbank.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};
oder Du gibst das Verzeichnis voll an
Driver={Microsoft Access Driver (*.mdb)}; DBQ="D:\Webdaten\irgendeinverzeichnis\nocheinverzechnis\datenbank.mdb;
@sasch: Stromversorgung?, Bildschirm?
mfg Karl

