Phần 1 có thể khá dễ:'a''b'
là một thay thế cho 'a\'b'
và do đó có nghĩa là như nhau. Giao diện người dùng chắc chắn rằng trong các truy vấn, chuỗi chính xác sẽ được trả về, trái ngược với định nghĩa bảng.
Đối với Phần 2, Nedret Recep đã cho bạn câu trả lời chính xác. Thêm vào đó, tôi tự hỏi làm thế nào
echo "<option value='".$imgClass_row[imgClass]."'>"
có thể dẫn đến
<option value="Robin" s'="">
. Tôi mong đợi hơn
<option value='Robin's'="">
điều này rõ ràng là sai, nhưng có thể được giải quyết bằng htmlspecialchars()
.
CHỈNH SỬA:Tôi đã tìm thấy một lời giải thích khả thi:trình phân tích cú pháp HTML của trình duyệt có thể bị đổ lỗi ở đây. Với
<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>
Tôi nhận được với Firefox
<option value="Robin's">a</option>
<option value="Robin" s="">b</option>
value:Robin's
với tùy chọn a
và
<option value="Robin's">a</option>
<option value="Robin" s="">b</option>
value:Robin
với tùy chọn b
. Nhưng nó là sau khi phân tích cú pháp và lắp ráp lại và rõ ràng không phải là mã do PHP tạo. Và thậm chí sau đó, en axcess '
ở đâu trong <option value="Robin" s'="">
.