尝试使用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']) : '' \' />';
答案 0 :(得分:0)
您不能在字符串文字中间编写任意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. '" />';