Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过编程创建的用户可以';t登录_Php_Concrete5 - Fatal编程技术网

Php 通过编程创建的用户可以';t登录

Php 通过编程创建的用户可以';t登录,php,concrete5,Php,Concrete5,我有一个C5站点,需要在其中以编程方式创建用户帐户。我所做的是使用UserInfo类的register方法,这似乎是可行的。问题是这样创建的用户都无法登录,C5登录页面只返回“无效的电子邮件地址或密码” 我检查过了,它们显示在用户表中。我已尝试为可以登录的用户复制密码哈希,但以编程方式创建的用户仍然无法登录。我还询问了我认识的另一位开发人员,在查看代码后,他说这实际上与他过去的做法完全相同。在这一点上,我有点困惑于如何解决这个问题 如果有区别的话,网站将设置为使用电子邮件地址而不是用户名进行登录

我有一个C5站点,需要在其中以编程方式创建用户帐户。我所做的是使用UserInfo类的register方法,这似乎是可行的。问题是这样创建的用户都无法登录,C5登录页面只返回“无效的电子邮件地址或密码”

我检查过了,它们显示在用户表中。我已尝试为可以登录的用户复制密码哈希,但以编程方式创建的用户仍然无法登录。我还询问了我认识的另一位开发人员,在查看代码后,他说这实际上与他过去的做法完全相同。在这一点上,我有点困惑于如何解决这个问题

如果有区别的话,网站将设置为使用电子邮件地址而不是用户名进行登录

//name = guy incognito      \ both passed in
//email = 1234@5678.com      \ via POST

function getRandomString($length) {
    $seed = chr(mt_rand(97 ,122)).substr(md5(time( )), 1);
    $rand = "";

    for($y = 0; $y <= $length; $y++) {
        $rand .= substr($seed, rand(0, strlen($seed)), 1);
    }

    return $rand;
}

$pswd = getRandomString(8);
$userData['uName'] = md5($name . rand(1, 1000) . date('Y-m-d H:i:s'));
$userData['uEmail'] = $email;
$userData['uPassword'] = $pswd;
$userData['uPasswordConfirm'] = $pswd;
$ui = UserInfo::register($userData);
//name=guy incognito\都传入了
//电子邮件=1234@5678.com\通过邮政
函数getRandomString($length){
$seed=chr(mt_rand(97122)).substr(md5(time()),1);
$rand=“”;

对于($y=0;$y在查看concrete/core/dashboard/users/add.php之后,我注意到他们以稍微不同的方式注册用户。这里他们没有传递密码确认,而是指定默认语言,最明显的是没有调用UserInfo::Register,而是调用UserInfo::add

在更新我的代码以反映它是如何完成的之后,事情就开始了。作为记录:

$uName = md5($_POST['repName'] . rand(1, 1000) . date('Y-m-d H:i:s'));              
$data = array('uName' => $uName, 'uPassword' => $authCode, 'uEmail' => $_POST['repEmail'], 'uDefaultLanguage' => 'En');
$ui = UserInfo::add($data);