打印JavaScript在php中安全地转义字符串

时间:2014-03-19 00:45:13

标签: javascript php escaping

我正在使用encodeURIComponent()(和encodeURI()用于发送电子邮件)从用户安全地获取输入,然后通过ajax将输出发送到php。 php处理它并将这个转义的sting放入$_SESSION[]然后我转到echo。我想知道是否可以正常打印到html,然后html忽略它内部的任何代码(例如将被视为文本而不是标记)或者甚至将这两个步骤结合起来。我认为JavaScript编码的格式与php的格式不同,所以这可能是一个问题,但如果是,那么在php中更改这些stings的最佳方法是什么(我在MySQL中存储这些转义字符串)?

提前致谢。

1 个答案:

答案 0 :(得分:-1)

Theese是我在php中处理用户字符串时使用的函数。

save用于保存到数据库,

编辑是在input / textareas中编辑

show是将它写出来,将标签显示为html中的文本。

// SAVE DATA
function save($str)
{
    return mysql_real_escape_string($str);
}
//############################################################################
// EDIT DATA
function edit($str)
{
    $patterns[0] = '/</';
    $patterns[1] = '/>/';
    $patterns[2] = '/"/';
    $patterns[3] = "/'/";
    $replacements[0] = '&#60;';
    $replacements[1] = '&#62;';
    $replacements[2] = '&#34;';
    $replacements[3] = '&#39;';
    $str = preg_replace($patterns, $replacements, $str);
    $str = trim($str);
    return stripslashes(stripslashes(str_replace('\r\n', '
', $str)));
}
//############################################################################
// SHOW DATA
function show($str)
{
    $patterns[0] = '/</';
    $patterns[1] = '/>/';
    $patterns[2] = '/"/';
    $patterns[3] = "/'/";
    $replacements[0] = '&#60;';
    $replacements[1] = '&#62;';
    $replacements[2] = '&#34;';
    $replacements[3] = '&#39;';
    $str = preg_replace($patterns, $replacements, $str);
    $str = trim($str);
    return stripslashes(stripslashes(str_replace('
', '<br />', $str)));
}

玩它并看看它是否适合你:)