Php 如何从其他表单登录SMF论坛而不使用SMF登录表单

Php 如何从其他表单登录SMF论坛而不使用SMF登录表单,php,authentication,smf-forum,Php,Authentication,Smf Forum,我在正规网站上有一个登录表单。如果用户使用此表单登录我的网站,他们应该同时登录论坛。怎么做?有些人说使用SSI.php,但该文件为我提供了另一个表单以向SMF进行身份验证。好的,因此,如果您只想执行与登录表单相同的POST请求,但来自另一个php代码,您可能会对该函数感兴趣: 这段代码大部分来自 数据参数是一个数组,如下所示 $post_data = array( 'login' => 'yourLogin', 'pass' => 'yourPass

我在正规网站上有一个登录表单。如果用户使用此表单登录我的网站,他们应该同时登录论坛。怎么做?有些人说使用SSI.php,但该文件为我提供了另一个表单以向SMF进行身份验证。

好的,因此,如果您只想执行与登录表单相同的POST请求,但来自另一个php代码,您可能会对该函数感兴趣:


这段代码大部分来自

数据参数是一个数组,如下所示

$post_data = array(
        'login' => 'yourLogin',
        'pass' => 'yourPass',
        ...
);
然后用url调用该方法(原始表单的操作?):


希望这是您所期望的,如果不是,我还没有理解问题://

您可以使用CURL-Php来实现这一点

这里有一个例子

$username="username"; 
$password="password"; 
$url="http://www.simplemachines.org/"; 
$cookie="cookie.txt"; 

$postdata = "user=".$username."&passwrd=".$password."&cookielength=-1"; 

$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt ($ch, CURLOPT_REFERER, $url); 

curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt ($ch, CURLOPT_POST, 1); 
$result = curl_exec ($ch); 

echo $result;  
curl_close($ch);

从另一个论坛的代码复制完全相同的帖子请求?是的。我为这篇文章准备了数据。只有3个参数。谢谢您的回复。你很清楚我的意思。我尝试了这个代码,但它给了我一个错误。错误:连接被拒绝(111)。我不知道这是关于smf的错误。。。我正在研究,但也许你有什么建议。对不起,我来晚了。我从来没有尝试过这样的事情,所以不知道这是什么错误。但我认为错误可能是服务器配置拒绝了您的请求。对不起,我实在帮不上什么忙了:再仔细看一下你的解释。我试过这个密码。但是什么也没发生。没有错误或什么的。
$result = post_request('http://www.smf-forum1.com/login.php', $post_data);
$username="username"; 
$password="password"; 
$url="http://www.simplemachines.org/"; 
$cookie="cookie.txt"; 

$postdata = "user=".$username."&passwrd=".$password."&cookielength=-1"; 

$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt ($ch, CURLOPT_REFERER, $url); 

curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt ($ch, CURLOPT_POST, 1); 
$result = curl_exec ($ch); 

echo $result;  
curl_close($ch);