2012-04-12 83 views
0

我試圖從數據庫中選擇值,並將每個人放在單獨的文本輸入字段。我的代碼正常工作,但是,當我試圖在文本字段上顯示一個字符串時,該字符串是剪切或修剪它的第一個空間字符。例如:字符串切割,在第一個空格字符修剪

value #1: "my-picture.jpg" 

value #2: "my name" 

如果我是把上述兩個值並插入一個文本字段內,輸出會是這樣:

value #1: my-picture.jpg 
value #2: my 

這是我工作的代碼:

<?php 
$counter = 0; 
while ($newArray = mysqli_fetch_array($res, MYSQLI_ASSOC)) { 
echo " 
<input type='text' value=".$newArray['my_picture']."> 
<input type='text' value=".$newArray['my_name']."> 
"; 
?> 

出了什麼問題?謝謝你的幫助。

+2

你好,有XSS。 – knittl 2012-04-12 10:53:09

+0

@knittl ??????? – user1328840 2012-04-12 11:05:11

回答

7

你需要引用您的HTML表格值:

echo ' 
<input type="text" value="'.$newArray['my_picture'].'"> 
<input type="text" value="'.$newArray['my_name'].'"> 
'; 

而且良好的措施將是一個好主意,使用上的值htmlentities()htmlspecialchars()在你的變量,特殊字符進行編碼:

echo '<input type="text" value="' . htmlentities($newArray['my_picture']) . '"> 
     <input type="text" value="' . htmlentities($newArray['my_name']) . '">'; 
+0

工作,謝謝。 – user1328840 2012-04-12 10:52:22

+1

@ user1328840如果您的(X)HTML沒有達到您期望的效果,請[嘗試驗證它](http://validator.w3.org/)... – DaveRandom 2012-04-12 10:53:49

+0

+1用於反XSS措施 – knittl 2012-04-12 11:32:40

1

您需要用引號包圍您的值。像

echo " 
    <input type='text' value='".$newArray['my_picture']."'> 
    <input type='text' value='".$newArray['my_name']."'> 
"; 
2

一些嘗試查看源代碼..那說:

<input type='text' value=the content of your variable> 

在哪裏「你變量的內容」需要用引號引起來,自然。所以;將其更改爲:

<?php 
$counter = 0; 
while ($newArray = mysqli_fetch_array($res, MYSQLI_ASSOC)) { 
    echo '<input type="text" value="' . $newArray['my_picture'] . '">'; 
    echo '<input type="text" value="' . $newArray['my_name'] . '">'; 
} 
?>