如何获得用户名和; php中服务器端HTTPS请求的密码

时间:2012-06-26 06:18:39

标签: php https

我正在为登录脚本编写Web服务。我必须保留在HTTPS服务器上。一般来说,我们得到的用户名和&服务器端的密码为

if(isset($_REQUEST['login'])){
    $user=mysql_escape_string($_REQUEST['username']);
    $password=hash('sha512',$_REQUEST['password']);
} 

但这对于HTTP连接来说很好。

我从未使用HTTPS连接进行网络服务,所以我想知道是否还有其他方法可以传递用户名&通过HTTPS连接的密码?那么如何从该请求中检索数据。

我的客户希望在标题信息中发送这些数据,例如

Method: POST
Content-Type: application/x-www-form-urlencoded
Content: username=mynames&password=abcabc

从这里我需要检索data.i不知道这个。

3 个答案:

答案 0 :(得分:2)

HTTPS对PHP代码实际上是透明的。它完全由浏览器和服务器处理。您可以访问与HTTP请求完全相同的$ _REQUEST变量。

修改(稍加修改的问题):

如果您的客户希望您有一个登录表单来提交用户名和密码(正如您对问题的更改所示),您只需使表单输入与HTTP连接中的表单输入相同即可。分别将它们命名为“username”和“password”,然后从您发布表单的页面上的$ _POST中提取数据。设置服务器以使用HTTPS进行响应将使其以透明方式处理其他所有内容,如前所述。

答案 1 :(得分:1)

您可以使用HTTP Auth Basic对请求进行身份验证。

答案 2 :(得分:1)

不要像Piotr提到的那样使用HTTP身份验证。

正如其他人发布的那样:只需将vhost设置为在https上运行,您就可以了。你可以添加这样的东西来验证连接是否安全:

<?php
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && isset($_POST) && isset($_POST['login'])) {
    // Your username and password verification here.
}

请使用$ _POST。 $ _REQUEST是一种讨厌的说法,我不会真正知道我在这里做什么......&#34;。