程序化joomla用户创建与登录显示冲突

时间:2018-01-02 14:19:02

标签: php joomla joomla3.0

好的,我们正在使用joomla的用户类来创建新的员工,在我们的员工页面中。它运行良好并成功创建新用户帐户。但是我们有一个问题,因为屏幕顶部的用户帐户按钮也依赖于对joomla用户对象的调用,一旦我们在创建后创建新用户,显示的名称就是我们刚创建的用户的名称。现在,一旦您刷新或移动到另一个页面,问题就会消失。

如果我们希望避免此实例可能造成的混淆,那么将我们用于创建新用户的方法移出页面并将其转换为正确的单独文件可能是有意义的吗?或者它是不值得的,因为它没有其他影响,但是一个临时名称解析而没有用户方面的任何实际努力?

这是我们使用的代码:

$udata = array(
    "name"=>$_POST['firstName'].' '.$_POST['surName'],
    "username"=>$_POST['username'],
    "password"=>$_POST['password'],
    "password2"=>$_POST['password'],
    "email"=>$_POST['companyEmail'],
    "block"=>0,
    "groups"=>array("2","6")
);

$user = new JUser;
//Write to database
if(!$user->bind($udata)) {
    echo "<script>alert('Could not bind data. Error: ".$user->getError()."</script>";
}
if (!$user->save()) {
    echo "<script>alert('Could not save user. Error: " . $user->getError()."</script>";
} else { 
    echo "<script>alert('New User $user->id Created');</script>";
    // Script Here to enter additional details in usg_usg_staff table

代码位于页面usg-staff.php中。 或者删除user-&gt;名称调用会更明智吗?

1 个答案:

答案 0 :(得分:0)

我终于解决了这个问题。我所要做的就是确保创建新用户后,通过使用JFactory :: getUser()将$ user变量设置回活动用户数据。我真的在想它。它只显示刚刚创建的用户,因为在我们的joomla表中创建用户后,我没有想过将其设置回来。