这种使用方法GET的方式是不是错了?
Is this way of using the method GET wrong?
有些事情我一直在努力,但我 运行 遇到了一个我只能这样做
才能解决的问题
header("Location:messages.php?ID_Conversation=$row[ID]");
这是"wrong"吗?
这一点并没有错。您正在重定向到资源并将信息作为 URL 的一部分传递给该资源,这是完全可以接受的。
但是,错误的部分是 URL 的结构方式。如果您打算定期执行此操作,则需要养成尽可能精确地设置位置的习惯。
至少这就是说你应该设置相对于域根的完整路径:
header("Location:/any_directories/messages.php?ID_Conversation=$row[ID]");
充其量,这意味着还包括域和协议:
header("Location:https://yourdomain.com/any_directories/messages.php?ID_Conversation=$row[ID]");
为了简化这一点,创建一个辅助函数或对象来处理这种重定向。
function redirect($url) {
header("Location:https://yourdomain.com/$url");
}
redirect("any_directories/messages.php?ID_Conversation=$row[ID]");
显然在上面的函数中还有其他的考虑,可能将 GET 查询的数据作为数组传递,发现域 and/or 协议等,不应该像写的那样使用,但是这个想法是正确的。
有些事情我一直在努力,但我 运行 遇到了一个我只能这样做
才能解决的问题header("Location:messages.php?ID_Conversation=$row[ID]");
这是"wrong"吗?
这一点并没有错。您正在重定向到资源并将信息作为 URL 的一部分传递给该资源,这是完全可以接受的。
但是,错误的部分是 URL 的结构方式。如果您打算定期执行此操作,则需要养成尽可能精确地设置位置的习惯。
至少这就是说你应该设置相对于域根的完整路径:
header("Location:/any_directories/messages.php?ID_Conversation=$row[ID]");
充其量,这意味着还包括域和协议:
header("Location:https://yourdomain.com/any_directories/messages.php?ID_Conversation=$row[ID]");
为了简化这一点,创建一个辅助函数或对象来处理这种重定向。
function redirect($url) {
header("Location:https://yourdomain.com/$url");
}
redirect("any_directories/messages.php?ID_Conversation=$row[ID]");
显然在上面的函数中还有其他的考虑,可能将 GET 查询的数据作为数组传递,发现域 and/or 协议等,不应该像写的那样使用,但是这个想法是正确的。