Forms Drupal 7 Webform-允许匿名用户编辑以前提交的内容

Forms Drupal 7 Webform-允许匿名用户编辑以前提交的内容,forms,drupal,drupal-7,Forms,Drupal,Drupal 7,我很确定这是不可能的,但我想知道是否有人能想出一种方法允许匿名用户编辑网络表单提交。我们允许用户注册一个工作搜索代理,在那里他们匿名提供他们的电子邮件地址,然后提交他们正在寻找的工作类型的一些首选项,然后我们向他们发送电子邮件,当他们有工作时,我们会给他们发送可用的工作。我们不希望这些用户必须创建一个实际的Drupal注册,并且必须记住另一个密码。我们希望这对他们来说非常容易。所以他们可以匿名提交表单,但问题是如果他们想在以后回来编辑他们的偏好,他们不能,因为Drupal不知道他们是谁。我想在他

我很确定这是不可能的,但我想知道是否有人能想出一种方法允许匿名用户编辑网络表单提交。我们允许用户注册一个工作搜索代理,在那里他们匿名提供他们的电子邮件地址,然后提交他们正在寻找的工作类型的一些首选项,然后我们向他们发送电子邮件,当他们有工作时,我们会给他们发送可用的工作。我们不希望这些用户必须创建一个实际的Drupal注册,并且必须记住另一个密码。我们希望这对他们来说非常容易。所以他们可以匿名提交表单,但问题是如果他们想在以后回来编辑他们的偏好,他们不能,因为Drupal不知道他们是谁。我想在他们提交网络表单时,可能会使用他们的电子邮件地址和基本密码在后台创建正式用户注册,当他们返回网站时,他们会以我在自定义模块中创建的单独表单提供他们的电子邮件地址,然后我可以根据电子邮件地址进行用户查找并自动登录(如果可能的话),然后将其发送到网络表单?你认为这样做行得通吗?还是他们的解决方案更好?

我认为你的解决方案行得通。我过去也做过类似的事情

用户只是通过访问特定url(如/login/USER\u 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);
}