php curl - 将表单数据发送到外部网站

时间:2010-07-09 10:56:33

标签: php curl

我在我的域名上设置了登录表单(例如:www.example.com/login)。

当用户输入他们的登录信息时,我需要通过外部网站上的登录表单传递这些详细信息,并将用户定向到他们登录的应用程序。

所以要将用户步骤添加到此: 1.用户在www.example.com/login上输入登录信息 2.用户可以访问www.external.com/application并访问应用程序,无需在www.external.com/login上重新输入登录详细信息

问题是,我不知道该怎么做。我找到了一些关于cURL的参考资料,我可以从中收集这些资料是最好的方法。

任何帮助都将不胜感激..我是一个PHP新手!另外......外部网站上的应用程序是ASP.NET(我不确定这是否有任何因素可以让它工作)。

感谢您的帮助,Mark。

2 个答案:

答案 0 :(得分:0)

根据您的应用程序的工作方式,可以使用example.com/login上的登录表单指向external.com/application

所以你的表单标签看起来像这样:

<form action="external.com/application" method="post">

现在您的external.com/application必须设置为接受登录表单中的数据。提交表单后,浏览器应将自己定位到external.com/application。

答案 1 :(得分:0)

这是一种可行的方法:

  • 在www.example.com/login上,执行自行提交的经典登录表单
  • 在www.example.com/login上,当检测到$ _POST时:

    • 检查凭据是否正常
    • 如果是,则在您的数据库服务器的一个表中存储一个专用于该用户的哈希值(通过哈希他的id / user / etc ...无论你想要什么)
    • 重定向到www.external.com/login?hash=the_generated_hash
  • 在www.example.com/verifyHash.php上:

    • 创建一个简单的php文件,在$ _GET中使用哈希值,如果数据库中存在此哈希值,则回显“true”
  • 访问www.external.com/login

    • 检查$ _GET
    • 中是否传递了哈希
    • 如果是,请执行简单的$result = file_get_contents("www.example.com/verifyHash.php?hash=$_GET["hash"]");
    • 如果结果为true,则可以假定用户具有有效凭据。

当然,您可以通过在哈希中传递用户ID来优化整个事情,在您询问远程验证哈希等时实现一些安全性......