我有一些工作,我遇到了一个问题,我只能解决这个问题
header("Location:messages.php?ID_Conversation=$row[ID]");
这是“错误的”吗?
答案 0 :(得分:1)
这完全没错。您正在重定向到资源并将信息作为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查询的数据作为数组传递,发现域和/或协议等,并且不应该按原样使用它,但这个想法是合理的