User Registrierung per Email

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

  • User Registrierung per Email

    Hallo!

    für einen geschützten Bereich suche ich entweder ein Tutorial oder ein Beispiel, um eine User Registrierung durchzuführen.

    Der User soll sich anmelden können, um dann eine Email zu bekommen. Dort sei ein LInk aufgeführt, der den User dann freischaltet.

    Hat sich der User dann eingelogged, soll verhindert werden, dass er eine weitere Instanz des Browsers aufmacht und dort "parallel" arbeitet.

    Nach dem Schließen des Browsers bzw dem Logout sollten dann sicher alle Sessions / Cookie Daten gelöscht werden.

    Welchen beispielhaften Ansatz sollte ich mir anschauen? Habe einiges unter Google gefunden, aber das waren Teillösungen.

    Vielen Dank und frohe Weihnachtstage

    Bruno

  • #2
    Re: User Registrierung per Email

    Original geschrieben von dh1sbg
    Der User soll sich anmelden können, um dann eine Email zu bekommen. Dort sei ein LInk aufgeführt, der den User dann freischaltet.
    Sollte kein Problem sein, oder?

    Hat sich der User dann eingelogged, soll verhindert werden, dass er eine weitere Instanz des Browsers aufmacht und dort "parallel" arbeitet.
    Das ist ziemlicher Schwachsinn. Wieso willst du dem User die Möglichkeit nehmen 2 Seiten gleichzeitig offen zu haben?
    Wenn du es unbedingt willst, müsstest du das mit JavaScript regeln, und zwar dann ständig etwas an ein Skript richten (vielleicht ein reloadender IFrame mit einem PHP-Skript drin) und wenn der Zeitintervall unregelmäßig wird, weil 2 SKripte den IFrame reloaden, dann abbrechen. Aber das wäre mir persönlich viel zu kompliziert und IMO auch unnötige Arbeit...

    Nach dem Schließen des Browsers bzw dem Logout sollten dann sicher alle Sessions / Cookie Daten gelöscht werden.
    Das mit dem Klick auf Logout sollte auch einfach sein, das mit dem Schließen des Browsers ist hingegen wieder komplizierter. Du kannst dann entweder per JavaScript onUnload wieder ein Skript aufrufen lassen, was das beenden, wobei ich jetzt nicht weiß, ob als Unload auch ein Seitenwechsel zählt (ich denke schon, damit würde die Möglichkeit dann wegfallen, außer du möchstest dem User die Möglichkeit geben sich auf jeder Page neu einzuloggen ^^") oder du speicherst die Daten, die normalerweise in $_SESSION landen, in einer SQL-Tabelle, kannst dir dafür ja ne Klasse schreiben, und bei jedem Seitenaufruf, wird zuerst der Datensatz geupdated von der Zeit her und gleichzeitig jeder andere Datensatz, der älter als 5 Minuten ist rausgeschmissen. Letzteres würde ich dir empfehlen, auch wenn es nicht perfekt ist, war jetzt auch nur der erste spontane Einfall von mir. Nur damit hast du eine gute Möglichkeit...naja, das mit dem Array in der SQL-Tabelle gefällt mir nicht wirklich, aber was besseres fällt mir grade nicht ein ^^"
    Doch: Du kannst die Lebenszeit der Session runtersetzen...aber ich glaube, dass ist nur in den PHP-Einstellungen möglich, d.h. also nicht auf einem Webserver-Rechner, außer du hast einen ManagedServer....

    Welchen beispielhaften Ansatz sollte ich mir anschauen? Habe einiges unter Google gefunden, aber das waren Teillösungen.
    Tja, also wenn du das was ich geschrieben habe, nicht verstanden hast, weil du die Sachen nicht kanntest, würde ich sagen putz es dir von der Backe...wenn du es verstanden hast, dann hast du denke ich jetzt einige Ideen, wie du das vielleicht machen könntest.
    Aber bedenke, deine Ansprüche sind nicht grade toll. Weder für die Programmierung, noch für den User....und sicher ist sowieso nichts

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Re: Re: User Registrierung per Email

      Original geschrieben von ghostgambler
      du speicherst die Daten, die normalerweise in $_SESSION landen, in einer SQL-Tabelle, kannst dir dafür ja ne Klasse schreiben, und bei jedem Seitenaufruf, wird zuerst der Datensatz geupdated von der Zeit her und gleichzeitig jeder andere Datensatz, der älter als 5 Minuten ist rausgeschmissen. Letzteres würde ich dir empfehlen, auch wenn es nicht perfekt ist, war jetzt auch nur der erste spontane Einfall von mir. Nur damit hast du eine gute Möglichkeit...naja, das mit dem Array in der SQL-Tabelle gefällt mir nicht wirklich, aber was besseres fällt mir grade nicht ein ^^"
      So, du hast ein sch*** Glück, denn ich habe grade etwas gefunden, was dir bei dem Speichern eines Array und auslesens hinterher sehr hilfreich sein wird.
      www.php.net/serialize
      www.php.net/unserialize

      Okay, ich muss dazu sagen, dass ich die Funktionen in Verbindung mit einer Sicherheitslücke in PHP entdeckt habe, aber wenn du die aktuellen PHP-Versionen verwendest, stellt das kein Problem dar, da die Bugs in diesen entfernt wurden...zur Not mach deinem Webhoster Feuer unterm Gesäß

      Auf jeden Fall, steht damit der Möglichkeit, die ich oben nochmal zitiert habe nichts mehr im Wege, außer vielleicht eine zu geringe Userzahl...dann musst du noch nen Cronjob basteln, der alle paar Minuten die alten DB-Einträge entfernt. Damit hast du jetzt alles zusammen, bis auf die Möglichkeit des "parallelen" Surfens, aber mein Kommentar dazu steht oben ja schon...


      btw. kannst du statt serialize und unserialize auch
      www.php.net/var_export
      nutzen und das Zeug aus der Datenbank dann hinterher per
      www.php.net/eval
      ausführen lassen. Ein Semikolon am Ende, falls es fehlt und die Funktion deklariert dir das Array wieder so, wie du es der var_export-Funktion übergeben hast ^^

      Also wenn du PHP5 verwendest, würde ich dir zu einer Klasse raten. Mit dem Konstruktor, kannst du das Array auslesen lassen, mit dem Destruktor kannst du es automatisch wieder in die Datenbank schreiben lassen, ansonsten musst du das am Ende jeder Seite manuell machen. Das mit den Klassen funktioniert zwar auch in Version 4, aber Version 5 ist dafür eindeutig besser geeignet


      btw. musst du trotzdem noch eine Möglichkeit haben, etwas an die Seiten zu übergeben, wodurch du festlegst, in welchem Datensatz das Array des Users abgelegt ist, d.h. entweder eine imaginäre Session-ID, oder ganz banal den Usernamen, wobei das ziemlich dumm wäre, kann man ja einfach in der URL ändern, oder oder oder.....da darfst du mal selbst überlegen

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        ich würde auch so etwas ähnliches benötigen...
        zumindest mal eine Registrierung....

        also ich lass den User in einem .html - dokument eine registrierung ausfüllen - mit user, passwort, e-mail, name usw... und speicher die daten auch in einer datenbank (phpmyadmin).

        nun meine fragen:

        wie schaff ich es, dass der user eine e-mail, sozusagen als bestätigungs-email bekommt, in der er ein link zur fertigstellung der registrierung findet?

        wie schaff ich es, dass danach nur ein registrierter user auf einen bestimmten teil der homepage zugreifen kann?

        ich bitte um hilfe

        greeTings

        Kommentar


        • #5
          hi JohnConnor,

          zuerst um mails zu verschicken schau dir die funktion mail() im manual an ...
          die sollte eigentlich selbsterklärend sein ...

          dann würd ich bei der registrierung eine zufallszahl erzeugen (findest im forum unter suche genug zu) die du bei deinen usern speicherst und einen feld in der db hinzufügen ob der user activiert sit ...

          in der mail schickste einen link auf deine seite mit userid und der zufallszahl

          klickt er auf diesen wird gecheckt ob beides übereinstimmt , dann der user aktiviert


          zugriff :

          über abfragen ob er registriert sit ...
          speicher wenn er eingeloggt ist in der session dass er es ist ...
          frag dies auf den seiten ab ...

          im codeschnipsel bereich stehen dazu auch einige beispiele ..
          gruss
          iglo

          Kommentar


          • #6
            @JohnConnor, such mal im Code-Schnipsel nach "usermanagement die ...", das ist eine von mrhappiness geschriebene Klasse, sie ist schon auf sowas vorbereitet. Unter Zuhilfenahme der Funktion mail kannst du dein Vorhaben realisieren.

            Kommentar


            • #7
              ich danke für eure hilfe, und werd unter einbeiehung eurer tipps mal schaun, was ich damach... DANKE

              Kommentar

              Lädt...
              X