我希望有人可以帮我解决这个问题。我是一名ASP程序员,不知道这在PHP中是如何工作的
echo '</textarea>
<input type="hidden" name="g_word" id="g_word" value="$_POST[g_word]" />
<input type="hidden" name="article_no" id="article_no" value="$_POST[article_no]" />
</form>';
如何使用上面示例中的$_POST[article_no]
?在asp中,我会像"+Request.Form("article_no")+"
一样使用它。我怎么用PHP做的?
由于
答案 0 :(得分:5)
如果您使用上面发布的解决方案,请添加一些针对xss注入的基本保护 - 例如htmlentities($ _ POST ['article_no'])
答案 1 :(得分:2)
echo '</textarea><input type="hidden"
name="g_word" id="g_word"
value="'.$_POST[g_word].'" /> <input
type="hidden" name="article_no"
id="article_no"
value="'.$_POST[article_no].'" /></form>';
关闭单引号,并使用点连接
$value = "cool";
echo 'My String is ' . $value . '!!!!!';
在这种情况下,点与加号连接运算符相同。
答案 2 :(得分:2)
echo '</textarea><input type="hidden"
name="g_word" id="g_word"
value="'.$_POST['g_word'].'" /> <input
type="hidden" name="article_no"
id="article_no"
value="'.$_POST['article_no'].'" /></form>';
你必须把article_no放在'-s。
之间答案 3 :(得分:1)
变量不会在单引号内解释。但是,它们在双引号字符串或heredoc中。就个人而言,我完全退出PHP模式,如下所示:
<?php
//...
?>
</textarea><input type="hidden"
name="g_word" id="g_word"
value="<?php echo htmlentities($_POST['g_word']); ?>" /> <input
type="hidden" name="article_no"
id="article_no"
value="<?php echo htmlentities($_POST['article_no']); ?>" /></form>
<?php
//...
如果你做一些格式化并使用短标签,这更具可读性 - 虽然它需要一个非默认的配置选项,还有其他的缺点,主要是如果你有PHP interpereter解析的XML文档,或者你的应用程序将安装在您无法控制的服务器上。
看起来像这样:
<form>
<textarea>
<?
//...
?>
</textarea>
<input type="hidden" name="g_word" id="g_word" value="<?= htmlentities($_POST['g_word']); ?>" />
<input type="hidden" name="article_no" id="article_no value="<?= htmlentities($_POST['article_no']); ?>"/>
</form>
<?
//...
答案 4 :(得分:1)
我认为我理解你的问题;如果没有,请随时告诉我。
在PHP(和许多其他语言)中,字符串周围的引号数决定了字符串的解析方式。如果使用单引号,则解析字符串中的任何内容(除了另一个单引号 - 如果您打算将其作为字符串的一部分而不是closequote,则需要使用反斜杠进行转义)。如果使用双引号,则会解析更多内容,但您必须进行更多转义。
有多种方法可以处理在字符串中插入变量。
使用双引号:
echo "</textarea><input type=\"hidden\"
name=\"g_word\" id=\"g_word\"
value=\"$_POST['g_word']\" /> <input
type=\"hidden\" name=\"article_no\"
id=\"article_no\"
value=\"$_POST['article_no']\" /></form>';
使用单引号:
echo '</textarea><input type="hidden"
name="g_word" id="g_word"
value="' . $_POST['g_word'] . '" /> <input
type="hidden" name="article_no"
id="article_no"
value="' . $_POST['article_no'] . " /></form>';
或者,在我看来,最优雅的方式是使用(s)printf返回格式化的字符串:
printf('</textarea><input type="hidden"
name="g_word" id="g_word"
value="%s" /> <input
type="hidden" name="article_no"
id="article_no"
value="%d" /></form>', $_POST['g_word'], $_POST['article_no']);