source: temp/trunk/html/admin/system/input.php @ 1328

Revision 1328, 6.1 KB checked in by naka, 20 years ago (diff)

* empty log message *

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1<?php
2require_once("../require.php");
3
4class LC_Page {
5    var $arrErr;        // ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸½ÐÎÏÍÑ
6    var $tpl_recv;      // ÆþÎϾðÊóPOSTÀè
7    var $tpl_onload;    // ¥Ú¡¼¥¸ÆÉ¤ß¹þ¤ß»þ¤Î¥¤¥Ù¥ó¥È
8    var $arrForm;       // ¥Õ¥©¡¼¥à½ÐÎÏÍÑ
9    var $tpl_mode;      // ¿·µ¬ºîÀ®:new or ÊÔ½¸:edit
10    var $tpl_member_id; // ÊÔ½¸»þ¤Ë»ÈÍѤ¹¤ë¡£
11    var $tpl_pageno;
12    var $tpl_onfocus;   // ¥Ñ¥¹¥ï¡¼¥É¹àÌÜÁªÂò»þ¤Î¥¤¥Ù¥ó¥ÈÍÑ
13    var $tpl_old_login_id;
14    function LC_Page() {
15        $this->tpl_recv =  'input.php';
16        $this->tpl_pageno = $_REQUEST['pageno'];
17        $this->SHORTTEXT_MAX = STEXT_LEN;
18        $this->MIDDLETEXT_MAX = MTEXT_LEN;
19        $this->LONGTEXT_MAX = LTEXT_LEN;
20        global $arrAUTHORITY;
21        $this->arrAUTHORITY = $arrAUTHORITY;
22    }
23}
24
25$conn = new SC_DbConn();
26$objPage = new LC_Page();
27$objView = new SC_AdminView();
28
29// ǧ¾Ú²ÄÈݤÎȽÄê
30$objSess = new SC_Session();
31sfIsSuccess($objSess);
32
33// member_id¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢ÊÔ½¸¥â¡¼¥É¤È¤¹¤ë¡£
34if(sfIsInt($_GET['id'])) {
35    $objPage->tpl_mode = 'edit';
36    $objPage->tpl_member_id = $_GET['id'];
37    $objPage->tpl_onfocus = "fnClearText(this.name);";
38    // DB¤Î¥á¥ó¥Ð¡¼¾ðÊó¤òÆÉ¤ß½Ð¤¹
39    $data_list = fnGetMember($conn, $_GET['id']);
40    // ³ºÅö¥æ¡¼¥¶¤òɽ¼¨¤µ¤»¤ë
41    $objPage->arrForm = $data_list[0];
42    // ¥À¥ß¡¼¤Î¥Ñ¥¹¥ï¡¼¥É¤ò¥»¥Ã¥È¤·¤Æ¤ª¤¯¡£
43    $objPage->arrForm['password'] = DUMMY_PASS;
44    // ¥í¥°¥¤¥óID¤òÊݴɤ·¤Æ¤ª¤¯¡£
45    $objPage->tpl_old_login_id = $data_list[0]['login_id'];
46} else {
47    // ¿·µ¬ºîÀ®¥â¡¼¥É
48    $objPage->tpl_mode = "new";
49    $objPage->arrForm['authority'] = -1;
50}
51
52// ¿·µ¬ºîÀ®¥â¡¼¥É or ÊÔ½¸¥â¡¼¥É
53if( $_POST['mode'] == 'new' || $_POST['mode'] == 'edit') {
54    // ÆþÎÏ¥¨¥é¡¼¥Á¥§¥Ã¥¯
55    $objPage->arrErr = fnErrorCheck($conn);
56   
57    // ÆþÎϤ¬Àµ¾ï¤Ç¤¢¤Ã¤¿¾ì¹ç¤Ï¡¢DB¤Ë½ñ¤­¹þ¤à
58    if(count($objPage->arrErr) == 0) {
59        if($_POST['mode'] == 'new') {
60            // ¥á¥ó¥Ð¡¼¤ÎÄɲÃ
61            fnInsertMember();
62            // ¥ê¥í¡¼¥É¤Ë¤è¤ëÆó½ÅÅÐÏ¿Âкö¤Î¤¿¤á¡¢Æ±¤¸¥Ú¡¼¥¸¤ËÈô¤Ð¤¹¡£
63            header("Location: ". $_SERVER['PHP_SELF'] . "?mode=reload");   
64            exit;
65        }
66        if($_POST['mode'] == 'edit') {
67            // ¥á¥ó¥Ð¡¼¤ÎÄɲÃ
68            if(fnUpdateMember($_POST['member_id'])) {
69                // ¿Æ¥¦¥£¥ó¥É¥¦¤ò¹¹¿·¸å¡¢¼«¥¦¥£¥ó¥É¥¦¤òÊĤ¸¤ë¡£
70                $url = URL_SYSTEM_TOP . "?pageno=".$_POST['pageno'];
71                $objPage->tpl_onload="fnUpdateParent('".$url."'); window.close();";
72            }
73        }
74    // ÆþÎÏ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç
75    } else {
76        // ¥â¡¼¥É¤ÎÀßÄê
77        $objPage->tpl_mode = $_POST['mode'];
78        $objPage->tpl_member_id = $_POST['member_id'];
79        $objPage->tpl_old_login_id = $_POST['old_login_id'];
80        // ¤¹¤Ç¤ËÆþÎϤ·¤¿Ãͤòɽ¼¨¤¹¤ë¡£
81        $objPage->arrForm = $_POST;
82        // Ä̾ïÆþÎϤΥѥ¹¥ï¡¼¥É¤Ï°ú¤­·Ñ¤¬¤Ê¤¤¡£
83        if($objPage->arrForm['password'] != DUMMY_PASS) {
84            $objPage->arrForm['password'] = '';
85        }
86    }
87}
88
89// ¥ê¥í¡¼¥É¤Î»ØÄ꤬¤¢¤Ã¤¿¾ì¹ç
90if( $_GET['mode'] == 'reload') {
91    // ¿Æ¥¦¥£¥ó¥É¥¦¤ò¹¹¿·¤¹¤ë¤è¤¦¤Ë¥»¥Ã¥È¤¹¤ë¡£
92    $url = URL_SYSTEM_TOP;
93    $objPage->tpl_onload="fnUpdateParent('".$url."')";
94}
95
96// ¥Æ¥ó¥×¥ì¡¼¥ÈÍÑÊÑ¿ô¤Î³ä¤êÅö¤Æ
97$objView->assignobj($objPage);
98$objView->display('system/input.tpl');
99
100/* ÆþÎÏ¥¨¥é¡¼¤Î¥Á¥§¥Ã¥¯ */
101function fnErrorCheck($conn) {
102   
103    $objErr = new SC_CheckError();
104   
105    $_POST["name"] = mb_convert_kana($_POST["name"] ,"KV");
106    $_POST["department"] = mb_convert_kana($_POST["department"] ,"KV");
107   
108    // ̾Á°¥Á¥§¥Ã¥¯
109    $objErr->doFunc(array("̾Á°",'name'), array("EXIST_CHECK"));
110    $objErr->doFunc(array("̾Á°",'name',STEXT_LEN,"BIG"), array("MAX_LENGTH_CHECK"));
111   
112    // ÊÔ½¸¥â¡¼¥É¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢½ÅÊ£¥Á¥§¥Ã¥¯
113    if (!isset($objErr->arrErr['name']) && $_POST['mode'] != 'edit') {
114        $sql = "SELECT name FROM dtb_member WHERE delete <> 1 AND name = ?";
115        $result = $conn->getOne($sql, array($_POST['name']));
116        if ( $result ) {
117            $objErr->arrErr['name'] = "´û¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë̾Á°¤Ê¤Î¤ÇÍøÍѤǤ­¤Þ¤»¤ó¡£<br>";
118        }
119    }
120       
121    // ¥í¥°¥¤¥óID¥Á¥§¥Ã¥¯
122    $objErr->doFunc(array("¥í¥°¥¤¥óID",'login_id'), array("EXIST_CHECK", "ALNUM_CHECK"));
123    $objErr->doFunc(array("¥í¥°¥¤¥óID",'login_id',ID_MIN_LEN , ID_MAX_LEN) ,array("NUM_RANGE_CHECK"));
124   
125    // ¿·µ¬¥â¡¼¥É¤â¤·¤¯¤Ï¡¢ÊÔ½¸¥â¡¼¥É¤Ç¥í¥°¥¤¥óID¤¬Êѹ¹¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¥Á¥§¥Ã¥¯¤¹¤ë¡£
126    if (!isset($objErr->arrErr['login_id']) && $_POST['mode'] != 'edit' || ($_POST['mode'] == 'edit' && $_POST['login_id'] != $_POST['old_login_id'])) {
127        $sql = "SELECT login_id FROM dtb_member WHERE delete <> 1 AND login_id = ?";
128        $result = $conn->getOne($sql, array($_POST['login_id']));
129        if ( $result != "" ) {
130            $objErr->arrErr['login_id'] = "´û¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ëID¤Ê¤Î¤ÇÍøÍѤǤ­¤Þ¤»¤ó¡£<br>";
131        }
132    }
133   
134    // ¥Ñ¥¹¥ï¡¼¥É¥Á¥§¥Ã¥¯(ÊÔ½¸¥â¡¼¥É¤ÇDUMMY_PASS¤¬ÆþÎϤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥¹¥ë¡¼¤¹¤ë)
135    if(!($_POST['mode'] == 'edit' && $_POST['password'] == DUMMY_PASS)) {
136        $objErr->doFunc(array("¥Ñ¥¹¥ï¡¼¥É",'password'), array("EXIST_CHECK", "ALNUM_CHECK"));
137        if (!$arrErr['password']) {
138            // ¥Ñ¥¹¥ï¡¼¥É¤Î¥Á¥§¥Ã¥¯
139            $objErr->doFunc( array("¥Ñ¥¹¥ï¡¼¥É",'password',4 ,15 ) ,array( "NUM_RANGE_CHECK" ) );   
140        }
141    }
142   
143    // ¸¢¸Â¥Á¥§¥Ã¥¯
144    $objErr->doFunc(array("¸¢¸Â",'authority'),array("EXIST_CHECK"));
145    return $objErr->arrErr;
146}
147
148/* DB¤Ø¤Î¥Ç¡¼¥¿ÁÞÆþ */
149function fnInsertMember() {
150    // ¥¯¥¨¥ê¡¼¥¯¥é¥¹¤ÎÀë¸À
151    $oquery = new SC_Query();
152    // INSERT¤¹¤ëÃͤòºîÀ®¤¹¤ë¡£
153    $sqlval['name'] = $_POST['name'];
154    $sqlval['department'] = $_POST['department'];
155    $sqlval['login_id'] = $_POST['login_id'];
156    $sqlval['password'] = crypt($_POST['password']);
157    $sqlval['authority'] = $_POST['authority'];
158    $sqlval['rank']=  $oquery->max("dtb_member", "rank") + 1;
159    $sqlval['work'] = "1"; // ²ÔƯ¤ËÀßÄê
160    $sqlval['delete'] = "0";    // ºï½ü¥Õ¥é¥°¤òOFF¤ËÀßÄê
161    $sqlval['creator_id'] = $_SESSION['member_id'];
162    // INSERT¤Î¼Â¹Ô
163    $ret = $oquery->insert("dtb_member", $sqlval);
164    return $ret;
165}
166
167/* DB¤Ø¤Î¥Ç¡¼¥¿¹¹¿· */
168function fnUpdateMember($id) {
169    // ¥¯¥¨¥ê¡¼¥¯¥é¥¹¤ÎÀë¸À
170    $oquery = new SC_Query();
171    // INSERT¤¹¤ëÃͤòºîÀ®¤¹¤ë¡£
172    $sqlval['name'] = $_POST['name'];
173    $sqlval['department'] = $_POST['department'];
174    $sqlval['login_id'] = $_POST['login_id'];
175    if($_POST['password'] != DUMMY_PASS) {
176        $sqlval['password'] = crypt($_POST['password']);
177    }
178    $sqlval['authority'] = $_POST['authority'];
179    $sqlval['update_date'] = "now()";
180    // UPDATE¤Î¼Â¹Ô
181    $where = "member_id = " . $id;
182    $ret = $oquery->update("dtb_member", $sqlval, $where);
183    return $ret;
184}
185
186/* DB¤«¤é¥Ç¡¼¥¿¤ÎÆÉ¤ß¹þ¤ß */
187function fnGetMember($conn, $id) {
188    $sqlse = "SELECT name,department,login_id,authority FROM dtb_member WHERE member_id = ?";
189    $ret = $conn->getAll($sqlse, Array($id));
190    return $ret;
191}
192?>
Note: See TracBrowser for help on using the repository browser.