Administrations Problem mit Usern / Passwörtern

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

  • Administrations Problem mit Usern / Passwörtern

    Hallo Leute,

    ich habe auf meiner Seite die Möglichkeit geschaffen, sich zu registrieren. Wenn man das getan hat, bekomme ich bisher die Benutzerdaten (auch das PW) per Mail zugesenden und muss es dann noch manuel eintragen, um sicherzugehen, das sich nur leute eintragen, die auch dazu authorisiert sind, da sich eine geschlossene community dahinter verbirgt.

    Da ich bei dieser Möglichkeit natürlich immer auch das pw der user sehe, wollte ich fragen, ob es irgendeine möglichkeit gibt, das in der datenbank die user erst "freigeschaltet" werden, wenn ich sie freigeschaltet habe ? Dabei könnte das Passwort ja verschlüsselt gesendet werden und ich könnte den user freigeben ohne das Pw zu kennen.

    es geht wie gesagt darum, das der user erst zugang hat, nachdem ich die daten geprüft habe und ihn dazu authorisiere.

    Schönen Gruß
    Zuletzt geändert von nevermind; 06.05.2006, 22:22.

  • #2
    Erweitere deine Tabelle um eine Spalte 'approved', die default 0 enthält.
    Erweitere dein Login-Script so, dass sich nur User anmelden können, die in der Spalte 'approved' eine 1 stehen haben.

    - User füllt Registrier-Formular aus und sendet ab
    - dein Script schreibt die Userdaten in die DB (approved wird automatisch mit 0 belegt)
    - Script schickt dir eine Mail mit den Userdaten inkl. eines Links zum Freischalten
    - du klickst den Link, rufst also ein (zweites) Script auf
    - dieses Script schreibt in die Spalte approved eine 1

    Kann man auch selbst drauf kommen ...

    Kommentar


    • #3
      cool, danke. du solltest wissen, ich bin auf dem gebiet ziemlich neu und deshalb noch ein halber noob ^^

      Kommentar


      • #4
        Ein Problem hab ich allerdings nun. Ich will den User mit den Daten aus dem Formular in die DB eintragen. Das klappt allerdings nicht. Folgendes Script habe ich nun:
        PHP-Code:
        <?
        $name = $_POST['name'];
        $vname = $_POST['vname'];
        $bname = $_POST['bname'];
        $mail = $_POST['mail'];
        $pw = $_POST['pw'];

        if ($_POST['senden'])
        {
          if 
        .
        .
        .
            else
            {
            # Eintrag in die Datenbank
            $sqlinsert = "insert into user (Name, Vorname, Benutzername, Email, Passwort) values ($name, $vname, $bname, $email, md5($pw))";
            $query = mysql_query($sqlinsert);
              if($query)  {
                  echo 'Erfolgreich Registriert. Sie werden nun vom Administrator freigeschaltet';
              } else  {
                    echo 'Fehler bei Registrierung. Bitte gehen Sie <a href="index.php?inc=reg">zurück</a> und probieren Sie es erneut !';
                }
            }
          }
        }
        ?>
        Es kommt leider immer die Meldung fehler bei Registrierung. Woran könnte das liegen ? warscheinlich ist der Fehler bei dem insert into denke ich.

        gruß

        Kommentar


        • #5
          Hallo,

          vieleicht hilft Dir das weiter?
          So mache ich das. Wenn Du die anderen Scripte auch haben möchtest melde Dich über meine Seite www.all4you-online.com (Kontaktformular)
          Ich helfe Dir gerne weiter.

          PHP-Code:
          <?
          session_start();
          include 'vars.php';
          $from ="neukunde.php";
          function connect()
           {
           include 'vars.php';
           $con= mysql_connect($db_host,$db_user,$db_pass) or die(mysql_error());
           mysql_select_db($db_table,$con) or die(mysql_error());
           }
          connect();

          //querystring in nummerisches ARRAy umwandeln um durch die Übergabewerte iterieren zu können
          $variables = array_values($_POST);
          $check=true;
          //durch die parameter iterieren und überpfüfen ob alle felder ausgefüllt wurden
          for($x=0;$x<count($variables);$x++){
           if ($variables[$x]=="") {
            $check = $check && false;
           }
          }

          //Fehlermeldung wenn nicht alle Felder ausgefüllt wurden
          if (!$check) {
          $msg = "Bitte alle Felder ausfüllen!";
          include 'neukunde.html';
          die();
          }

          //Fehlermeldung wenn Passwörter nich zueinander passen
          if ($_POST['kd_pass']!=$_POST['kd_passwd']) {
          $msg = "Passwörter stimmen nicht überein!";
          include 'neukunde.html';
          die();
          }
          // Email duplikate prüfen
          $sql="SELECT * FROM $usertabelle WHERE kd_email='".$_POST['kd_email']."'";
          $result= mysql_query($sql) or die(mysql_error());
          if (mysql_num_rows($result)>0) {
          $msg= "Email schon vergeben! Bitte nicht doppelt angmelden!";
          include 'neukunde.html';
          die();

          }

          if ($_POST['kd_anzahl']==0){
          $_POST['kd_BLZ']=1;
          $_POST['kd_anzahl']=1;

          }
          //User in der Datenbank registrieren
          $sid=session_id().rand(0,1000);
          $sql="INSERT INTO ".$usertabelle." ( `kd_nr` , `kd_name` , `kd_pass` , `kd_session` , `kd_logintime` , `kd_firma` , `kd_vorname` , `kd_strasse` , `kd_hnr` , `kd_plz` , `kd_ort` , `kd_kto` , `kd_BLZ` , `kd_Bank` , `kd_tel` , `kd_email` , `kd_ktinhaber` , `kd_aktiv` , `kd_confirm` , `kd_anzahl`)
          VALUES (
          NULL , '".$_POST['kd_name']."', '".$_POST['kd_pass']."', '$sid','".time()."', '".$_POST['kd_firma']."', '".$_POST['kd_vorname']."', '".$_POST['kd_strasse']."', '".$_POST['kd_hnr']."', '".$_POST['kd_plz']."', '".$_POST['kd_ort']."', '".$_POST['kd_kto']."', '".$_POST['kd_BLZ']."', '".$_POST['kd_Bank']."', '".$_POST['kd_tel']."', '".$_POST['kd_email']."', '".$_POST['kd_ktinhaber']."', '0', '0', '".$_POST['kd_anzahl']."'
          )";
          $result= mysql_query($sql) or die(mysql_error());


          //neu generierte Kundennummer auslesen!
          $sql= "SELECT kd_nr FROM ".$usertabelle." WHERE kd_session='$sid'
          ";
          $result= mysql_query($sql) or die(mysql_error());
          $kd_nr = mysql_result($result,0);

          //Email an Bewerber schicken!
          ob_start();
          include 'mail.html';
          $page = ob_get_contents();
          $page = str_replace("\n","\r\n",$page);
          ob_end_clean();
          mail($_POST['kd_email'],"Ihre Anmeldung bei DEINESEITE.DE",$page, $header = 'From: [email]info@deineseite.de[/email]'."\r\n"."Content-Type: text/html\r\n"."\r\n");

          $msg= "Ihnen wurde eine Bestätigungsmail geschickt! Bitte den in der Mail enthaltenen Link bestätigen um die Registrierung abzuschliessen!";
          include 'confirm.html';

          ?>

          Kommentar


          • #6
            Danke für das Angebot. Ich haber das Problem aber schon gelöst bekommen .
            Ein anderes Problem habe ich aber noch. DAs hat zwar nicht direkt mit der sache zu tun aber trotzdem.
            Was muss ich in der DB einstellen, das bei der Spalte id trotz "auto_increment" die id hochgezählt wird bei jedem user und wenn ich einen user lösche die id angepasst wird. Im moment ist es so, wenn ich einen user lösche, fehlt z.b. die id nr. 12 und es geht 10,11,13.
            Ich hoffe das kann man irgendwie hinbekommen.

            Kommentar


            • #7
              Nein, kann man nicht, braucht man nicht, macht man nicht. Wozu sollte das gut sein?

              Ach und kann derjenige, der mich eben bis nach Sibirien scrollen ließ, bitte seinen Code umbrechen?! Danke.

              Kommentar


              • #8
                Wie wozu soll das gut sein. Liegt doch auf der Hand wofür das gut sein soll. Wenn ich einen User mit der id5 habe und den lösche, dann wäre es doch sinnvoll,wenn die anderen user nachrutschen oder nicht ?

                Kommentar


                • #9
                  Ne, wozu denn? Solltest du mehr als 18446744073709551615 (unsigned BigInt) User erwarten, kann ich dich beruhigen: Derzeit gibt es ca. 6,5 Milliarden Menschen auf der Welt, also müßte sich jeder ca. 3 Milliarden mal registrieren. Bis dahin gibt es sicher schon eine MySQL-Version mit noch größeren Datentypen.

                  Kommentar

                  Lädt...
                  X