Joel Eymard: Fehler bei Benutzerdaten (mit Passwort) editieren

FOlgendes:
Ich habe im Adminbereich die möglichkeit geschaffen, dass ein Admin
jemandem neuen ebenfalls eine benutzerberechtigung erstellen kann.
Die Tabelle (tab_user) hat die Attribute userid, pword, email und
als primKey uid. Alle sind textfelder.
Habe ein Form mit dem ich einen Eintrag erfassen kann und ein FIle das
sowohl den DS erfasst als auch die möglichkeit der kontrolle bietet,
ob alles richtig erfasst wurde. Das funzt. auf der 2. page hat es die
möglichkeit, nochmals etwas zu ändern, wenn etwas falsch sein sollte.
also, wieder rein in ein form. auch das funzt.
Aber wenn ich das update starte, habe ich immer folgende mld.:
GET /diploma/update_user.asp?hiddenLoginID=3&tbxUsername=TestBenutzer&tbxEmail=email@tld.com&tbxPassword=TestPasswort&btnSubmit=jetzt+aendern...

Was läuft da falsch? Offensichtlich wird es aber in der URL uebergeben. DIes zu testzwecken, danach möchte ich schon mit POST dahinter :-)

Als zweites möchte ich das passwort auch irgendwie verschlüsseln mit einem sehr einfachen algoritmus.

Wer kann einer armen Seele helfen???
Joel

  1. Hi <- Dies ist eine Begrüssung

    Aber wenn ich das update starte, habe ich immer folgende mld.:
    GET /diploma/update_user.asp?hiddenLoginID=3&[...]

    Bekommst du keine richtige Fehlermeldung? Poste das mal (mit den betroffenen Zeilen aus deinem Skript). Hast du die Methode im form-Tag auf post gestellt?

    Als zweites möchte ich das passwort auch irgendwie verschlüsseln mit einem sehr einfachen algoritmus.

    Nur 5 Postings weiter Unten hättest du die Antwort gefunden. Ich habe im Thread </?m=132704&t=24028> dieselbe Frage gestellt und bin jetzt dran, den MD5-Algorithmus in meine Applikation einzubauen.

    MfG

    Tom2

    1. Hi <- Dies ist eine Begrüssung

      Aber wenn ich das update starte, habe ich immer folgende mld.:
      GET /diploma/update_user.asp?hiddenLoginID=3&[...]

      Bekommst du keine richtige Fehlermeldung? Poste das mal (mit den betroffenen Zeilen aus deinem Skript). Hast du die Methode im form-Tag auf post gestellt?

      Als zweites möchte ich das passwort auch irgendwie verschlüsseln mit einem sehr einfachen algoritmus.

      Nur 5 Postings weiter Unten hättest du die Antwort gefunden. Ich habe im Thread </?m=132704&t=24028> dieselbe Frage gestellt und bin jetzt dran, den MD5-Algorithmus in meine Applikation einzubauen.

      Hi Tom2,
      Habe im moment GET im Form damit ich in der URL nachschauen kann ob alles mitgeht.
      Das editierForm wirdkorrekt gefüllt deshalb hier nur
      das Scriptteil mit dem FORM (zwischen den Scripts eine Linie mit----- zum orientieren)...

      <form action="update_user.asp" method="get" name="userEditieren">
         <table align="center" cellpadding="2" cellspacing="2" border="0" width="490">
         <tr>
          <td class="tableContentEven" width="180">Benutzer-Name:</td>
          <td class="tableContentEven" width="310">
           <input value="<% = strUID %>" type="hidden" name="hiddenLoginID" size="30">
           <input value="<% = txtUser %>" type="text" name="tbxUsername" size="30">
           <span class="formObligatorisch">*</span>
          </td>
         </tr>
         <tr>
          <td class="tableContentEven">Email:</td>
          <td class="tableContentEven">
           <input value="<% = txtEmail %>" type="text" name="tbxEmail" size="30">
           <span class="formObligatorisch">*</span>
          </td>
         </tr>
         <tr>
          <td class="tableContentEven">Passwort:</td>
          <td class="tableContentEven">
           <input value="<% = txtPword %>" type="password" name="tbxPassword" size="30">
           <span class="formObligatorisch">*</span>
          </td>
         </tr>
         <tr>
          <td class="tableContentEven" valign="top"> </td>
          <td class="tableContentEven">
           <input type="submit" name="btnSubmit" value="jetzt aendern..." width="20">  
           <input type="reset" name="btnReset" value="löschen..." width="20">
          </td>
         </tr>
         </table>
         </form>
      ------------------------------------------
      und hier das script das das update macht:

      <% @Language=VBScript %>
      <!-- #include file="Scripts/meta.asp" -->

      <%
      dim objCON,objRS
      dim strCON,strDB,strTABELLE,strSQL
      dim srvMODE,srvUID,strUID
      dim query,strConnUser,strConnPass,txtZeile
      ' TabellenVariablen...
      dim txtLoginID,txtLogin, txtPword, txtEmail

      'SetLocale("de")
      srvMODE=request.QueryString("MODE")
      srvUID=request.QueryString("id")

      %>
      <!-- #include file="Scripts/db.asp" -->
      <%
       strTabelle="tab_login"

      strUID = Request.QueryString("hiddenLoginID")
       txtLogin = Request.QueryString("tbxUsername")
       txtPword = Request.QueryString("tbxPasswort")
       txtEmail = Request.QueryString("tbxEmail")

      set objCON = Server.CreateObject("ADODB.Connection")
      objCON.open strCON
      set objRS = Server.CreateObject("ADODB.Recordset")
      objRS.Open strTABELLE, objCON

      ' Abfrage...
      strSQL="UPDATE tab_login SET tab_login.userid='" & txtLogin & "',tab_login.pword='" & txtPword & "',tab_login.email='" & txtEmail & "' WHERE tab_login.loginid=" & strUID & ";"

      objCON.execute strSQL

      objRS.Close
       Set objRS=Nothing
       objCON.Close
       Set objCON=Nothing

      %>

      <html>
      <head>
      <title>Erlebnis Toskana: Mutierte Benutzerdaten von <% = txtUser %>  -  <% = txtEmail %> in der Tabelle eingetragen</title>

      <!-- #include file="Scripts/meta.asp" -->
      <link href="scripts/toskana_main.css" rel="stylesheet" type="text/css">
      <link href="index.css" rel="stylesheet" type="text/css">
      <link href="scripts/nav.css" type="text/css" rel="stylesheet">

      <!--Script mit LastModified - Links etc. -->
      <script language="JavaScript" src="scripts/actions.js" type="text/javascript"></script>
      <!-- 2 Script fuer Navigation Coolmenu... -->
      <script language="JavaScript1.2" src="scripts/coolmenus4.js"></script>
      <script language="JavaScript1.2" src="scripts/cm_addins.js"></script>
      </head>
      <body>
      <script language="JavaScript" src="scripts/createMenuAdmin.js"></script>
      <noscript>
      <!-- #include file="Scripts/noscript.asp" -->
      </noscript>
      <br> <br>
      <TABLE align="center" cellpadding="0" cellspacing="0" border="0" width="550">
      <TR>
       <TD align="right" class="topL" width="10" height="10"><img src="images/cleardot.gif" width="1" height="1" border="0" alt=""></TD>
       <TD class="top" height="10" width="530"><img src="images/cleardot.gif" width="10" height="1" border="0" alt=""></TD>
       <TD align="left" class="topR" width="10" height="10"><img src="images/cleardot.gif" width="1" height="1" border="0" alt=""></TD>
      </TR>
      <TR>
       <TD class="left" width="10" height="10"><img src="images/cleardot.gif" width="10" height="1" border="0" alt=""></TD>
       <TD class="bg" width="550">

      <span class="container">
        <p align='center'>
         <img src='images/tit_erfolgreich500.gif' width='490' border='0' alt=''>
        </p>
        <p align="justify">
         Die Adresse von   <b>"<% = txtLogin %>   <% = txtEmail %>"</b>   wurde erfogreich erfasst. <br>
         Bitte Kontrollieren Sie Ihre Eingaben nochmals. Der untenstehende Text
         gibt Ihre Eingaben wieder.
        </p>

      <table cellpadding="5" cellspacing="0" border="0" width="485">
        <tr><td valign='top' class='bg'><b>Login ID:</b>       </td><td valign='top' class='bg'><% = strUID %>   -   (Zahl nicht änderbar!)</td></tr>
        <tr><td valign='top' class='tableContentEven'><b>Benutzername</b>   </td><td valign='top' class='tableContentEven'><span class='objekt'><% = txtLogin %></span></td></tr>
        <tr><td valign='top' class='bg'><b>Emailadresse:</b>      </td><td valign='top' class='bg'><a href='mailto:<% = txtEmail %>'><% = txtEmail %></a></td></tr>
        <tr><td valign='top' class='tableContentEven'><b>Passwort:</b>    </td><td valign='top' class='tableContentEven'><% = txtPword %></td></tr>
        <tr><td valign='top' class='bg' colspan="2"> </td></tr>
        <tr><td valign='top' class='tableContentEven'> </td><td valign='top' class='tableContentEven'></td></tr>

      <tr>
         <td valign='top' class='bg' align="center">
          <a href="list_user_table.asp" class="blueLinks">
           [ <img src="images/icons/icon_edit_32x29.jpg" width="32" height="29" border="0" alt=""> edit ]
          </a>
         </td>
         <td valign='top' class='bg' align="right">
          <a href="edit_user.asp?id="<% = srvUID %> "class="blueLinks">
           [ <img src='images/icons/DELETE.GIF' width='18' height='18' border='0' alt=''> auflisten ]
          </a>
         </td>
        </tr>
        </table>

      </span>
       </TD>
       <TD class="right" width="10" height="10"><img src="images/cleardot.gif" width="10" height="1" border="0" alt=""></TD>
      </TR>
      <tr>
       <td class="botL" width="10" height="10" align="right"><img src="images/cleardot.gif" width="1" height="1" border="0"></td>
       <td class="bot" width="530" height="10"><img src="images/cleardot.gif" width="1" height="1" border="0"></td>
       <td class="botR" width="10" height="10" align="left"><img src="images/cleardot.gif" width="1" height="1" border="0"></td>
      </tr>
      <tr>
       <td colspan="3"> <!-- leerzeile --></td>
      </tr>
      <tr>
       <td colspan="3">
        <script>
         footer()
        </script>
       </td>
      </tr>
      </TABLE>

      </body>
      </html>
      ------------------------------------------
      So, das war's (diese paar Wörtchen da.  :-)

      Kannst Du damit was anfangen?

      joel

      1. Hi

        ---->8 *SNIP* 8<-----

        *xzeilencodelösch*

        ---->8 *SNAP* 8<-----

        Kannst Du damit was anfangen?

        äem... nein?! Du solltest die Fehlermeldung und die paar Codezeilen posten, die den Fehler verursachen, nicht das ganze Skript, nicht mehrere Skripten! *g* Sorry, ich kann nicht den ganzen Code durchgehen - hier bei mir liegt auch noch Arbeit auf dem Schreibtisch. Ändere die Methode auf post und probier das so mal. Poste die Fehlermeldung und dann schauen wir mal weiter...

        MfG

        Tom2

        1. Hi

          ---->8 *SNIP* 8<-----

          *xzeilencodelösch*

          ---->8 *SNAP* 8<-----

          nochmehrzeilenlösch :-)

          Errormeld. ist:
          HTTP 500.100 - Internal Server Error - ASP error
          Internet Information Services

          --------------------------------------------------------------------------------

          Technical Information (for support personnel)

          Error Type:
          Microsoft JET Database Engine (0x80004005)
          Field 'tab_login.pword' cannot be a zero-length string.
          /diploma/update_user.asp, line 35

          Browser Type:
          Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)

          Page:
          GET /diploma/update_user.asp?hiddenLoginID=4&tbxUsername=test&tbxEmail=test&tbxPassword=test&btnSubmit=jetzt+aendern...

          Time:
          Wednesday, 18. September 2002, 14:32:03

          und der Code ist:
          set objCON = Server.CreateObject("ADODB.Connection")
          objCON.open strCON
          set objRS = Server.CreateObject("ADODB.Recordset")
          objRS.Open strTABELLE, objCON

          ' Abfrage...
          strSQL="UPDATE tab_login SET tab_login.userid='" & txtLogin & "',tab_login.pword='" & txtPword & "',tab_login.email='" & txtEmail & "' WHERE tab_login.loginid=" & strUID & ";"

          objCON.execute strSQL ' -DIES IST ZEILE 35 ---

          1. Errormeld. ist:
            HTTP 500.100 - Internal Server Error - ASP error
            Internet Information Services


            Technical Information (for support personnel)
            Error Type:
            Microsoft JET Database Engine (0x80004005)
            Field 'tab_login.pword' cannot be a zero-length string.
            /diploma/update_user.asp, line 35

            Hi,

            na prima, genau das da liegt der Hase im Pfeffer!

            in deiner Access-Datenbank in der Tabelle "tab_login" gibt es ein Feld "pword", und dieses ist so deklariert, dass es keine leeren Zeichenfolgen beinhalten darf, diesen Parameter solltest du in der Designansicht der Tabelle in MS Access ändern. steht in Deutsch glaub ich als "Leere Zeichenfolge" so da. Sollte das noch nicht funktionieren, gibt es direkt darüber den Parameter "Erforderlich" vielleicht solltest du dann diesesn auch mal ändern.

            Ich hoffe, diese Info hilft dir.
            Gruß, Frank

            1. Errormeld. ist:

              ...

              Hi,
              na prima, genau das da liegt der Hase im Pfeffer!
              in deiner Access-Datenbank in der Tabelle "tab_login" gibt es ein Feld "pword", und dieses ist so deklariert, dass es keine leeren Zeichenfolgen beinhalten darf, diesen Parameter solltest du in der Designansicht der Tabelle in MS Access ändern. steht in Deutsch glaub ich als "Leere Zeichenfolge" so da. Sollte das noch nicht funktionieren, gibt es direkt darüber den Parameter "Erforderlich" vielleicht solltest du dann diesesn auch mal ändern.

              Ich habe aber einen Eintrag drin, das ist ja das schlimme :-/
              und bei "Eingabe erforderlich" steht Nein
              und bei Leere Zeichenfolge steht ebenfalls Nein

              Was soll ich nur tun *ich unbeholfenes ding ich* :-)

              1. und bei Leere Zeichenfolge steht ebenfalls Nein

                klingelts da nicht ein bisschen??
                ich verstehe diesen eintrag so:

                dieses Feld darf !keine! leeren Zeichenfolgen beinhalten

                du versuchst aber gerade mit deinem SQL-Statement da eine leere Zeichenfolge hineinzuschreiben.

                ;-)

                Tschau, Frank

          2. Hi nochmal,

            vielleicht solltest du vor dem Verarbeiten auch die gesendeten Daten validieren, dann ich glaube nicht, daß es sehr sinnvoll ist, einen Nutzer ohne Passwort zu haben -> ergibt sicherheitstechnisch ein schönes Scheunentor. Eventuell hast du auch die Variable falsch geschrieben, die in das SQL gesetzt wird... gegenüber der die gesendet wird.

            wenn das Element im Formal "meinfeld1" heißt und du aber Request.QueryString("menfeld1") abrufst, ist letzterer Wert mehr oder weniger NULL, bzw. ein vbNullString

            Tschau, Frank

            1. Hi nochmal,

              vielleicht solltest du vor dem Verarbeiten auch die gesendeten Daten validieren, dann ich glaube nicht, daß es sehr sinnvoll ist, einen Nutzer ohne Passwort zu haben -> ergibt sicherheitstechnisch ein schönes Scheunentor. Eventuell hast du auch die Variable falsch geschrieben, die in das SQL gesetzt wird... gegenüber der die gesendet wird.

              wenn das Element im Formal "meinfeld1" heißt und du aber Request.QueryString("menfeld1") abrufst, ist letzterer Wert mehr oder weniger NULL, bzw. ein vbNullString

              Das schau ich gleich nochmals nach.
               das könnte evtl. sein
              danke
              joel

          3. Hallo,

            strSQL="UPDATE tab_login SET tab_login.userid='" & txtLogin & "',tab_login.pword='" & txtPword & "',tab_login.email='" & txtEmail & "' WHERE tab_login.loginid=" & strUID & ";"

            was soll das ; am ende?

            nach tab_login.loginid=" & strUID
            sollte schluss sein... ein ; am ende ist mir nicht bekannt...

            sieh mal deine anderen sql-statements an...

            Odium

            1. Hallo,

              strSQL="UPDATE tab_login SET tab_login.userid='" & txtLogin & "',tab_login.pword='" & txtPword & "',tab_login.email='" & txtEmail & "' WHERE tab_login.loginid=" & strUID & ";"

              was soll das ; am ende?

              nach tab_login.loginid=" & strUID
              sollte schluss sein... ein ; am ende ist mir nicht bekannt...

              sieh mal deine anderen sql-statements an...

              Hi,
              Das müste keine Rolle spielen (habs auch ohne ; versucht ohne erfolg), denn ich habs eigentlich bei allen Files und dort funzts.
              Joel

              1. Hallo,

                strSQL="UPDATE tab_login SET tab_login.userid='" & txtLogin & "',tab_login.pword='" & txtPword & "',tab_login.email='" & txtEmail & "' WHERE tab_login.loginid=" & strUID & ";"

                -die tab_login.loginid ist der primärschlüssel? strUID hört sich so nach string an... stimmt das überein?

                Odium