ecshop二次开发中增加input输入框,并且写入到数据库

来源:互联网 发布:如何写好毛笔字 知乎 编辑:程序博客网 时间:2024/06/06 03:47

上节说到了,怎么进行ecshop的二次开发与ECShop的基本目录结构。今天给大家说说如何在ECShop中添加input框并且将内容保存到数据库中。以注册为例






首先打开注册页面。http://localhost/ECShop_V2.7.3_UTF8_release0411/upload/user.php?act=register这个是注册的url首先我们去找user.php然后找到act=register动作



if ($action == 'register'){    if ((!isset($back_act)||empty($back_act)) && isset($GLOBALS['_SERVER']['HTTP_REFERER']))    {        $back_act = strpos($GLOBALS['_SERVER']['HTTP_REFERER'], 'user.php') ? './index.php' : $GLOBALS['_SERVER']['HTTP_REFERER'];    }    /* 取出注册扩展字段 */    $sql = 'SELECT * FROM ' . $ecs->table('reg_fields') . ' WHERE type < 2 AND display = 1 ORDER BY dis_order, id';    $extend_info_list = $db->getAll($sql);    $smarty->assign('extend_info_list', $extend_info_list);    /* 验证码相关设置 */    if ((intval($_CFG['captcha']) & CAPTCHA_REGISTER) && gd_version() > 0)    {        $smarty->assign('enabled_captcha', 1);        $smarty->assign('rand',            mt_rand());    }    /* 密码提示问题 */    $smarty->assign('passwd_questions', $_LANG['passwd_questions']);    /* 增加是否关闭注册 */    $smarty->assign('shop_reg_closed', $_CFG['shop_reg_closed']);//    $smarty->assign('back_act', $back_act);    $smarty->display('user_passport.dwt');}


看一下display到那个模板。找到user_passport.dwt模板,在这个模板里边添加一个input框,这个就不用多说了吧。我这的input 名称叫  company


 <tr>          <td align="right">公司名称</td>          <td><input name="company" type="text" size="25" id="company"   class="inputBg"/></td>        </tr>


这样就完成了第一步。然后看看他提交到那个php文件进行处理的。


   <tr>          <td> </td>          <td align="left">          <input name="act" type="hidden" value="act_register" >          <input type="hidden" name="back_act" value="{$back_act}" />          <input name="Submit" type="submit" value="" class="us_Submit_reg">          </td>        </tr>

由此可以看出是通过act=act_register完成的,所以要在user.php里找到这个动作。


elseif ($action == 'act_register'){    /* 增加是否关闭注册 */    if ($_CFG['shop_reg_closed'])    {        $smarty->assign('action',     'register');        $smarty->assign('shop_reg_closed', $_CFG['shop_reg_closed']);        $smarty->display('user_passport.dwt');    }    else    {        include_once(ROOT_PATH . 'includes/lib_passport.php');        $username = isset($_POST['username']) ? trim($_POST['username']) : '';        $password = isset($_POST['password']) ? trim($_POST['password']) : '';        $email    = isset($_POST['email']) ? trim($_POST['email']) : '';        $other['msn'] = isset($_POST['extend_field1']) ? $_POST['extend_field1'] : '';        $other['qq'] = isset($_POST['extend_field2']) ? $_POST['extend_field2'] : '';        $other['office_phone'] = isset($_POST['extend_field3']) ? $_POST['extend_field3'] : '';        $other['home_phone'] = isset($_POST['extend_field4']) ? $_POST['extend_field4'] : '';        $other['mobile_phone'] = isset($_POST['extend_field5']) ? $_POST['extend_field5'] : '';$other['company'] = isset($_POST['company']) ? $_POST['company'] : '';        $sel_question = empty($_POST['sel_question']) ? '' : $_POST['sel_question'];        $passwd_answer = isset($_POST['passwd_answer']) ? trim($_POST['passwd_answer']) : '';        $back_act = isset($_POST['back_act']) ? trim($_POST['back_act']) : '';


找到后在这里添加      $other['company'] = isset($_POST['company']) ? $_POST['company'] : '';这一项



然后在往下找。。找到下边这段代码。用zendstudio的同学可以按住ctrl然后点击register就是说找到这个方法


if (register($username, $password, $email, $other) !== false)        {            /*把新注册用户的扩展信息插入数据库*/            $sql = 'SELECT id FROM ' . $ecs->table('reg_fields') . ' WHERE type = 0 AND display = 1 ORDER BY dis_order, id';   //读出所有自定义扩展字段的id            $fields_arr = $db->getAll($sql);            $extend_field_str = '';    //生成扩展字段的内容字符串




这个文件是在这个include文件夹里的,这里边有一个lib_passport.php打开


大概在159行

        //定义other合法的变量数组
        $other_key_array = array('msn', 'qq', 'office_phone', 'home_phone', 'mobile_phone','company');



加上company,当然还得再数据库中增加一个字段叫company,然后进入后台清楚缓存,前台刷新,注册。就可以写到数据库了。数据表不会不知道那个表吧,不知道的同学留言。











原创粉丝点击