当用户输入值并提交表格时我有文本框我将该字符串存储在PHP文件中
例如
用户输入值:c/om'n" tec\t
现在我想在php文件中存储用户提交的代码 所以我得到用户输入字符串并在下面的php文件中写入
define ( 'TEXT_VAL', 'c/om'n" tec\t' );
这个php代码给了我语法错误
我想将用户输入的值转换为安全的php字符串,看起来很沮丧
define ( 'TEXT_VAL', 'c/om\'n\" tec\t' );
之后如何让第一个用户输入值(c/om'n" tec\t
)形成TEXT_VAL变量
我尝试使用addslashes()和stripslashes()php函数,但是当用户输入\
时,我无法通过转换后的字符串输入用户输入值
我的问题:
答案 0 :(得分:1)
使用addslashes
和stripslashes
例如
保存时显示addslashes(your string)
,显示时显示strip_slashes(the result)
答案 1 :(得分:0)
define ( 'TEXT_VAL', addslashes(your_val) );
答案 2 :(得分:0)
我已经测试stripslashes / addslashes正常工作
我已将outputstring转换为base64以模拟用户输入。 Base64文本未转义。
$val = base64_decode('Y29tJ24iIHRlY1x0');
echo "USERINPUT: ".$val.'<br>';
define ( 'TEXT_VAL', addslashes($val) );
echo "ESCAPED: ".TEXT_VAL.'<BR>';
echo "STRIPPED: ".stripslashes(TEXT_VAL);
<强>输出:强>
USERINPUT: com'n" tec\t
ESCAPED: com\'n\" tec\\t
STRIPPED: com'n" tec\t
答案 3 :(得分:0)
只需使用序列化/反序列化。
答案 4 :(得分:0)
sprintf("<?php define('TEXT_VAL', %s);", var_export($userText, true))
var_export
确保您将结果作为有效的PHP代码。
我仍然认为将值存储为常量定义并不是最好的方法。