Avatar billede 0ffline Nybegynder
14. december 2003 - 21:29 Der er 5 kommentarer og
1 løsning

Ændre loginscriptets redirect

Hej

Er der endnu en tålmodig sjæl der kan hjælpe mig igen igen.
Jeg har et kæmpe loginscript, som virker helt ok...næsten.
Når en bruger har brugt det meste af aftenen til at skrive hans / hendes oplysninger ind i <formen> er det rigtigt ærgeligt at hvis det ønskede brugernavn allerede findes skal personen starte HELT forfor med at skrive oplysningerne. Jeg har prøvet at ændre og fjerne diverse sætninger, men ikke med det ønskede resultat til følge, desværre...
Jeg ved godt at sådan en kæmpe kode skræmmer de fleste væk fra spørgsmålet, så jeg sætter points til max i håb om at det vil hjælpe
På forhånd tak    /0ffline
Avatar billede 0ffline Nybegynder
14. december 2003 - 21:30 #1
Og så lige koden :)
.............................................
<!--#include file="Connections/users.asp" -->
<%
' *** Edit Operations: declare variables

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i

MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
  MM_editAction = MM_editAction & "?" & Request.QueryString
End If

' boolean to abort record edit
MM_abortEdit = false

' query string to execute
MM_editQuery = ""
%>
<%
' *** Redirect if username exists
MM_flag="MM_insert"
If (CStr(Request(MM_flag)) <> "") Then
  MM_dupKeyRedirect="opret.asp"
  MM_rsKeyConnection=MM_db_STRING
  MM_dupKeyUsernameValue = CStr(Request.Form("username"))
  MM_dupKeySQL="SELECT username FROM exusers WHERE username='" & MM_dupKeyUsernameValue & "'"
  MM_adodbRecordset="ADODB.Recordset"
  set MM_rsKey=Server.CreateObject(MM_adodbRecordset)
  MM_rsKey.ActiveConnection=Conn
  MM_rsKey.Source=MM_dupKeySQL
  MM_rsKey.CursorType=0
  MM_rsKey.CursorLocation=2
  MM_rsKey.LockType=3
  MM_rsKey.Open
  If Not MM_rsKey.EOF Or Not MM_rsKey.BOF Then
    ' the username was found - can not add the requested username
    MM_qsChar = "?"
    If (InStr(1,MM_dupKeyRedirect,"?") >= 1) Then MM_qsChar = "&"
    MM_dupKeyRedirect = MM_dupKeyRedirect & MM_qsChar & "requsername=" & MM_dupKeyUsernameValue
    Response.Redirect(MM_dupKeyRedirect)
  End If
  MM_rsKey.Close
End If
%>
<%
' *** Insert Record: set variables

If (CStr(Request("MM_insert")) = "newuser") Then

  MM_editConnection = MM_db_STRING
  MM_editTable = "exusers"
  MM_editRedirectUrl = "password.asp"
  MM_fieldsStr  = "firstname|value|lastname|value|email|value|birthyear|value|streetname|value|cityname|value|zipcode|value|username|value|sex|value"
  MM_columnsStr = "firstname|',none,''|lastname|',none,''|email|',none,''|birthyear|none,none,NULL|streetname|',none,''|cityname|',none,''|zipcode|none,none,NULL|username|',none,''|sex|',none,''"

  ' create the MM_fields and MM_columns arrays
  MM_fields = Split(MM_fieldsStr, "|")
  MM_columns = Split(MM_columnsStr, "|")
 
  ' set the form values
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
  Next

  ' append the query string to the redirect URL
  If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
    If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
      MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
    Else
      MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
    End If


  End If
  End If
%>

<%
' *** Insert Record: construct a sql insert statement and execute it

Dim MM_tableValues
Dim MM_dbValues

If (CStr(Request("MM_insert")) <> "") Then

  ' create the sql insert statement
  MM_tableValues = ""
  MM_dbValues = ""
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_formVal = MM_fields(MM_i+1)
    MM_typeArray = Split(MM_columns(MM_i+1),",")
    MM_delim = MM_typeArray(0)
    If (MM_delim = "none") Then MM_delim = ""
    MM_altVal = MM_typeArray(1)
    If (MM_altVal = "none") Then MM_altVal = ""
    MM_emptyVal = MM_typeArray(2)
    If (MM_emptyVal = "none") Then MM_emptyVal = ""
    If (MM_formVal = "") Then
      MM_formVal = MM_emptyVal
    Else
      If (MM_altVal <> "") Then
        MM_formVal = MM_altVal
      ElseIf (MM_delim = "'") Then  ' escape quotes
        MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
      Else
        MM_formVal = MM_delim + MM_formVal + MM_delim
      End If
    End If
    If (MM_i <> LBound(MM_fields)) Then
      MM_tableValues = MM_tableValues & ","
      MM_dbValues = MM_dbValues & ","
    End If
    MM_tableValues = MM_tableValues & MM_columns(MM_i)
    MM_dbValues = MM_dbValues & MM_formVal
  Next
  response.write "tabel:" & MM_editTable & "  Feltnavne:" & MM_tableValues
  MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

  If (Not MM_abortEdit) Then
    ' execute the insert
    Set MM_editCmd = Server.CreateObject("ADODB.Command")
    MM_editCmd.ActiveConnection = Conn
    MM_editCmd.CommandText = MM_editQuery
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close

    If (MM_editRedirectUrl <> "") Then
      Response.Redirect(MM_editRedirectUrl)
    End If
  End If

End If
%>
</HEAD>

<BODY BGCOLOR="#FFFFFF">
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=766>
<TR>
<TD WIDTH=766><img src='splashgfx/none.gif' height='1' width='230'><img src='splashgfx/smallarrow.jpg' height='9' width='9'> &nbsp;<img src='splashgfx/smallarrow.jpg' height='9' width='9'> &nbsp;<img src='splashgfx/smallarrow.jpg' height='9' width='9'> &nbsp; <a href='index.htm' target='_parent' onFocus='if (this.blur) this.blur();'>Til Forspillet</a>
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=766 class='dottedtable'>
<TR>
<TD WIDTH=766>
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=760 HEIGHT=346>
<TR>
<TD ROWSPAN=4 COLSPAN=1 WIDTH=220 HEIGHT=294 background='splashgfx/frame.jpg'><form action="<%=MM_editAction%>" method="POST" name="newuser" id="newuser" onSubmit="MM_validateForm('firstname','','R','lastname','','R','email','','RisEmail','birthyear','','RinRange1900:1984','streetname','','R','cityname','','R','zipcode','','RisNum','username','','R');return document.MM_returnValue">
  <table align="center">
    <tr valign="baseline">
      <td nowrap align="center" colspan='2' class='blueheadline'><br>Opret Brugerprofil ? &nbsp; <img src='splashgfx/smallarrow.jpg' height='9' width='9'> &nbsp;<img src='splashgfx/smallarrow.jpg' height='9' width='9'> &nbsp;<img src='splashgfx/smallarrow.jpg' height='9' width='9'><br></td></tr>
    <tr valign="baseline">
      <td nowrap align="right">Fornavn:</td>
      <td> <input type="text" name="firstname" value="" size="32" class='forms'> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Efternavn:</td>
      <td> <input type="text" name="lastname" value="" size="32" class='forms'> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Email:</td>
      <td> <input type="text" name="email" value="" size="32" class='forms'> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Årgang:</td>
      <td> <input type="text" name="birthyear" value="" size="32" class='forms'> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Gade:</td>
      <td> <input type="text" name="streetname" value="" size="32" class='forms'> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Bynavn:</td>
      <td> <input type="text" name="cityname" value="" size="32" class='forms'> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Postnummer:</td>
      <td> <input type="text" name="zipcode" value="" size="32" class='forms'> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Brugernavn:</td>
      <td> <input type="text" name="username" value="" size="32" class='forms'> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Mand:</td>
      <td> <input type="radio" name="sex" value="1" onFocus='if (this.blur) this.blur();'> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Kvinde:</td>
      <td> <input type="radio" name="sex" value="0" onFocus='if (this.blur) this.blur();'> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td align="right"> <input type="submit" value="Opret Profil" class='transbottom'> </td>
    </tr>
  </table>
  <input type="hidden" name="MM_insert" value="newuser">
</form>
<p>
  <% If (Request.QueryString("requsername")) <> ("") Then 'script %>
  <script language="JavaScript" type="text/JavaScript">
alert('Brugernavnet <%=Request.QueryString("requsername")%> er optaget. Vælg et nyt');
</script>
  <% End If ' end If (Request.QueryString("requsername")) <> ("") script%>
Avatar billede squashguy Nybegynder
14. december 2003 - 21:44 #2
prøv dette..

<!--#include file="Connections/users.asp" -->
<%
' *** Edit Operations: declare variables

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i

MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
  MM_editAction = MM_editAction & "?" & Request.QueryString
End If

' boolean to abort record edit
MM_abortEdit = false

' query string to execute
MM_editQuery = ""
%>
<%
' *** Redirect if username exists

user_exists = False

MM_flag="MM_insert"
If (CStr(Request(MM_flag)) <> "") Then
  MM_dupKeyRedirect="opret.asp"
  MM_rsKeyConnection=MM_db_STRING
  MM_dupKeyUsernameValue = CStr(Request.Form("username"))
  MM_dupKeySQL="SELECT username FROM exusers WHERE username='" & MM_dupKeyUsernameValue & "'"
  MM_adodbRecordset="ADODB.Recordset"
  set MM_rsKey=Server.CreateObject(MM_adodbRecordset)
  MM_rsKey.ActiveConnection=Conn
  MM_rsKey.Source=MM_dupKeySQL
  MM_rsKey.CursorType=0
  MM_rsKey.CursorLocation=2
  MM_rsKey.LockType=3
  MM_rsKey.Open
  If Not MM_rsKey.EOF Or Not MM_rsKey.BOF Then
    ' the username was found - can not add the requested username
    'MM_qsChar = "?"
    'If (InStr(1,MM_dupKeyRedirect,"?") >= 1) Then MM_qsChar = "&"
    'MM_dupKeyRedirect = MM_dupKeyRedirect & MM_qsChar & "requsername=" & MM_dupKeyUsernameValue
    'Response.Redirect(MM_dupKeyRedirect)
   
    '
    'vi redirecter ikke alligevel
    '
   
    user_exists = True
   
  End If
  MM_rsKey.Close
End If
%>
<%
' *** Insert Record: set variables

If user_exists = False And (CStr(Request("MM_insert")) = "newuser") Then

  MM_editConnection = MM_db_STRING
  MM_editTable = "exusers"
  MM_editRedirectUrl = "password.asp"
  MM_fieldsStr  = "firstname|value|lastname|value|email|value|birthyear|value|streetname|value|cityname|value|zipcode|value|username|value|sex|value"
  MM_columnsStr = "firstname|',none,''|lastname|',none,''|email|',none,''|birthyear|none,none,NULL|streetname|',none,''|cityname|',none,''|zipcode|none,none,NULL|username|',none,''|sex|',none,''"

  ' create the MM_fields and MM_columns arrays
  MM_fields = Split(MM_fieldsStr, "|")
  MM_columns = Split(MM_columnsStr, "|")

  ' set the form values
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
  Next

  ' append the query string to the redirect URL
  If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
    If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
      MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
    Else
      MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
    End If


  End If
  End If
%>

<%
' *** Insert Record: construct a sql insert statement and execute it

Dim MM_tableValues
Dim MM_dbValues

If user_exists = False And (CStr(Request("MM_insert")) <> "") Then

  ' create the sql insert statement
  MM_tableValues = ""
  MM_dbValues = ""
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_formVal = MM_fields(MM_i+1)
    MM_typeArray = Split(MM_columns(MM_i+1),",")
    MM_delim = MM_typeArray(0)
    If (MM_delim = "none") Then MM_delim = ""
    MM_altVal = MM_typeArray(1)
    If (MM_altVal = "none") Then MM_altVal = ""
    MM_emptyVal = MM_typeArray(2)
    If (MM_emptyVal = "none") Then MM_emptyVal = ""
    If (MM_formVal = "") Then
      MM_formVal = MM_emptyVal
    Else
      If (MM_altVal <> "") Then
        MM_formVal = MM_altVal
      ElseIf (MM_delim = "'") Then  ' escape quotes
        MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
      Else
        MM_formVal = MM_delim + MM_formVal + MM_delim
      End If
    End If
    If (MM_i <> LBound(MM_fields)) Then
      MM_tableValues = MM_tableValues & ","
      MM_dbValues = MM_dbValues & ","
    End If
    MM_tableValues = MM_tableValues & MM_columns(MM_i)
    MM_dbValues = MM_dbValues & MM_formVal
  Next
  response.write "tabel:" & MM_editTable & "  Feltnavne:" & MM_tableValues
  MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

  If (Not MM_abortEdit) Then
    ' execute the insert
    Set MM_editCmd = Server.CreateObject("ADODB.Command")
    MM_editCmd.ActiveConnection = Conn
    MM_editCmd.CommandText = MM_editQuery
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close

    If (MM_editRedirectUrl <> "") Then
      Response.Redirect(MM_editRedirectUrl)
    End If
  End If

End If
%>
</HEAD>

<BODY BGCOLOR="#FFFFFF">
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=766>
<TR>
<TD WIDTH=766><img src='splashgfx/none.gif' height='1' width='230'><img src='splashgfx/smallarrow.jpg' height='9' width='9'> &nbsp;<img src='splashgfx/smallarrow.jpg' height='9' width='9'> &nbsp;<img src='splashgfx/smallarrow.jpg' height='9' width='9'> &nbsp; <a href='index.htm' target='_parent' onFocus='if (this.blur) this.blur();'>Til Forspillet</a>
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=766 class='dottedtable'>
<TR>
<TD WIDTH=766>
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=760 HEIGHT=346>
<TR>
<TD ROWSPAN=4 COLSPAN=1 WIDTH=220 HEIGHT=294 background='splashgfx/frame.jpg'><form action="<%=MM_editAction%>" method="POST" name="newuser" id="newuser" onSubmit="MM_validateForm('firstname','','R','lastname','','R','email','','RisEmail','birthyear','','RinRange1900:1984','streetname','','R','cityname','','R','zipcode','','RisNum','username','','R');return document.MM_returnValue">
  <table align="center">
    <tr valign="baseline">
      <td nowrap align="center" colspan='2' class='blueheadline'><br>Opret Brugerprofil ? &nbsp; <img src='splashgfx/smallarrow.jpg' height='9' width='9'> &nbsp;<img src='splashgfx/smallarrow.jpg' height='9' width='9'> &nbsp;<img src='splashgfx/smallarrow.jpg' height='9' width='9'><br></td></tr>
    <tr valign="baseline">
      <td nowrap align="right">Fornavn:</td>
      <td> <input type="text" name="firstname" value="<%=Request.Form("firstname")%>" size="32" class='forms'> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Efternavn:</td>
      <td> <input type="text" name="lastname" value="<%=Request.Form("lastname")%>" size="32" class='forms'> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Email:</td>
      <td> <input type="text" name="email" value="<%=Request.Form("email")%>" size="32" class='forms'> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Årgang:</td>
      <td> <input type="text" name="birthyear" value="<%=Request.Form("birthyear")%>" size="32" class='forms'> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Gade:</td>
      <td> <input type="text" name="streetname" value="<%=Request.Form("streetname")%>" size="32" class='forms'> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Bynavn:</td>
      <td> <input type="text" name="cityname" value="<%=Request.Form("cityname")%>" size="32" class='forms'> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Postnummer:</td>
      <td> <input type="text" name="zipcode" value="<%=Request.Form("zipcode")%>" size="32" class='forms'> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Brugernavn:</td>
      <td> <input type="text" name="username" value="<%=Request.Form("username")%>" size="32" class='forms'> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Mand:</td>
      <td> <input type="radio" name="sex" value="1" onFocus='if (this.blur) this.blur();'> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Kvinde:</td>
      <td> <input type="radio" name="sex" value="0" onFocus='if (this.blur) this.blur();'> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td align="right"> <input type="submit" value="Opret Profil" class='transbottom'> </td>
    </tr>
  </table>
  <input type="hidden" name="MM_insert" value="newuser">
</form>
<p>
  <% If (Request.QueryString("requsername")) <> ("") Then 'script %>
  <script language="JavaScript" type="text/JavaScript">
alert('Brugernavnet <%=Request.QueryString("requsername")%> er optaget. Vælg et nyt');
</script>
  <% End If ' end If (Request.QueryString("requsername")) <> ("") script%>
Avatar billede 0ffline Nybegynder
14. december 2003 - 21:53 #3
Den bliver godtnok på siden, og oplysningerne er der da også, men den springer
alarmen over, så man ikke får beskeden om at brugernavnet er optaget
Avatar billede squashguy Nybegynder
14. december 2003 - 22:12 #4
okay, den overså jeg lige. hvis du udskifter de sidste par linier (efter <p>)..

  <% If user_exists = True 'script %>
  <script language="JavaScript" type="text/JavaScript">
alert('Brugernavnet <%=Request.Form("username")%> er optaget. Vælg et nyt');
</script>
  <% End If %>
Avatar billede 0ffline Nybegynder
14. december 2003 - 22:17 #5
Expected 'Then'
Avatar billede 0ffline Nybegynder
14. december 2003 - 22:18 #6
Superb... tusinde tak for hjælpen ;)
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