|
|
|
ขอเทคนิคเกี่ยวกับการอัพโหลดไฟล์แบบแยกเก็บเป็นไอดีของผู้ใช้คนนั้นเลยครับ |
|
|
|
|
|
|
|
ขอเทคนิคเกี่ยวกับการอัพโหลดไฟล์แบบแยกเก็บเป็นไอดีของผู้ใช้คนนั้นเลยครับ พอดีว่าติดปัญหาตรงที่ตอนนี้ทุกไอดีเห็นหมด อยากจะให้เก็บไฟล์อัพโหลดเป็นของผู้ใช้คนนั้นไปเลยครับ
- เช่น ชื่อผู้ใช้ A ทำการอัพโหลดไฟล์เข้าไปเก็บในฐานข้อมูลแล้วโชว์ไฟล์ออกมาเป็นผลงานของตัวเองเหมือนกับระบบแฟ้มสะสมงานครับ
- ผู้ใช้ A สามารถแก้ไขและลบไฟล์ได้ ดาวน์โหลดไฟล์ได้ ส่วนคนอื่นสามารถดาวน์โหลดไฟล์ได้ ไม่สามารถลบและแก้ไขไฟล์ผลงานของผู้ใช้ A ได้
- ส่วนฐานข้อมูลนั้นผมมีอยู่ 2 ตารางครับ คือตาราง tbl_member ใช้เก็บข้อมูลสมาชิก และตาราง works ใช้เก็บไฟล์อัพโหลด
Code (SQL)
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- ฐานข้อมูล: `portfolio`
--
-- --------------------------------------------------------
--
-- โครงสร้างตาราง `tbl_member`
--
CREATE TABLE `tbl_member` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(15) NOT NULL,
`password` varchar(15) NOT NULL,
`name` varchar(50) NOT NULL,
`address` text NOT NULL,
`phone` varchar(10) NOT NULL,
`type_id` int(1) NOT NULL,
`birthday` date NOT NULL,
`university` varchar(50) NOT NULL,
`faculty` varchar(50) NOT NULL,
`branch` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`adminname` varchar(5) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=15 ;
--
-- dump ตาราง `tbl_member`
--
INSERT INTO `tbl_member` VALUES (1, 'admin', '1234', 'ธนาจักร สุขยิ่ง', '1234/55555', '801325002', 1, '1991-07-10', 'dfgh', '', '', '', 'admin');
INSERT INTO `tbl_member` VALUES (2, 'root', '1234', 'โซเซเซอร์', 'cyjgnvghvgh ', 'dfbgxdgdzx', 0, '0000-00-00', 'sdfzedrfdvxcf', 'dxhfyhxfbxdfgx', 'fthxfhxfghbxcv', 'bxdthcfgbxftjh', '');
INSERT INTO `tbl_member` VALUES (3, 'wergill', '1234', 'ยุทธนา', '123456/87', '857117002', 2, '0000-00-00', '', '', '', '', '');
INSERT INTO `tbl_member` VALUES (4, 'sora', '123456', 'โซร่าอาโออิ', '23456/111', '801234567', 0, '0000-00-00', '', '', '', '', '');
INSERT INTO `tbl_member` VALUES (13, 'mansom', '1234', 'แก้วมาลูน', '1223333', '', 0, '0000-00-00', '', '', '', '', '');
INSERT INTO `tbl_member` VALUES (14, 'gmail', '1234', 'น้องฝ้าย', '1234/555', '', 2, '0000-00-00', '', '', '', '', '');
-- --------------------------------------------------------
--
-- โครงสร้างตาราง `works`
--
CREATE TABLE `works` (
`FilesID` int(4) NOT NULL auto_increment,
`Name` varchar(200) NOT NULL,
`FilesName` blob NOT NULL,
`id` int(11) NOT NULL,
PRIMARY KEY (`FilesID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=23 ;
--
-- dump ตาราง `works`
--
INSERT INTO `works` VALUES (22, 'รูป 1', 0x737264746667682e504e47, 0);
INSERT INTO `works` VALUES (21, 'รูป 2', 0x5365617263684d656d6265722e706e67, 0);
INSERT INTO `works` VALUES (20, 'รูป 3', 0x4d656d6265724d616e6167652e676966, 0);
ตอนนี้ปัญหาก็คือผู้ใช้ A อัพโหลดไฟล์เข้าไปแล้ว ผู้ใช้อื่นสามารถทำได้หมดทุกอย่างเลยครับ ผมไม่รู้จะทำยังไงแล้วครับ คลิบสอนแบบนี้มันไม่มีเลยครับผม ไม่รู้ว่าผมอธิบายถูกรึเปล่า ยังไงก็ช่วยบอกเทคนิควิธีหรือขอโค้ตโปรแกรมด้วยอ่าครับ ขอบคุณครับ
Tag : PHP, MySQL
|
ประวัติการแก้ไข 2014-01-28 21:01:08 2014-01-28 21:02:51
|
|
|
|
|
Date :
2014-01-28 20:58:47 |
By :
wergill |
View :
839 |
Reply :
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
id ของตาราง works น่าจะเป็นเลข id ของตาราง tbl_member เช่น ไฟล์ รูปที่ 1 ถ้ามีค่า id = 1 แปลว่าเป็นของ admin
|
|
|
|
|
Date :
2014-01-28 22:33:53 |
By :
ginuwine72 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SELECT a.id, b.FilesID FROM tbl_member a
LEFT JOIN works b ON a.id = b.id
ขอดูเงื่อนไขที่คุณสร้างหน่อยครับ
|
ประวัติการแก้ไข 2014-01-28 22:34:23 2014-01-28 22:37:25 2014-01-28 22:41:20
|
|
|
|
Date :
2014-01-28 22:33:43 |
By :
kenghockey |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าเป็นผมผมจะไม่สนฐานข้อมูลเลย. . . แต่ผมจะมองที่ output ฐานข้อมูลยังไงช่างมันซ่อนปุ่มกดเอา
Code (PHP)
if(เป็นของuserคนนี้นะ) { โชว์รูปภาพปุ่มกดพร้อมลิ้ง}else{ปุ่มนี้ไม่โชว์}
|
|
|
|
|
Date :
2014-01-28 23:56:05 |
By :
meannerss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|