Bestaetigungslink generieren

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

  • Bestaetigungslink generieren

    Ich bin leider noch ein kompletter Beginner im PHP-Bereich und stehe nun vor meinem ersten kleineren Problem.

    Ich bin naemlich gerade dabei, fuer ein kleines Script auch einen Opt-In Newsletter zu programmieren.
    Dieser funktioniert so, dass nach einer Anmeldung eine Bestaetigungsmail an die angegebene E-Mailadresse geschickt wird.

    Mich wuerde nun interessieren, wie man denn den Bestaetigungslink generiert und so hinbekommt, dass nach Klick auf diesen auch das betreffende Mitglied auf "aktiv" gesetzt wird.

  • #2
    Re: Bestaetigungslink generieren

    wie man denn den Bestaetigungslink generiert und so hinbekommt, dass nach Klick auf diesen auch das betreffende Mitglied auf "aktiv" gesetzt wird.
    spontan würd ich sagen, der link sollte so aussehen
    Code:
    www.deine_seite.de/index.php?ätschen=activate&id=17
    wobei 17 für die id steht, die den user erhält, wenn du ihn in die db einträgst ...
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Re: Re: Bestaetigungslink generieren

      Original geschrieben von derHund
      www.deine_seite.de/index.php?ätschen=activate&id=17
      wobei 17 für die id steht, die den user erhält, wenn du ihn in die db einträgst ...
      dann trage ich kurz meine eigene emailadresse da ein, und direkt danach auch noch derHund@huette.de.

      durch den bestätigungslink, den ich zugesandt bekomme, weiss ich, dass meine ID 4711 ist - daraus kann ich dann schliessen, dass die zu deiner adresse gehörende ID 4712, 4713 oder noch ein paar stück weiter sein müsste.

      dann bastle ich mir einfach den link
      http://www.deine_seite.de/index.php?...tivate&id=4712
      zusammen und rufe ihn auf, und schon hat derHund einen newsletter abonniert, den er nie haben wollte ...


      damit sowas nicht passieren kann, sollte man noch irgendein verschlüsseltes kennzeichen mit in den link aufnehmen, so dass eine solche unberechtigte aktivierung wie beschrieben nicht möglich ist.

      dazu könnte man z.b. an die emailadresse noch einen festen string wie "blah-blubb" anhängen, und dies dann per md5 verschlüsseln, o.ä. etc. pp.


      btw: *verschieb* zu brainstorming
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        wie wär's damit:

        in der tabelle eine spalte activated ( varchar(32) ) und beim anlegen des user
        PHP-Code:
        $activation=md5(uniqid(micro_time())); 
        dadrin speichern

        dann den link index.php?activate=$activation verschicken und den entsprechenden datensatz so ändern, dass in activated eine 1 steht
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Original geschrieben von mrhappiness
          wie wär's damit:

          in der tabelle eine spalte activated ( varchar(32) ) und beim anlegen des user
          PHP-Code:
          $activation=md5(uniqid(micro_time())); 
          dadrin speichern

          dann den link index.php?activate=$activation verschicken und den entsprechenden datensatz so ändern, dass in activated eine 1 steht
          Das hoert sich ja schonmal sehr gut an.
          Wie uebernehme ich nun die Aktivierung?

          Ich habe mir den folgenden Code zusammengebastelt, weiss aber nicht, ob dieser ausreicht und in welcher Datei ich diesen nun abspeichern muss.


          PHP-Code:
          <?
          include ("config.inc.php");

          mysql_connect("localhost",$mysqlusername,$mysqlkennwort);

            $aendern = "UPDATE mitglieder Set activation = '1' WHERE activation = 'activate'";

            $update = mysql_query($aendern);

            ?>
          Ich denke nun mal, dass dieser Code einfach in die index.php eingefuegt werden muss, bin mir hierbei aber nicht sicher und bitte daher um Bestaetigung.

          Kommentar


          • #6
            ne da haste ihn glaub ich falsch verstanden ... also mal sehr vereinfacht der aufbau der tabelle:
            id, int(10)
            email, varchar(255)
            ....
            activekey, varchar(32)
            activated, int(1), standard 0

            in activekey steht der md5 string drin der auch in dem link drin is ... also activate.php?key=string ... der auch in der bestätigungsmail steht. Wenn der der die mail gekriegt hat dann auf den link klickt und die activate.php aufruft änderste "activated" auf 1 wo activekey=key is ... also code die beiden zeilen von dir ersetzt:
            PHP-Code:
            $aendern "UPDATE mitglieder SET activated = '1' WHERE activekey = '" $_GET['key'] . "'";
              
            $update mysql_query($aendern); 
            mfG
            CMS-X Medien- und Modelagentur

            Kommentar


            • #7
              ich glaube er hat mich richtig verstanden
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar

              Lädt...
              X