使用反斜杠回显表单输入

时间:2014-05-19 13:24:21

标签: php forms input echo backslash

尝试使用echo,

来使html代码正常工作

这适用于html:

<input type="text" name="ordernum" value="<?= isset($_POST['ordernum']) ? htmlspecialchars($_POST['ordernum']) : '' ?>" />

但是当我用反斜杠转义值时(我已经尝试了几十种组合并在stackoverflow上读了很多,但仍然无法修复它)我得到了意外的T_STRING错误。

echo ' <input type="text" name="ordernum" value=\'= isset($_POST['ordernum']) ? htmlspecialchars($_POST['ordernum']) : '' \' />';

5 个答案:

答案 0 :(得分:0)

作为Quentin has commented

  

您不能在字符串文字中间编写任意PHP代码

这是因为$_POST['ordernum']部分。

像这样重写:

$val = isset($_POST["ordernumW]) ? htmlspecialchars($_POST["ordernum"]) : "";

echo "<input type='text' name='ordernum' value='$val' />";

答案 1 :(得分:0)

您无法在字符串文字中使用任意代码。首先在一个变量中赋值,并在echo语句中使用该变量。

$orderNum = isset($_POST['ordernum']) ? htmlspecialchars($_POST['ordernum']) : '';
echo ' <input type="text" name="ordernum" value="'.$orderNum.'" />';

答案 2 :(得分:0)

您需要使用\转义可能以字符串结尾的字符(例如,特别是字符串分隔符"')。

这两行有效:

echo "<input type=\"text\" name=\"ordernum\" value=\"" . (isset($_POST['ordernum']) ? htmlspecialchars($_POST['ordernum']) : '') . "\" />";
echo '<input type="text" name="ordernum" value="' . (isset($_POST['ordernum']) ? htmlspecialchars($_POST['ordernum']) : '') . '" />';

答案 3 :(得分:0)

这应该是:

echo('<input type="text" name="ordernum" value="'.(isset($_POST['ordernum'])?htmlspecialchars($_POST['ordernum']):'').'">');

你使用一个句号来连接字符串,所以你应该结束字符串的第一部分,添加一个句号,然后是动态值,另一个句号,然后是字符串的其余部分。

所以,在你串起来的时候,你做错了什么就在这里:

value=\'= isset($_POST['ordernum']) ? htmlspecialchars($_POST['ordernum']) : '' \'

像这样:

"first part of string".$myvariable."last part of string";

您只需要转义包含字符串的引用类型:

"I need to escape this \" but not this ' "
'I need to escape this \' but not this " '

答案 4 :(得分:0)

$val = isset($_POST['ordernum']) ? htmlspecialchars($_POST['ordernum']) : '';

echo '<input type="text" name="ordernum" value="'. $val. '" />';