Datenverschlüsselung mit MD5 über ODBC möglich!?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datenverschlüsselung mit MD5 über ODBC möglich!?

    HALLO!

    ich hatte bisher md5 nur in verbindung mit mysql benutzt. mit odbc funzt das aber nich so ganz, oder!?

    bekomme diese fehlermeldung:

    Warning: SQL error: [Microsoft][ODBC Microsoft Access Driver] Undefinierte Funktion 'MD5' in Ausdruck., SQL state 37000 in SQLExecDirect in

    die meldung verweist auf diesen teil:

    PHP-Code:
    $con=odbc_connect("ratingdb","","") or die("So nich");
        
    $sql="SELECT UserId
        FROM users
        WHERE UserName='"
    .$name."' AND UserPass=MD5('".$pass."')";
        
    //echo $sql;
        
    $resultodbc_exec($con$sql) or die("so nich");  //sendet SQL-Befehl
        
    if ( odbc_num_rows($result)==1)
        {
            
    $user=odbc_fetch_arry($result);
            return 
    $user['UserId'];
        }
        else
            return 
    false
    Oder gibt es für odbc eine andere möglichkeit daten zu verschlüsseln !?

  • #2
    Wieso verschlüsselst du die Variable nicht ausserhalb des odbc-querys ?

    mach doch einfach sowas hier :

    WHERE UserName='".$name."' AND UserPass= '". md5($pass)."'";
    denn php hat ja eine md5-verschlüsselung eingebaut!
    C-Ya Toby

    Kommentar


    • #3
      So, da bin ich wieder !

      OK, hab das jetzt mal so gemacht.

      Aber trotz richtigem login kommt die Meldung, dass ich kein Zugriff habe.

      das problem liegt wohl bei odbc_num_rows() oder odbc_fetch_assoc()

      Wer kann mir sagen wie der login auf die ODBC-DB funzt ???????

      PHP-Code:
      function check_user($name$pass)      //prüft Eingabe
      {
          
      $con=odbc_connect("ratingdb","","") or die("So nich");
          
      $sql="SELECT UserId FROM users WHERE UserName='".$name."' AND UserPass='".md5($pass)."'";       //MD5('".$pass."')";
          //echo $sql;
          
      $resultodbc_exec($con$sql) or die("so nich");  //sendet SQL-Befehl
          
      if (odbc_num_rows($result)==1)
          {
              
      $user=odbc_fetch_assoc($result);
              return 
      $user['UserId'];
          }
          else
              return 
      false;

      Kommentar


      • #4
        weil
        Manual in php.net
        It isnt the drivers actually that makes recordcount return -1, its because
        the recordcount property is a read-only property available to recordsets
        opened with one of two kinds of cursor types, opening it as static will
        return the actual value by default it is opened as forward only
        du hast ein forward only cursor, d.h. du erhältst die Anzahl der Zeilen erst,
        nachdem du das Recordset schon durchgelaufen bist. Workaround: verlasst
        dich niemals auf irgendwelche Count-Funktion ausserhalb SQL. Frage
        lieber mit COUNT in SQL oder einfach mit if(odbc_fetch_row($result)) ab.
        Zuletzt geändert von asp2php; 20.04.2004, 23:34.

        Kommentar


        • #5
          also hab jetzt "if (odbc_num_rows($result)==1)"

          durch "if(odbc_fetch_row($result))" ersetzt und mit echo mal das $result ausgeben lassen.

          ergebnis: resource id # 2 !?
          es sollte doch aber 0 für false oder 1 für true ausgegeben werden?

          Kommentar


          • #6
            $var = odbc_fetch_row($result);
            print_r($var);
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              hab s mal so geändert:

              if($var=odbc_fetch_row($result))
              { print_r($var);
              $user=odbc_fetch_assoc($result);
              return $user['UserId'];

              }

              ergebnis:
              1
              fatal error: call to undefined function: odbc_fetch_assoc()

              Kommentar


              • #8
                *schwachfuggepostet*
                PHP-Code:
                if(odbc_fetch_row($result))
                  return 
                odbc_result($result'UserId');
                else
                  return 
                0
                Zuletzt geändert von mrhappiness; 21.04.2004, 11:49.
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  so unser vba lehrer is grad eingetrudelt.

                  werd mich nachher weiter mit beschäftigen. danke schon mal f. deine hilfe

                  Kommentar


                  • #10
                    komm schon mal ein schritt weiter.

                    aber die function login geht so irgendwie nich


                    PHP-Code:
                    function login($userid)                 //loggt User ein
                    {
                        
                    $con=odbc_connect("ratingdb","","") or die("So nich");
                        
                    $sql="UPDATE users SET UserSession='".session_id()."' WHERE UserId=".$userid;   
                         
                    odbc_exec($con$sql);

                    welche bedeutung haben denn eigentlich die Punkte in der update anweisung ?

                    Kommentar


                    • #11
                      Oh nein, lerne bitte Grundlagen. Du programmierst Datenbankzugriffe
                      und weisst noch nicht mal wie man String zusammensetzt

                      Kommentar


                      • #12
                        Ich schliess mich da dem asp2php mal an! Lern erstmal, was du machst!

                        Aber um deine Frage zu beantworten :

                        $sql="UPDATE users SET UserSession='".session_id()."' WHERE UserId=".$userid;

                        mit den PUNKTEN setzt du deinen STring zusammen!
                        d.h. wie du siehst beendest du nach UserSession=' ja den String quasi mit dem ". Nun wäre der STring eigentlich fertig und du könntest dein semikolon ans Ende setzen! willst du jetzt aber noch weiter machen und (wie in deinem Fall) eine Funktion von php noch mit in den String nehmen, dann kannst du das ja nicht innerhalb deiner " "-Zeichen machen, da das sonst als reiner Text gewertet werden würde. Somit beendest du deinen TEXT-Teil (ums mal simpel zu sagen) und kehrst in den 'normalen' php-raum zurück, wo du mit funktionen etc. um dich schmeissen kannst!
                        d.h. einfach gesprochen :
                        du verbindest STRINGS mit den PUNKTEN
                        C-Ya Toby

                        Kommentar

                        Lädt...
                        X