【问题标题】:Drupal 7 Webform - Allow anonymous user to edit previous submissionDrupal 7 Webform - 允许匿名用户编辑以前的提交
【发布时间】:2014-01-13 18:06:24
【问题描述】:
我很确定这是不可能的,但我想知道是否有人可以想出一种方法来允许匿名用户编辑网络表单提交。我们允许用户注册一个求职代理,他们匿名提供他们的电子邮件地址,然后提交一些关于他们正在寻找的工作类型的偏好,然后我们通过电子邮件向他们发送可用的工作。我们不希望这些用户必须创建一个实际的 Drupal 注册并且必须记住另一个密码。我们希望这对他们来说超级容易。所以他们可以匿名提交表单,但问题是如果他们想在以后回来编辑他们的偏好,他们不能,因为 Drupal 不会知道他们是谁。我正在考虑可能在他们提交网络表单时使用他们的电子邮件地址和基本密码在幕后创建官方用户注册,当他们返回网站时,他们以我在自定义模块中创建的单独表单提供他们的电子邮件地址,然后我可以根据电子邮件地址进行用户查找并自动登录(如果可能的话),然后将它们发送到网络表单?你认为这会奏效吗,或者他们是解决这个困境的更好方法?
【问题讨论】:
标签:
forms
drupal
drupal-7
【解决方案1】:
我认为您的解决方案会奏效。我过去做过类似的事情。
用户刚刚通过访问特定网址(例如 /login/USER_NAME)登录。然后,您可以使用此链接发送电子邮件,他们会在访问网站后立即自动登录。
要创建用户帐户,请使用以下内容:
$new_user = array(
'name' => $name, // this could also just be the email address if you are not collecting a name
'pass' => 'password', // hardcoded password - same for every user
'mail' => $email,
'status' => 1,
'init' => $email,
);
user_save('', $new_user);
然后,您可以使用以下方式登录:
if ($uid = user_authenticate($username, 'password')) {
global $user;
$user = user_load($uid);
$login_array = array ('name' => $username);
user_login_finalize($login_array);
}