Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] PHP-MySQL-Freischaltung

Einklappen

Neue Werbung 2019

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

  • #16
    wie mach ich denn in den mails die links das sie bei web.de auch funktionieren?

    und die url zu dem aktivierungslink http://wing.funpic.de/userarea/init.php?mail=md5($email) <-- so? oder hab ich da wieder was falsch verstanden

    das ist jetzt der neueste code von init.php ist das so richtig oder muss ich die mail noch irgendwie aufschlüsseln?
    Code:
    	  $query = "SELECT active FROM userarea WHERE email = '".$email."'";
    	  $result = mysql_query($query,$login);
    
    	$get = mysql_fetch_array($result, MYSQL_ASSOC);
    	
    if (!empy($_GET['mail'])) // vorhanden und nicht leer
     {
        if ($get["active"] != 1)
        {
         $sql = "UPDATE
                   spielertabelle
                 SET
                   active = 1
                 WHERE
                   MD5(mail) = '".$email."'
             ";
         $result = mysql_query($sql) OR die (mysql_error());
        }	
     }
    mfg wing

    Kommentar


    • #17
      Also ich hab jetzt mal deinen ganzen Code angepasst:
      Code:
      <?php
        error_reporting(E_ALL);
      
        // Datenbank Variablen 
        $dbserver = "xx"; // Datenbankserveradresse (http://w.funpic.de/phpmyadmin/) 
        $dbname = "xx";   // Name der Datenbank 
        $dbuser = "xx";   // Username des Datenbankbenutzers 
        $dbpass = "xx";   // Passwort des Datenbankbenutzers 
      
        // Verbindung herstellen:
        $login = @mysql_connect ("$dbserver", "$dbuser", "$dbpass") or die ("Datenbank zur Zeit nicht erreichbar: ".mysql_error()); 
        @mysql_select_db($dbname,$login) or die ("Datenbank konnte nicht ausgewaehlt werden: ".mysql_error());
      
        // wenn die Variable email vorhanden ist, dann den Account aktivieren:
        if (!empty($_GET['email']))
         {
          // aktiviert den Account:
          $sql = "UPDATE
                    userarea
                  SET
                    active = 1
                  WHERE
                    MD5(mail) = '".$_GET['email']."'
                 "; 
          $result = mysql_query($sql) OR die (mysql_error()); 
         }
      
        mysql_close($login);
      
       ?>
      Die E-Mail legst du so fest:
      Code:
      $link = 'http://wing.funpic.de/userarea/init.php?mail='.md5($email);
      mfg RudiS

      Kommentar


      • #18
        also die mail funzt immer noch nicht kommt immer noch als text an

        und ich brauch ja die url sonst kann ich ja nicht testen ob das 0 -> 1 funzt aber jetzt ist schon spät das können wir morgen nochmal besprechen

        mfg wing

        Kommentar


        • #19
          So, schick doch die E-Mail einfach mal so:
          Code:
          $text = 'http://wing.funpic.de/userarea/init.php?mail='.md5($email);
          mail($email, $betreff, $text);
          Natürlich musst du die Variablen definieren.
          mfg RudiS

          Kommentar


          • #20
            also

            so sieht es aus: http://wing.funpic.de/userarea/bild1.JPG

            so soll es aussehen: http://wing.funpic.de/userarea/bild2.JPG

            irgendwie funktioniert der link nich

            mfg wing

            Kommentar


            • #21
              Da kommt die Fehlermeldung das externes Linken verboten ist.
              Wenn das so ist geht der E-Mail Link auch nicht.
              mfg RudiS

              Kommentar


              • #22
                hiho leuz,
                so mache ich es mit der freischaltung:
                1. man generiert ein passwort und das wird dem user per mail zugeschickt, wenn er sich einloggt, kann er das passwort ändern.
                somit ist es keine richtige freischlatung aber immerhin...
                2. beim anmeldeformular wird nichts in die datenbank eingetragen. der username und das passwort werden in einem hyperlink per mail zugeschickt. sieht dann so aus: http://www.deineurl.de/freischaltung...me&pw=passwort. wenn der user nun die email erhalten hat, drückt er auf den link und auf der freischaltung.php werden die daten in die datenbank eingetragen, also erst jetzt die richtige anmeldung.
                damit spart man sich dieses aktivier = '1' oder '0'. man kann's machen, wie man will.

                vielleicht wurden auch meine versionen genannt, habe den thread nicht ganz durchgelesen. :wink:

                mfg
                DarkManX

                Kommentar


                • #23
                  externes linken verboten? wo?

                  edit:

                  ok ich weis jetzt warum kam aber bei mir nich :/ also den link hab ich jetzt und er greift auch auf die init.php zu (besser gesagt die weiterleitung des headers funktioniert)

                  aber is immer noch 0 in der spalte

                  mfg wing

                  Kommentar


                  • #24
                    Gib doch mal $_GET aus. Eigentlich müsste da mail drinnstehen, wenn du auf den Link geklickt hast.
                    mfg RudiS

                    Kommentar


                    • #25
                      in der zeile steht
                      Code:
                        if (!empty($_GET['email']))
                      aber jetzt bei betrachtung der abfrage stell ich fest das ich gar nicht weis was der da überhaupt fragt

                      fragt der da überhaupt ob die id 0 ist ??

                      Kommentar


                      • #26
                        Nein, der fragt hier ab, ob die Variable vorhanden ist und ob sie nicht leer ist. Du brauchst auch nicht abfragen ob active 0 ist, dass wird einfach überschrieben, falls einer zweimal auf den Link klickt.
                        mfg RudiS

                        Kommentar


                        • #27
                          nene da funzt irgendwie was nicht, bei
                          Code:
                           $sql = "UPDATE
                                        userarea
                          muss da der tabellenname oder datenbank name eingegeben werden? userarea is der tabellenname, wing der datenbankname *verzweifel*

                          Kommentar


                          • #28
                            Hast du ganz oben auch die richtige Datenbank ausgewählt?
                            mfg RudiS

                            Kommentar


                            • #29
                              hab ja nur eine

                              edit: und in den if sätzen steht ja auch drin das wenn ein fehler auftritt ne fehlermeldung kommt aber da is keine meldung nur ein weißes blatt

                              Kommentar


                              • #30
                                Poste doch bitte mal was ausgegeben wird, wenn du echo $sql; schreibst.
                                mfg RudiS

                                Kommentar

                                Lädt...
                                X