0
示例數據庫值是'12345'
它被分配給一個PHP變量$name
。MySQL數據庫包含引號編碼和未編碼,它正在打破javascript
onclick="assign('<?php echo $name;?>')
什麼是解決這個問題的最好辦法:
該值在例如javacript onclick事件中使用?
onclick="assign('<?php echo $name;?>')
// output: onclick="assign(''12345'')
onclick="assign('<?php echo htmlspecialchars($name);?>')
// output: onclick="assign(''12345'')
onclick="assign('<?php echo addslashes($name);?>')
// output: onclick="assign(''12345\'')
onclick="assign('<?php echo htmlspecialchars(addslashes($name));?>')
// output: onclick="assign(''12345\'')
上一個版本的作品,但我想一定有更好的方法。
@RolandStarke - 好。固定。 – Quentin
這會導致'onclick ='assign('"#039; 12345'"');「>'由於雙引號而中斷。 – xylar
不應該是:'onclick =「<?php echo htmlspecialchars('assign('+ json_encode($ name)+')');?>''''assign('+ json_encode($ name)+' )''爲js部分,然後'htmlspecialchars(...)'爲html部分。 –