在D7中的登录失败后将用户重定向到不同的页面 -- 7 领域 和 users 领域 drupal 相关 的问题

Redirect users to different page after a login failure in d7


2
vote

问题

中文

我想将用户重定向到不同的页面,如果他们输入错误的登录详细信息,因为我正在使用以下代码,但它不起作用。

  function bartik_form_alter(&$form, &$form_state, $form_id) {     if ($form_id == "user-login")     {         $form["#validate"][] = "bartik_validate_login";     } }  function bartik_validate_login($form, &$form_state) {     // on successful login, the uid is set in form_state.     if (empty($form_state["uid"]))     {         $_GET["destination"] = "some url goes here";         drupal_goto("some url goes here");      } }   
英文原文

I want to redirect the users to different page if they enter the wrong login details, for that I am using following code but it is not working.

function bartik_form_alter(&$form, &$form_state, $form_id) {     if ($form_id == "user-login")     {         $form["#validate"][] = "bartik_validate_login";     } }  function bartik_validate_login($form, &$form_state) {     // on successful login, the uid is set in form_state.     if (empty($form_state["uid"]))     {         $_GET["destination"] = "some url goes here";         drupal_goto("some url goes here");      } } 
     

回答列表

2
 
vote
vote
最佳答案
 

请尝试使用正确的form_id进行用户登录。

i: /** * Creates/returns a form to configure the variables. * * @param array $form * @param array $form_state * @return array */ function sitename_custom_form($form, &$form_state) { $form['sitename_textfield'] = array( '#type' => 'textfield', '#title' => t('Custom Textfield'), '#default_value' => variable_get('sitename_textfield', ''), ); // Use system_settings_form() to automate saving configuration variables. return system_settings_form($form); } 1

可以在HTML源隐藏元素

中找到form_id

/** * Creates/returns a form to configure the variables. * * @param array $form * @param array $form_state * @return array */ function sitename_custom_form($form, &$form_state) { $form['sitename_textfield'] = array( '#type' => 'textfield', '#title' => t('Custom Textfield'), '#default_value' => variable_get('sitename_textfield', ''), ); // Use system_settings_form() to automate saving configuration variables. return system_settings_form($form); } 2

 

Please try with the correct form_id for user login.

i.e: if ($form_id == 'user_login') {

The form_id can be found in the HTML source hidden element

<input type="hidden" name="form_id" id="edit-user-login" value="user_login">

 
 
 
 
1
 
vote

在表单验证或表单提交处理程序尝试更改"重定向" 以转到另一个URL,因此请尝试

  /**  * Creates/returns a form to configure the variables.  *  * @param array $form  * @param array $form_state  * @return array  */ function sitename_custom_form($form, &$form_state) {   $form['sitename_textfield'] = array(     '#type' => 'textfield',     '#title' => t('Custom Textfield'),     '#default_value' => variable_get('sitename_textfield', ''),   );    // Use system_settings_form() to automate saving configuration variables.   return system_settings_form($form); } 3  

还因为@david托马斯提到,你的表单中的一些错误更换 998876614 使用 /** * Creates/returns a form to configure the variables. * * @param array $form * @param array $form_state * @return array */ function sitename_custom_form($form, &$form_state) { $form['sitename_textfield'] = array( '#type' => 'textfield', '#title' => t('Custom Textfield'), '#default_value' => variable_get('sitename_textfield', ''), ); // Use system_settings_form() to automate saving configuration variables. return system_settings_form($form); } 5 ,但我不认为你的问题是存在,<强>我认为你的主要问题是如何重定向到验证函数上的另一个页面。

 

in form validation or form submit handler try to change 'redirect` to go to another url, So Try

$form_state['redirect'] = 'some_url'; 

and Also as @David Thomas mentioned, you are some mistakes in your form alter replace user-login with user_login, but I don't think your problem is there, I think your main question is about how to redirect to another page on your validator function.

 
 
   
   

相关问题

3  OAuth和Facebook  ( Oauth and facebook ) 
是否有一种方法可以让用户自动注册到Drupal网站,如果它们登录到Facebook?我知道 facebook 和 facebook - auth ,但他们正在使用 表格,而不是用户配置文件。 ...

3  如何仅将jQuery添加到用户个人资料页面?  ( How to add jquery to the user profile page only ) 
我和javascript / jquery不相处得很好... 我想做的是向用户的"关于我" 文本的前200个左右,然后单击"更多" 链接时展开它。 我添加到我的template.php function bartik_preprocess_user_profile(&$variables){ drupal...

8  将您自己的内容添加到节点  ( Add your own content to node ) 
我创建了一个模块,将自定义内容添加到节点;我想在节点视图中显示此自定义内容。我认为 hook_node_view() 是右挂钩要使用,但我的内容没有显示。 到目前为止我的内容是以下代码: function mymodule_node_view($node, $view_mode = 'full', $langco...

1  如何订阅一页的任何或所有分类条款?  ( How to subscribe to any or all taxonomy terms on one page ) 
我想知道设置"订阅获取电子邮件提醒" 的最佳方式 我的内容类型是"标记为" 标记"的各种分类学 而且我想设置一个简单的"订阅才能获得电子邮件提醒" 页面,用户可以订阅它们喜欢的任何"术语" ,以便在使用关联的标签创建内容类型的新项目时将电子邮件发送给它们。 我已安装通知和消息传递模块 它使我能够创建一个"订阅块" ,...

1  通过以编程方式从菜单树数组渲染自定义菜单块  ( Render custom menu block from menu tree array of links programmatically ) 
在这里是我所拥有的:自定义菜单(侧面导航)模仿主/辅助菜单树,显示了显示根菜单项的整个子树(Dine,Play,Stay)您的整个子树下。 可以使用内容类型中的复选框字段缩短此SidenAV。如果选中,Sidenav将递归显示已选中的页面和所有子项,但省略已检查页面的任何父母。我已成功创建该菜单,这一切都在被...

3  单个文档,用于下载的多个文件型:如何管理?  ( Single document multiple filetypes for download how to manage ) 
我想将多个文档上传/附加到书节点。每个文档都将以多种文件格式提供,例如: 报告2010.pdf 报告2011.rtf 报告2011.doc 协议11.pdf 协议11.rtf 协议11.doc 鉴于此,为了: 提供了一个明智的上传界面(如filefield),允许上传无限数量的文件。 呈现这些文件以...

4  删除文件域值时如何保留底层文件  ( How to keep underlying file when deleting a filefield value ) 
我的内容类型与文件域(特别是图像)。当删除其中一个值时,Drupal也删除了底层文件(只要没有其他节点引用相同的文件)。 我不希望删除底层文件,我希望它们保留在文件系统中。是否有任何钩子或其他技术,我可以用来确保删除其文件场值后仍然存在? ...

3  如何自动突出显示页面上显示的代码的语法?  ( How to automatically highlight syntax of code displayed on page ) 
我正在开发一个网站,用于从不同的编程语言发布我的代码。我想突出用不同颜色的代码语法。但是,手动这样做是耗时的。 是否有任何模块或方法可以自动执行此操作?严格,它应该以CSS方式完成。 ...

0  hook_node_access的呼叫数  ( Number of calls of hook node access ) 
我使用hook_node_access()来重定向用户,如果它们没有右属性以查看特定节点。 虽然编程我使用DPM()来检查一些变量并想知道,但DPM()称为9次,尽管我刚打开一个节点。 嗯,我的问题是: 它是正常的,它是一个节点的多次调用hook_node_access,所以我应该使用drupal_static()...

1  自定义现场容器  ( Customising field container ) 
我创建了一个CCK字段格式化器。该字段输出从FileField上传到链接到Google Docs的嵌入式Iframe。它目前输出: <div class="field field-type-filefield field-field-documents"> <div class="field-items"> ...

3  无法删除新分类术语的描述字段  ( Cant remove description field for new taxonomy terms ) 
我创建了一种新的分类词汇。出于某种原因,我无法为术语删除描述字段,但我只需要标题字段。 是一个错误还是不可能做的或者是隐藏在某处奇怪的设置?谢谢 ...

4  将标志链接转换为复选框  ( Convert a flags link into a checkbox ) 
是否有一种方法可以转换标志在视图中复选框中的链接?我尝试了标志形式模块,但它没有工作(至少不是在视图中)。我介绍了标志在显示类型功能请求中添加复选框。讨论点使用CSS,JavaScript或黑客标志模板文件。还有其他方法吗? 我对使用JavaScript做到这一点不利,但我很少了解它。 ...

7  停止Drupal 7垃圾邮件发送者在mysite.com注册  ( Stopping drupal 7 spammers registering at mysite com ) 
我在 mysite.com上有一个新的drupal 7站点(地址已更改) - CentOS 5.5 Linux机器在我的完全控制中。 通过阅读注册邮件(它们通过我的Gmail帐户)我注意到,Drupal垃圾邮件发送者似乎通过地址引用我的网站 forum.mysite.com 。由于对SubDomain.Mysite...

2  显示菜单的子链接  ( Displaying a menus child links ) 
似乎是,默认情况下,emega和其他主题不会呈现子链接。 我已经尝试过各种模块(例如超级鱼和megamenu),但他们没有提供一个允许我主题到设计的结构。 我找到了这个页面,但它似乎没有使用 theme_links() 。 有没有一种简单的方法来启用我的所有菜单链接,并且在渲染之前仍然能够钩住它? ...

5  将文件拖放到Drupal网站中?  ( Drag drop files into drupal site ) 
是否有人知道一个模块,允许将文件从用户计算机拖动到站点中的目标区域(如Gmail或WordPress)? 理想情况下,这将使用图像和其他模块,将文件"正确" 插入Drupal,保存上传器信息,并允许添加元数据(如WordPress媒体区域)。 ...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有