Php 通过HTTP Post进行Inno设置密码验证

Php 通过HTTP Post进行Inno设置密码验证,php,inno-setup,pascalscript,Php,Inno Setup,Pascalscript,是否有人可以在Inno设置中帮助验证密码,我目前在这个网站上找到了以下Inno设置代码,我想做的是对照服务器上保存的密码检查密码 我有一个包含MySQL代码的PHP页面来检查数据库,如果找到密码,它将发送一个“Correct”响应 如果未找到密码,则返回“Password Denied” 我认为问题在于安装程序没有在WinHttpReq.Send password部分发送密码 我在下面包含了Inno设置代码和PHP代码 如果我在密码中输入真实密码 如果password='Truney Licen

是否有人可以在Inno设置中帮助验证密码,我目前在这个网站上找到了以下Inno设置代码,我想做的是对照服务器上保存的密码检查密码

我有一个包含MySQL代码的PHP页面来检查数据库,如果找到密码,它将发送一个“Correct”响应 如果未找到密码,则返回“Password Denied”

我认为问题在于安装程序没有在WinHttpReq.Send password部分发送密码

我在下面包含了Inno设置代码和PHP代码

如果我在密码中输入真实密码 如果password='Truney License'得到正确响应,安装将继续

function CheckPassword(Password: String): Boolean;
var
  returnvalue: boolean;
  WinHttpReq: Variant;
begin
  result := false;
  MsgBox (password, mbInformation, MB_OK);  //show entered password before send
  WinHttpReq := CreateOleObject('WinHttp.WinHttpRequest.5.1');
  WinHttpReq.Open('POST', 'website.php', false);
  WinHttpReq.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  WinHttpReq.Send (Password);

  if WinHttpReq.ResponseText = 'Correct !' then
    result := true;

  if WinHttpReq.ResponseText = 'Access Denied !' then
    result := false;
end;    
还有PHP代码

$password = $_POST["password"];
$sql = "SELECT * FROM clients WHERE password='$password'";
if ($result=mysqli_query($conn,$sql))
{
    $rowcount=mysqli_num_rows($result);
    if($rowcount ==0)
    {
        die("Password Denied !");
    }
    if($rowcount==1)
    {
        die("Correct !");
    }
我最终想发送两个信息位进行验证,但我想让上述工作首先

我将非常感谢您的帮助

服务器主机名在哪里?如果您没有指定密码应该发送到哪里,这怎么可能工作

WinHttpReq.Open'POST','https://www.example.com/website.php",假,; 您按原样发送密码。当您指定内容类型为application/x-www-form-urlencoded时。此内容类型具有特定格式,必须至少包含参数名称。否则PHP怎么知道字段名为password

WinHttpReq.Send'password='+password; 但要使其正确工作,还必须对密码进行URL编码

更简单的方法可能是按您现在的方式编写密码,并在服务器端读取原始请求数据:

$password=file\u get\u contentsphp://input; 您确实需要保护您的服务器端代码不受攻击

您应该仅出于安全考虑发送密码校验和。例如,使用

副作用是,使用校验和,您不必关心URL编码,因为校验和不会包含任何特殊字符

服务器主机名在哪里?如果您没有指定密码应该发送到哪里,这怎么可能工作

WinHttpReq.Open'POST','https://www.example.com/website.php",假,; 您按原样发送密码。当您指定内容类型为application/x-www-form-urlencoded时。此内容类型具有特定格式,必须至少包含参数名称。否则PHP怎么知道字段名为password

WinHttpReq.Send'password='+password; 但要使其正确工作,还必须对密码进行URL编码

更简单的方法可能是按您现在的方式编写密码,并在服务器端读取原始请求数据:

$password=file\u get\u contentsphp://input; 您确实需要保护您的服务器端代码不受攻击

您应该仅出于安全考虑发送密码校验和。例如,使用

副作用是,使用校验和,您不必关心URL编码,因为校验和不会包含任何特殊字符