2016-04-03 92 views
1

我想建立一個簡單的服務器端驗證,我有一個問題:設置一個HTML屬性與PHP

當用戶提交的數據,這是不正確的,我想保持正確的數據進入輸入(例如:如果我有兩個字段,用戶名和電子郵件,但只有電子郵件無效,則應保存用戶名)。

在下面的代碼中,我試圖只在初始化變量$validUser時才創建屬性值。否則,我不想要一個值屬性。代碼不起作用。

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

我該怎麼辦?

+0

定義「不工作」 – JimL

+0

你要爲你的領域$ VALIDUSER的POST如果驗證不正確? – Juakali92

回答

0

當用戶提交的數據...

你的意思是有一個$ _POST或$ _GET要求?如果是這樣,這將讓更多一點意義

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

如果$_GET['username']不存在,你只會得到value=""這是完全正常的


編寫HTML通過手工PHP是一個總的苦差事。爲了解決這個問題,我寫了一個名爲naomik/htmlgen工具,這使得它非常難捱

<?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">