Php 这种使用方法会出错吗?

Php 这种使用方法会出错吗?,php,html,sql,get,Php,Html,Sql,Get,有一件事我一直在努力,我遇到了一个问题,我只能这样解决 header("Location:messages.php?ID_Conversation=$row[ID]"); 这是“错误的”吗?这完全不是错误的。您正在重定向到一个资源,并将信息作为URL的一部分传递给该资源,这是完全可以接受的 然而,错误的部分是URL的结构。如果你要有规律地做这件事,你就要养成尽可能精确地设置位置的习惯 至少这意味着您应该设置相对于域根的完整路径: header("Location:/any_directorie

有一件事我一直在努力,我遇到了一个问题,我只能这样解决

header("Location:messages.php?ID_Conversation=$row[ID]");

这是“错误的”吗?

这完全不是错误的。您正在重定向到一个资源,并将信息作为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查询的数据作为数组传递,发现域和/或协议等,不应该按编写的方式使用,但想法是正确的。

为什么会错?缺少完整的URL是“错的”