Solved

problems calling a function...

Posted on 2001-08-17
29
380 Views
Last Modified: 2007-11-27
Not sure if this is the right place for the question but its on an asp page so here goes... (am new to javascript, vbscript and asp so it could well be horribly wrong)

I am trying to call a function called Encrypt but don't know how to do it.  This is my error:

Microsoft JScript compilation (0x800A03EC)
Expected ';'
/mercury/loginHandler.asp, line 14, column 8
Private Function Encrypt(ByVal string)
-------^

and this is my code...
<%          //no more cashing
          Response.Expires = 0;
          Response.ExpiresAbsolute = "01/01/1999";
          Response.AddHeader ("pragma","no-cache");
          Response.AddHeader ("cache-control","private");
          Response.CacheControl = "no-cache";
          //end no more cashing
%>

<!-- #include VIRTUAL=/Include/SunriseMod.inc -->
<SCRIPT LANGUAGE=vbscript>
<%
Private Function Encrypt(ByVal string)
                Dim x, i, tmp
                For i = 1 To Len( string )
                                x = Mid( string, i, 1 )
                                tmp = tmp & Chr( Asc( x ) + 1 )
                Next
                tmp = StrReverse( tmp )
                Encrypt = tmp
End Function
%>
</script>
<%
   var guser = Request.form("gusername");
   var gpass = Request.form("gpassword");

   var rs = sungetRS("sunrise_dev", "select LoginName from RichUser where LoginName='" + guser + "' and Encrypt(FinancePassword)='" + gpass + "' and FinanceAccess='Y'");

   if (rs.RecordCount>0)
   {
          Session("isLogin") = "True";
      Response.redirect("index.asp")
   }
   else
   {
      Response.redirect ("unsuccessful.htm");
   }
%>

0
Comment
Question by:jhazard
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 12
  • 12
  • 2
  • +2
29 Comments
 
LVL 1

Expert Comment

by:sdm395
ID: 6396298
Try this
You seem to be a bit confused between client side javascript, client side vb script and server side vbscript..let me know if you want more explanation

<%          //no more cashing
         Response.Expires = 0
         Response.ExpiresAbsolute = "01/01/1999"
         Response.AddHeader "pragma","no-cache"
         Response.AddHeader "cache-control","private"
         Response.CacheControl = "no-cache"
         //end no more cashing

Private Function Encrypt(ByVal string)
               Dim x, i, tmp
               For i = 1 To Len( string )
                               x = Mid( string, i, 1 )
                               tmp = tmp & Chr( Asc( x ) + 1 )
               Next
               tmp = StrReverse( tmp )
               Encrypt = tmp
End Function

guser = Request.form("gusername")
  gpass = Request.form("gpassword")

  rs = sungetRS("sunrise_dev", "select LoginName from RichUser where LoginName='" & guser & Encrypt(FinancePassword) & "='" & gpass & "'&FinanceAccess='Y'")

  if (rs.RecordCount>0) Then
         Session("isLogin") = "True"
          Response.redirect("index.asp")
  else
          Response.redirect ("unsuccessful.htm")
     end if
 
%>
0
 
LVL 1

Expert Comment

by:sdm395
ID: 6396306
you need to add your include & also put the rs=sungetRS call all on one line
0
 

Author Comment

by:jhazard
ID: 6396358
Hi there - thanks for your quick response on this.  I now get a different kind of error which seems to relate to my include file but I know for a fact this works without the function.

Microsoft VBScript compilation (0x800A0401)
Expected end of statement
/Include/SunriseConnParams.inc, line 2, column 27
var SQLServer="PSDSQLOLD";
--------------------------^

This is my code:

<%          //no more cashing
        Response.Expires = 0
        Response.ExpiresAbsolute = "01/01/1999"
        Response.AddHeader "pragma","no-cache"
        Response.AddHeader "cache-control","private"
        Response.CacheControl = "no-cache"
        //end no more cashing
%>
<!-- #include VIRTUAL=/Include/SunriseModul.inc -->
<%
Private Function Encrypt(ByVal string)
              Dim x, i, tmp
              For i = 1 To Len( string )
                              x = Mid( string, i, 1 )
                              tmp = tmp & Chr( Asc( x ) + 1 )
              Next
              tmp = StrReverse( tmp )
              Encrypt = tmp
End Function

guser = Request.form("gusername")
gpass = Request.form("gpassword")

rs = sungetRS("sunrise_temp", "select LoginName from RichUser where LoginName='" & guser & Encrypt(FinancePassword) "='" & gpass & "'&FinanceAccess='Y'")

 if (rs.RecordCount>0) Then
        Session("isLogin") = "True"
         Response.redirect("index.asp")
 else
         Response.redirect ("unsuccessful.htm")
    end if
%>
0
Instantly Create Instructional Tutorials

Contextual Guidance at the moment of need helps your employees adopt to new software or processes instantly. Boost knowledge retention and employee engagement step-by-step with one easy solution.

 
LVL 1

Expert Comment

by:sdm395
ID: 6396374
2 points.

1) the include file you have now included is not the same as the one in the first bit of code (intentional?)

2) in VBscript you don't need to use the 'var' keyword or ';' like you do in javascript.  Rewrite that line like this

Dim SQLServer
SQLServer="PSDSQLOLD"


0
 

Author Comment

by:jhazard
ID: 6396488
1) Yes that was intentional
2) I've made those changes and now need to change another file thats affected but its not happy, any suggestions?  
This is my error:

Microsoft VBScript runtime (0x800A01A8)
Object required: 'conn'
/Include/SunriseModul.inc, line 8

So far code looks like this:
<%
Function sungetRS(database,sqlstring)
Dim conn
Dim sql
Dim rs
     conn = Server.CreateObject("ADODB.Connection")
     conn.open ("Driver={SQL Server};Server=" + SQLServer + ";database=" + DatabaseName + ";uid=" + UserName + ";pwd=" + UserPassword)
     sql = sqlstring
     rs = Server.CreateObject("ADODB.Recordset")
     rs.Open sql, conn, 3, 3
     return rs
End Function

%>
0
 
LVL 1

Expert Comment

by:sdm395
ID: 6396508
2 things again

1) You must use the Set statement to create a new instance of Conn - ie Set Conn = Server.CreateObject("ADODB.Connection")

2) Instead of using 'return' (again javascript syntax) do functioname=value
i.e. sungetRS=rs

0
 
LVL 3

Expert Comment

by:krispols
ID: 6396788
When you concat string in VBScript us & instead of +
0
 

Author Comment

by:jhazard
ID: 6396930
Now getting this...

Microsoft VBScript runtime (0x800A01B6)
Object doesn't support this property or method: 'rs.open'
/Include/SunriseModul.inc, line 11
0
 
LVL 2

Expert Comment

by:kikkertm
ID: 6397161
Again, use 'set' to instanciate a recordset:

Set rs = Server.CreateObject("ADODB.Recordset")
0
 
LVL 33

Expert Comment

by:hongjun
ID: 6397362
so any other problems?

hongjun
0
 

Author Comment

by:jhazard
ID: 6397619
yes another little syntax thing...
error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near '='.
/Include/SunriseModul.inc, line 11

<!-- #include VIRTUAL=/Include/SunriseConnParams.inc -->
<%
Function sungetRS(database,sqlstring)
Dim conn
Dim sql
Dim rs
     Set conn = Server.CreateObject("ADODB.Connection")
     conn.open ("Driver={SQL Server};Server=" & SQLServer & ";database=" & DatabaseName & ";uid=" & UserName & ";pwd=" & UserPassword)
     sql = sqlstring
     Set rs = Server.CreateObject("ADODB.Recordset")
     rs.Open sql, conn, 3, 3
     sungetRS = rs
End Function

%>
0
 
LVL 33

Expert Comment

by:hongjun
ID: 6397644
Could you do a response.write on sql then post it here? I suspect your sql statement is incorrect.

hongjun
0
 

Author Comment

by:jhazard
ID: 6397811
can't get my code to stop falling over to do a response.write but here is the code:

rs = sungetRS("sunrise_temp", "select LoginName from RichUser where LoginName='" & guser & Decrypt(Password) & gpass & "'&FinanceAccess='Y'")

Before I used the Decrypt function the sql ran perfectly using a different password field.
0
 

Author Comment

by:jhazard
ID: 6397963
sorted out my sql - looks like & replaced AND now getting this:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]'Decrypt' is not a recognized function name.
/Include/SunriseModul.inc, line 11

code:
<%          //no more cashing
       Response.Expires = 0
       Response.ExpiresAbsolute = "01/01/1999"
       Response.AddHeader "pragma","no-cache"
       Response.AddHeader "cache-control","private"
       Response.CacheControl = "no-cache"
       //end no more cashing
%>
<!-- #include VIRTUAL=/Include/SunriseModul.inc -->
<%
Private Function Decrypt(ByVal encryptedstring)
                Dim x, i, tmp
                encryptedstring = StrReverse( encryptedstring )
                For i = 1 To Len( encryptedstring )
                                x = Mid( encryptedstring, i, 1 )
                                tmp = tmp & Chr( Asc( x ) - 1 )
                Next
                Decrypt = tmp
End Function

guser = Request.form("gusername")
gpass = Request.form("gpassword")

rs = sungetRS("sunrise_temp", "select LoginName from RichUser where LoginName='" & guser & "' and Decrypt(Password)='" & gpass & "' and FinanceAccess='Y'")

if (rs.RecordCount>0) Then
       Session("isLogin") = "True"
        Response.redirect("index.asp")
else
        Response.redirect ("unsuccessful.htm")
   end if
%>
0
 
LVL 3

Expert Comment

by:krispols
ID: 6405217
rs = sungetRS("sunrise_temp", "select LoginName from RichUser where LoginName='" & guser & "' and Password='"
& Decrypt(gpass) & "' and FinanceAccess='Y'")
0
 
LVL 1

Expert Comment

by:sdm395
ID: 6405429
You need to omit the Private keyword in the function declaration in the include file.

i.e.

Function Decrypt (ByVal encryptedstring)

....


End function
0
 

Author Comment

by:jhazard
ID: 6405971
Now getting this - I feel I'm very close now!

Microsoft VBScript compilation (0x800A03EE)
Expected ')'
/Finance App/Mercury/Program - Source Code/Stfb/loginHandler.asp, line 24, column 85

rs = sungetRS("sunrise_temp", "select LoginName from RichUser where LoginName='" &amp; guser &amp; "' and Password='" <BR><BR>&amp; Decrypt(gpass) &amp; "' and FinanceAccess='Y'")<BR>
0
 
LVL 1

Expert Comment

by:sdm395
ID: 6405983
Try this

rs = sungetRS("sunrise_temp", "select LoginName from RichUser where LoginName='" & guser & "' and Password='" & Decrypt(gpass) & "' and FinanceAccess='Y'")
0
 

Author Comment

by:jhazard
ID: 6406011
same again - can you add in <BR> in the middle of vbscript?

Microsoft VBScript compilation (0x800A03EE)
Expected ')'
/Finance App/Mercury/Program - Source Code/Stfb/loginHandler.asp, line 24, column 85
rs = sungetRS("sunrise_temp", "select LoginName from RichUser where LoginName='" &amp; guser &amp; "' and Password='" <BR>&amp; Decrypt(gpass) &amp; "' and FinanceAccess='Y'")<BR>>
0
 
LVL 1

Expert Comment

by:sdm395
ID: 6406028
No you can't
<BR> is a html tag, and is used only really for displaying stuff.  It has no meaning in vbscript.  Also you are using &amp; instead of & - which is fine in html, but will cause problems in vbscript....
0
 
LVL 1

Expert Comment

by:sdm395
ID: 6406030
No you can't
<BR> is a html tag, and is used only used for formatting a html page.  It has no meaning in vbscript.

Also you are using &amp; instead of & - which is fine in html, but will cause problems in vbscript....

What are you trying to achieve by using <BR> etc??
0
 

Author Comment

by:jhazard
ID: 6406042
hmm I did a cut and paste from a previous answer that must've automatically put in br, I assumed it was part of someones answer.  Have now taken it out but am still getting:

Error Type:
Microsoft VBScript compilation (0x800A03EE)
Expected ')'
/Finance App/Mercury/Program - Source Code/Stfb/loginHandler.asp, line 24, column 85
rs = sungetRS("sunrise_temp", "select LoginName from RichUser where LoginName='" &amp; guser &amp; "' and Password='" &amp; Decrypt(gpass) &amp; "' and FinanceAccess='Y' ")
0
 
LVL 1

Expert Comment

by:sdm395
ID: 6406050
also replace
&amp;

with

&
0
 

Author Comment

by:jhazard
ID: 6406124
New one: (line 24 refers to the function below)
Error Type:
Microsoft VBScript runtime (0x800A01C2)
Wrong number of arguments or invalid property assignment: 'rs'
/Finance App/Mercury/Program - Source Code/Stfb/loginHandler.asp, line 24

Code:
<!-- #include VIRTUAL=/Include/SunriseConnParams.inc -->
<%
Function sungetRS(database,sqlstring)
Dim conn
Dim sql
Dim rs
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.open ("Driver={SQL Server};Server=" & SQLServer & ";database=" & DatabaseName & ";uid=" & UserName & ";pwd=" & UserPassword)
    sql = sqlstring
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn, 3, 3
    sungetRS = rs
End Function
%>
0
 

Author Comment

by:jhazard
ID: 6406174
I'm going to make this 100 points as its not been a straightforward one.
0
 
LVL 1

Accepted Solution

by:
sdm395 earned 100 total points
ID: 6406226
Try 2 things

1) last line of sungetRS change to:
Set sungetRS = rs

2) when you call this function use the format
Set x = sungetRS(x,y)
i.e. use the set keyword.
0
 

Author Comment

by:jhazard
ID: 6406329
Thank you very much that works!
0
 
LVL 1

Expert Comment

by:sdm395
ID: 6406340
No problem - thanks for the points...
0
 
LVL 1

Expert Comment

by:sdm395
ID: 6406342
No problem - thanks for the points...
0

Featured Post

Online Training Solution

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action. Forget about retraining and skyrocket knowledge retention rates.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Adding Row and Cell on a table 14 32
IIS components 2 67
Debugging Html 8 44
StoredProcedure to JSON query faulty syntax 2 45
I have helped a lot of people on EE with their coding sources and have enjoyed near about every minute of it. Sometimes it can get a little tedious but it is always a challenge and the one thing that I always say is:   The Exchange of informatio…
This demonstration started out as a follow up to some recently posted questions on the subject of logging in: http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_28634665.html and http://www.experts-exchange.com/Programming/…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…
Exchange organizations may use the Journaling Agent of the Transport Service to archive messages going through Exchange. However, if the Transport Service is integrated with some email content management application (such as an antispam), the admini…

751 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question