Php 在我的自定义会员网站中集成Simple Machines论坛-登录不起作用?

Php 在我的自定义会员网站中集成Simple Machines论坛-登录不起作用?,php,simple-machines-forum,Php,Simple Machines Forum,大家好,我正在尝试将SimpleMachines论坛整合到我定制的会员网站中 我使用的是SMFAPI,可以在这里找到 问题是它在我的本地主机测试服务器上工作——但是在我的在线服务器上(系统所在的服务器上)——它不工作 我已经设置好了,当用户登录到我自己的定制CMS会员网站时,他/她会自动登录到论坛上他/她的相应帐户。然而,它在我的本地主机上工作,但在网上它根本不工作。。我登录到我的网站,然后浏览到论坛,发现我还没有登录到那里:(-我认为这不是创建cookie或注册会话。我应该在哪里查看这里。请提

大家好,我正在尝试将SimpleMachines论坛整合到我定制的会员网站中

我使用的是SMFAPI,可以在这里找到

问题是它在我的本地主机测试服务器上工作——但是在我的在线服务器上(系统所在的服务器上)——它不工作

我已经设置好了,当用户登录到我自己的定制CMS会员网站时,他/她会自动登录到论坛上他/她的相应帐户。然而,它在我的本地主机上工作,但在网上它根本不工作。。我登录到我的网站,然后浏览到论坛,发现我还没有登录到那里:(-我认为这不是创建cookie或注册会话。我应该在哪里查看这里。请提供帮助

编辑================


我想我已经找到了问题所在-由于某种原因,论坛正在维护一个与我网站上启动的会话不同的会话。这很奇怪,因为论坛仅位于同一网站的子文件夹中。我应该在这里检查什么?

该网站在本地工作,但不在线,这意味着我们之间很可能存在一些设置差异在这两种情况下,服务器上可能会禁用某些内容:

  • 您是否使用了
    短标记
    ?是否在联机服务器上也启用了这些标记
  • 会话cookie是否已成功写入
  • 您是否已将
    session\u start()
    放在脚本顶部
  • 尝试使用获取/设置当前会话保存路径
  • SMF API的服务器要求是什么
  • 通过
    phpinfo()
  • 如果上述问题都没有解决,您可能需要询问服务器支持团队

如果您正在使用SMF并希望创建SMF登录,但在SMF论坛之外(这是我的理解),那么您将希望使用与SMF绑定的
SSI.php
文件。您应该在其上执行
require
require\u一次,这是页面最顶部的第一件事

另外,打开SSI.php,我相信会有一个
SSI_login()
SSI_logout()
函数,使用这些函数为人们显示登录区域。这应该包括整个文本框,并为其显示

或者,您可以在上请求支持和/或查看这些

此外,如果是会话问题,请尝试此

<?php
require_once('/home/filepath/public_html/forum_directory/SSI.php');
$_SESSION['login_url'] = 'http://www.domain.com' . $_SERVER['PHP_SELF'];
$_SESSION['logout_url'] = 'http://www.domain.com' . $_SERVER['PHP_SELF'];
?>


将www.domain.com更改为您站点的路径和SSI.php的路径。

如何检查会话cookie-我认为这是一个配置问题,因为系统在本地主机上运行正常,没有任何故障,但是在线登录时不会自动登录。我将使用phpINfo检查服务器设置-但我应该怎么做正在寻找。数据库正在正确写入。我注意到他不会自动让用户登录。我可以通过自己的在线登录屏幕登录simple machines论坛…@Ali:你在SMF API社区或网站上找到类似的线程了吗?SMF只使用一个会话,你不能启动会话,我大约90%确定你你必须通过
SSI.php
使用SMF变量。你应该向SMF询问这个特定的问题,但我还是试图回答。我检查了在线主机和我的本地主机的phpinfo-在在线主机上会话保存路径返回一个无值-这可能会导致这里的问题吗?对于会话,请尝试设置
$_会话[login\u url']
$\u会话['logout\u url']
正如我在上面编辑的回答中提到的。谢谢,但问题是我的系统上已经有了一个登录表单。我尝试做的是另一种方式。我已经设置了它,这样当有人在我自己的网站上注册时,会在smf上创建一个对应的帐户并与该用户关联。该用户从我的网站登录到他的ac计数和自动Im试图让他进入smf论坛以及与他相关的smf帐户进行身份验证。但是,我得到了在我的本地主机上工作的部分,但不是在线…据我所知,SSI文件有助于显示smf登录。我正在使用smf api,这在原始帖子的链接中提到。它在我的本地主机,如我所述,但它没有登录到我的在线系统:(SMF使用数据库存储会话ID,这是数据库中会话表的一部分。不完全确定它是如何工作的,但我知道SMF只能知道输入的密码是否正确。出于安全原因,它不能以任何方式输出密码。您应该能够按照我的建议使用会话变量,您还可以使用
全局$user\u info
变量。例如:
$user\u info['id']
将返回用户id,您还可以使用
$user\u info['name']
,如果用户是来宾,$user\u info为空。