我正在尝试创建一个将发送给多个人的网页。该网页包含一封信。
因此,如果URL字符串如下所示:
Website.com/letter?name=Jim
然后页面上显示的字母应显示为:
Hello Jim,
<br>
<br>Blah blah blah...
在某些情况下,名称可能包含两个名称,在这种情况下,它应显示两者,例如:
Website.com/letter?name=Jim Patrick
它将显示为:
Hello Jim Patrick,
<br>
<br>Blah blah blah...
我将如何实现这一目标?
<?php
$name = $_REQUEST['name'];
?>
那将是你的名字。
你想在哪里显示名字。刚刚放。
<p>Hello, <?php echo $name; ?></p>
正如tadman指出的那样,不要在get字段中公开字段来生成它。如果有必要,您可以使用加密/解密步骤来保护其免受简单操作。
编辑
如果你这样做,修改名称将很难
链接中的加密名称
然后在php中解密它
<?php
$name = someDecryption($_REQUEST['name']);
?>
要改进查询字符串中$_GET
参数的解析/处理,可以将语法更改为:
Website.com/letter?name[]=Jim&name[]=Patrick
然后$_GET['name']
将举行:array('Jim','Patrick')
。
由于$_GET
现在是多维的,您可以通过运行来迭代名称:
foreach($_GET['name'] as $name){
// echo $name // do whatever
}
或者你可以打电话给implode('&', $_GET['name'])
或类似的。
请参阅this post,其中讨论了tadman警告您的主题。
最后,如果你只想空间分隔你的名字并从一个表格字段(或硬编码网址)提交它们,那么你的接收代码只需要explode(' ',$_GET['name'])
然后重新拼接名字和你的任何字符/子字符串选择。
你的问题有点含糊不清,所以如果Jim Patrick
实际上只有一个人,你不需要改变任何东西。 name
值将是name=
之后的所有文本,直到url字符串结束或直到遇到#
或&
(假设您正在处理有效的URL)。