0

我在一个有论坛区域的网站上工作,我可能会使用 SMF 论坛软件进行论坛。用户可以在网站上注册和登录。我想实现当他们在网站上注册时,他们也会在论坛上注册(他们不必注册两次)。而且当他们登录网站时,他们也会登录论坛,这样他们就不必登录两次。

我认为 curl 应该可以做到这一点,但我需要查看一些示例代码才能弄清楚。主要问题是在注册页面上有一个验证码,所以我不知道如何克服它。

4

2 回答 2

1

基本步骤很简单。

一是注册。当您在主站点上注册时,只需在论坛的数据库中添加一个数据库条目,其中包含正确的用户信息:

INSERT INTO TABLE (`Field1`, `Field2`) VALUES(`Value1`, `Value2`)

下一部分有点棘手。

如果您对编辑论坛的源代码感到满意,您只需找到他们检查登录 cookie 的位置,并添加对您的 cookie 的检查。(假设它们在同一个域中。)

if(checkSiteCookie() == true) { // ... do stuff ... 

变成

if(checkSiteCookie() == true || checkCompanyCookie() == true)) { // .. do stuff..

如果站点和论坛在同一个域中,您可以使用论坛的 cookie 功能在您的脚本中设置 cookie。

setMyCookie();
setForumCookie();

如果不能,您总是可以尝试使用 AJAX 将他们的登录表单先提交到您的登录页面,然后再提交到论坛。两者都完成后,将它们重定向到正确的页面。

// Get your Site Cookies and Log In
$.post("mylogin.php", form, function(data){

    // Get the Forum's Cookies
    $.post("forumlogin.php", form, function(data){

         // Reload the Page
         window.location.reload(true);
    }
});
于 2010-01-06T16:06:43.520 回答
1

SMF 论坛上有一篇文章解释了如何使用 cURL 发布主题。 http://www.simplemachines.org/community/index.php?topic=53433.0

您可以使用相同的方法进行注册,只是使用不同的表单变量

附录:

主要问题是在注册页面上有一个验证码,所以我不知道如何克服它。

我认为关键是你不应该绕过验证码。

于 2010-01-06T16:10:23.300 回答