Paul: Loginsystem umgehn bzw.mehrere User

Hallo

Ich habe ein Loginsystem mit Hilfe von der Seite
http://aktuell.de.selfhtml.org/artikel/php/loginsystem/

erstellt!
Es funktioniert auch einwandfrei!

Ich würde gerne noch ein paar erweiterte Funktionen einbauen:

1. dass man nich einfach das Loginsystem überspringen kann, also dass man nicht einfach eine andere Seite eingeben kann, sondern wenn man das versucht soll die Seite erscheinen mit dem Text: Du bist nicht eingeloggt, du musst eingeloggt sein um den Inhalt der Seite zu sehen!

und noch eine 2.Frage, die stell ich aber später wenn ich dass hoffentlich mit EURER Hilfe hinkriege.

S'wäre nett, wenn ihr mir weiterhelft!

  1. Hallo Paul,

    http://aktuell.de.selfhtml.org/artikel/php/loginsystem/

    1. dass man nich einfach das Loginsystem überspringen kann, also dass man nicht einfach eine andere Seite eingeben kann, sondern wenn man das versucht soll die Seite erscheinen mit dem Text: Du bist nicht eingeloggt, du musst eingeloggt sein um den Inhalt der Seite zu sehen!

    Genau das leistet dieses Loginsystem doch.

    Die Datei "auth.php" prüft mit $_SESSION['angemeldet'] auf ein korrektes login. Sie wird in jede zu schützende Datei am Anfang mittels <?php include('auth.php'); ?> eingebunden. Hast du das?

    Der Wesentliche teil von "auth.php" ist
    header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/login.php');

    Diese Anweisung leitet dich wieder zur "login.php". Hier kannst du einen beliebigen Hinweis (wie oben) anzeigen.

    Viele Grüße,

    Jochen

    --
    Heute schon gescribbelt?
    Scribbleboard
    1. OK danke, ich hatte die Dateien in einem anderen Verzeichnis drin!

      Jetzt zur 2.Frage:
      Ich möchte das gerne so gestalten, dass man sich neben dem anmelden auch
      "registrieren" kann, dass heißt, dass ein User seinen Namen und Passwort wählen kann, dass in der login.php gespeichert wird, und sich später über das anmelden sich anmelden kann! Es sollten sich nbegrenzt viele Leute anmelden können!
      So ungefähr stell ich mir das vor.

      Könnt ihr mir helfen wie das geht?

      1. Hallo Paul,

        Ich möchte das gerne so gestalten, dass man sich neben dem anmelden auch "registrieren" kann

        das wird etwas kniffliger. Du benötigst für dein Vorhaben zwar keine Datenbank, aber es erleichtert die Sache ungemein. Name und Passwort (bzw. dessen Hash) werden dann in der Datenbank gespeichert.

        Zuerst musst du bei der Anmeldung prüfen, ob der gewünschte Benutzername schon existiert und ggf. abweisen. Ansonsten Anmeldename mit dazugehörendem Passwort in einer Tabelle "User" o.ä. speichern.

        Beim Anmelden liest du dann aus deiner Tabelle:
          select anmeldename, passwort from user where anmeldename = $_POST['username'];

        und vergleichst $passwort mit $_POST['passwort']; (bzw. den Hash der beiden. Es ist unüblich Passwörter direkt in der Datenbank zu speichern.)

        Das ersetzt dann den Teil: if ($username == 'benjamin' && $passwort == 'geheim')

        So ungefähr stell ich mir das vor.

        So ungefähr klappt das auch. Es gibt natürlich fertige Lösungen. Aber du willst ja schließlich was lernen.

        Viele Grüße,

        Jochen

        --
        Heute schon gescribbelt?
        Scribbleboard
        1. Hallo Jochen,
          ich probier das jetz einmal wie du erklärt hast, aber wenn du eine fertig Lösung kennst, wär das natürlich noch besser!
          Sag bescheid wen du eine kennst!

          Paul

          1. Ich habe es jetzt so probiert, aber es will nicht funktionieren, könntest du bitte die  Dateien ganz hinschreiben, dann sehe ich was ich falsch gemacht habe!

            1. Hallo Paul,

              Ich habe es jetzt so probiert, aber es will nicht funktionieren

              dann zeig doch mal was du probiert hast. Dann können wir dir auch sagen wo es noch klemmt. Hast du eine Datenbank? Wieviel PHP kannst du? Hast du bereits Programmiererfahrung?

              Ich will deinen Ehrgeiz nicht bremsen Paul, aber wenn du dir zu viel vornimmst und es dann nicht hinbekommst schafft das nur Frust.
              Vielleicht ist weniger für den Anfang mehr?

              Viele Grüße,

              Jochen

              --
              Heute schon gescribbelt?
              Scribbleboard

              1. Hi Jochen
                Ich habe nur ganz wenig PHP Erfahrung
                nein, ich hab keine Datenbank, weil ich leider nicht weiß, wie ich die erstelle.

                Hier mal die login.php:

                <?php
                     if ($_SERVER['REQUEST_METHOD'] == 'POST') {
                      session_start();
                select anmeldename, passwort from user where anmeldename = $_POST['username'];
                      $username = $_POST['username'];
                      $passwort = $_POST['passwort'];

                $hostname = $_SERVER['HTTP_HOST'];
                      $path = dirname($_SERVER['PHP_SELF']);

                // Benutzername und Passwort werden überprüft
                       {
                       $_SESSION['angemeldet'] = true;

                // Weiterleitung zur geschützten Startseite
                       if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
                        if (php_sapi_name() == 'cgi') {
                         header('Status: 303 See Other');
                         }
                        else {
                         header('HTTP/1.1 303 See Other');
                         }
                        }

                header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/index.php');
                       exit;
                       }
                      }
                ?>

                Ich nehm mal an, dass das grottenfalsch ist, deswegen würde ich gerne
                ein fertiges login/registriersystem einbauen! kannst du mir sagen woher ich so eins krieg?

                Bitte schreib zurück

                Paul

                1. Hi Paul,

                  ein fertiges login/registriersystem einbauen!

                  Das wird mit den vorhanden Möglichkeiten schwierig. Vielleicht solltest du - je nachdem was du erreichen möchtest - auf ein externes Board ausweichen.

                  kannst du mir sagen woher ich so eins krieg?

                  Google findet z.B. www.freebb.de, www.bboard.de, www.12bb.de ....

                  Viele Grüße,

                  Jochen

                  --
                  Heute schon gescribbelt?
                  Scribbleboard
                  1. Welche Anmeldung von den drei Seite von den drei Seiten (http://www.freebb.de/
                    http://www.bboard.de/anmelden.php
                    http://www.12bb.de/)
                    findest du am sinnvollsten für mich?

                    Ich möchte ja nur, dass die person den gewünschten username und passwort
                    eingibt, also eher die:
                    http://www.bboard.de/anmelden.php
                    oder?
                    was muss ich dann umschreiben, damit statt Wunschaddresse passwort steht?

                    1. Hallo Paul,

                      Welche Anmeldung von den drei Seite von den drei Seiten ...
                      findest du am sinnvollsten für mich?

                      das wirst du schon selbst wissen müssen. Die Boards haben bestimmt irgendwo eine Demo. Du kannst mit wenig Fantasie weitere ergoogeln. Außerdem kannst du dich anmelden um die Funtionen auszuprobieren. Wenn es dir nicht zusagt meldest du dich wieder ab.

                      Grüße,

                      Jochen

                      --
                      Heute schon gescribbelt?
                      Scribbleboard
                      1. Aber wie kann ich rausfinden,
                        was in der anmelden.php steht?

                        1. Hallo Paul,

                          Aber wie kann ich rausfinden,
                          was in der anmelden.php steht?

                          ich verstehe deine Frage nicht ganz. Hast du eine genaue Vorstellung von dem was du verwirklichen möchtest? Wenn du noch nicht allzuviel Erfahrung in der Programmierung eines "Loginsystems" hast, hatte ich dir vorgeschlagen ein fertiges System zu verwenden. Entweder eines was du auf deinem Server installierst (hierzu wirst du eine Datenbank benötigen) Oder eines was von einem Anbieter für dich gehostet wird (in der Regel mit Popups oder Werbung)
                          In beiden Fällen ist es völlig unerheblich was in den einzelnen PHP Dateien steht. Du willst ja nur die Funktionalität, aber nichts selbst programmieren. Mir scheint, du hast keine rechte Vorstellung davon was sich hinter einem "Loginsystem" mit Anmeldung, Benutzerverwaltung, Administration etc. verbirgt.

                          Was erwartet denn dein User nach der Anmeldung, bzw. dem login?

                          Viele Grüße,

                          Jochen

                          --
                          Heute schon gescribbelt?
                          Scribbleboard
                          1. Der User sieht so bestimmte Dateien und andere Sachen, die für den nicht angemeldeten User nicht erreichbar sind!

                            1. Hi Paul,

                              Der User sieht so bestimmte Dateien und andere Sachen, die für den nicht angemeldeten User nicht erreichbar sind!

                              Hast du nicht vorhin gesagt, dass du die Möglichkeit geben willst, dass der Besucher sich registrieren kann? In dem Fall ist das komplette Loginsystem doch überflüssig - wenn bestimmte Dateien nur für registrierte Besucher zugänglich sind und jeder sich registrieren kann, dann kannst du die Dateien auch direkt jedem zugänglich machen. ;-)

                              Viele Grüße aus Kanada,
                                ~ Dennis.

                              --
                              Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
                              Wer kämpft, kann verlieren. Wer nicht kämpft, hat schon verloren. (Bertholt Brecht)
  2. Hallo

    Ich habe ein Loginsystem mit Hilfe von der Seite
    http://aktuell.de.selfhtml.org/artikel/php/loginsystem/

    erstellt!
    Es funktioniert auch einwandfrei!

    Ich würde gerne noch ein paar erweiterte Funktionen einbauen:

    1. dass man nich einfach das Loginsystem überspringen kann, also dass man nicht einfach eine andere Seite eingeben kann, sondern wenn man das versucht soll die Seite erscheinen mit dem Text: Du bist nicht eingeloggt, du musst eingeloggt sein um den Inhalt der Seite zu sehen!

    Dazu ist die auth.php da. Sie wird, wie der Text vermittelt, in _jeder_ Datei des zu schtützenden Bereichs eingebunden, um vor Ausgabe des Dokuments zu prüfen, ob der aufrufende Besucher eine Session gestartet, sich also angemeldet hat.

    Die Lösung ist also schon im Artikel drin.

    Tschö, Auge

    --
    Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
    (Victor Hugo)
    Veranstaltungsdatenbank Vdb 0.1