因為最近剛開始學習PHP,很多不懂,所以也遇到了以下問題,
經過上網查詢,得知結果,分享給各位。
----第一個程式碼------
<?
$var="1";
if ($var == "1")
{
$output = "輸入成功\";
}
else
{
$output = "ok";
}
echo $output;
?>
------第二個程式碼--------
<?
$var="1";
if ($var == "1")
{
$output = "輸入成功";
}
else
{
$output = "ok";
}
echo $output;
?>
你認為那一個會執行正確呢???
結果:
第一個成功,第二個有問題。詳情如下:
insert into table values('001','It's book');
如果我們想放資料內容包括 單引號 ' 時
我們會寫成
insert into table values('001','It's book');
請注意SQL語法中 ' 與 ' 的部份
但是,在 Big5 為兩個 byte 組成
第一個 byte 為 128 ~ 255 第二個 byte 為 0~255
其中「功、許…共128個字」都是以 每個 byte 當開頭,卻用和 相同的 Ascii code 結束,因此在留言用到這些字,會讓 SQL 語法誤判
例如
insert into table1 value('001','加入資訊安全實驗室成功\');
會被誤解成
insert into table1 value('001','加入資訊安全實驗室成X\');
在PHP中同理。 :wink: 不曉得對大家有沒幫助。
