`

修改用户当前密码流程(自定义form表单练习)

 
阅读更多
function mytest_menu() {
  $items = array();
  $items['user/%user/password'] = array(
    'title' => '修改密码',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('change_user_pass',1),
    'access callback' => 'user_edit_access',
    'access arguments' => array(1),
    'type' => MENU_LOCAL_TASK,
  );
  return $items;
} 


function change_user_pass($form, &$form_state, $account) { 
$form['current_pass'] = array(
    '#type' => 'password',
    '#title' => t('当前密码'),   
    // '#prefix' => '',
    '#maxlength' => 64,
    '#size' => 30,
    '#required' => TRUE,
  );

  $form['pass'] = array(
    '#type' => 'password_confirm',
  );

  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => '提交',
    '#validate' => array('change_user_pass_validate'),
    '#submit' => array('change_user_pass_submit'),
  );
  $form['#validate'][] = 'user_validate_current_pass';
  return $form;
}

function change_user_pass_validate($form, &$form_state) {
  if (!empty($form_state['values']['current_pass'])) {
    # code...
    $_form_current_pass = $form_state['values']['current_pass'];
    $_hash_form_current_pass = module_invoke('user', 'hash_password', $_form_current_pass);

    if ($_hash_form_current_pass != $user->pass) {
      form_set_error('current_pass', t("Your current password is missing or incorrect; it's required to change the Password."));
    }
  }
}


function  change_user_pass_submit($form, &$form_state) {
  global $user;  
  $new_user = null;  
  $new_user = array(  
     'name' => $user->name,  
     'uid' => $user->uid,  
     'pass' => rtrim($form_state['values']['pass']),  
     'status '=>$user->status ,  
  );          
  $new_user['roles']=$user->roles;  
  user_save($user,$new_user);  
  // $form_state['redirect'] = '';  
  drupal_set_message(t('Password success!'));
}

 

分享到:
评论

相关推荐

    表单练习与知识点.7z

    本文将深入探讨表单练习与相关的知识点,旨在帮助初学者快速理解和掌握前端表单的设计与实现。 首先,我们要理解HTML中的表单元素。`<form>`标签用于创建一个表单,它可以包含各种输入控件,如`<input>`、`...

    微信小程序学习demo:表单练习.rar

    "微信小程序学习demo:表单练习.rar" 是一个针对微信小程序中表单功能的实践项目,适合初学者进行学习和模仿。在这个压缩包里,你将找到一系列关于如何在微信小程序中实现表单功能的示例代码。 表单在任何Web应用或...

    js练习4:使用HTML5验证博客园注册页面.zip

    在这个例子中,当用户离开密码输入框时,`checkPasswordStrength`函数会被调用,根据返回的提示信息更新显示的密码强度。 此外,还可以使用JavaScript监听表单提交事件,防止未通过验证的表单数据被发送到服务器。...

    access在线练习

    此外,自定义筛选表单则允许用户根据特定业务需求定制筛选界面,提供更为直观和便捷的用户体验。 除了筛选,Access还提供了查询、报表、宏和模块等核心功能。查询可以组合多个表的数据,执行计算,甚至进行复杂的...

    简单的表单验证

    在网页开发中,表单验证是一项至关重要的任务,它确保用户输入的数据符合预期的格式和标准,从而提高数据质量和用户体验。...通过实践“简单的表单练习”文件,开发者可以深入理解这一过程,并进一步提升自己的技能。

    jQuery Validate插件验证表单小练

    jQuery Validate 插件是Web开发中广泛使用的工具,主要用于实现前端表单验证,它极大地简化了用户输入数据的检查过程,提供了丰富的验证规则和自定义方法。在这个“jQuery Validate插件验证表单小练”中,我们将深入...

    SAP adobe interactive form exercise

    **描述:** 在此练习中,您将学习如何复制一个现有的Adobe交互式表单,并对其进行自定义。 **步骤详解:** 1. **打开交易代码HRASR_DT:** 使用该交易代码可以访问到Adobe表单的相关配置。 2. **选择特殊支付流程:** ...

    Clientside-form-validation:练习使用响应式客户端表单验证

    客户端表单验证是Web开发中的一个关键环节,它在用户提交数据到服务器之前对...通过这个练习,开发者不仅可以提升JavaScript技能,还能理解如何在实际项目中运用这些技术,创建出更健壮、用户体验更好的表单验证机制。

    Django练习题.zip

    4. **Django的高级操作**:这可能包括自定义表单(Form)和模型表单(ModelForm),它们简化了用户输入数据的验证和处理。另外,Django的中间件(Middleware)允许在请求处理流程的各个阶段插入自定义逻辑。URL配置...

    10.Bootstrap表单样式3.rar

    9. **自定义表单样式**:虽然Bootstrap提供了丰富的预设样式,但开发者还可以通过CSS覆盖或添加新的类来实现个性化的表单设计。 10. **插件集成**:Bootstrap的插件,如日期选择器、输入掩码和表单验证工具,可以...

    注册页面 验证 密码 JavaScript HTML CSS

    JavaScript还允许我们在用户提交表单之前进行这些验证,提供即时反馈,提升用户体验。 4. **表单验证**:在JavaScript中,我们可以使用`addEventListener`来监听表单的提交事件,然后通过`event.preventDefault()`...

    Log4_Httphandler_Form验证

    FormLoginTest可能是一个示例项目,展示了如何在登录表单中使用这些验证控件来验证用户的用户名和密码,防止无效或恶意的数据提交。同时,这个例子也可能包含如何将Log4Net与表单验证结果关联起来,记录每次登录尝试...

    spring boot security学习练习demo源码

    这通常涉及到对用户密码哈希后的持久化存储。 7. **CSRF保护**:为了防止跨站请求伪造(Cross-Site Request Forgery),Spring Security默认开启CSRF保护。在表单提交时,系统会检查请求中是否包含有效的CSRF令牌。...

    JqueryEasyui使用练习

    - **Form(表单)**:创建复杂的表单布局,支持数据验证和自动提交,便于用户输入和数据管理。 - **Menu(菜单)**:创建下拉或浮动菜单,方便用户操作,提升用户体验。 - **Panel(面板)**:用于组织和展示内容...

    HTML5练习.rar

    这个练习将涵盖HTML5的表单控件,如`<input type="search">`(搜索框)、`<button>`(自定义按钮)等,以及如何使用`<form>`标签构建交互式购物导航。同时,可能涉及`<datalist>`元素来提供下拉选项,提高用户体验。...

    struts练习struts练习

    练习这部分可能包括使用Struts Action和ActionForm来处理用户输入,使用Session和Cookies管理用户状态,以及实现安全验证机制。 4. **struts_login**: 这个文件名表明包含的是登录功能的实现。在Struts中,登录功能...

    asp.net mvc 设计思想的练习

    2. 验证:使用数据注解或自定义验证逻辑来确保表单输入的有效性。 3. 分页和搜索:如果数据量大,可以实现分页功能,并添加搜索框以过滤数据。 4. Ajax交互:使用jQuery或其他库实现部分页面的异步更新,提高用户...

    练习-制作当当网注册页面.zip

    例如,密码应使用哈希算法进行加密存储,避免明文传输,同时应提醒用户设置强度较高的密码。 7. 响应式设计:考虑到不同设备的屏幕尺寸,注册页面应当具有响应式布局,适应手机、平板电脑和桌面电脑等多种设备。 8...

    VB6源码——打字练习

    1. `frmDaZi.frm`:这是表单(Form)文件,包含了程序的用户界面元素,如按钮、文本框、标签等。在这个打字练习程序中,`frmDaZi.frm`很可能定义了打字区域、显示速度的计时器、错误提示等组件,以及它们的布局和...

    JSP小示例(jsp练习)

    2. **请求参数**:`request.getParameter()`方法用于获取表单提交的参数值,这在验证用户输入时非常有用。 3. **会话管理**:为了防止同一用户重复注册,可以使用`session`对象存储用户的临时信息,如已验证的...

Global site tag (gtag.js) - Google Analytics