การ upload ข้อมูลและดูข้อมูลที่ upload ไปแล้ว โดยแบ่งกลุ่มผู้ใช้งานและดูข้อมูลเฉพาะส่วนบุคคล
ความเดิมค่ะ
1. มี user 3 กลุ่ม โดย 3 กลุ่ม เมื่อ login แล้วจะเจอหน้าจอต่างกัน
2. มีแบบฟอร์มให้ user กรอก ซึ่งแบบฟอร์มแต่ละ user ก็จะต่างกันไป
3. ลักษณะการใช้งาน
1) สมมติว่า user กลุ่ม 1 มี 5 คน, user กลุ่ม 2 มี 5 คน, user กลุ่ม 3 มี 5 คน
2) เมื่อ user กลุ่ม 1 หรือ 2 หรือ 3 login เข้าไปแล้ว จะทำการบันทึกข้อมูลของแต่ละคนในแบบฟอร์มที่เราทำไว้ให้
3) สำหรับการดูข้อมูล นอกจาก แต่ละ user ดูข้อมูลของตัวเองแล้วนั้น จะมี case ที่ user กลุ่ม 2 (ระดับหัวหน้า) และ 3 มีสิทธิ์เห็นข้อมูลของ user กลุ่ม 1 เช่น user กลุ่มที่ 2 คนที่ 1 สามารถเห็นข้อมูลของ user กลุ่มที่ 1
จำนวน 3 คน และ user กลุ่มที่ 2 คนที่ 2 สามารถเห็นข้อมูลของ user กลุ่มที่ 1 จำนวน 2 คน เป็นต้น
4.) วิธีการจัดการและบันทึกข้อมูล คือ กรอกข้อมูล เป็นลักษณะ ให้ดาวน์โหลด file word ขึ้นมา แล้วให้กรอกข้อมูลใน word แล้วทำการ upload ลงในระบบอีกครั้ง โดยการเก็บ file ในระบบ
ก็เก็บใน folder ที่คิดแบบนี้ขึ้นมา เนื่องจากเวลาออก report ออกมา รูปแบบก็จะอ่านง่ายตาม word เลยค่ะ แต่ก็ต้องมี file เยอะหน่อย
แล้วเวลาดึงข้อมูลขึ้นมาก็น่าจะสับสนพอควร แต่ไม่รู้ว่าในการที่จะให้ user กลุ่ม 2 ดูข้อมูลของคนกลุ่ม 1 ที่เป็น word จะเขียน code อย่างไรอ่ะคะ
ปัจจุบัน กำลังทำในส่วน
1. กำลัง Apply Code ที่มีอยู่ คือไฟล์ในการ upload และดูข้อมูลไฟล์ โดยจาก concept ที่กล่าวมา
เวลาจะ upload จะต้องเก็บข้อมูลการการ upload ของบุคคลไว้ในฐานข้อมูลด้วย ว่าคนนี้เป็นคนที่ upload ไฟล์นี้
2. การเก็บข้อมูล คือ หลักๆ ก็มี 3 Table ค่ะ
1) Table บุคคล เก็บ id 13 หลัก, username password, member_type...
2) Table หน่วยงาน ใน table หน่วยงาน เก็บเป็น level_01, level_02, level_03, level_04
โดย level_01 เก็บรหัสหน่วยงาน, level_02 เก็บรหัสแผนก, level_03 เก็บรหัสกลุ่ม และ , level_04 เก็บรหัสงาน(เช่นกลุ่มพัฒนาระบบ มีงานวิเคราะห์ระบบ งานเขียนโปรแกรม เป็นต้น)
ที่เก็บเป็นหลาย level เนื่องจาก structure ของหน่วยงานค่อนข้างเยอะ และใช้เพื่อแบ่งกลุ่มในการดูข้อมูลของหัวหน้าแต่ละกลุ่มค่ะ
3) Table อีก Table นึง จะสร้างไว้เก็บข้อมูลบุคคล ข้อมูลไฟล์ เพื่อใช้ให้แสดงเอกสารให้ตรงกับบุคคลนั้นที่ login เข้ามา (แต่ไม่แน่ใจว่านอกจาก member_type แล้วจะเก็บ field อะไรบ้าง)
การเขียน code พยายามดัดแปลงจากการทำ Thumnail รูปภาพ แต่ก็ไม่ work อ่ะคะ (ทำไม่ได้เอง) เลยจาก concept ดังกล่าว
ขอผู้รู้ช่วยแนะนำหน่อยค่ะ ว่าจะต้องทำอะไรบ้าง ขอ code มา guideline หน่อยก็ดีค่ะ ไม่ค่อยคล่องโครงสร้างและ logic เท่าไหร่
ต้องทำให้เสร็จภายในอาทิตย์นี้ด้วยอ่ะคะ
---------login.php------------
<form action="chkmember.php" method="post">
<br><br>
<table background="../images/bglogin.gif" width="229" height="125" align="center">
<tr><td width="60"></td><td height="30"></td></tr>
<tr><td></td>
<td height="18"><input name="user_login" type='text'></td><tr>
<tr><td ></td>
<td height="14"><input name="pass_login" type='password'></td><tr>
<tr>
<td height="18" colspan="2" align="center"><input type="submit" value="เข้าสู่ระบบ"><input type="reset" value="ยกเลิก"></td><tr>
</table>
</form>
------chkmember.php-------
<?
session_start ();
$user_login=$_POST['user_login'];
$pass_login=$_POST['pass_login'];
if ($user_login=="" or $pass_login=="") {
echo "<h3>NOT CORRRECT<h3>";
exit();
}
else{
include "connect.php";
$sql="select * from personal where username='$user_login' and password='$pass_login' " ;
$result=mysql_db_query ($dbname,$sql);
$row= mysql_fetch_assoc($result);
$num=mysql_num_rows ($result);
$member_type=$row['member_type'];
if ($num<=0){
echo "<h4>not found</h4>";
} else {
$_SESSION ['sess_userid'] =session_id ();
$_SESSION ['sess_username'] =$user_login;
switch($member_type) {
case "01" : echo"<meta http-equiv='refresh' content='0;URL=../user1/index.php'>";break;
case "02" :echo"<meta http-equiv='refresh' content='0;URL=../user2/index.php'>";break;
case "03" :echo"<meta http-equiv='refresh' content='0;URL=../user3/index.php'>";break;
default: header("Location: ../user1/index.php");
}
}
}
---------upload.php--------
<table align="center">
<form enctype="multipart/form-data" action="upload3.php" method="post">
<tr align="center"><td>
<a href="ethic.doc" target="_blank"><font face="MS Sans Serif, Tahoma, sans-serif" size="-1">ดาวน์โหลดสมุดบันทึกผลงานและคุณงามความดีของข้าราชการ</font></a>
</td></tr>
<input type="hidden" name="MAX_FILE_SIZE" value="855000">
<tr><td><br><font face="MS Sans Serif, Tahoma, sans-serif" size="-1">Upload ไฟล์ข้อมูลผลงานและคุณงามความดี </font></td></tr>
<tr>
<td><input name="userfile" type="file"> <input type="submit" value="ตกลง"></td>
</tr>
</form>
</table>
-------showdocs.php--------
<script language="JavaScript">
function openwin(url){
window.open(url, "a", "toolbar=0, location=0, directiories=0, status=0, menubar=0, scrollbar=yes, resizable=no, width=820, height=600");
}
</script>
</head>
<body>
<table border="1" align="center" cellpadding="8" cellspacing="0" width="200" bordercolor="#666699">
<tr><td valign="top" bgcolor="#FFCC99">
<?
$dir="C:/AppServ/www/ethics/user3/download/";
$url="http://172.16.7.17/ethics/user3/download/";
//print "Now open $url<p>";
$DIR = opendir("$dir");
while ($text = readdir($DIR))
{
if ($text != "." && $text != "..")
{
//if (filetype($dir . $text) != "$dir")
//{
$size=filesize($dir . "$text");
print "<font face='MS Sans Serif, Tahoma, sans-serif' size='-1'><a href=\"javascript:openwin('$url$text')\"> $text</a> </font>";
print "<font face='MS Sans Serif, Tahoma, sans-serif' size='-1'><a href=\"javascript:openwin('delfile.php?f=$text')\"><img border=0 src=icon-delete.gif alt='ลบ'></a></font><br>";
}
}
?>
Tag : - - - -
Date :
18 ก.ย. 2550 10:12:31
By :
มือใหม่
View :
2260
Reply :
5
ถามยาวเกิ้น... เดี๋ยวอ่านก่อนแล้วกลับจะตอบ
Date :
18 ก.ย. 2550 13:00:20
By :
arthiter2000
แล้วเวลาดึงข้อมูลขึ้นมาก็น่าจะสับสนพอควร แต่ไม่รู้ว่าในการที่จะให้ user กลุ่ม 2 ดูข้อมูลของคนกลุ่ม 1 ที่เป็น word จะเขียน code อย่างไรอ่ะคะ
ตอบ=ในเมื่อการ login แล้วจะเจอหน้าจอต่างกัน ถ้าจะให้ user กลุ่ม 2 ดูข้อมูลกลุ่ม 1 ได้ ก็ต้องให้หน้าของกลุ่มที่ 2 แสดง ข้อมูลของกลุ่มที่ 1 คือตั้งเงื่อนไขให้สามารถเรียกดูกลุ่มที่ 1 ได้ เหมือนกับที่กลุ่มที่ 1สามารถเรียกดูของตัวเองได้ จากupload.phpมันน่าจะตั้งเงื่อนไข เช่น
- ถ้าเป็นกลุ่ม 1 สามารถเรียกดู ข้อมูลเอกสารที่เป็นของกลุ่ม 1ได้
- ถ้าเป็นกลุ่ม 2 สามารถเรียกดูข้อมูลเอกสารที่เป็นของกลุม 2 และ กลุ่ม 1ได้
- ถ้าเป็นกลุ่ม 3 สามารถเรียกดูข้อมูลเอกสารที่เป็นของกลุม 3 และ กลุ่ม 1ได้
ตามความคิดของผมนะ ถ้าแบบนี้ ข้อมูลใน record นึงอย่างน้อยจะต้องมี field ของ ชื่อmember,รหัสกลุ่ม(01,02,03)และก็ชื่อของเอกสาร
เวลาเรียกก็สามารถกำหนดได้คือ
- ถ้าเป็นกลุ่ม 1 สามารถเรียกดู ข้อมูลเอกสารที่เป็นรหัส 01
- ถ้าเป็นกลุ่ม 2 สามารถเรียกดู ข้อมูลเอกสารที่เป็นรหัส 01,02
- ถ้าเป็นกลุ่ม 3 สามารถเรียกดู ข้อมูลเอกสารที่เป็นรหัส 01,03
ประมาณนี้รึป่าว ไม่รู้ว่าตอบตรงตามที่ต้องการมั๊ย ขอบคุณมากที่ให้ตอบ
Date :
18 ก.ย. 2550 13:55:09
By :
arthiter2000
ขอบคุณค่ะ ประมาณนั้นอ่ะคะ แต่ที่ซับซ้อนไปกว่านั้น คือ กลุ่ม 2 ไม่ใช่ดู กลุ่ม 1 ได้ทุกคนอ่ะคะ มันจะมี code
หน่วยงาน, สังกัด ของแต่ละคน เช่น ทั้งหมดมี 10 หน่วยงาน แต่ละหน่วยงานมีแผนก 10 แผนก แต่ละแผนกมีคน
10 คน รวมแล้วเป็น 100 คน ใน 100 คน เป็นหัวหน้า 10 คน (แผนกแต่ละแนก มีหัวหน้า 1 คน)
หัวหน้าแต่ละแผนกคือ กลุ่ม 2 นั่นเองค่ะ ที่สามารถดูข้อมูลของลูกน้อง (กลุ่ม 1) ของแผนกใครแผนกมัน เท่านั้น con
concept ประมาณนี้ค่ะ
1. จาก code upload3.php จะเพิ่มในส่วนที่ให้เก็บ (insert) ข้อมูล username รหัสแผนก รหัสกลุ่ม ... ไว้ตรงไหนค่ะ
2. จาก code showdocs.php จะให้แสดงเฉพาะข้อมูลที่ upload ของคนๆ นั้น (log in username อะไร ก็ดึงเฉพาะข้อมูลของคนๆนั้นมาโชว์) จะต้องเขียน code อย่างไรบ้างค่ะ...ขอบคุณมากนะคะ
------upload3.php-------
<?
//echo "<h3>Upload file</h3>";
$uploaddir = 'C:/AppServ/www/ethics/user3/download/';
$uploadfile = $uploaddir.basename($_FILES['userfile']['name']);
//echo "Upload into: $uploadfile";
//echo "<br>Filename: ".$_FILES['userfile']['name'];
//echo "<br>Temp: ".$_FILES['userfile']['tmp_name'];
//echo "<br>type: ".$_FILES['userfile']['type'];
//echo "<br>size :".$_FILES['userfile']['size'];
//echo "<br>error :".$_FILES['userfile']['error'];
//echo "<hr>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)){
echo "<br><center>upload ไฟล์เรียบร้อย</center>";
}else{
echo "ไม่สามารถ upload ได้";
}
?>
Date :
18 ก.ย. 2550 14:47:26
By :
มือใหม่
1. จาก code upload3.php จะเพิ่มในส่วนที่ให้เก็บ (insert) ข้อมูล username รหัสแผนก
รหัสกลุ่ม ... ไว้ตรงไหนค่ะ
ตอบ= ก็คงจะตั้งแต่สมัคร member เลย คือตอนสมัครสมาชิกก็จะมี
username
password
รหัสกลุ่ม (01,02,03)
แผนก (01,02,03.....)
ไฟล์เอกสาร(ตัวนี้ก็ให้ upload ไฟล์เอกสารไปเก็บไว้ตามต้องการ)
และนอกนั้น อยากให้กรอกข้อมูลอะไรก็แล้วแต่ ตามต้องการ
จากนั้นเมื่อ member ทำการ login เข้ามา
ถ้า เค้าเป็น กลุ่ม 1 แผนก 01 ก็จะสามารถเรียก ดูข้อมูลที่มีรหัสกลุ่ม 01 และ แผนก 01
ถ้าเป็นกลุ่ม 1 แผนก 02 ก็จะสามารถเรียก ดูข้อมูลที่มีรหัสกลุ่ม 01 และ แผนก 02
ถ้าเป็นกลุ่ม 2 แผนก 01 ก็จะสามารถเรียก ดูข้อมูลที่มีรหัสกลุ่ม 01,02 และ แผนก 01
ประมาณนี้
แต่ดูจากงานแล้ว คงสมัคร memberก่อนแล้วจึงเข้าไป upload ทีหลังหรือป่าว ถ้าเป็นแบบนั้นก็ทำคล้ายๆกันคับ
แต่ในหน้าสมัคร member ก็ ตัดupload ออก แล้วค่อยมา upload ทีหลังก็ได้
แต่ถ้ามันไปเปลี่ยนแปลงงานเดิมมาก ก็ลองหาวิธีอื่นดูนะคับ
คือไม่อยากไปยุ่งกะงานเดิมมากน่ะคับ เด๋วพังเอาไม่รู้ด้วยเน้อ
2. จาก code showdocs.php จะให้แสดงเฉพาะข้อมูลที่ upload ของคนๆ นั้น
(log in username อะไร ก็ดึงเฉพาะข้อมูลของคนๆนั้นมาโชว์) จะต้องเขียน code
อย่างไรบ้างค่ะ...ขอบคุณมากนะคะ
ตอบ=ถ้าจะถามว่า เขียนยังไงก็ยาวเลยคับ เอาเป็นว่า
1.เรียกข้อมุลจากฐานข้อมูล โดยกำหนด record ตาม primary key เลย เช่น id ของmember=1
ก็ $sql="select * from (ชื่อตาราง member) where id=(ค่า id ของคนที่ login เข้ามา)"
2.ก็จะได้ record ของ member ที่ login เข้ามา
3.ก็ทำการแสดงข้อมูลตามปกติเลยคับ
ตามนั้นเลย...เหมือนเดิม ไม่รู้ตอบตรงหรือป่าว
Date :
18 ก.ย. 2550 16:11:58
By :
arthiter2000
ขอบคุณค่ะ กะลังเขียน code อยู่ เดี๋ยวติดอะไร จะมา post ถามใหม่นะคะ
Date :
19 ก.ย. 2550 10:29:07
By :
มือใหม่
Load balance : Server 03