Ankündigung

Einklappen
Keine Ankündigung bisher.

Zufallsgenerator für Zahlen und Buchstaben

Einklappen

Neue Werbung 2019

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

  • Zufallsgenerator für Zahlen und Buchstaben

    Hi,

    ich würde gerne meine Passwortvergessenscript programmieren. Ich habe es mir so überlegt, das ein generator eine zufällige Zahl und Buchstabenkombination an den User schickt und in der DB Als neues Passwort speichert. Das ist alles kein Problem, das mit dem speichern und schicken, aber ich weiß nicht wie ich so einen generator programmieren kann.
    Wißt ihr vielleicht wo ich dazu ein gutes Tutorial oder so finde?

    Danke


  • #2
    PHP-Code:
    <?php
    /**
    * produces a random string.
    * @param integer $lengthOfReturnedString
    * @param boolean $noCAPITAL_LETTERS
    * @param boolean $includeNumbersAlso
    * @return string
    */
    function random_string($length,$noCaps false$addNumbers false)    {

        
    // bugfix. to avoid human reading errors, the chars o,O,i,I,l,L,1,0 do not appear any more in the result string.
        
    $w_s=array ('a','b','c','d','e','f','g','h','j','k','m','n','p','q','r','s','t','u','v','w','x','y','z',);
        if(
    $noCaps === false) {
            
    $w_s array_merge($w_s,array_map('strtoupper',$w_s));
        }
        if(
    $addNumbers === true) {
            
    $w_s array_merge($w_s,array(2,3,4,5,6,7,8,9,));
        }
        
    $max count($w_s) - 1;
        
    $pw "";
        for(
    $i=0;$i<$length;$i++) {
            
    srand((double)microtime()*1000000);
            
    $wg=rand(0,$max);
            
    $pw.=$w_s[$wg];
        }
        return 
    $pw;
    }
    ?>
    viel spaß...
    cya
    axo

    Kommentar


    • #3
      also ich habe ihn versucht einzubinden und ihn erstmal mit echo $pw; aus zugeben, aber es wird nichts ausgegeben

      Kommentar


      • #4
        $pw = substr(md5 (uniqid (rand())), 0, $laenge);

        Gruß
        phpfan

        Kommentar


        • #5
          Zitat von malte
          also ich habe ihn versucht einzubinden und ihn erstmal mit echo $pw; aus zugeben, aber es wird nichts ausgegeben
          und genau deswegen macht es in solchen foren keinen sinn, menschen fertigen und funktionierenden code zu posten. ich kann's mir einfach nicht merken, aber danke für die nochmalige erinnerung.

          Kommentar


          • #6
            es geht immer noch nicht phpfan, wäre es vielleicht möglich mir ein tutorial zu schicken dafür, oder wo gibt es so eins...

            Kommentar


            • #7
              PHP-Code:
              <?php
              function GeneratePassword($length 8) {
              //Funktion zur Generierung eines zufälligen Passworts

              $char_control  "";
              $chars_for_pw  "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
              $chars_for_pw .= "0123456789";

              $chars_for_pw .= "abcdefghijklmnopqrstuvwxyz";
              srand((double) microtime() * 1000000);
              for(
              $i=0;$i<$length;$i++) {
              $number rand(0strlen($chars_for_pw));
              $char_control .= $chars_for_pw[$number];
              }
                          
              return 
              $char_control;

              }
              ?>
              Angewendet wird der mit
              PHP-Code:
              <?php
              echo GeneratePassword();
              ?>

              Kommentar


              • #8
                ohh jeee,

                machs mal so malte!

                <?
                $laenge = 20;
                echo $pw = substr(md5 (uniqid (rand())), 0, $laenge);
                ?>

                Kommentar


                • #9
                  hi
                  also ich habe es jetzt so gemacht:

                  PHP-Code:
                  <?php
                  error_reporting
                  (E_ALL);
                  session_start ();

                  $connectionid mysql_connect ("localhost""root""");
                  if (!
                  mysql_select_db ("cs"$connectionid))
                  {
                    die (
                  "Keine Verbindung zur Datenbank. Grund:".mysql_error()."");
                  }

                  $sql sprintf("SELECT * FROM singels WHERE email='".$_POST["email"]."'",
                             
                  mysql_real_escape_string($email));
                  $result mysql_query ($sql);

                  if (
                  mysql_num_rows ($result) > 0)
                  {

                  $laenge 10;
                  $pw substr(md5 (uniqid (rand())), 0$laenge);

                  $sql="UPDATE singels SET password = '".$pw."' WHERE email = '".$email."'";

                  /* Empfänger */
                  $empfaenger = array("Damir<mail@selfphp.com>");

                  /* Absender */
                  $absender "Administrator [email]C.S.akiefer-malte@web.de[/email]>";

                  /* Betreff */
                  $subject "Neues Passwort";

                  /* Nachricht */
                  $message '
                  <html>
                      <head>
                          <title>Neues Passwort</title>
                      </head>
                      <body>
                  <h2>Neues Passwort</h2>


                  Sehr geehrter User oder Userin,


                  mit dieser E-Mail schicken wir Ihnen ihr neues Passwort.



                  Neues Passwort: "'
                  .$pw.'"


                  Wir raten Ihnen, nach dem Einloggen ein neues Passwort zuerstellen!



                  [i]Mit freundlichen Grüßen[/i]


                  [i][b]Ihr C.S. Team[/b][/i]

                      </body>
                  </html>
                  '
                  ;



                  /* Baut Header der MAil zusammen */
                  $headers .= "From:" $absender "\n";
                  $headers .= "X-Mailer: PHP/" phpversion(). "\n";
                  $headers .= "X-Sender-IP: $REMOTE_ADDR\n";
                  $headers .= "Content-type: text/html\n";

                  // Extrahiere Emailadressen
                  $empfaengerString implode(",",$empfaenger);

                  /* Verschicken der Mail */
                  mail($empfaengerString$subject$message$headers);


                  }
                  else
                  {
                    
                  header ("Location: passwordlost.php?fehler=1");
                  }
                  ?>
                  Aber bekomme folgende Fehlermeldung:

                  Notice: Undefined variable: headers in D:\XAMPP\xampp\htdocs\cs\passwordlost\passwordlost _check.php on line 56

                  Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in D:\XAMPP\xampp\htdocs\cs\passwordlost\passwordlost _check.php on line 65

                  Und in die Tabelle wird auch ncihts eingetragen!

                  Was ist falsch?

                  Kommentar


                  • #10
                    Und die Fehlermeldung wegen des Headers....
                    Du hast nirgendswo die Variable $headers = "" gesetzt. Du beginnst sofort mit $headers .= "irgendwas"

                    Du hast keinen Mailserver auf deinem Rechner....

                    Kommentar


                    • #11
                      und wie kann ich einen installieren?

                      aber er trägt ja auch nicht die daten nach, kann es vielleicht an der UPDATE sachen liegen?

                      Kommentar


                      • #12
                        Mehrere Dinge:

                        a) $Absender ist nocht korrekt; Öffnendes < fehlt
                        b) in der Update $sql ist $email, das muss $_POST["email"] sein
                        c) Du führst das Query nirgens aus!!

                        Kommentar


                        • #13
                          ok habe jetzt

                          a)
                          b)
                          c)

                          aber läuft trotzdem nicht

                          PHP-Code:
                          <?php
                          error_reporting
                          (E_ALL);
                          session_start ();

                          $connectionid mysql_connect ("localhost""root""");
                          if (!
                          mysql_select_db ("cs"$connectionid))
                          {
                            die (
                          "Keine Verbindung zur Datenbank. Grund:".mysql_error()."");
                          }

                          $sql sprintf("SELECT * FROM singels WHERE email='".$_POST["email"]."'",
                                     
                          mysql_real_escape_string($email));
                          $result mysql_query ($sql);

                          if (
                          mysql_num_rows ($result) > 0)
                          {

                          $laenge 10;
                          $pw substr(md5 (uniqid (rand())), 0$laenge);

                          $sql "UPDATE singels SET password = '".$pw."' WHERE email = '".$_POST['email']."'";
                                  
                          mysql_query($sql) OR die(mysql_error());


                          /* Empfänger */
                          $empfaenger $_POST["$email"];

                          /* Absender */
                          $absender = array("ADMIN C.S.<kiefer-malte@web.de>");

                          /* Betreff */
                          $subject "Neues Passwort";

                          /* Nachricht */
                          $message '
                          <html>
                              <head>
                                  <title>Neues Passwort</title>
                              </head>
                              <body>
                          <h2>Neues Passwort</h2>


                          Sehr geehrter User oder Userin,


                          mit dieser E-Mail schicken wir Ihnen ihr neues Passwort.



                          Neues Passwort: "'
                          .$pw.'"


                          Wir raten Ihnen, nach dem Einloggen ein neues Passwort zuerstellen!



                          [i]Mit freundlichen Grüßen[/i]


                          [i][b]Ihr C.S. Team[/b][/i]

                              </body>
                          </html>
                          '
                          ;



                          /* Baut Header der MAil zusammen */
                          $headers .= "From:" $absender "\n";
                          $headers .= "X-Mailer: PHP/" phpversion(). "\n";
                          $headers .= "X-Sender-IP: $REMOTE_ADDR\n";
                          $headers .= "Content-type: text/html\n";

                          // Extrahiere Emailadressen
                          $empfaengerString $empfaenger;

                          /* Verschicken der Mail */
                          mail($empfaengerString$subject$message$headers);


                          }
                          else
                          {
                            
                          header ("Location: passwordlost.php?fehler=1");
                          }
                          ?>

                          Notice: Undefined index: kiefer-malte@web.de in D:\XAMPP\xampp\htdocs\cs\passwordlost\passwordlost _check.php on line 26

                          Notice: Undefined variable: headers in D:\XAMPP\xampp\htdocs\cs\passwordlost\passwordlost _check.php on line 58

                          Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in D:\XAMPP\xampp\htdocs\cs\passwordlost\passwordlost _check.php on line 67

                          Kommentar


                          • #14
                            also das mit dem passwort klappt jetzt aber der rest nicht...

                            Kommentar


                            • #15
                              $absender = array("ADMIN C.S.<kiefer-malte@web.de>");
                              muss lauten
                              $absender = "\"ADMIN C.S. \"<kiefer-malte@web.de>";

                              $headers .= "From:" . $absender . "\n";
                              muss lauten
                              $headers = "From:" . $absender . "\n";

                              Dann musst du dir nur noch einen Mailserver installieren... [GOOGLE]

                              Kommentar

                              Lädt...
                              X