Bagian 1 mungkin cukup mudah:'a''b'
adalah alternatif untuk 'a\'b'
dan dengan demikian berarti sama. UI yakin bahwa dalam kueri string yang benar akan dikembalikan, berlawanan dengan definisi tabel.
Untuk Bagian 2, Nedret Recep telah memberi Anda jawaban yang benar. Plus, saya ingin tahu bagaimana
echo "<option value='".$imgClass_row[imgClass]."'>"
dapat mengakibatkan
<option value="Robin" s'="">
. Saya lebih suka mengharapkan
<option value='Robin's'="">
yang jelas salah, tetapi dapat diselesaikan dengan htmlspecialchars()
.
EDIT:Saya telah menemukan penjelasan yang mungkin:pengurai HTML browser dapat disalahkan di sini. Dengan
<select id="s" onchange="alert(document.getElementById('s').innerHTML + ' value:' + document.getElementById('s').value)">
<option value='Robin's'>a</option>
<option value='Robin's'>b</option>
</select>
Saya mengerti dengan Firefox
<option value="Robin's">a</option>
<option value="Robin" s="">b</option>
value:Robin's
dengan opsi a
dan
<option value="Robin's">a</option>
<option value="Robin" s="">b</option>
value:Robin
dengan opsi b
. Tapi itu setelah parsing dan re-assembling dan jelas bukan kode yang dihasilkan PHP. Dan bahkan kemudian, di mana en axcess '
di <option value="Robin" s'="">
.