2013-04-02 52 views
0

我有一個註冊表單,我試圖創建cookie來保持輸入的用戶數據,如果他們嘗試提交帶有驗證錯誤的表單。 Cookie正在這樣做,但它也造成了額外的問題。PHP Cookie輸入兩個空格

當窗體加載該cookie似乎在表單字段中輸入兩個空行,如果用戶提交驗證錯誤的表單時,它使用戶的信息,但插入空兩個格在他們面前的細節。這是什麼造成的?

HTML表單:

<p class="error" id="jsFirstError"> 
    <?php 
     if(isset($_COOKIE['firstNameErr'])) { 
     echo $_COOKIE["firstNameErr"]; 
     } 
    ?> 
    </p> 
    First name:<input type="text" name="fname" placeholder="First Name" id="firstNameField" autofocus="autofocus" value=" 
    <?php 
    if(isset($_COOKIE['firstNameEntry'])) { 
     echo $_COOKIE['firstNameEntry']; 
    } 
    ?>"><br /><br /> 

驗證和餅乾:

if(empty($fname)) { 
     $error = true; 
     setcookie("firstNameErr", "Please enter your First Name.", time()+1, '/'); 
    } else if(!ctype_alpha($fname)) { 
     $error = true; 
     setcookie("firstNameErr", "Only letters are accepted, please re-enter your First Name.", time()+1, '/'); 
    } else { 
     setcookie("firstNameEntry", $fname, time()+1, '/'); 
    } 
+0

嘗試省略p元素和<?php開始標記之間的空白,然後對firstNameField的值執行相同的操作,因爲我可以看到在<?php標記之前有一個空格,這會導致額外空間你會看到 –

回答

0

我有一個登記表,我試圖創建將繼續進入用戶的數據也應該儘量餅乾提交包含驗證錯誤的表單。

爲什麼要爲此使用cookie?

數據已經發送到的腳本已經擁有了所有必要的信息 - 因此不需要使用cookie就可以直接從那裏直接輸出數據。

當窗體加載該cookie似乎在表單字段中輸入兩個空行,如果用戶提交驗證錯誤的表單時,它使用戶的信息,但插入空兩個格在他們的細節前。這是什麼造成的?

通過讓輸出值的PHP代碼跨越<?php標記之前的空格的多行,插入到HTML中的空白區域。

順便說一下,您正在打開您的頁面,以避免將正在放入上下文HTML中的數據轉義出來。

+0

你會如何去輸出它? – Colin747

+0

'''限制value屬性的內容和你想放進它裏面的實際數據之間沒有空格,並帶有正確的HTML轉義... – CBroe