簡體   English   中英

PHP中的引號和斜線問題

[英]Quote and slash issue in PHP

每次我嘗試更新textarea並在textarea內添加引號" ,更新后我得到1 \\ ,我再次更新我得到3斜杠\\\\\\ ,再次5斜杠,依此類推。嘗試在php ini中添加3個禁用魔術引號的代碼,但不執行任何操作:

magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off

還添加到根文件夾和文件所在的文件夾中。 還嘗試了這個http://us2.php.net/manual/en/security.magicquotes.disabling.php示例2和第一個注釋,但仍然沒有。

這是我的代碼:

的PHP

$username=$_SESSION['username'];
$viewtopic = $_GET['viewtopic'];
if ($_POST['edit'] && strip_tags($_POST['topictext'])){
  $viewtopic = $_POST['id'];
  $topictext=mysql_real_escape_string(strip_tags($_POST['topictext']));
  $title=mysql_real_escape_string(strip_tags($_POST['title']));
  mysql_query("UPDATE topics SET topictext=".quote_smart($topictext).", title=".quote_smart($title)." WHERE id=".quote_smart($viewtopic)."");
  echo "You have updated your topic!";
}

HTML

<textarea name="topictext" rows="2" cols="20" id="main_tbContent" class="TextBox" style="height:128px;width:99%;"><? echo str_replace("\\r\\n","\r\n",$rows['topictext']); ?></textarea><br />

好的,在我的數據庫條目代碼中,這就是我要做的。 首先,我總是通過POST方法發送郵件,以避免瀏覽器網址復雜化。

當我獲得POST數據時,這就是我的代碼。

    $ID = 1;
    $DATA = htmlentities(addslashes($_POST['data']));
    $FIELD = lifename;
    $DBQUERY = "UPDATE `lifetable` SET `$FIELD` = '$DATA' WHERE `id` = $ID";
    $DBRESULT = $MYSQLI->query($DBQUERY);

當我在選擇查詢中要求返回信息時,我沒有做任何特別的事情,我所做的只是一個普通的fetch_assoc或fetch_array而沒有任何功能。 這始終適用於輸入值和文本區域。

這應該是你的:

mysql_query("UPDATE topics SET topictext='".htmlentities(addslashes($topictext))."', title='".htmlentities(addslashes($title))."' WHERE id='$viewtopic'");

並且在將文本數據作為mysql中的值傳遞時,請不要忘記單引號。 我加了

我目前在我的本地站點上使用它。

另外,請刪除mysql_real_escape_string函數的所有實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM