2011-02-25 35 views
0

發送到MySQL,如果我可以顯示表單上的鏈接和樣式發佈到mysql,是因爲mysql_real_escape_string?爲了保持安全

之前被告知

使用mysql_real_escape_string以及我做:

.... 

    $b = mysql_real_escape_string($b); 
    $r_int = mysql_real_escape_string($r_int); 
    $r_ext= mysql_real_escape_string($r_ext); 

    $id_tmp = $_SESSION['id']; 
    $insert = "INSERT INTO table (nombre, coment, iduser,fecha) 
          VALUES ('$b','$r_int','$id_tmp',NOW())"; 
.... 

但是,如果這些值包含的任何<a href="where">go</a>它會變成<a href="\where\">go</a>

和..我不能去!哈哈,

我該如何解決這個問題並保持安全?

謝謝! PHP

echo stripslashes($string); 

回答

1

的stripslashes功能取出斜線,並顯示它喜歡它原是

+0

工作,謝謝! – 2011-02-25 02:40:22

2

聽起來像是你可能有magic_quotes_gpc或一個其之流打開。較早的PHP版本自動轉義了一切,因此通過做mysql_real_escape_string()(如你應該那樣),你實際上增加了另一層轉義。

正確的解決方案是關閉magic quotes。他們已棄用,應該關閉,並繼續使用mysql_real_escape_string()

注意:關閉magic_quotes必須從php.ini或通過httpd.conf/.htaccess中的php_value完成。你不能通過腳本ini_set()來實現,因爲ini_set執行的時候,PHP已經完成了魔術引用。

+0

另一個答案對我來說比較容易,但是謝謝寫作。未來可能會有用! – 2011-02-25 02:41:10

相關問題