0

私が脱出できる方法はあり>ますか、以下のオプションがあるコンボボックスがあります。に置き換え>てみました>が、まだ正しくアップロードされていません。

<select name="Category3" id="Category3">
<option value="Request |Running > 1 hour">Request |Running > 1 hour</option>

アップロードする必要があるのは、Request |Running > 1 時間だけです。

しかし、アップロードされているのは: Request |Running > 1 hour 1 hour' />

残りの 1 時間がどこにあるのかわからない' />

を削除しようとしたところ、リクエスト>がアップロードされました|Running 1 hour without the extra 1 hour' />しかし、一貫性を保つために必要です

これは、dbにアップロードするために使用しているphpコードです

<?php
    error_reporting(0);
    require 'include/DB_Open.php';

    $Category3 = mysql_real_escape_string ($_POST['Category3']);

    if (isset($ABC))    
    {
    $sql="INSERT into XXX category_2
          VALUES ('".$Category3."')";
    $result=mysql_query($sql)or die(mysql_error());
    }
?>

ここにデータを取得するための私のコードがあります

$sql="SELECT category_2
        FROM XXX
        WHERE resolved_date BETWEEN '" . $date . "' AND '" . $date1 . "'
        ORDER BY resolved_date";
$myData = mysql_query($sql);

//to count if there are any results
$numrow = mysql_num_rows($myData);

if($numrow == 0)
{
    echo "No results found.";
}
else
{
    echo "$numrow";
}
{

echo "<table width='auto' cellpadding='1px' cellspacing='0px' border=1 align='center'>
<tr>
<th align='center'><strong>Category 3</strong></th>
</tr>"; 

while($info = mysql_fetch_array($myData)) 
{
echo "<form action='retrieve.php' method='post'>";

echo"<tr>"; 
echo  "<td align='center'>" . $info['category_2'] . "<input type=hidden name=category_2 value=" . $info['category_2'] . "' /> </td>";
echo "</tr>"; 
echo "</form>";
}
}
echo "</table>"; 
4

1 に答える 1

2

特殊な HTML 文字を含む可能性のあるテキストを表示するときはいつでも、 を使用htmlentities()して適切にエンコードする必要があります。これにより、これらの文字によって HTML が誤って解析されないようにします (さらに悪い場合は、スクリプト インジェクションを許可します)。

$cat2 = htmlentities($info['category_2']);
echo  "<td align='center'>" . $cat2 . "<input type='hidden' name='category_2[]' value='" . $cat2 . "' /> </td>";

また、'afterがありませんでしたvalue=。私はそれを追加しました(および他のすべての属性を引用符で囲みます)。

同じ名前の複数の入力を作成しているため、サーバー スクリプトがすべての値を取得できるように、それらに配列形式の名前を付ける必要があります。$_POST['category_2']配列になります。

于 2013-07-29T21:44:50.153 に答える