[ASP] Request.Form("......") wil niet werken, komt niets in

Pagina: 1
Acties:

Onderwerpen


  • stavast
  • Registratie: Mei 2004
  • Laatst online: 27-10-2022
ik probeer via een combobox een aantal klant namen binnen te halen vanuit een database, dit verloopt allemaal prima. maar de volgende stap is dat je een klant kan selecteren en deze vervolgens kan verwijderen uit de database. hier voor heb ik het volgende gemaakt:

ASP.NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<!--#include file="Includes\Subs.asp"-->

<%
gConnectionString = "Provider=sqloledb;Data Source=xxxx;Initial Catalog=PDU_Schedule;User Id=xxxxx;Password=xxxx;"
%>

<html>
<head>
<script language="javascript">
<!--

function dept_onchange(frmSelect) {
    frmSelect.submit(); 
}

//-->
</script>
</head>

<body>
The following customer was selected : <%=Request.Form ("customer")%>

<form name="frmSelect" method="Post" action="Remove_Customer.asp">
<SELECT name=customer
     LANGUAGE=javascript onchange="return dept_onchange(frmSelect)">
<%

SQL = "SELECT Customer_Name FROM Customers "
SQL = SQL & " ORDER BY Customer_Name"

SqlOpen SQL, rs, conn

Do while not rs.EOF
   if Request.Form("customer") = rs("Customer_Name") then
      Response.Write "<OPTION VALUE = '" & rs ("Customer_Name") & "' SELECTED>"
      Response.Write rs("Customer_Name") & "</Option>"
      rs.MoveNext
   else
      Response.Write "<OPTION VALUE = '" & rs ("Customer_Name") & "'>"
      Response.Write rs("Customer_Name") & "</Option>"
      rs.MoveNext
   end if
loop


%>
</SELECT>
</form>



<form method="post" action="But_RemoveCustomer.asp">
<input type="submit" value="Remove Customer">
<input type="reset" value="Cancel">
</form>


</body>
</html>


waarbij de verwijder actie met deze pagina zou moeten gebeuren:

ASP.NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<html>
<Body>
<!--#include file="Includes\Subs.asp"-->
<%
gConnectionString = "Provider=sqloledb;Data Source=xxxxx;Initial Catalog=PDU_Schedule;User Id=xxxx;Password=xxxx;"

CustomerSelected = Request.form("customer")

        SQL = " DELETE FROM Customers WHERE Customer_Name = " & " ' " & CustomerSelected & " ' " 

                

on error resume next
SqlExec SQL

if err<>0 then
  Response.Write("No update permissions!")
else
  Response.Write("<h3>" & recaffected & " record added</h3>")
end if
conn.close
response.write(SQL)


%>

</html>
</body>



dit lijkt dus niet te werken:
CustomerSelected = Request.form("customer") want de SQL string komt er op de pagina als volgt uit te zien: DELETE FROM Customers WHERE Customer_Name = ' '

wanneer ik CustomerSelected = "testtest" doe dan krijgt de SQL string wel gewoon de waarde testtest, due daar lijkt het niet aan te liggen.

verder als ik er voor kies om een input box te nemen, dan lijkt het wel te werken. maar ik wil het graag vanuit een combobox doen.

ziet iemand wat ik fout doe? bij het toevoegen van een klant maak ik gebruik van dezelfde toepassing en hier werkt het wel gewoon. heeft het er misschien mee te maken dat ik twee forms heb in de code?

[ Voor 13% gewijzigd door stavast op 12-08-2010 15:48 ]


  • boe2
  • Registratie: November 2002
  • Niet online

boe2

'-')/

Request.form is een collection, geen functie ;)

(trouwens vreemd dat je debugger er niet over klaagt)


evil, evil asp, geen asp.net, ik heb niets gezegd O-)

[ Voor 75% gewijzigd door boe2 op 12-08-2010 16:30 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind.' - Pratchett.


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 18-09 20:25

TeeDee

CQB 241

Je forms posten naar 2 verschillende pagina's?

In het 2e formpje zal je afaik toch wel iets van een referentie naar die 'customer' moeten hebben lijkt me.

Geeft de code op regel 21 wel een correct resultaat?

[ Voor 15% gewijzigd door TeeDee op 12-08-2010 16:30 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Eerlijk gezegd, ik ben geen asp programmeur, maar ken wel PHP en HTML, en ik zou beginnen regel 48 en 52 uit de eerste code te verwjderen.

Een aparte form maken voor de buttons, die dan ook nog eens een naar een andere pagina verwijst, lijkt mij onlogisch. De eerste form heeft dan geen submit functie ingebouwd en zal nooit gegevens oversturen, terwijl de tweede wel submit, maar zonder gegevens.

  • stavast
  • Registratie: Mei 2004
  • Laatst online: 27-10-2022
TeeDee schreef op donderdag 12 augustus 2010 @ 16:29:
Je forms posten naar 2 verschillende pagina's?

In het 2e formpje zal je afaik toch wel iets van een referentie naar die 'customer' moeten hebben lijkt me.

Geeft de code op regel 21 wel een correct resultaat?
regel 21 geeft het correcte resultaat, daarom vind ik het zo vreemd dat het niet werkt. ik zou opzich met een formpje afkunnen, maar dan heb ik geen terugkoppeling naar welke geselecteerd is. ben verder ook niet zo'n held in ASP, het is de tweede dag dat ik er mee bezig ben :D

[ Voor 7% gewijzigd door stavast op 12-08-2010 16:47 ]


  • apokalypse
  • Registratie: Augustus 2004
  • Laatst online: 16-09 21:55
Boeboe schreef op donderdag 12 augustus 2010 @ 16:27:
Request.form is een collection, geen functie ;)

(trouwens vreemd dat je debugger er niet over klaagt)


evil, evil asp, geen asp.net, ik heb niets gezegd O-)
offtopic:
Eerder VB/VB.net waar je collecties met (..) benaderd ipv [..]

Je kant request.Form toch gewoon debuggen? Je bent je bewust van SQL injection?

[ Voor 9% gewijzigd door apokalypse op 12-08-2010 19:18 ]


Acties:
  • 0 Henk 'm!

  • bastv
  • Registratie: September 2005
  • Laatst online: 08-09 20:34
je moet customer ook aan je delete form toevoegen als hidden field
ASP:
1
2
3
4
5
<form method="post" action="But_RemoveCustomer.asp">
<input type="submit" value="Remove Customer">
<input type=hidden" name="customer" value=" <%=Request.Form("customer")%>">
<input type="reset" value="Cancel">
</form>

[ Voor 22% gewijzigd door bastv op 13-08-2010 09:03 ]


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 18-09 20:25

TeeDee

CQB 241

bastv schreef op vrijdag 13 augustus 2010 @ 09:01:
je moet customer ook aan je delete form toevoegen als hidden field
ASP:
1
2
3
4
5
<form method="post" action="But_RemoveCustomer.asp">
<input type="submit" value="Remove Customer">
<input type=hidden" name="customer" value=" <%=Request.Form("customer")%>">
<input type="reset" value="Cancel">
</form>
Is inderdaad de makkelijkste oplossing. Je zou 't form ook naar zichzelf kunnen posten, maar effectief doe je dan 't zelfde.
apokalypse schreef op donderdag 12 augustus 2010 @ 19:15:
[...]
Je bent je bewust van SQL injection?
Nee, geef eens wat meer info. Misschien dat TS daar ook wat een heeft...
Hier of hier is wel wat te vinden.

[ Voor 37% gewijzigd door TeeDee op 13-08-2010 09:25 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • stavast
  • Registratie: Mei 2004
  • Laatst online: 27-10-2022
bastv schreef op vrijdag 13 augustus 2010 @ 09:01:
je moet customer ook aan je delete form toevoegen als hidden field
ASP:
1
2
3
4
5
<form method="post" action="But_RemoveCustomer.asp">
<input type="submit" value="Remove Customer">
<input type=hidden" name="customer" value=" <%=Request.Form("customer")%>">
<input type="reset" value="Cancel">
</form>
Super, het is gelukt. Toevallig had ik die oplossing ook bedacht, maar ik dacht dat dit een slordige oplossing zou zijn. maar top dat het nu werkt!

allemaal erg bedankt!

Acties:
  • 0 Henk 'm!

  • stavast
  • Registratie: Mei 2004
  • Laatst online: 27-10-2022
TeeDee schreef op vrijdag 13 augustus 2010 @ 09:19:
[...]

Is inderdaad de makkelijkste oplossing. Je zou 't form ook naar zichzelf kunnen posten, maar effectief doe je dan 't zelfde.


[...]

Nee, geef eens wat meer info. Misschien dat TS daar ook wat een heeft...
Hier of hier is wel wat te vinden.
dank je wel voor de informatie :) daar heb ik inderdaad wat meer aan. gelukkig zit alles in een lan dat niet bereikbaar is vanaf de buiten kant, dus ik hoef me niet zo druk te maken over beveiligingen

rest alleen nog een klein vraagje. de uitkomst in het SQL statement bevat twee spaties, hoe kan dit?

uitkomst: DELETE FROM Customers WHERE Customer_Name = ' hcghfhgh '

wanneer ik de customer normaal laat afdrukken middels een response.write(customer) dan bevat deze geen spatie. klopt er iets niet in mijn expressie?

[ Voor 27% gewijzigd door stavast op 13-08-2010 10:42 ]


Acties:
  • 0 Henk 'm!

  • bastv
  • Registratie: September 2005
  • Laatst online: 08-09 20:34
ASP:
1
SQL = "DELETE FROM Customers WHERE Customer_Name = '"&CustomerSelected&"' " 

[ Voor 4% gewijzigd door bastv op 13-08-2010 11:02 ]


Acties:
  • 0 Henk 'm!

  • stavast
  • Registratie: Mei 2004
  • Laatst online: 27-10-2022
bastv schreef op vrijdag 13 augustus 2010 @ 11:01:
ASP:
1
SQL = "DELETE FROM Customers WHERE Customer_Name = '"&CustomerSelected&"' " 
dan krijg ik nog steeds spaties als uitkomst, erg vreemd

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 18-09 20:25

TeeDee

CQB 241

value=" <%=Request.Form("customer")%>">

Dan word er iig aan de voorzijde een spatie meegegeven.

Je zou beter naar de Ltrim / Rtrim functies kunnen kijken.

[ Voor 60% gewijzigd door TeeDee op 13-08-2010 12:08 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • stavast
  • Registratie: Mei 2004
  • Laatst online: 27-10-2022
TeeDee schreef op vrijdag 13 augustus 2010 @ 12:07:
value=" <%=Request.Form("customer")%>">

Dan word er iig aan de voorzijde een spatie meegegeven.

Je zou beter naar de Ltrim / Rtrim functies kunnen kijken.
you've made my day!

heb het met een Trim(Request.Form ("customer")) kunnen oplossen!
Pagina: 1