PHP申请表 - 我不知道如何使用它

时间:2010-02-08 06:16:35

标签: php

我希望有人可以帮我解决这个问题。我是一名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做的?

由于

5 个答案:

答案 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']);