Bab*_*bak 4 php quotes replace user-input
我有这个:
<input name="title" type="text" class="inputMedium" value="' . $inputData['title'] . '" />
Run Code Online (Sandbox Code Playgroud)
我想从用户输入中删除引号,以便如果有人输入类似:"这是我的标题",它不会搞砸我的代码.
我试过这个并没有用:$ inputData ['title'] = str_replace(''','',$ _POST ['title']);
如果我正确理解了这个问题,你想要删除",$inputData['title']那么你的HTML代码就不会搞砸了?
如果是这样,"正确"的解决方案不是删除双引号,而是在执行实际输出之前转义它们.
考虑到您正在生成HTML,您应该使用该htmlspecialchars功能 ; 这样,双引号(以及其他几个字符)将被编码到HTML实体,并且在注入HTML标记时不会造成任何麻烦.
例如 :
echo '<input name="title" type="text" class="inputMedium" value="'
. htmlspecialchars($inputData['title'])
. '" />';
Run Code Online (Sandbox Code Playgroud)
注意:根据您的情况(特别是关于您可能正在使用的编码/字符集),您可能会传递一些额外的参数htmlspecialchars.
一般来说,无论您使用何种输出格式,都应始终将输出的数据作为输出转义.
例如 :
htmlspecialcharsmysql_real_escape_string或等效,具体取决于您正在使用的数据库类型