我最近添加了一個使用myysql/php的新聞系統,它工作的很完美,但是在添加html時會產生一些錯誤。php mysql新聞錯誤
例如,如果我添加一個YouTube視頻會添加/或\
我改變的代碼是什麼下面的HTML保存到數據庫?
這就是HTML最終看起來像後:
我最近添加了一個使用myysql/php的新聞系統,它工作的很完美,但是在添加html時會產生一些錯誤。php mysql新聞錯誤
例如,如果我添加一個YouTube視頻會添加/或\
我改變的代碼是什麼下面的HTML保存到數據庫?
這就是HTML最終看起來像後:
這可能只是一些剝開斜槓更多。看起來你在保存數據(好工作!)之前正在跳過斜線,但是當你去顯示數據時你似乎沒有刪除那些斜線。回顯時,請嘗試以下操作:
最有可能得到magic quotes啓用。 如果是這樣,你應該相應地檢查這個和stripslashes。
function magic_quotes_strip($value){
if(get_magic_quotes_gpc()){
if(is_array($value)){
return array_map('stripslashes',$value);
}else{
return stripslashes($value);
}
}else{
return $value;
}
}
//Strip all slashes from post array before handling
$_POST = magic_quotes_strip($_POST);
然後做你的正常mysql的輸入之前逃脫,沒有雙重轉義的擔心:
$title = mysql_escape_string($_POST['title']);
注:
PHP_SELF
是一個XSS漏洞,你應該htmlentites那或刪除它,以便它只是action=""
$_SESSION[usr_name]
您使用usr_name
作爲常量,它應該是$_SESSION['usr_name']
如果你有魔術引號,你必須去除斜槓不僅爲MySQL,但整個現場。 Cookie中的過多斜槓與HTML中的一樣糟糕。你鏈接的文章告訴你。 – 2012-04-28 06:32:59
是的,這是顯而易見的'因此'stripslashes'意義上的輸入** NOT!**輸出,我已經在過去的託管,所有POST/GET輸入簡單的用戶功能已經足夠,我在哪裏提到餅乾? – 2012-04-28 06:37:00
我提到餅乾。必須從所有被破壞的數據中去除魔術斜線,而不僅僅是去往mysql字符串的數據。有關詳細信息,請參閱http://php.net/manual/en/security.magicquotes.php。 – 2012-04-28 06:42:12
在您的代碼中有一些地方無意中添加了過多的斜線。
你必須找到這個地方,並刪除過多的削減。
這可能是一個臭名昭着的magic_quotes_gpc
ini設置。您必須將其關閉,否則,請使用上述鏈接中的代碼,將這些無用的斜線放在配置文件的最上方。
這可能是一些愚蠢的無用的「最終清理功能」。你必須找到它並刪除它。
這可能在別的地方,比如generate_wysiwyg()
函數或其他任何東西。
請記住:僅僅使用stripslashes()不過是一個醜陋的柺杖,只能在一個地方糾正你的數據,而讓它在別處變壞。
請格式化您的代碼以使其可讀。這可能只是對你要求幫助的人的尊重。 – 2012-04-28 06:35:21