Goed ik heb voor de 100ste keer een probleem met ASP, ik probeer een database uit te lezen hieronder verkorte code:
code:de dikgedrukte regel veroorzaakt de volgende foutmelding:set rs_messages = server.createobject("adodb.recordset")
sql = "SELECT id,user,username,date,text FROM messages WHERE topic=" & topic & " ORDER BY date"
rs_messages.open sql, conndo while not rs_messages.eof
....
message_user = rs_messages.fields("user")
....set rs_get_user_info = server.createobject("adodb.recordset")
sql = "SELECT nickname,email,homepage,subtitle,signature,avatar FROM users WHERE id=" & message_userrs_get_user_info.open sql,conn
[b]nickname = rs_get_user_info.fields("nickname")[/b]
......rs_get_user_info.close
.......rs_messages.movenext
looprs_messages.close
Soort fout:
ADODB.Field (0x800A0BCD)
BOF of EOF is Waar, of de huidige record is verwijderd. Voor de gewenste bewerking moet er een huidige record zijn.
/view_topic.asp, line 37
Hoe los ik dit op? iemand?
quote:je bedoelt een fout in de query? lijkt me onwaarschijnlijk ik zal het controleren
Op zondag 29 juni 2003 20:47 schreef matthijn99 het volgende:
Dikgedrukt toont niet in je code, maar ws heb je te maken met een lege recordset.
het mag duidelijk zijn dat dit dikgedrukt moestzijn :
nickname = rs_get_user_info.fields("nickname")
code:if not rs_get_userinfo.BOF and not rs_get_userinfo.EOF then
nickname = rs_get_user_info.fields("nickname")
....
end if
quote:ik heb em al het lag half aan de query id was op een gegeven moment 0 en die bestond niet. dus een lege recordset maar dan hoeft ie nog geen foutmelding te geven, alleen dat doet hij dus wel
Op zondag 29 juni 2003 20:52 schreef matthijn99 het volgende:
De query hoeft nog niet fout te zijn om een lege recordset op te leveren. Maar als je zeker weet dat je een record moet krijgen heb je dus de query verkeerd samengesteld.
code:Met hier en daar nog wat wijzigingen in je code. Je kan het beste een recordset niet openen en sluiten in een loop. Het beste kan je even aan het begin van de loop alle recordsets/connecties etc open zettenSET rs = Server.CreateObject("ADODB.RecordSet")
SET rs2 = Server.CreateObject("ADODB.RecordSet")SQL = "SELECT id,user,username,date,text FROM messages WHERE topic=" & topic & " ORDER BY date"
rs.open SQL, conn, 1, 1IF rs.recordcount > 0 THEN
DO WHILE rs.eof = FALSE
....
message_user = rs.fields("user")
....SQL2 = "SELECT nickname,email,homepage,subtitle,signature,avatar FROM users WHERE id=" & message_user
rs2.open SQL2, conn, 1, 1
IF rs2.recordcount > 0 THEN
[b]nickname = rs2.fields("nickname")[/b]
......
ELSE
' Wat weer te geven als er 0 records gevonden zijn.
END
rs2.close
rs.movenext
LOOP
ELSE
' Wat weer te geven als er 0 records gevonden zijn.
END IFrs.close
SET rs = NOTHING
SET rs2 = NOTHING
Maar je bent er al uit zo te zien....
Verwacht je 1 resultaat:
code:Meerdere resultaten:if RS.eof=false then
[..]
end if
code:while RS.eof=false
[...]
RS.MoveNext
wend
kijk als je dit doet:
response.write("Hello ")
response.write("World")
dan staat er in je html code;
Hello World
en niet:
Hello
World
Hoe doe je dat, ik zoek naar bugs in mn code en een beetje overzicht kan geen kwaad . Ik ben bewust van "vbcrlf" maar het moet toch op een normale manier kunnen. Dat "vbcrlf" is slordig en het lijkt mij omslachtig...
quote:Hmm, ik weet niet of dit is wat je bedoelt maar
Op maandag 30 juni 2003 00:58 schreef ErikN het volgende:
nog een vraagjekijk als je dit doet:
response.write("Hello ")
response.write("World")dan staat er in je html code;
Hello Worlden niet:
Hello
WorldHoe doe je dat, ik zoek naar bugs in mn code en een beetje overzicht kan geen kwaad
. Ik ben bewust van "vbcrlf" maar het moet toch op een normale manier kunnen. Dat "vbcrlf" is slordig en het lijkt mij omslachtig...
code:doet toch gewoon wat jij wilt?response.write("Hello <br>World")
quote:nee dat bedoel ik niet de html output moet verspreid over 2 regels maar in internet explorer gewoon 1 regel
Op maandag 30 juni 2003 01:05 schreef FAQ het volgende:[..]
Hmm, ik weet niet of dit is wat je bedoelt maar
code:doet toch gewoon wat jij wilt?response.write("Hello <br>World")
Dus zit er niks anders op dan gewoon vbcrlf aan je strings te plakken.
quote:
nee dat bedoel ik niet de html output moet verspreid over 2 regels maar in internet explorer gewoon 1 regel
code:Dat dan?response.write("Hello \n World")
quote:Nee, vbcrlf is de VBScript equivalent van \n in JavaScript.
Op maandag 30 juni 2003 12:50 schreef artyfarty het volgende:[..]
code:Dat dan?response.write("Hello \n World")
Je moet het als volgt zien, je tiept een stuk tekst net zoals hier bij fok. Vervolgens selecteer je het met de muis en je drukt op een knopje (lees: selecteert uit lijst) een kleur en die tekst moet meteen die kleur worden. Ergens verstopt in een hidden textbox ofzo heb je dan normale ubb code.
Hoe krijg je zoiets voor elkaar? Ik ben al begonnen met javascript dingetjes zoeken. Ik weet niet wat wijsheid is in dit geval dus voor ik allemaal domme dingen ga maken ben ik wel benieuw hoe jullie het aan zouden pakken...
Hier een preview van mijn forum:
http://217.122.224.31/index.asp?topic=1
Erik
Het komt er op neer dat je je TEXTAREA kan behouden om de tekst te typen, maar je doet tijdens 't opbouwen van je pagina een extra javascript aanroep: editor_generate('<textarea-id>');
Dit tovert je textarea vanzelf om in een full-featured html editor!
quote:thnx, ik wil het uiteindelijk toch zelf maken (ik moet dit leren voor mijn stage) maar nu heb ik een goed voorbeeld. best handig zon centraal asp topic
Op maandag 30 juni 2003 14:25 schreef kobold het volgende:
Dit is een mooie: http://www.interactivetools.com/products/htmlarea/ (gratis)Het komt er op neer dat je je TEXTAREA kan behouden om de tekst te typen, maar je doet tijdens 't opbouwen van je pagina een extra javascript aanroep: editor_generate('<textarea-id>');
Dit tovert je textarea vanzelf om in een full-featured html editor!
edit: handige links
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmshtml/html/mshtmleditplatf.asp
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/commandids.asp
quote:Die links ken ik ja, maar dat maakt gebruik van dezelfde "engine" als Word & Frontpage. Het levert dus bagger HTML op en bovendien werkt het niet in andere browsers.
Op maandag 30 juni 2003 14:45 schreef ErikN het volgende:
JE-ZUS moet je eens voor de grap naar die source kijkendat wordt hoofdpijn krijgen straks
edit: handige linkshttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmshtml/html/mshtmleditplatf.asp
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/commandids.asp
Die link van mij levert wel cleane HTML op, daarom is de Javascript code wat ingewikkelder. Maar in principe staat daar niets in wat je niet zelf had kunnen bedenken. (dat geldt voor mezelf tenminste, heheh)
quote:Mijn probleem is dat ik geen javascript kan, maargoed een week geleden ook nog geen asp. Ik ga dan wel eerst de javascript syntax leren en dan maar voor de cleane code, want ik flip al helemaal als een letters 2 pixels te ver naar links staan. Het gaat niet om de 2 pixels maar ik de letter moet doen wat ik zeg
Op maandag 30 juni 2003 15:28 schreef kobold het volgende:[..]
Die links ken ik ja, maar dat maakt gebruik van dezelfde "engine" als Word & Frontpage. Het levert dus bagger HTML op en bovendien werkt het niet in andere browsers.
Die link van mij levert wel cleane HTML op, daarom is de Javascript code wat ingewikkelder. Maar in principe staat daar niets in wat je niet zelf had kunnen bedenken. (dat geldt voor mezelf tenminste, heheh)
quote:het andere topic hierover werd gesloten ik heb inmiddels deze link gekregen:
Op woensdag 2 juli 2003 20:01 schreef ErikN het volgende:
Hallo, is er een manier om bestanden te uploaden met ASP zonder domme plugins of andere vage shit. Ik heb IIS lokaal draaien om te testen, ik heb tot nu toe alleen chilisoft asp upload gevonden maar dat ondersteund alleen apache. Is er misschien een andere manier?
alleen deze is veels te uitgebreid ik wil gewoon de commando's en syntax weten, en niet 500 regels code doorlezen die waarschijnlijk niet eens werkt
Ik heb nu al 100 keer iets uit een database gelezen en ineens wil het niet meer... Ik heb een formulier gemaakt met daarin een username, password en submit knop je drukt submit de waardes worden goed ontvangen (heb getest met response.write). Maargoed meneer ASP vind dat er een fout zit in regel 11
Soort fout:
Microsoft JET Database Engine (0x80040E10)
Waarden voor een of meer vereiste parameters ontbreken.
/login.asp, line 11
<%
dim login_nickname
dim login_password
login_nickname = request.form("login_nickname")
login_password = request.form("login_password")
if login_nickname <> "" and login_password <> "" then
set rs_login1 = server.createobject("adodb.recordset")
sql = "SELECT password FROM users WHERE nickname=" & login_nickname
rs_login.open sql, conn
login_password = rs_login.fields("password")
rs_login.close
end if
ik erger me weer helemaal dood aan dat vieze asp ik ga wel tv kijken ofzo
heel leuk bedacht allemaal maar wat ik ook doe ik krijg altijd -1 als return, ik ga lezen op internet en vind:
If this property is not supported it will return -1.
Hoezo not supported? Ik heb gewoon asp gedownload van asp.net op mijn IIS, wat doe ik nou fout dan
dim login_nickname
dim login_password
login_nickname = request.form("login_nickname")
login_password = request.form("login_password")
if login_nickname <> "" and login_password <> "" then
set rs_login_password_check = server.createobject("adodb.recordset")
sql = "SELECT password FROM users WHERE nickname='" & login_nickname & "'"
rs_login_password_check.open sql, conn
if rs_login_password_check.recordcount <> 0 then
//login_password_check = rs_login_password_check.fields("password")
if login_password = login_password_check then
//login
else
//invalid password
end if
else
//invalid username
end if
//response.write(login_password_check)
rs_login_password_check.close
end if
[Dit bericht is gewijzigd door ErikN op 03-07-2003 00:38]
quote:Ik heb een tijd geleden een ander script gevonden, maar dit was niet zo uitgebreid als deze (1 bestand per keer uploaden). Toch blijft de code "ingewikkeld", omdat het nu eenmaal geen standaard functionaliteit is. Maar daarvoor hebben ze "functions" en "classes" uitgevonden! Je maakt 't 1x en daarna stop je 't in de standaard functie/class-library en dan is er niks moeilijks meer aan!
Op woensdag 2 juli 2003 20:28 schreef ErikN het volgende:[..]
het andere topic hierover werd gesloten ik heb inmiddels deze link gekregen:
http://www.asp101.com/articles/jacob/scriptupload.aspalleen deze is veels te uitgebreid ik wil gewoon de commando's en syntax weten, en niet 500 regels code doorlezen die waarschijnlijk niet eens werkt
quote:Ik heb 't even gecorrigeerd voor jou
Op woensdag 2 juli 2003 22:07 schreef ErikN het volgende:
Soort fout:
Microsoft JET Database Engine (0x80040E10)
Waarden voor een of meer vereiste parameters ontbreken.
/login.asp, line 11<%
dim login_nickname
dim login_passwordlogin_nickname = request.form("login_nickname")
login_password = request.form("login_password")if login_nickname <> "" and login_password <> "" then
set rs_login1 = server.createobject("adodb.recordset")
sql = "SELECT password FROM users WHERE nickname=" & login_nickname
rs_login.open sql, conn,2,2login_password = rs_login.fields("password")
rs_login.close
end ifik erger me weer helemaal dood aan dat vieze asp ik ga wel tv kijken ofzo
quote:Welk type database gebruik je? En gaat deze via een ODBC-koppeling? Het zou kunnen zijn dat je MDAC ff moet updaten.
Op donderdag 3 juli 2003 00:16 schreef ErikN het volgende:
nou nog een vraagje: het formulier gebeuren werkt maar als de query ongeldig is (bijvoorbeeld bij een ongeldige username) dan krijg je een foutmelding dus ik dacht nou dan tellen we toch eerst de records met rs.RecordCountheel leuk bedacht allemaal maar wat ik ook doe ik krijg altijd -1 als return, ik ga lezen op internet en vind:
If this property is not supported it will return -1.Hoezo not supported? Ik heb gewoon asp gedownload van asp.net op mijn IIS, wat doe ik nou fout dan
quote:Probeer het es met
Op donderdag 3 juli 2003 00:16 schreef ErikN het volgende:
dus ik dacht nou dan tellen we toch eerst de records met rs.RecordCount
If Not rs_login_password_check.BOF And Not rs_login_password_check.EOF then
...
Aanraders :
http://www.4guysfromrolla.com
http://www.aspfaqs.com/aspfaqs
http://www.asp101.com
Op aspfaqs vind je o.a. het antwoord op je vraag waarom een recordcount -1 terug kan geven. Dit heeft te maken met je cursortype. Voor een recordcount moet het systeem namenlijk je hele recordset doorlopen en weer terug naar het begin gaan.
En dat je het upload-script te lang vindt ...tja... Hier werkt het script uitstekend. Hou er rekening mee dat de directory waar je in wil schrijven wel schrijfrechten moet hebben...
code:En neem nu als login_nickname: bla;DELETE FROM userssql = "SELECT password FROM users WHERE nickname=" & login_nickname
rs_login.open sql, conn,2,2
quote:Geeft zowiezo een fout als er geen quotes omheen staan... en ook al staan er quotes dan ben jij die alsnog vergeten af te sluiten met een quote.
Op donderdag 3 juli 2003 12:41 schreef kobold het volgende:
SQL injection:code:En neem nu als login_nickname: bla;DELETE FROM userssql = "SELECT password FROM users WHERE nickname=" & login_nickname
rs_login.open sql, conn,2,2
Maar om als gebruikersnaam een [ erin te plaatsen is ook leuk!
quote:Voor de recordcount property moet je een statisch cursortype gebruiken.
If this property is not supported it will return -1.
Kan het nergens vinden........
Dat kan dus niet helaas...
Ik wil hm gewoon standalone opent, dus dat een .doc gewoon in word opent in een normaal omgeving in Windows.
Ja, het heeft misschien niet echt veel met ASP te maken
quote:Niet doen! Kan alleen met VBScript en dus alleen met a) Internet Explorer en b) als je site in de 'trusted site' lijst staat. Dat krijg je dus in principe alleen op een intranet voor elkaar (of bij heel domme gebruikers).
Op dinsdag 15 juli 2003 14:03 schreef Choller het volgende:
Nee dat wil ik niet.Ik wil hm gewoon standalone opent, dus dat een .doc gewoon in word opent in een normaal omgeving in Windows.
Ja, het heeft misschien niet echt veel met ASP te maken
quote:Dat dat alleen met vbscript kan is onzin hoor. En met IE heeft het ook weinig te maken.
Op dinsdag 15 juli 2003 15:18 schreef beyond_cool het volgende:[..]
Niet doen! Kan alleen met VBScript en dus alleen met a) Internet Explorer en b) als je site in de 'trusted site' lijst staat. Dat krijg je dus in principe alleen op een intranet voor elkaar (of bij heel domme gebruikers).
Dat je het niet moet doen is weer wel waar. Omdat ActiveX componentjes standaard worden geweigerd in browsers kunnen 9 van de 10 gebruikers er niets mee.
Er komt dan zo'n lekkere duidelijke popup met allerlei security waarschuwingen. Da's standaard nee klikken voor de meeste gebruikers.
quote:Niet helemaal waar. Je kan een signed activex component safe for scripting meegeven waardoor 9 van de 10 gebruikers geen security waarschuwing krijgen.
Op dinsdag 15 juli 2003 15:33 schreef sop het volgende:[..]
Dat dat alleen met vbscript kan is onzin hoor. En met IE heeft het ook weinig te maken.
Dat je het niet moet doen is weer wel waar. Omdat ActiveX componentjes standaard worden geweigerd in browsers kunnen 9 van de 10 gebruikers er niets mee.
Er komt dan zo'n lekkere duidelijke popup met allerlei security waarschuwingen. Da's standaard nee klikken voor de meeste gebruikers.
maar dat kost geld
quote:Wou net zeggen ...en dat vind ik geen 'good practice' EN dat vangt mijn browser trouwens ook af. Geen gerotzooi met mijn PC via mijn browser
Op dinsdag 15 juli 2003 16:02 schreef CJ_S het volgende:[..]
Niet helemaal waar. Je kan een signed activex component safe for scripting meegeven waardoor 9 van de 10 gebruikers geen security waarschuwing krijgen.
maar dat kost geld
quote:Ok, het kan ook met Jscript of een zelfgemaakt active-x componentje. Maar ik betwijfel het sterk of een Netscape-browser dat zal ondersteunen ...
Op dinsdag 15 juli 2003 15:33 schreef sop het volgende:[..]
Dat dat alleen met vbscript kan is onzin hoor. En met IE heeft het ook weinig te maken.
Dat je het niet moet doen is weer wel waar. Omdat ActiveX componentjes standaard worden geweigerd in browsers kunnen 9 van de 10 gebruikers er niets mee.
Er komt dan zo'n lekkere duidelijke popup met allerlei security waarschuwingen. Da's standaard nee klikken voor de meeste gebruikers.
Maar goed, ik formuleer het anders: doe het niet als je leven je lief is
een link naar een compleet asp open source forum:
http://www.webwizguide.info
ik heb zelf afgelopen half jaar ook met asp zo'n editor gemaakt voor een CMS zodat ik online pagina's kan bewerken...
is erg goed gelukt al zeg ik het zelf
succes ermee
ps...asp is niet zo moeilijk te debuggen...de echte shit komt pas met javascript
quote:Heu, download eens Netscape en klop in de adresbalk javascript: in. Er gaat een wereld voor je open denk ik. Javascript debuggen is
Op dinsdag 15 juli 2003 23:22 schreef HaroldD het volgende:ps...asp is niet zo moeilijk te debuggen...de echte shit komt pas met javascript
quote:http://www11.brinkster.com/jvwlive/fokcursus.htm
Op dinsdag 15 juli 2003 23:22 schreef HaroldD het volgende:
enkele links voor je editor:
http://www.codeproject.com/jscript/w3richtechedit.asp
http://www.xefteri.com/articles/apr202002/default.aspxeen link naar een compleet asp open source forum:
http://www.webwizguide.infoik heb zelf afgelopen half jaar ook met asp zo'n editor gemaakt voor een CMS zodat ik online pagina's kan bewerken...
is erg goed gelukt al zeg ik het zelf
succes ermee
ps...asp is niet zo moeilijk te debuggen...de echte shit komt pas met javascript
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |