2013-02-06 47 views
0

我有一個輸入表單,我用它來在數據庫中發佈一些數據,問題是它不會允許我發佈像「+」,「 &「等。輸入字段將不允許打印一些操作員

現在我用這個格式:

$postPagesashtepi = $_POST["postPagesashtepi"]; 

的形式如下:

<input id="pagesashtepi" name="pagesashtepi" type="text" size="40" value="<?php echo $row['pagesashtepi'];?> 

我也用filter sanitized太多,但再沒有成功.. 有人可以幫助我嗎?

+1

顯示用於將數據插入數據庫的代碼。 –

+0

你的表單方法是Post嗎? –

+1

你是HTTP的新手,不是嗎。 –

回答

0

您可以使用

$string=stripslashes($string); 

這讓你輸入取消報價DB

使用此功能安全輸入

function dbcodec($string){ 
    $string=stripslashes($string); 
    $string=str_replace("\\",'\\',$string); 
    $string=str_replace("'","\'",$string); 
    $string=str_replace("`","\`",$string); 
    $string=str_replace('"','\"',$string); 
    $string=str_replace('*','\*',$string); 
    return $string; 
} 

,您可以使用mysql_real_escape_string fo r轉義輸入

+0

它仍然不會工作...我是php和SQL服務器的PHP .. – pyetjegoo

+0

@pyetjegoo測試這是什麼?SQL錯誤?和** print_r($ _ POST); **看到的是任何帖子輸入 –

+0

沒有任何錯誤,我的意思是它不會把字符.. – pyetjegoo

1

無論何時將用戶提供的內容輸出到瀏覽器,您都應該始終調用htmlspecialchars以確保人們不會將HTML注入到您的頁面中。

+0

不幸的是,它不會工作.. 如果我插入像「&」這樣的字符它將不會工作,它就像它不接受輸入.. 我使用的是PHP和SQL服務器。 。我猜,我讀過它可能與utf encode..something有關。 – pyetjegoo

0

您在帖子中傳遞了錯誤的名稱。

$postPagesashtepi = htmlspecialchars($_POST["postPagesashtepi"]);

+0

不,因爲我用ajax發佈它,所以名稱不正確..但使用htmlspecialchars不會發布... – pyetjegoo

+0

好的現在檢查這個編輯的代碼,也許它是幫助。 –

+0

不幸的是,它不會工作.. 如果我插入像「&」這樣的字符它將不會工作,它就像它不接受輸入.. 我使用PHP和SQL服務器..我猜,我讀它可能與utf encode ..something有關.. – pyetjegoo