如何使用PHP调用本地网页
我肯定以前有人问过这个问题,但我似乎找不到答案。我正在进行PHP开发,创建一个与mySQL数据库连接的基本登录名。一旦验证名称/密码正确,我想显示欢迎屏幕。我的问题是,在开发过程中,我不能使用如下本地目录:如何使用PHP调用本地网页,php,mysql,local,Php,Mysql,Local,我肯定以前有人问过这个问题,但我似乎找不到答案。我正在进行PHP开发,创建一个与mySQL数据库连接的基本登录名。一旦验证名称/密码正确,我想显示欢迎屏幕。我的问题是,在开发过程中,我不能使用如下本地目录: 标题(“位置:script/login_success.php”) 据我所知,header()正在寻找一个http://URL。有没有办法在本地进行测试 谢谢您可以将相对url传递到标题没有问题 header("Location: /route/here.php"); 这是完全合法的。尽
标题(“位置:script/login_success.php”)代码>
据我所知,header()正在寻找一个http://URL
。有没有办法在本地进行测试
谢谢您可以将相对url传递到
标题
没有问题
header("Location: /route/here.php");
这是完全合法的。尽管RFC规定必须提供包含模式的绝对URL。一些web客户端接受相对URL。指出了RFC的问题
14.30地点
Location response header字段用于重定向收件人
到请求URI以外的位置以完成请求
或新资源的识别。对于201个(创建的)响应
位置是由请求创建的新资源的位置。
对于3xx响应,位置应指示服务器的首选位置
用于自动重定向到资源的URI。字段值
由单个绝对URI组成
Header
必须是页面中的第一个函数调用(您可以访问其他函数,但不能输出函数,甚至不能输入空格)。。最重要的是(echo和html)。。。它应该适用于任何地方
当您echo
时,响应部分写入,标题为200 ok
。。。所以只需先写标题
,然后再写退出()代码>
标题('Location:url')
。。。我不认为url必须是相对的。。。在php.net上阅读header()
可以使用任何URL,甚至是相关的URL。如果您正在本地测试一些东西,比如header(“location:script/login\u success.php”)
请记住,在输出任何内容之前必须调用header(),否则它将不起任何作用。通过这样做,您可以创建一个url,以便在头重定向中使用
$url = isset($_SERVER["HTTPS"])?"https://":"http://".$_SERVER["HTTP_HOST"]."/script/login_success.php");
header("Location: $url");
这应该在本地主机或其他地方正确解析
另一个选项是设置一个常量,表示每个环境的基本url
define("BASE_URL", "http://localhost/");
并使用它来构建url
header ("Location: ".BASE_URL."script/login_success.php");
您是否尝试过标题(“位置:http://localhost/script/login_success.php");代码>?不,这是不合法的,它应该使用完整的URI,而不是相对的URI。错了,是这样的。从手册“HTTP/1.1需要一个绝对URI作为参数到»位置:包括方案、主机名和绝对路径,但一些客户端接受相对URI。您通常可以使用$_服务器['HTTP_主机]]、$_服务器['PHP_SELF']和dirname()从相对URI自己创建一个绝对URI:“您引用了手册中的以下内容:“字段值由一个绝对URI组成。”但始终坚持使用相对URI-奥迪喜欢让人们知道所有选项:)。就我个人而言,我一直使用相对URL,但没有遇到问题。但我感谢您指出RFC。让我为您补充一点:)不,在header()之前可能有许多其他函数只是没有输出是…不写标题…比如echo
define("BASE_URL", "http://localhost/");
header ("Location: ".BASE_URL."script/login_success.php");