2012-10-02 19 views
1

我試圖通過PHP從輸入字段中的數據庫檢索數據。如果數據存在,我想在輸入字段中顯示檢索到的值,而不是佔位符。我能夠從數據庫中檢索數據,但它在實際輸入之前添加了一些額外的選項卡。在從Db檢索後輸入字段中的額外選項卡

<input type="text" name="title" id="title" value=" 
<?php 
    $title='title'; 
    $clean = trim(retrieve_project_info($email,$title)); 
    echo $clean; 
?>"> 

所以,如果db中的輸入是'coldplay'。檢索到的數據看起來像'[tab] [tab] [tab] coldplay',並且網址中有許多%09。

我通過使用修剪方法刪除了空格。但是,修剪不會刪除標籤。 任何想法如何刪除這些標籤?

+1

你在'value =「'和'<?php'之間有空格。 – eggyal

回答

1

是的,刪除標籤很容易,但你最好找出他們爲什麼在那裏,而不是刪除它們。 但是你的代碼:

<input type="text" name="title" id="title" value=" 
<?php 
    $title='title'; 
    $clean = trim(retrieve_project_info($email,$title)); 
    echo $clean; 
?>"> 

倒不如這樣寫的:

<?php 
    $title='title'; 
    $clean = trim(retrieve_project_info($email,$title));  
?> 
<input type="text" name="title" id="title" value="<?php echo $clean; ?>"> 

有何幫助去除你的標籤? 我建議這是因爲retrieve_project_info可以輸出標籤。

還有一個觀察:如果$乾淨包含「將你的代碼失敗

編輯:@palmi

這是我要做的事:

function doFormSafeHTMLEncode($someStr){ 
    return htmlspecialchars($someStr,ENT_QUOTES,'UTF-8'); 
} 

我到處調用該函數在那裏我輸出原始代碼到一個表單域

+1

甚至可以使用[shortcut](http://www.php.net/manual/en/ini.core.php#ini .short-open-tag)''而不是'<?php echo $ clean;?>',或者當然直接去'<?= trim(retrieve_project_info($ email,'title'))?>' – eggyal

+0

不要這樣做Short_open_tags並不是在任何地方啓用(例如,不在我的服務器上;-)) –

+0

非常感謝問題是我在value =「」中添加了很多空間,然後纔回顯在PHP中的值。是的,你是對的。在數據庫的字段中添加一個雙引號就會失敗這個代碼。任何想法如何繞過?。感謝提前。 – palmi

0

取出你的代碼中的選項卡,並把它放到屏幕上的chrome中,我做了,它對我很有用。電子可讀的代碼,但是這種方法現在工作,直到我找到另一種解決方案。

相關問題