将索引号的值传递给不同的php文件

将索引号的值传递给不同的php文件,php,Php,我是一个php初学者,有一个问题要问你 我有一个文本文件,上面列出了姓名和姓氏,如下所示: john,smith sam,lewis david,davidson mike,anderson 1. david,davidson 2. john,smith 3. mike,anderson 4. sam,lewis 在我的sort.php文件中,它按照名字和索引号的升序对名称列表进行排序,如下所示: john,smith sam,lewis david,davidson mike,anders

我是一个php初学者,有一个问题要问你

我有一个文本文件,上面列出了姓名和姓氏,如下所示:

john,smith
sam,lewis
david,davidson
mike,anderson
1. david,davidson
2. john,smith
3. mike,anderson
4. sam,lewis
在我的sort.php文件中,它按照名字和索引号的升序对名称列表进行排序,如下所示:

john,smith
sam,lewis
david,davidson
mike,anderson
1. david,davidson
2. john,smith
3. mike,anderson
4. sam,lewis
此外,在该sort.php文件中,有一个input type=text表单,您可以在其中键入索引号,还有一个按钮用于删除在该文本字段中输入的索引号:

<form action="deletename.php" method="post">
  <table>
    <tr valign="top"> 
      <td>Delete: <input type="text" size="2" name="indexnumber" />
      </td>
      <td> 
        <div align="left"> 
          <input type="submit" name="delete" value="Delete" />
        </div>
      </td>
    </tr>
  </table>
</form>
现在的问题是…我可以用这种形式发送我在文本字段中输入的索引号的值吗?换句话说,如果我输入3,我可以对该表单做什么来将值mike,anderson发送到deletename.php


提前感谢。

使用表单时,您可以使用GET或POST指定如何将变量发送到脚本,这在标记中定义。您已选择使用POST方法。POST方法向用户隐藏信息,其中as GET方法使用网站的URL传递变量,例如/deleteme.php?indexnumber=2

这些值将在deletename.php上变得可读,因为通过访问$\u POST数组将表单提交到这里。如果您在表单中输入2,您可以这样读取值

echo $_POST['indexnumber'];
/* OUTPUT */
2

使用此id,将由您确定此id与哪个索引号匹配。如果您使用的是数据库,那么这将非常高效,并且更易于维护。我想在继续之前,您需要阅读一些关于PHP的教程。

您不需要为此更改表单,您已经有了索引号字段,但在deletefile.PHP中,您必须读取表单发送的内容,并从文本文件中删除该索引号

此外,由于您在sort.php中对名称进行排序,因此需要在deletefile.php中重复完全相同的排序,以便知道哪个索引号对应于哪个条目。然后删除相应的条目

因此,在deletefile.php中,要处理表单提交,可以执行以下操作

if(!empty($_POST['indexnumber'] && is_numeric($_POST['indexnumber'])) {
     //now do the sorting, e.g. include sort.php which I assume returns a sorted array
     //then delete $_POST['indexnumber'] from the array and update the textfile
}

如果您对此无能为力,请发布您当前的sort.php代码,以便我能看到它的功能。

原始帖子是sort.php,但是如果有另一个php文件执行reversort rsort.php,它按降序排序并将变量发送到deletename.php,该怎么办?在deletename.php中,我有:$indexnumber=$\u POST[indexnumber];在deletename.php中,如何知道变量是否来自sort.php或rsort.php,以便执行sort或rsort并删除相应的索引数组?谢谢。这是你的结构的普遍问题,它的伸缩性不好。我看到的唯一解决方法是在表单中添加一个隐藏字段,以反映当前排序文件。因此,在这两个排序文件中,都设置了一个变量,例如$sortfile='sort'或$sortfile='rsort'。然后将其添加到表单中,如下所示:PS.始终,始终清理用户输入的或通过post、get和会话发送的任何内容,特别是如果您按照上述方式进行操作。最坏的情况是:有人会查看您的源代码,看到隐藏的字段,然后尝试用类似的内容填充它。当它被发送到您的删除文件,而您没有检查/清理该字段时,您最终会得到include'htp://bad site.com/exploit.php';。现在,如果你的PHP引擎打开了URL包装器,那么天空将落在你的站点上……因此最好是将$sortfile设置为1或2,然后在deletefile中检查该字段,如果是1,则包括sort.PHP,否则包括rsort.PHP。抱歉,回复时间长且多,但此处的字符有限制。我希望这会有帮助。不,你的详细信息真的很有帮助。我真的很感激。虽然我还没有包括部分,但我会调查,并根据您提供的信息尽我所能。非常感谢。是的,我的deletename.php中有>。另外,如何在此文件中使用头函数?我不知道它是做什么的,也不知道为什么我需要使用它。我看到了一些如何使用它的例子,但我不明白这个函数如何影响我的代码,在任何方面都是有用的。谢谢。网站上的任何请求都包含标题。这会告诉应用程序(通常是web浏览器)预期的数据类型,例如网页。这是一个相当简单的观点,但可能超出了你需要知道在这个阶段。也就是说,头可以用于重定向。headerLocation:/sort.php;在deletename.php的末尾,会将您发送回排序页面。但是deletename.php必须没有输出。不管怎样,教程和谷歌现在是你最好的朋友。是的,我一直在阅读教程和谷歌。甚至检查php.net和wiki…以及其他一些网站。有些网站有完整的标题列表,但当我尝试了几个例子时,我得到警告:错误。但是,是的,我会进一步调查,看看我是否还会抓挠 更多的地方甚至不痒…哈哈,再次感谢。