2013-02-07 188 views
3

我必須在表單中創建一個用戶將插入用戶名和密碼的登錄名。我必須確保沒有處理html實體,並且我不能允許單引號或雙引號進行處理。我必須回顯輸入到表單中的數據並顯示它。如何使用str_replace替換單引號和雙引號

我必須使用htmlentities和str_replace。我有正確的htmlentities,但我不確定如何利用str_replace函數來替換用戶可能輸入到表單中的單引號和雙引號。任何幫助都是極好的。

這是我當前的PHP(工作)

<?php 
$username = htmlspecialchars($_POST['username']); 
$password = htmlspecialchars($_POST['password']); 
$comment = htmlspecialchars($_POST['comment']); 
?> 
<html> 
<body> 
Your username is: <?php echo $username; ?><br /> 
Your password: <?php echo $password; ?><br /> 
Your Comment was: <?php echo $comment; ?> 

+1

報價有什麼問題?根據你的代碼它不會造成任何傷害。 (你沒有使用數據庫,PHP可以自動處理斜槓) –

+0

這就是教練想要的。他想確保我們知道如何str_function。到目前爲止,它只是讓我頭疼(我對PHP非常陌生) –

回答

13

我猜你想讓它this way..,請檢查

$yourPostVariable = "scor\"pi'on"; 

//$name = str_replace(array("'", "\""), "", htmlspecialchars($yourPostVariable)); 

echo str_replace(array("'", "\"", "&quot;"), "", htmlspecialchars($yourPostVariable)); 
+0

感謝您的時間ScoRpion!你的例子像一個魅力工作:) –

+0

@JeremyFlaugher你總是歡迎... – ScoRpion

0

嘗試下面的代碼替換雙引號

str_replace(chr(34), "replace_with", $content); 

單引號

str_replace("'", "replace_with", $content); 
1
$username = str_replace(array("'", "\""), "", htmlspecialchars($_POST['username'])); 
+0

我收到了一個語法錯誤。解析錯誤:語法錯誤,意外';'在第2行 –

+0

的F:\ xampplite \ htdocs \ Webtech \ samples \ cmweb250_lab2.php中,添加了右括號。 –

2
$username = htmlentities(str_replace(array('"', "'"), '', $_POST['username'])); 
+0

解析錯誤:語法錯誤,意外';'在第2行的F:\ xampplite \ htdocs \ Webtech \ samples \ cmweb250_lab2.php中。我只是複製並粘貼了您放入的內容並獲得了該語法錯誤。 –

+0

缺少括號,修正。 – Barmar

0

要刪除報價,您可以使用此:

$search = 'cars "black" in ...'; 
$search = str_replace("\"", "", $search); 
// result: "cars black in ..." 
2
$keyItem = str_replace ("'","\'",$keyItem); 

這將替換一個單引號用'逃脫了'單引號'。

0
$username_test = $_POST['username']; 
$username = str_replace(array("'", "\"", "&quot;"), "",htmlspecialchars($username_test)); 


//same for password :) 
+0

你可以添加一些細節,爲什麼這應該工作?僅有代碼的答案不是非常有用,可能會被刪除。 – Cristik

+0

在這個例子中,我們將搜索username.Lets假設它是cris'tik.Now它會在用戶名中找到quote(')並將其替換爲space.Answer與問題相關,所以我不認爲需要解釋。 – rahul

+0

,即使提問者只想要代碼(儘管這裏看起來並不是這種情況),對他而言,你的答案就足夠了,SO的特質之一就是回答者也試圖教育人們而不是給予他們複製並粘貼答案。這就是爲什麼解釋解決方案的答案比沒有答案的答案好得多,獲得更多選票。 – Cristik