จะเขียนโค๊ดเพื่อบล็อกสมาชิกในเว็บต้องเขียนแบบไหนอย่างไรครับ
คำถามสั้นไปหน่อยนะครับ....
วิธีที่ดีที่สุดคือการป้องกันการ login ครับ ถ้าเขาไม่สามารถ login ได้ เขาก็จะถูกจำกัดความสามารถการใช้งานเว็บได้ครับ (ต้องออกแบบเว็บให้สอดคล้องด้วย) เช่น บอร์ดที่โพสต์โดยสมาชิกเท่านั้น
ส่วนวิธีอื่นๆมักไม่ค่อยได้ผลครับ เช่นการ บล๊อก ip หรือ session เพราะค่าเหล่านี้สามารถเปลี่ยนแปลง หรือจำลองได้ครับ ถ้าจะกัน ก็กันได้แค่ชั่วครู่ละครับ
วิธีที่ดีที่สุดคือการป้องกันการ login ครับ ถ้าเขาไม่สามารถ login ได้ เขาก็จะถูกจำกัดความสามารถการใช้งานเว็บได้ครับ (ต้องออกแบบเว็บให้สอดคล้องด้วย) เช่น บอร์ดที่โพสต์โดยสมาชิกเท่านั้น
ส่วนวิธีอื่นๆมักไม่ค่อยได้ผลครับ เช่นการ บล๊อก ip หรือ session เพราะค่าเหล่านี้สามารถเปลี่ยนแปลง หรือจำลองได้ครับ ถ้าจะกัน ก็กันได้แค่ชั่วครู่ละครับ
ปัญหาคือว่า ผมจะบล็อกสมาชิกในเว็บ โดยที่เราจะต้องเขียนโค๊ดเอง โดยที่ไม่ต้องไปยุ่งกับดาต้าเบสครับ
เงื่อนไขในการ login ผมเขียนแล้วและก็ทำงานได้แล้ว (ที่ทำงานได้เพราะไปเปลี่นในดาต้าเบสให้เป็นค่า 1 )
แต่ติดตรงที่จะเขียนโค๊ดเพื่อทำการเปลี่ยนแปลง
เช่น
กำหนด 0 ทำงานตามปกติ
กำหนด 1 คือการบล็อก
เงื่อนไขในการ login ผมเขียนแล้วและก็ทำงานได้แล้ว (ที่ทำงานได้เพราะไปเปลี่นในดาต้าเบสให้เป็นค่า 1 )
แต่ติดตรงที่จะเขียนโค๊ดเพื่อทำการเปลี่ยนแปลง
เช่น
กำหนด 0 ทำงานตามปกติ
กำหนด 1 คือการบล็อก
ใบเสนอราคาโดย หมายเหตุ #2ปัญหาคือว่า ผมจะบล็อกสมาชิกในเว็บ โดยที่เราจะต้องเขียนโค๊ดเอง โดยที่ไม่ต้องไปยุ่งกับดาต้าเบสครับ
เงื่อนไขในการ login ผมเขียนแล้วและก็ทำงานได้แล้ว (ที่ทำงานได้เพราะไปเปลี่นในดาต้าเบสให้เป็นค่า 1 )
แต่ติดตรงที่จะเขียนโค๊ดเพื่อทำการเปลี่ยนแปลง
เช่น
กำหนด 0 ทำงานตามปกติ
กำหนด 1 คือการบล็อก
555+++ ส่วนที่ยากก็ทำแล้ว แต่ไหงส่วนที่ง่ายๆ ทำไม่ได้หว่า...
คำแนะนำคือ ปกติแล้ว เราต้องมีหน้าแก้ไขข้อมูลสมาชิกใช่มั้ยครับ (ที่ส่วนของแอดมิน) ก้แค่เพิ่มช่องกรอกข้อมูลอีกสักอัน เป็น บล๊อก หรือไม่บล๊อก แค่นั้นเองครับ คิดมากไปใยใให้ปวดหัว
ผมเพิ่มข้อมูลแล้ว แต่พอ action ไปยังหน้าอัพเดท แต่มันกลับกลายเป็นลบข้อมูลในส่วนั้นออก
เช่น
แก้ไขให้เป็น 1 แล้วก็กดอัพเดทโดยผ่านหน้าโค๊ดตามด้านล่างนี้
<?
mysql_connect("localhost","root","1234");
mysql_select_db("life_style");
$sql="update member set status_block='$status_block' where username='$username' ";
$query = mysql_query($sql);
if($query)
{
echo"0";
} else {
echo "1";
}
mysql_close();
?>
ก็เลยไม่รู้ว่ามันผิดตรงไหน
หมายเหตุ : ในการอัพเดทข้อมูลสมาชิกส่วนของแอดมิน ผมใช้หลักการเดียวกันกับการลบข้อมูลสมาชิกครับ
เช่น
แก้ไขให้เป็น 1 แล้วก็กดอัพเดทโดยผ่านหน้าโค๊ดตามด้านล่างนี้
<?
mysql_connect("localhost","root","1234");
mysql_select_db("life_style");
$sql="update member set status_block='$status_block' where username='$username' ";
$query = mysql_query($sql);
if($query)
{
echo"0";
} else {
echo "1";
}
mysql_close();
?>
ก็เลยไม่รู้ว่ามันผิดตรงไหน
หมายเหตุ : ในการอัพเดทข้อมูลสมาชิกส่วนของแอดมิน ผมใช้หลักการเดียวกันกับการลบข้อมูลสมาชิกครับ
$sql="update member set status_block='$status_block' where username='$username' ";
echo $sql; // debug
ลองเอา query ออกมาดูซิครับ ว่ามันเป็นอย่างที่ต้องการหรือเปล่า
echo $sql; // debug
ลองเอา query ออกมาดูซิครับ ว่ามันเป็นอย่างที่ต้องการหรือเปล่า
ผลลัพธ์ออกมา คือ
update member set status_block='' where username='1234'
เป็นอย่างที่ต้องการ
แต่ค่าที่ได้กลับ ว่าง ครับ
update member set status_block='' where username='1234'
เป็นอย่างที่ต้องการ
แต่ค่าที่ได้กลับ ว่าง ครับ
ค่าว่างคือไม่มีค่าที่อัพเดทครับ ยังคงเป็นค่าเดิม
555++
ดูจาก query ก็เห็นที่ผิดชัดเจนนี่ครับ status_block='' ตกลงมันจะเป็นค่าอะไรล่ะ หาให้เจอว่ามันหายไปไหนครับ
ดูจาก query ก็เห็นที่ผิดชัดเจนนี่ครับ status_block='' ตกลงมันจะเป็นค่าอะไรล่ะ หาให้เจอว่ามันหายไปไหนครับ
ผมหาเจอแล้วครับ
ผมเขียนเงื่อนไขเพิ่้มเป็น 2 เงือนไข
ขอบคุณคุณมากครับ
ขอเรียกว่าอาจารย์เลยแล้วกัยครับ
ขอบคุณอาจราย์ระครับ
ผมไม่น่าไปคิดมากให้มันยากเลย ความจริงมันไม่ยากเลยนะครับ
ถ้าเราค่อยๆไล่โค๊ด
ผมเขียนเงื่อนไขเพิ่้มเป็น 2 เงือนไข
ขอบคุณคุณมากครับ
ขอเรียกว่าอาจารย์เลยแล้วกัยครับ
ขอบคุณอาจราย์ระครับ
ผมไม่น่าไปคิดมากให้มันยากเลย ความจริงมันไม่ยากเลยนะครับ
ถ้าเราค่อยๆไล่โค๊ด
ใบเสนอราคาโดย หมายเหตุ #9ผมหาเจอแล้วครับ
ผมเขียนเงื่อนไขเพิ่้มเป็น 2 เงือนไข
ขอบคุณคุณมากครับ
ขอเรียกว่าอาจารย์เลยแล้วกัยครับ
ขอบคุณอาจราย์ระครับ
ผมไม่น่าไปคิดมากให้มันยากเลย ความจริงมันไม่ยากเลยนะครับ
ถ้าเราค่อยๆไล่โค๊ด
ดูจากโค้ด ไม่เห็นการรับค่าตัวแปร และ ถ้า $status_block เป็น 1 กับ 0 สิ่งที่ควรทำคือ
$status_block = intval($_GET['status_block']); // หรือ $_POST