在POST上添加了字符

时间:2009-08-09 20:05:25

标签: php html forms xhtml

我有简单的表单发布到另一个文件。我遇到的问题是TEXTAREA字段。

在TEXTAREA表格中,我输入:

<h1 class="padlock">Member Login</h1>

,当使用PHP回显时,输出位于另一页上:

<h1 class=\"padlock\">Member Login</h1>

它会自动转义字符。我在另一个TEXTAREA框中显示输出。

我怎样才能使它完全相同?

3 个答案:

答案 0 :(得分:1)

Magic Quotes已开启。

这是PHP的弃用功能。它用于转义所有传入的用户数据。您可以使用stripslashes()获取原始数据:

if (get_magic_quotes_gpc()) {
    $_POST['textareaname'] =stripslashes($_POST['textareaname']);
}

或将其应用于整个$ _POST数组:

function stripslashes_recursive($data){
  if(is_array($data){
    $new_data = array();
    foreach($new_data as $key => $entry){
      $new_data[$key] = stripslashes_recursive($entry);
    }
    return $new_data;
  } else { 
    return stripslashes($data);
  }
}

if (get_magic_quotes_gpc()) {
    $stripped_postdata = stripslashes_recursive($_POST);
}

注意:递归函数用于支持发布数据中的数组。

答案 1 :(得分:0)

Ups ... stripslashes!

答案 2 :(得分:0)

在接受$ _POST变量的脚本顶部使用它:

if (get_magic_quotes_gpc()){
  foreach ($_POST as $key=>$val){
    $_POST[$key] = stripslashes($val);
  }
}

某些版本的PHP会自动转义,这真的很痛苦。未来的版本没有。