使用 joomla 用户数据自动填充独立表单

Posted

技术标签:

【中文标题】使用 joomla 用户数据自动填充独立表单【英文标题】:autofill independant form with joomla user data 【发布时间】:2015-09-30 14:06:30 【问题描述】:

我正在使用 Joomla 和一个独立于 Joomla 的表单,该表单位于网站上的一个单独文件夹中。

如果用户登录到 Joomla,我希望此表单的名称和电子邮件填充用户的数据。

我正在尝试类似以下的方法,但它不起作用:

 <?php jimport('joomla.user.helper');
       $user = JFactory::getUser();
       $name = $user->name;
       $email = $user->email;
       ?>

然后这个字段的值:

<?php return $email ?>

任何帮助将不胜感激!

【问题讨论】:

如果我理解你,你正试图从独立脚本中获取用户数据。此代码在某些模块或组件中可以正常工作,但作为独立代码,您无权访问此数据。你应该包括framework.php。谷歌了解更多信息。 在 Joomla 中使用普通的 Joomla 表单会容易得多,例如通过使用表单扩展之一。你不能在没有应用程序的情况下只调用 Joomla 类。您可以尝试使用会话 cookie 共享会话。 【参考方案1】:

复制位于您的Joomla网站根目录下的“index.php”文件的内容,但删除最后一行:

$app->execute();

现在将上面的内容粘贴到显示表单的 php 文件中。

现在您的下一步是了解哪个用户登录了 Joomla 网站,但这并不简单,因为您不在 Joomla 环境中。您可以做的是通过链接将 Joomla 会话 ID 传递给另一个网站,然后将(Joomla 网站的)会话 ID 存储在另一个网站的会话变量中。然后,您可以根据存储的会话 ID 检索 Joomla 网站的用户 ID。

不是很容易,但它会起作用。

【讨论】:

好吧,我会通过使用会话 cookie 并查询会话表来共享会话。

以上是关于使用 joomla 用户数据自动填充独立表单的主要内容,如果未能解决你的问题,请参考以下文章

用户记住密码,取消浏览器表单记忆自动填充

通过用户表单替换自动填充的文本

通过用户表单替换自动填充的文本

如何禁止表单用户名,密码自动填充

jquery 防止自动填充表单

用户更改类别时自动填充表单时使用 JSON