Werte aus Textarea in verschiedenen Variablen speichern

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

  • Werte aus Textarea in verschiedenen Variablen speichern

    Hey,

    ich bin gerade dabei eine Import Seite für Benutzer Accounts zu erstellen, hier soll eine Textarea mit den Werten gefüllt werden. Vorstellen tue ich mir das ganze so:
    Vorname, Nachname, Stufe, Passwort, weitere Werte
    Vorname, Nachname, Stufe, Passwort, weitere Werte
    Vorname, Nachname, Stufe, Passwort, weitere Werte
    Nun sollen eben all diese Informationen in eine mySQL Datenbank eingetragen werden. Jede Zeile ein neuer Benutzer und nach jedem Kommata in das dafür vorgesehene Feld in der Datenbank.
    Die Import-Funktion, welche ja out-of-box in PHP mitgeliefert wird, bringt mir leider nichts, da das Passwort jedes Nutzers noch mittels eines MD5-Hashes und eines dynamischen Salts verschlüsselt wird, deswegen muss ich mir selber eine Lösung basteln.
    Wie kann ich das realisieren? Ich muss ja die einzelnen Werte in Variablen abfangen und dann ja nur mit einem for each () arbeiten, aber ich habe keine Idee, wie ich dem Skript beibringen soll nach jedem Kommata bzw. Zeilenumsprung das Feld / die Spalte zu wechseln.

    Danke schonmal!

    Gruß,
    Michael

  • #2
    Wenn es sich um eine csv-datei handelt:
    PHP: fgetcsv - Manual

    ansonsten es mal mit: explode oder list versuchen

    Kommentar


    • #3
      Hi Michael,

      etwas ungewöhnlich, trotzdem machbar. Ein Formular:

      PHP-Code:
      <form action="" method="post">
      <
      textarea name="userdata" rows="10" cols="50">
      </
      textarea>
      <
      input type="submit" name="cmd" />
      </
      form
      Hier gibst du die Daten ein, z.B. Vorname, Nachname, Stufe, Passwort.

      Anton,Schmitz,4,as_schmitz
      Berta,Müller,2,bm_müller
      Xaver,Unsinn,5,xu_unsinn

      [COLOR=black]Nach der letzten Zeile darf kein Zeilenumbruch (Entertaste) mehr erfolgen!!!
      [/COLOR]
      Nach Absenden des Formulars kannst du die Zeilen anhand des Zeilenumbruchs (Ascii-Code = 13) trennen, und in einem Array speichern.

      PHP-Code:
      $submitted_textarea = array();
      if(isset(
      $_POST['cmd'])){
       
      $submitted_textarea explode(chr(13), $_POST['userdata']);

      Ausgabe mit print_r($submitted_textarea):
      Code:
      Array
      (
          [0] => Anton,Schmitz,4,as_schmitz
          [1] => Berta,Müller,2,bm_müller
          [2] => Xaver,Unsinn,5,xu_unsinn
      )
      Jetzt kannst du jedes Array-Element anhand des Kommas trennen, und jeden User in einem Array speichern.
      Um die einzelnen Userdaten mit "sinnvollen" Namen anzusprechen, kannst du noch ein Array mit Schlüsseln definieren,
      und dieses Array mit den Userarrays zusammenführen.
      PHP-Code:
      $user_data = array();
      $array_keys = array("Vorname","Nachname","Stufe","Passwort");
      foreach(
      $submitted_textarea as $user){
       
      /*
       * @array_combine erzeugt ein Array, in dem die Werte des keys-Arrays($array_keys) als Schlüssel
       * und die Werte aus dem values-Array($user) als die zugehörigen Werte verwendet werden.
       * Jetzt hat man ein assoziatives Array, dessen Werte man mit "sinnvollen" Schlüsseln ansprechen kann. 
       */
       
      $user_data[] = array_combine($array_keysexplode(',',$user));

      Ausgabe mit print_r($user_data):
      Code:
      Array
      (
          [0] => Array
              (
                  [Vorname] => Anton
                  [Nachname] => Schmitz
                  [Stufe] => 4
                  [Passwort] => as_schmitz
              )
           [1] => Array
              (
                  [Vorname] => Berta
                  [Nachname] => Müller
                  [Stufe] => 2
                  [Passwort] => bm_müller
              )
           [2] => Array
              (
                  [Vorname] => Xaver
                  [Nachname] => Unsinn
                  [Stufe] => 5
                  [Passwort] => xu_unsinn
              )
       )
      Gruß
      Günni

      Kommentar


      • #4
        Größten Dank an euch beide! So funktionierts!

        Kommentar

        Lädt...
        X