Php 在我的示例中如何使用urlencode()?
我查看了Php 在我的示例中如何使用urlencode()?,php,forms,get,urlencode,Php,Forms,Get,Urlencode,我查看了php.net并阅读了一些关于urlencode()如何工作的示例,但不知怎的,我就是做不好。有人能帮我一下吗 这将是很多的例子,所以希望我的简短的例子会有意义 我有一个名为2.php的页面,调用它是为了显示1.php中选择的.txt文件的一些内容 我被告知要为3.php创建一个链接,该链接应该看起来像/3?filename=a.txt 文件名为GET参数名,并使用urlencode()函数确保GET参数值为urlencoded 但我不知道应该如何以及在哪里放置urlencode(),以
php.net
并阅读了一些关于urlencode()
如何工作的示例,但不知怎的,我就是做不好。有人能帮我一下吗
这将是很多的例子,所以希望我的简短的例子会有意义
我有一个名为2.php
的页面,调用它是为了显示1.php
中选择的.txt
文件的一些内容
我被告知要为3.php
创建一个链接,该链接应该看起来像/3?filename=a.txt
文件名为GET
参数名,并使用urlencode()
函数确保GET
参数值为urlencoded
但我不知道应该如何以及在哪里放置urlencode()
,以使其工作
我将在这里粘贴我的2.php代码…我简化了一些代码
<?php
$fileContents = file("./aaa/" . $_GET["course"] . ".txt");
echo "<table border=\"1\">";
foreach($fileContents as $row)
{
echo "<tr>";
$contents = preg_split("/,/", $row);
foreach($contents as $eachline)
{
echo "<td>";
if(!(preg_match("/@/", $eachline)))
{
echo trim(ucfirst($eachline));
}
else
{
echo trim(strtolower($eachline));
}
echo "</td>";
}
echo "</tr>";
}
echo "</table>";
echo "<a href='./1.php'>Choose another txt file</a><br/>";
echo "or<br/>";
echo "<a href='.3.php?'>Work with this txt file</a>";
?>
但是…3.php选项必须附加一个查询字符串:在1中选择的文本文件的名称,因此url应该是诸如./3?filename=asdf.txt之类的内容,而不是./3.php
使用“filename”作为获取参数名。确保使用urlencode()函数对GET参数值进行urlencoded
但我只是不知道如何让它工作….您可以将函数中应该进行url编码的部分包装在字符串中:
$url = 'http://www.google.com?q=' . urlencode($search);
OR in html
http://www.google.com?q=<?php echo urlencode($search); ?>
$url='1!'http://www.google.com?q=' . urlencode($search);
或者在html中
http://www.google.com?q=
其中,
是两个输出的串联。请注意,如果处理不当,该系统可能容易受到远程文件包含的攻击……但有点简化了,因此没有太多的内容需要读取,但希望仍然能够理解。请注意,使用php读取文件名可能是一个安全问题。考虑以下示例:/3?filename=.htpasswd
或/3?filename=../../etc/passwd
或/3?filename=../any.php
在所有情况下,您都可以读取用户无法看到的任意信息。我希望我把这个例子讲清楚了,但是$search呢?那应该是什么呢?比如说输出是什么?哦,我们可以在链接中添加echo?(对不起,我对php完全陌生。仍在学习)我想我开始了解它了。但是如果我这样做…$url=“./3.php?filename=”。urlencode($_GET[“aaa”]..txt”);我想如果我使用$\u GET[“filename”]将得到与$\u GET[“aaa”]相同的结果。这也是使用urlencode的好结果之一吗?因为如果我只是在3.php中使用$_GET[“aaa”],则无法找到该值,因为它没有链接,而是在“/3.php?filename=”的帮助下。urlencode($_GET[“aaa”]..txt”);我可以将$_GET[“aaa”]的参数带入3.php