重定向回php文件

时间:2010-04-13 03:21:54

标签: php

以下代码是我的php文件,它将列出我文本文件中的人员。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>viewlist php</title>
</head>
<body>
<h1>List</h1>
<?php
$file = file("peoplelist.txt");
for($i=0; $i<count($file); $i++)
{
  $person = explode(",", $file[$i]);
  echo "<hr />";
  echo "<table cellspacing=10><tr><td>", $i+1,".", "</td>";
  echo "<td>", $person[0], "<br />";
  echo $person[1], "</td></tr></table>";
}
?>
<hr />
<p>
  <a href="sortatoz.php" target="_self">Sort A-Z</a><br />
  <a href="sortztoa.php" target="_self">Sort Z-A</a><br />
</p>
</body>
</html>

我想要做的是,当我点击排序A-Z链接时,名为sortatoz.php的文件将对我的文本文件中的列表进行排序,并以排序顺序重定向回viewlist.php。 下面是我的sortatoz.php:

<?php
header("Location: http://myserver/workspace/viewlist.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>sort a to z</title>
</head>
<h1>List</h1>
<body>
<?php
$file = file("peoplelist.txt");
sort($file);
for($i=0; $i<count($file); $i++)
{
  $person = explode(",", $file[$i]);
  echo "<hr />";
  echo "<table cellspacing=10><tr><td>", $i+1,".", "</td>";
  echo "<td>", $person[0], "<br />";
  echo $person[1], "</td></tr></table>";
}
?>
<hr />
<p>
  <a href="sortvisitorsascending.php" target="_self">Sort Visitors A-Z</a><br />
  <a href="sortvisitorsdescending.php" target="_self">Sort Visitors Z-A</a><br />
</p>
</body>
</html>

现在,当我点击排序A-Z链接时,它会重定向回viewlist.php ...所以我假设header()函数正在执行它的工作。

但问题是......它没有排序。

我对此很新,所以请耐心等待,请给我一些指导。 我可以对我的代码做什么来重新定向带有排序列表的viewlist.php?

提前感谢。

2 个答案:

答案 0 :(得分:1)

header("Location: http://myserver/workspace/viewlist.php");

发送一个HTTP标头,导致浏览器重定向。下面的代码执行正常,但由于浏览器重定向到另一个页面,用户将看不到结果。在您重定向到的网站上,与sortatoz.php页面无关,这是一个不同的页面。

此外,sortatoz.php没有做任何“持久价值”的事情。它只读取文件的内容,在内存中对这些内容进行排序,然后输出它们。正如您所想,它不会将已排序的条目写回文件。

由于两个页面上的代码几乎相同,因此您只需在URL中发送变量并对其进行操作。

if (isset($_GET['sort']) && $_GET['sort'] == 'asc') {
    sort($file);
}

并链接到viewlist.php?sort=asc等网站。

答案 1 :(得分:0)

基本上,现在,您正在进行排序,但因为您重定向到viewlist.php,所以下面的代码都没有执行。无论如何,你为什么这么想?你可以在没有重定向的情况下继续使用sortatoz.php,它可以完美地工作。