我是php编程新手,所以请耐心等待。我有一小段代码,从0到9进行while循环,提供到页面的链接,并向url添加一些代码,作为第2页url的get数据。
<?php $link_name = "Page 2"; ?>
<?php $company = "Super & Sprunklers"; ?>
<?php $id = 0;
while ($id <=10) {
if ($id < 10) {
echo "<a href='"page2.php?id={$id}&company={$company}'">{$link_name}?id={$id}&company={$company}</a>";
echo "<br />";
} else {
echo "<a href='"page2.php'">{$link_name}</a>";
}
$id++;
}
?>
此操作有效,并为该页生成以下链接:
Page 2?id=0&company=Super & Sprunklers
Page 2?id=1&company=Super & Sprunklers
Page 2?id=2&company=Super & Sprunklers
Page 2?id=3&company=Super & Sprunklers etc... to id=9
Page 2
然而,当我看第2页,看到我分配$id和$company的两个变量的get数组,因为"&"我需要更改密码。这是我的第2页的代码,我得到一个警告,当页面加载没有变量,所以我给他们空值在第2页。
<pre>
<?php
//print_r ($_GET);
//print_r ($GLOBALS);
$id = "";
$company = "";
if (isset($_GET['id'])) {$id = $_GET['id'];}
if (isset($_GET['company'])) {$company = $_GET['company']; }
echo $id." ".$company;
?>
</pre>
但是页面返回0 Super
"&"之后的所有内容都缺失了。
我的问题是如果{$company}已经在echo语句中,我如何添加urlencode函数。我已经做了这段代码,使其工作:
$companyencoded = urlencode($company);
并补充
echo "<a href='"page2.php?id={$id}&company={$company}
echo "<a href='"page2.php?id={$id}&company={$companyencoded}
但这涉及到一个新的变量,当我看$_GET的数组在第2页变量$companyencoded不存在吗?
你能解释一下我做错了什么吗?
Many Thanks Asa
你已经在第一个位置编码,需要在第二个位置解码
<?php $link_name = "Page 2"; ?>
<?php $company = "Super & Sprunklers";
$url= urlencode("Super & Sprunklers");?>
<?php $id = 0;
while ($id <=10) {
if ($id < 10) {
echo "<a href='"page2.php?id={$id}&company={$url}'">{$link_name}?id={$id}&company={$company}</a>";
echo "<br />";
} else {
echo "<a href='"page2.php'">{$link_name}</a>";
}
$id++;
}
?>
中的url我已经编码了字符。并且可以解码page2.php
<pre>
<?php
$id = "";
$company = "";
if (isset($_GET['id'])) {$id = $_GET['id'];}
if (isset($_GET['company'])) {$company = $_GET['company']; }
echo $id." ". urldecode($company);
?>
</pre>
cheers peace of cake
这是一个有效的答案
<?php $link_name = "Page 2"; ?>
<?php $company = "Super & Sprunklers";
$company = urlencode($company); ?>
<?php $id = 0;
while ($id <=10) {
if ($id < 10) {
echo "<a href='"page2.php?id={$id}&company={$company}'">{$link_name}?id={$id}&company=".urldecode($company)."</a>";
echo "<br />";
} else {
echo "<a href='"page2.php'">{$link_name}</a>";
}
$id++;
}
?>
为了让页2正确显示正确的数组。非常感谢大家。这行代码让我很困惑,$company = urlencode($company)。我想这就像在电子表格中做一个循环引用。
其实很简单。
在传递公司名称作为查询字符串时使用urlencode()。在page2上,确保urldecode()该值
这是你的网址:
echo "<a href='"page2.php?id={$id}&company=".urlencode($company)."'">{$link_name}?id={$id}&company={$company}</a>";
$company = urldecode($_GET['company']);