Ankündigung

Einklappen
Keine Ankündigung bisher.

Login, eindeutige Zuordnung auf eine Oberfläche

Einklappen

Neue Werbung 2019

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

  • Login, eindeutige Zuordnung auf eine Oberfläche

    Ich habe mir in den letzten Tagen einen kleinen Login-Bereich zu einer Oberfläche gebastelt (die Oberfläche natürlich auch).
    Das ganze läuft so, dass ein Benutzer sich anmeldet. (die DB-Tabelle enthält mehrere Felder id, nickname, passwort und natürlich persönliche Daten...)
    Es wird beim Anmelden auch eine Session-ID gebildet die über jeden Link mit weiter gegeben wird. Das gwährleistet ja, dass man dann in der Oberfläche schalten und walten kann ohne rauszufliegen. Bis dahin ist auch alles prima.
    Auf dieser Oberfläche gibt es dann ein Formular womit ein Datensatz in eine Tabelle nennen wir sie mal Datensatztabelle (DST)eingefügt wird. Ein weiterer Link in der Tabelle ermöglicht das Ansehen der eingegeben Daten in die DST. Diese können dann auch bearbeitet oder gelöscht werden. Das geht auch alles ohne Probleme, aber bei mehreren Benutzern sollen die jeweiligen ja nur ihre eingefügten Daten sehen.
    Meine Frage ist also wie ich es hin bekomme, dass innerhalb der Oberfläche ein Benutzer nur das sieht, was er gemacht hat. Auch bei späterem Login muss ja klar sein, dass nur seine Sachen angezeigt werden.

  • #2
    Hallo,
    du musst eben in der "Datensatztabelle" zusätzlich ein Feld user_id einfügen, in welches du die jeweilige User-Id (also die ID aus der Tabelle User) einträgst.
    In der Session kannst du dir die User-Id merken und jetzt beim selektieren der Datenstäze eben noch die zustätzliche WHERE-Bedingung anhängen: WHERE user_id = $dieid...
    [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

    Kommentar


    • #3
      Super da war ich schon auf dem richtigen weg, das habe ich nämlich gemacht, also zumindest versucht
      Aber irgendwas ist schief gelaufen...

      PHP-Code:
      function testpw($id$nickname$passwort) {



      global 
      $tab;

      $check mysql_query("SELECT * FROM $tab WHERE id='$id' AND nickname='$nickname' AND password='$passwort'");

      // Es wird eine Anfrage an die database gesendet, wo die daten der database entsprechen... 
      Hier müsste das dann glaube ich hin oder? Aber wie genau?

      PHP-Code:
      //////Der   Hauptcode///////



      //////////////////////////

      if($mode == "logout")

      {

      session_destroy("tut");

      setcookie(session_name(), session_id(),

      time() - 60*10); // setzt cookie auf MINUS 10min..sodass der keks gelöscht wird



      formular("Bitte neu einloggen!"); // Formular wird neu geldaen

      }

      elseif(
      session_is_registered("tut"))

      {

      testpw($login[id], $login[nickname], $login[passwort]); // führt die Funktion mit den Variabeln aus der Session aus.



      }



      elseif(isset(
      $_name)

      && isset(
      $_pass)) {

      $get mysql_query("select * from $tab where

      nickname='
      $_name' AND passwort='$_pass'"); // Es wird eine Anfrage an die database gesendet, wo die daten der database entsprechen...



      if(mysql_num_rows($get))

      // wenn die Anfrage erfolgreich war....

      $login mysql_fetch_array($get);



      session_register(login); //Registriert den array

      setcookie(session_name(),session_id(), time() + 60*10); // setzt cookie auf 10min 
      hier müsste ich dann glaube auch noch was ändern oder?

      meine weitere Frage: muss ich im Formular dann auch das user_id Feld einbauen oder füllt der das dann über die Session?

      Kommentar


      • #4
        Da hast du ja ein schönes durcheinander
        Zunächst mal würde ich das ganze Session-Handling anders machen. Ohne setCookie() ohne session_is_registered etc.... : Einfach session_start() und die Super-Globale $_SESSION verwenden.

        Bei einem Login schaust du in deiner User-Tabelle nach ob die Kombinatino aus Username und Passwort ok ist und falls ja schreibst du die ID aus der Tabelle in die Session ($_SESSION['user_id'] = $row['id'] ...). Damit kannt du dann später arbeiten.
        So musst du auch in deine Formulare kein user_id-Feld einbauen (was auch keine gute Idee wäre - da könnte ja jeder rummanipulieren) sondern kannst immer wenn du die User-Id des eigneloggten Users für irgendwas brauchst darauf zurückgreifen....
        [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

        Kommentar


        • #5
          Ok, vielen Dank erst einmal, ich will mal gucken, dass ich das ein bisschen umgebaut bekomme, vermutlich wieder nur mit vielen kleinen Fehlern, die ich alle erst wieder in Ruhe suchen muss, aber es wird auf die Dauer schon klappen. Ich habe schließlich noch ein bisschen Zeit das ganze fertig zu machen.

          Kommentar


          • #6
            So ich habe es jetzt dank der Hilfe eines guten Freundes geschafft. Wir haben das ganze nochmal neu gemacht, bisschen aufwendiger und mit noch einigen Wünschen, die mir noch auf dem Herzen lagen. Aber danke für die Hilfe, das war auf jeden Fall der richtige Tipp mit der User_id

            Kommentar

            Lädt...
            X