2016-04-03 4 views
1

ich eine einfache serverseitige Validierung aufbauen wollen, und ich habe ein Problem:ein HTML-Attribut mit PHP Set

Wenn der Benutzer die Daten einreicht und es ist nicht richtig, ich will die richtigen Daten in die halten Eingabe (Beispiel: Wenn ich zwei Felder habe, Benutzername und E-Mail, aber nur die E-Mail ist nicht gültig, sollte der Benutzername gespeichert werden). Im folgenden Code habe ich versucht, den Attributwert nur zu erstellen, wenn die Variable $validUser initialisiert wurde. Ansonsten möchte ich kein Wertattribut. Der Code funktioniert nicht.

<input type="text" placeholder="Username" name="username" id="username" 
        <?php 
         if ($validUser) echo "value='$validUser'"; 
        ?> 
    /> 

Was soll ich tun?

+0

definieren „nicht funktioniert“ – JimL

+0

haben Sie die POST Ihre Felder zu $ ​​ValidUser einstellen, wenn die Validierung nicht korrekt ist? – Juakali92

Antwort

0

Wenn der Benutzer sendet die Daten ...

Haben Sie bedeuten, dass es ein _GET $ _POST oder $ ist Wunsch? Wenn ja, wäre dies ein wenig mehr Sinn machen

<input id="username" 
     name="username" 
     placeholder="Username" 
     value="<?php echo isset($_GET['username']) ? $_GET['username'] : '' ?>"> 

Wenn $_GET['username'] nicht vorhanden ist, werden Sie nur value="" erhalten, die völlig in Ordnung ist


Schreiben von HTML über PHP von Hand ist eine totale lästige Pflicht . Um dies zu bekämpfen, habe ich ein Programm geschrieben naomik/htmlgen genannt, das macht es ziemlich viel erträglicher

<?php 
use function htmlgen\html as h; 

h('input#username', [ 
    'name'=>'username', 
    'placeholder'=>'Username', 
    'value'=>isset($_GET['username']) ? $_GET['username'] : '' 
]); 

// => <input id="username" name="username" placeholder="Username" value="someuser">