Generierte Codes

CreativPur

Erfahrenes Mitglied
Hi,
ich habe ein kleines Tool, welches Zahlen generiert..

PHP:
$laenge = 13;
    $zeichen = "0123456789";
    $text="";
    mt_srand ((double) microtime()*100000000000);
    for ($i=0; $i<$laenge; $i++)
    {
        $text .= $zeichen{mt_rand(0,strlen($zeichen))};
        $gutschein_code = $text;
    }

Den Code kann ich natürlich auch in die Datenbank speichern..

PHP:
<form action="" method="POST">
                <label>Gutschein-Code für</label>
                <div class="row">
                    <div class="col-lg-6">
                        <input type="text" class="form-control" name="gutschein_code_vorname" placeholder="Vorname">
                    </div>
                    <div class="col-lg-6">
                        <input type="text" class="form-control" name="gutschein_code_nachname" placeholder="Nachname">
                    </div>
                </div>
                <br />
                <input type="" class="form-control"  name="gutschein_code" value="<?php echo $gutschein_code ?>">
                <hr />
                <button type='submit' class='btn btn-success btn-xs'>Code generieren und speichern</button>
            </form>

So kann ich aber pro Klick nur einen Code speichern..

Wie stelle ich es an, wenn ich x-beliebige auf einmal speichern möchte und die gewünschte Anzahl von Codes per Inputfeld eingebe?
 
Dies wäre Möglich, indem du die Erstellung der Zufalls Zahlen in eine Funktion schmeißt und diese dann für die Ausgabe aufrufst so z.B.

PHP:
function generateCode( $laenge= 13 ) {
   $zeichen = "0123456789";
   $text="";
   mt_srand ((double) microtime()*100000000000);
   for ($i=0; $i<$laenge; $i++) {
      $text .= $zeichen{mt_rand(0,strlen($zeichen))};
      $gutschein_code = $text;
   }
   return $text
}

PHP:
<?php
echo "<form action="" method="POST">
                <label>Gutschein-Code für</label>
                <div class="row">
                    <div class="col-lg-6">
                        <input type="text" class="form-control" name="gutschein_code_vorname" placeholder="Vorname">
                    </div>
                    <div class="col-lg-6">
                        <input type="text" class="form-control" name="gutschein_code_nachname" placeholder="Nachname">
                    </div>
                </div>
                <br />";
$anzahlCodes = $_POST['anzahl_codes'];
for( $i = 1; $i <= $anzahlCodes; $i++ ) {
   printf( '<input type="" class="form-control"  name="gutschein_code%s" value="%s"><br />',
              $i, generateCode( ) );
}

echo "                <hr />
                <button type='submit' class='btn btn-success btn-xs'>Code generieren und speichern</button>
            </form>";

Du musst nur vorher noch ein Formular bauen, um die Anzahl der Codes abzufragen.
 
Hi Merzi86,
vielen Dank für Deine schnelle Antwort.
Leider scheint in Deinem Script ein Fehler zu sein..
Code:
function generateCode( $laenge= 13 ) {
   $zeichen = "0123456789";
   $text="";
   mt_srand ((double) microtime()*100000000000);
   for ($i=0; $i<$laenge; $i++) {
      $text .= $zeichen{mt_rand(0,strlen($zeichen))};
      $gutschein_code = $text;
   }
   return $text
}
Schon in der ersten Zeile
Code:
function generateCode( $laenge= 13 ) {
zeigt es mir einen Syntaxfehler.

Du musst nur vorher noch ein Formular bauen, um die Anzahl der Codes abzufragen.
Kann ich dies nicht in dem vorhandenen Formular als Inputfeld einfügen ?

in etwa so....
PHP:
<?php
echo '<form action="" method="POST">
               <label>Gutschein-Code für</label>
               <div class="row">
                   <div class="col-lg-6">
                       <input type="text" class="form-control" name="gutschein_code_vorname" placeholder="Vorname">
                   </div>
                   <div class="col-lg-6">
                       <input type="text" class="form-control" name="gutschein_code_nachname" placeholder="Nachname">
                   </div>
                   <div class="col-lg-3">
                       <input type="text" class="form-control" name="gutschein_code_nachname_anzahl" placeholder="Anzahl">
                   </div>
               </div>
               <br />'
.$anzahlCodes = $_POST["anzahl_codes"];
for( $i = 1; $i <= $anzahlCodes; $i++ ) {
   printf( '<input type="" class="form-control"  name="gutschein_code%s" value="%s"><br />',
              $i, generateCode( ) );
}
echo '                <hr />
               <button type="submit" class="btn btn-success btn-xs">Code generieren und speichern</button>
           </form>
        </div>';
?>
 
Hallo CreativPur,

der einzige Fehler an der Syntax ist ein fehlendes Semikolon hinter
PHP:
return $text

Viele Grüße
 
hi goto,
und warum wird mir dann dieser Fehler angezeigt ?
info.png
 
PHP-Code im Script-Tag (JS) ? :)

Pack die Funktion einfach vor Deine Formular-Prozedur.

Viele Grüße
goto;
 
Logisch das das schon mal nicht gehen konnte..
Soweit bin ich ja schon mal ohne Fehlerquote. Allerdings werden noch keine Codes ausgegeben..
Ich komme mit dem zusätzlichen Formular nicht klar, bzw. weiß ich nicht, wie und wo ich dieses
unterbringen soll.
So sieht jetzt mein Quelltest aus..
PHP:
<form action="" method="POST" id="code2">
                <div class="row">
                    <div class="col-lg-6">
                        <label>Einrichtung</label>
                        <input type="text" class="form-control" name="gutschein_code_einrichtung" value="<?php echo $gutschein_code_einrichtung ?>">
                    </div>
                    <div class="col-lg-6">
                        <label>Ort</label>
                        <input type="text" class="form-control" name="gutschein_code_ort" value="<?php echo $gutschein_code_ort ?>">
                    </div>
                    <div class="col-lg-3">
                        <label>Anzahl</label>
                        <input type="text" class="form-control" name="gutschein_code_anzahl">
                        <?php
                        function generateCode($laenge = 13) {
                           $zeichen = "0123456789";
                           $text="";
                           mt_srand ((double) microtime()*100000000000);
                           for ($i=0; $i<$laenge; $i++) {
                              $text .= $zeichen{mt_rand(0,strlen($zeichen))};
                              $gutschein_code = $text;
                           }
                           return $text;
                        }
                                              
                        $gutschein_code_anzahlanzahlCodes = $_POST['gutschein_code_anzahlanzahl_codes'];
                        for( $i = 1; $i <= $gutschein_code_anzahlanzahlCodes; $i++ ) {
                        printf( "<input type='text' class='form-control' name='gutschein_code%s' value='%s'><br />",
                        $i, generateCode( ) );
                        }
                        ?>
                    </div>
                    <div class="col-lg-3">
                    </div>
                    <div class="col-lg-6">
                        <input type="hidden" class="form-control"  name="gutschein_code2" value="<?php echo $gutschein_code2 ?>">
                        <input type="hidden" class="form-control"  name="gutschein_code1" value=" ">
                        <input type="hidden" class="form-control"  name="gutschein_code_vorname" value=" ">
                        <input type="hidden" class="form-control"  name="gutschein_code_nachname" value=" ">
                    </div>
                </div>
                <hr />
                <button type='submit' name="code2" class='btn btn-success btn-xs'>Code generieren und speichern</button>
            </form>

Und so sollte es auf der Webseite aussehen..
 

Anhänge

  • Bildschirmfoto 2017-09-19 um 17.10.21.png
    Bildschirmfoto 2017-09-19 um 17.10.21.png
    30,6 KB · Aufrufe: 3
Hi,

die POST-Variable "gutschein_code_anzahlanzahl_codes" erhält keinen Inhalt, da es kein input mit diesem Namen gibt.

Viele Grüße
goto;
 
Super.. Die Codes werden tatsächlich nach beliebiger Anzahl ausgegeben..
Ich hatte 10 Stück in das
HTML:
<input type="text" class="form-control" name="gutschein_code2">
eingegeben.
Siehe Bild.

Leider werden aber in der Datenbank keine 10 Codes gespeichert, sondern nur dass die Zahl 10.

Ich denke mal, dass ich zwei Forms anlegen muss.
Was gebe ich aber dem Form für die Datenbank als input mit ?

Mein Code sieht jetzt nach Überarbeitung folgend aus.. ( In der Datenbank-Tabelle aber ich "gutschein_code2", "gutschein_code_einrichtung", "gutschein_code_ort")
PHP:
<form action="" method="POST" id="code2">
                <div class="row">
                    <div class="col-lg-6">
                        <label>Einrichtung</label>
                        <input type="text" class="form-control" name="gutschein_code_einrichtung" value="<?php echo $gutschein_code_einrichtung ?>">
                    </div>
                    <div class="col-lg-6">
                        <label>Ort</label>
                        <input type="text" class="form-control" name="gutschein_code_ort" value="<?php echo $gutschein_code_ort ?>">
                    </div>
                    <div class="col-lg-3">
                        <?php
                        function generateCode($laenge = 13) {
                          $zeichen = "0123456789";
                          $text="";
                          mt_srand ((double) microtime()*100000000000);
                          for ($i=0; $i<$laenge; $i++) {
                             $text .= $zeichen{mt_rand(0,strlen($zeichen))};
                             $gutschein_code = $text;
                          }
                          return $text;
                        }
                                               
                        $gutschein_code2 = $_POST['gutschein_code2'];
                        for( $i = 1; $i <= $gutschein_code2; $i++ ) {
                        printf( "<input type='text' class='form-control' name='gutschein_code2%s' value='%s'><br />",
                        $i, generateCode( ) );
                        }
                        ?>
                        <label>Anzahl</label>
                        <input type="text" class="form-control" name="gutschein_code2">
                    </div>
                    <div class="col-lg-3">
                    </div>
                </div>
                <hr />
                <button type='submit' name="code2" class='btn btn-success btn-xs'>Code generieren und speichern</button>
            </form>
 

Anhänge

  • Bildschirmfoto 2017-09-20 um 12.35.21.png
    Bildschirmfoto 2017-09-20 um 12.35.21.png
    54,3 KB · Aufrufe: 4

Neue Beiträge

Zurück