• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Formular in Datei speichern

Du solltest auf eine Datenbank umsteigen, das wird sonst immer aufwändiger

Du muss in eine Schleife das Array durchlaufen und dann z.B. per strpos herausfinden, ob der Name bzw. eMail-Adresse schon vorhanden ist.
Genau das wollte ich damit sagen umständlich, da tut es nicht weh PDO MySQL als Basis zu lernen. Es ist mit der Funktion file() schlichtweg ein riesen Aufwand und (m. M. n.) für einen Anfänger um einiges umständlicher, sofern man es ausbauen möchte.

@benbas, wenn du uns Mitteilst, zu welchem Zweck du das ganze benötigst und was das Endresultat ergeben sollen, können wir dir besser vor Augen führen, welche Kapitel du lernen solltest
 
Werbung:
Hallo,

Lass die Prüfung einfach weg und erweitere das Array erstmal um den neuen Eintrag.
Speichern tust Du die Daten dann unter Verwendung von array_unique() und das wars:
PHP:
$datei = 'php/data.txt';

$array = json_decode( file_get_contents($datei), true );

if ( !is_array($array) )
    $array = array();

if ( isset($_POST['submit'], $_POST['username'], $_POST['email']) ) {
   
    $data = array($_POST['username'], $_POST['email']);
    $fehlertext = '';

    $fehlertext .= ( empty($_POST['username']) )? '- Bitte gib einen gültigen Usernamen an!<br>': '';
    $fehlertext .= ( empty($_POST['email']) )? '- Bitte gib eine gültige Email an, auf der wir dich kontaktieren können!<br>': '';
    $fehlertext .= ( empty($_POST['confirm']) )? 'Du musst den Usernamen geaddet haben!<br>': '';

    if ( strlen(trim($fehlertext)) > 0 ) {

        echo $fehlertext;
   
    } else {

       array_push( $array, $data );
       file_put_contents(
          $datei,
          json_encode(
              array_unique( $array )
          )
       );

    }

}
Ungetestet, aber sollte so gehen.

Dennoch gebe ich den Kollegen hier Recht: Eine Datenbank macht definitiv mehr Sinn!

Gruß Arne
 
Werbung:
Zurück
Oben