id des eingeloggten benutzers!

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

  • id des eingeloggten benutzers!

    hallo

    wie komm ich zum primärschlüssel(id) des users, der sich gerade ingeloggt hat. id der user steht in der tabelle users;

    zum testen hätte ich es so probiert:

    Code:
    PHP-Code:
    59 <?php
    60    $result 
    mysql_query('SELECT id FROM users WHERE name =       '.$_SESSION['user'].';') OR die(mysql_error());
    61    echo 'Hallo Nummer: '.$result;
    ?>

    funktioniert aber nicht. es kommt immer folgende fehlermeldung:

    Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\Programme\xampp\htdocs\test\FrameRechts.php on line 60


    bitte um hilfe. für jemanden der sich shcon länger mit php beschäftigt, dürfte die lösung ja schon auf der hand liegen. danke, waldes

  • #2
    Allgemein:

    schau mal auf dieser seite unter tutorials und da gibt es eins zum login von MrHapp..., daß ist echt gut.

    Kommentar


    • #3
      danke für den hinweis!

      aber mein login funktioniert einwandfrei! mein problem ist nur, dass ich für eine abfrage die id des eingeloggten benutzers benötige! jetzt weiss ich aber nicht, ob dies überhaupt möglich ist, wenn mehrere benutzer eingeloggt sind!?

      wäre für die lösung meines problems sehr dankbar, und vielleicht kann mir auch jemand feedback geben ob das möglich ist, die id eines benutzer auszulesen, wenn mehrere eingeloggt sind.

      danke, waldes

      Kommentar


      • #4
        Funktioniert überhaupt der Datenbankzugriff?

        PHP-Code:
          $sql="SELECT UserId 
            FROM DeinTableDance
            WHERE UserSession=' "
        .session_id()." ' 
            LIMIT 1"



        ->ist möglich trotz mehrer benutzer, denk ich ;-)

        Kommentar


        • #5
          Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\Programme\xampp\htdocs\test\FrameRechts.php on line 60
          Könnte es sein, dass du falsche Zugangsdaten für den Zugriff auf deine DB hast ?
          Die id des jeweiligen Nutzers wirst du wohl am Besten anhand seiner Session ID rauskriegen. Jeder Benutzer sollte ja eine andere haben. Und die trägst du beim Login beim Username in die DB.

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            also ich glaube, dass es sicher nicht an der datenbankanbindung liegt. nutze die connect.inc.php für alle abfragen und funktioniert einwandfrei.

            was mir aber sorgen macht ist folgendes: ich nutzte das tutorial von andy von eurer seite und muss sagen, dass es beim ersten mal einwandfrei funktionierte, da ich auch alles 1zu1 übernahm, auch das design der tabelle users! dort ist aber nicht die rede von einer session.id!!!

            habe jetzt aber folgendes probiert:
            im rechten frame habe ich jetzt folgendes stehen - früher stand dort halt anstatt .session_id(). eben .$_SESSION['user'].!!!!

            PHP-Code:
            <?php echo "<b>Hallo " .session_id()."</b>"?>
            es kommt nun 206b1342a88c97fac5ccf7b5473d5a55 raus.

            wie komm ich nun auf die id des nutzer, weil in meiner tabelle müssen ja unter anderem auch die id des benutzers drin stehen, um die daten zuzuordnen!!!!

            hilfe!!!

            Kommentar


            • #7
              habe drei benutzer bis jetzt in meiner users tabelle

              ich loggte mich aus und mit einem anderen benutzer ein:
              es kommt wieder die gleiche zahlenkombination zurück.
              kann das sein, müssen die nicht unterschiedlich sein.

              danke waldes!

              Kommentar


              • #8
                Original geschrieben von waldes
                im rechten frame habe ich jetzt folgendes stehen - früher stand dort halt anstatt .session_id(). eben .$_SESSION['user'].!!!!
                [...]es kommt nun 206b1342a88c97fac5ccf7b5473d5a55 raus.
                Ja, vollkommen korrekt.

                Mache dir bitte erst mal klar, dass session_id() etwas vollkommen anderes ist als $_SESSION['user'] - und auch warum.


                Mal im Manual bzgl. Sessions in PHP ein wenig nachzulesen, würde sicher auch nicht schaden.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  herr waldes,

                  versuchen sie mal dat hier, i hope it füt...

                  PHP-Code:

                  $sql
                  ="SELECT id
                      FROM users
                      WHERE UserSession='  "
                  .$_SESSION['user']."  '   "

                  Kommentar


                  • #10
                    es ist mir schon klar, dass die beiden sich unterscheiden, jedoch wollte ich dich nur fragen, ob es nicht möglich ist ohne session_id, eine select abfrage zu starten bei der man einfach:

                    SELECT id
                    FROM users
                    WHERE name = '.$_SESSION['user'].';

                    oder führt dies zu problemen wenn sich mehrere benutzer gleichzeitig eingeloggt haben. wie du weisst brauch ich die id um daten in eine Tabelle einzutragen.

                    wäre nett wieder von dir zu hören, danke waldes

                    Kommentar


                    • #11
                      @mysqlfrage:

                      danke dass du versuchst mir zu helfen, jedoch schaut meine tabelle users so aus:

                      id - int(2)
                      user - varchar(30)
                      vorname - varchar(30)
                      nachname - varchar(30)
                      motto - varchar(50)
                      pass - varchar(50) mit md5

                      und somit keine spalte UserSession. Habe das tutorial durchgeschaut, und es wurde dort auch keine UserSession bei user angelegt. hoffe wir reden vom gleichen.

                      habe es trotzdem probiert und mein code schaut jetzt so aus:
                      PHP-Code:
                       <?php  
                      include 'connect.inc.php';
                       
                      $sql "SELECT id FROM users WHERE userSession ='".$_SESSION['user']."'";
                       
                      $id_query mysql_query($sql) or die("Anfrage nicht erfolgreich!");
                       
                      $anzahl mysql_num_rows($id_query);
                      echo 
                      $anzahl;
                      ?>

                      Kommentar


                      • #12
                        Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\Programme\xampp\htdocs\test\FrameRechts.php on line 60
                        also ich glaube, dass es sicher nicht an der datenbankanbindung liegt.
                        Na, also irgendein Problem wird da schon sein! Bei der Meldung....

                        Kommentar


                        • #13
                          ne ich glaubs immer noch nicht, dass es an der datenbankanbindung liegt, aber wenn du es mir erklären kannst. weil wenn es so wäre würde die fehlermeldung immer kommen bei meinem code den ich oben angeführt habe kommt aber nicht diese fehlermeldung sondern er gibt mir nur zurück:

                          >> anfrage nicht erfolgreich.

                          und dass würde er doch nur tun, wenn er auch die anbindung hat. oder?

                          Kommentar


                          • #14
                            Aha,

                            erkläre doch mal bitte, wie DU die o.g. Fehlermeldung interpretierst!

                            schalte mal dein error_reporting(E_ALL);
                            mysql_error() o.ä. (hab deinen code grad nicht im kopf) sagen was?

                            Kommentar


                            • #15
                              hab dir oben geantwortet - versehentlich

                              aber nun mal langsam:

                              du könntest mir doch sagen ob es von der syntax schreibe:
                              $sql = "SELECT id FROM users WHERE user = ".$_SESSION['user'].";";

                              da müßte doch die id des jeweiligen benutzers rauskommen, das würde mir dann auch schon weiterhelfen.

                              danke, waldes!!!

                              Kommentar

                              Lädt...
                              X