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