Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > PHP & SQL ว่าด้วยระบบสมัครสมาชิก[Register] และ แก้ไขข้อมูล [Edit_profile]>>ข้อมูล+ตัวอย่างพร้อมช่วยผมที!



 

PHP & SQL ว่าด้วยระบบสมัครสมาชิก[Register] และ แก้ไขข้อมูล [Edit_profile]>>ข้อมูล+ตัวอย่างพร้อมช่วยผมที!

 



Topic : 073242



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์




PHP & SQL

ปัญหา มี 2 ข้อหลักๆ
1.
จาก
https://www.thaicreate.com/community/php-mysql-login-form-check-username-password.html


ตรง edit_profile.php จะมี Code ในการแก้ไขข้อมูล แต่มันสามารถแก้ไขได้ทุกอย่าง โดยที่ User ก็ทำได้แบบเดียวกับ Admin

ซึ่งผมอยากจะให้ ID ที่ Status = User มองไม่เห็น การแก้ไขในส่วน ของ User ID และ Status [จากในรูป user สามารถแก้ไขได้]

1)จำเป็นจะต้องใช้ If($status == "ADMIN') ไช่ไหม ?
2)แต่ผมอยากจะถามว่า แล้วเราจำเป็นจะต้องดึง ข้อมูล Status จาก DB มาด้วยเพื่อจะได้เอาไว้เปรียบเทียบ ไช่ไหมครับ ?
3)แล้วเราจะดึงยังไง ? โดยที่เอามาแค่ id ที่มาแก่ไข


2.
จาก
https://www.thaicreate.com/community/php-mysql-member-register-form.html

เมื่อผมทำการสมัครสมาชิกครั้งแรก ทุกอย่างเป็นไปอย่างปกติ แต่แล้ว เมื่อสมัครสมาชิกครั้งต่อไป ข้อมูลต่างๆ มันไม่ save ลง DB
เพราะว่า UserID ที่มันใช้สมัครมันดันเป็น 0 ตลอด เมื่อใน DB มี UserID เหมือนกัน ข้อมุลก็เลยไม่ได้ save ลง DB มั้ง

1)ผมก็เลยอยากจะถามว่า จะต้องทำแบบไหน ให้ UserID ที่สมัคร +1 ไปเรื่อยๆ เช่น สมัครครั้งแรก เป็น UserID = 0 ต่อไป User = 1 ต่อไปก็ +1 ไปเรื่อยๆ

โดยไม่ต้องไปแก้ ใน phpmyadmin



Tag : PHP, MySQL, HTML/CSS, CakePHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-02-04 20:14:39 By : botxxx View : 4291 Reply : 4
 

 

No. 1



โพสกระทู้ ( 44 )
บทความ ( 0 )



สถานะออฟไลน์


จริงๆไม่จำเป็นหรอกครับที่ต้องดึงมาเปรียบเทียบเพราะของผมใช้

index.php
Code (PHP)
<?
	if($_SESSION["Status"] == "ADMIN")
	{
		header("Location: admin_page.php");
	}
	else
	{
		header("Location: user_page.php");
	}	
?>


user_page.php เฉพาะส่วนต้นที่ไว้ติดต่อ DB
Code (PHP)
<?
	session_start();
	if($_SESSION['UserID'] == "")
	{
		echo "Please Login!";
		header("Location: login.php");
		exit();
	}
	
	
	mysql_connect("localhost","root","1234");
	mysql_select_db("member");
	$strSQL = "SELECT * FROM member WHERE UserID = '".$_SESSION['UserID']."' ";
	$objQuery = mysql_query($strSQL);
	$objResult = mysql_fetch_array($objQuery);
?>


เพราะของผมออกแบบหน้าแรกที่ login.php แทนครับเพราะหน้านั้นไม่มีการติดต่อ DB มันเป็นแค่ form เฉยๆเราเลยออกแบบได้ง่ายกว่าครับ
ลองนำที่ผมใช้ไปเป็นแนวทางดูได้ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-04 20:49:30 By : maruey00
 


 

No. 2



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : maruey00 เมื่อวันที่ 2012-02-04 20:49:30
รายละเอียดของการตอบ ::
Code อันแรกที่ให้มา อันนั้นมันไม่เกี่ยวกับคำถามนะครับ ตรงนั้นผมเข้าใจแล้ว แต่มันติดตรงที่ จาก code ต่อไปนี้ [สงสัยคำพูดผมอ่านไม่เข้าใจ แห่ๆ Sorry ]
Code (PHP)
<?
	session_start();
	if($_SESSION['UserID'] == "")
	{
		echo "Please Login!";
		exit();
	}
	
	mysql_connect("localhost","root","root");
	mysql_select_db("mydatabase");
	$strSQL = "SELECT * FROM member WHERE UserID = '".$_SESSION['UserID']."' ";
	$objQuery = mysql_query($strSQL);
	$objResult = mysql_fetch_array($objQuery);
?>
<html>
<head>
<title>ThaiCreate.Com Tutorials</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>
<body>
<form name="form1" method="post" action="save_profile.php">
  Edit Profile! <br>
  <table width="400" border="1" style="width: 400px">
    <tbody>
      <tr>
        <td width="125"> &nbsp;UserID</td>
        <td width="180">
          <?=$objResult["UserID"];?>
        </td>
      </tr>
      <tr>
        <td> &nbsp;Username</td>
        <td>
          <?=$objResult["Username"];?>
        </td>
      </tr>
      <tr>
        <td> &nbsp;Password</td>
        <td><input name="txtPassword" type="password" id="txtPassword" value="<?=$objResult["Password"];?>">
        </td>
      </tr>
      <tr>
        <td> &nbsp;Confirm Password</td>
        <td><input name="txtConPassword" type="password" id="txtConPassword" value="<?=$objResult["Password"];?>">
        </td>
      </tr>
      <tr>
        <td>&nbsp;Name</td>
        <td><input name="txtName" type="text" id="txtName" value="<?=$objResult["Name"];?>"></td>
      </tr>
      <tr>
        <td> &nbsp;Status</td>
        <td>
          <?=$objResult["Status"];?>
        </td>
      </tr>
    </tbody>
  </table>
  <br>
  <input type="submit" name="Submit" value="Save">
</form>
</body>
</html>


จะเห็นได้ว่า ไม่ว่าจะเป็น User หรือ admin ก็แก้ไข UserID และ Status ได้ ซึ่งผมอยากจะใช้ If() มาเปรียบเทียบ ในการแสดงช่องการแก่ไขข้อมูล โดยที่ถ้าเป็น User จะเห็นช่องอื่นๆ ที่ไม่ไช่ UserID กับ Status แต่ถ้าเป็น Admin จะเห็นทุกช่อง ซึ่งใช้ if น่าจะได้แต่ผมจะดึง Status จาก DB ของ User ที่ login มาใช้ยังไง แค่นั้นละ


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-04 21:00:11 By : botxxx
 

 

No. 3



โพสกระทู้ ( 44 )
บทความ ( 0 )



สถานะออฟไลน์


อ่อผมว่าเป็นไฟล์ .sql ของคุณอ่ะครับต้องมีปัญหาเพราะผมทำตามที่พี่วินเค้าสอนยังทำได้เลยครับ

Code (PHP)
CREATE TABLE `member` (
`UserID` int(3) unsigned zerofill NOT NULL auto_increment,
`Username` varchar(20) NOT NULL,
`Password` varchar(20) NOT NULL,
`Name` varchar(100) NOT NULL,
`Status` enum('ADMIN','USER') NOT NULL default 'USER',
PRIMARY KEY (`UserID`),
UNIQUE KEY `Username` (`Username`)
) ENGINE=MyISAM AUTO_INCREMENT=1 ;


ลองใช้โค๊ดนี้ดูครับ


ประวัติการแก้ไข
2012-02-04 21:02:40
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-04 21:02:11 By : maruey00
 


 

No. 4



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ไอ้ตรง สร้าง table มันก็ทำอะไรได้ปกตินั้นละครับ

แต่ว่า ผมอยากจะเอา code หน้า edit_profile page ไปแต่งเฉยๆ

อ้างอิงจาก coment ที่ 2 จะเห็นได้ว่า ไม่ว่า status user หรือ admin มันก็แก้ไข ได้เหมือนกัน ซึ้งผมไม่อยากได้แบบนี้

ผมอยากได้ แบบ admin แก้ได้ทุกอย่าง ส่วน user จะมองไม่เห็นช่องแก้ไข ในส่วนของ userID และ Status
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-05 11:15:23 By : botxxx
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : PHP & SQL ว่าด้วยระบบสมัครสมาชิก[Register] และ แก้ไขข้อมูล [Edit_profile]>>ข้อมูล+ตัวอย่างพร้อมช่วยผมที!
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่