จะเขียนโค๊ดเพื่อบล็อกสมาชิกในเว็บต้องเขียนแบบไหนอย่างไรครับ HomeForumจะเขียนโค๊ดเพื่อบล็อกสมาชิกในเว็บต้องเขียนแบบไหนอย่างไรครับ the_ferrary@hotmail.com จะเขียนโค๊ดเพื่อบล็อกสมาชิกในเว็บต้องเขียนแบบไหนอย่างไรครับ กรกฎ วิริยะ คำถามสั้นไปหน่อยนะครับ.... วิธีที่ดีที่สุดคือการป้องกันการ login ครับ ถ้าเขาไม่สามารถ login ได้ เขาก็จะถูกจำกัดความสามารถการใช้งานเว็บได้ครับ (ต้องออกแบบเว็บให้สอดคล้องด้วย) เช่น บอร์ดที่โพสต์โดยสมาชิกเท่านั้น ส่วนวิธีอื่นๆมักไม่ค่อยได้ผลครับ เช่นการ บล๊อก ip หรือ session เพราะค่าเหล่านี้สามารถเปลี่ยนแปลง หรือจำลองได้ครับ ถ้าจะกัน ก็กันได้แค่ชั่วครู่ละครับ the_ferrary@hotmail.com ปัญหาคือว่า ผมจะบล็อกสมาชิกในเว็บ โดยที่เราจะต้องเขียนโค๊ดเอง โดยที่ไม่ต้องไปยุ่งกับดาต้าเบสครับ เงื่อนไขในการ login ผมเขียนแล้วและก็ทำงานได้แล้ว (ที่ทำงานได้เพราะไปเปลี่นในดาต้าเบสให้เป็นค่า 1 ) แต่ติดตรงที่จะเขียนโค๊ดเพื่อทำการเปลี่ยนแปลง เช่น กำหนด 0 ทำงานตามปกติ กำหนด 1 คือการบล็อก กรกฎ วิริยะ อ้างอิงจาก ความคิดเห็น #2ปัญหาคือว่า ผมจะบล็อกสมาชิกในเว็บ โดยที่เราจะต้องเขียนโค๊ดเอง โดยที่ไม่ต้องไปยุ่งกับดาต้าเบสครับ เงื่อนไขในการ login ผมเขียนแล้วและก็ทำงานได้แล้ว (ที่ทำงานได้เพราะไปเปลี่นในดาต้าเบสให้เป็นค่า 1 ) แต่ติดตรงที่จะเขียนโค๊ดเพื่อทำการเปลี่ยนแปลง เช่น กำหนด 0 ทำงานตามปกติ กำหนด 1 คือการบล็อก 555+++ ส่วนที่ยากก็ทำแล้ว แต่ไหงส่วนที่ง่ายๆ ทำไม่ได้หว่า... คำแนะนำคือ ปกติแล้ว เราต้องมีหน้าแก้ไขข้อมูลสมาชิกใช่มั้ยครับ (ที่ส่วนของแอดมิน) ก้แค่เพิ่มช่องกรอกข้อมูลอีกสักอัน เป็น บล๊อก หรือไม่บล๊อก แค่นั้นเองครับ คิดมากไปใยใให้ปวดหัว the_ferrary@hotmail.com ผมเพิ่มข้อมูลแล้ว แต่พอ 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(); ?> ก็เลยไม่รู้ว่ามันผิดตรงไหน หมายเหตุ : ในการอัพเดทข้อมูลสมาชิกส่วนของแอดมิน ผมใช้หลักการเดียวกันกับการลบข้อมูลสมาชิกครับ กรกฎ วิริยะ $sql="update member set status_block='$status_block' where username='$username' "; echo $sql; // debug ลองเอา query ออกมาดูซิครับ ว่ามันเป็นอย่างที่ต้องการหรือเปล่า the_ferrary@hotmail.com ผลลัพธ์ออกมา คือ update member set status_block='' where username='1234' เป็นอย่างที่ต้องการ แต่ค่าที่ได้กลับ ว่าง ครับ the_ferrary@hotmail.com ค่าว่างคือไม่มีค่าที่อัพเดทครับ ยังคงเป็นค่าเดิม กรกฎ วิริยะ 555++ ดูจาก query ก็เห็นที่ผิดชัดเจนนี่ครับ status_block='' ตกลงมันจะเป็นค่าอะไรล่ะ หาให้เจอว่ามันหายไปไหนครับ the_ferrary@hotmail.com ผมหาเจอแล้วครับ ผมเขียนเงื่อนไขเพิ่้มเป็น 2 เงือนไข ขอบคุณคุณมากครับ ขอเรียกว่าอาจารย์เลยแล้วกัยครับ ขอบคุณอาจราย์ระครับ ผมไม่น่าไปคิดมากให้มันยากเลย ความจริงมันไม่ยากเลยนะครับ ถ้าเราค่อยๆไล่โค๊ด กรกฎ วิริยะ อ้างอิงจาก ความคิดเห็น #9ผมหาเจอแล้วครับ ผมเขียนเงื่อนไขเพิ่้มเป็น 2 เงือนไข ขอบคุณคุณมากครับ ขอเรียกว่าอาจารย์เลยแล้วกัยครับ ขอบคุณอาจราย์ระครับ ผมไม่น่าไปคิดมากให้มันยากเลย ความจริงมันไม่ยากเลยนะครับ ถ้าเราค่อยๆไล่โค๊ด ดูจากโค้ด ไม่เห็นการรับค่าตัวแปร และ ถ้า $status_block เป็น 1 กับ 0 สิ่งที่ควรทำคือ $status_block = intval($_GET['status_block']); // หรือ $_POST ความคิดเห็น รายละเอียด ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M ส่งความคิดเห็น
วิธีที่ดีที่สุดคือการป้องกันการ login ครับ ถ้าเขาไม่สามารถ login ได้ เขาก็จะถูกจำกัดความสามารถการใช้งานเว็บได้ครับ (ต้องออกแบบเว็บให้สอดคล้องด้วย) เช่น บอร์ดที่โพสต์โดยสมาชิกเท่านั้น
ส่วนวิธีอื่นๆมักไม่ค่อยได้ผลครับ เช่นการ บล๊อก ip หรือ session เพราะค่าเหล่านี้สามารถเปลี่ยนแปลง หรือจำลองได้ครับ ถ้าจะกัน ก็กันได้แค่ชั่วครู่ละครับ
เงื่อนไขในการ login ผมเขียนแล้วและก็ทำงานได้แล้ว (ที่ทำงานได้เพราะไปเปลี่นในดาต้าเบสให้เป็นค่า 1 )
แต่ติดตรงที่จะเขียนโค๊ดเพื่อทำการเปลี่ยนแปลง
เช่น
กำหนด 0 ทำงานตามปกติ
กำหนด 1 คือการบล็อก
555+++ ส่วนที่ยากก็ทำแล้ว แต่ไหงส่วนที่ง่ายๆ ทำไม่ได้หว่า...
คำแนะนำคือ ปกติแล้ว เราต้องมีหน้าแก้ไขข้อมูลสมาชิกใช่มั้ยครับ (ที่ส่วนของแอดมิน) ก้แค่เพิ่มช่องกรอกข้อมูลอีกสักอัน เป็น บล๊อก หรือไม่บล๊อก แค่นั้นเองครับ คิดมากไปใยใให้ปวดหัว
เช่น
แก้ไขให้เป็น 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();
?>
ก็เลยไม่รู้ว่ามันผิดตรงไหน
หมายเหตุ : ในการอัพเดทข้อมูลสมาชิกส่วนของแอดมิน ผมใช้หลักการเดียวกันกับการลบข้อมูลสมาชิกครับ
echo $sql; // debug
ลองเอา query ออกมาดูซิครับ ว่ามันเป็นอย่างที่ต้องการหรือเปล่า
update member set status_block='' where username='1234'
เป็นอย่างที่ต้องการ
แต่ค่าที่ได้กลับ ว่าง ครับ
ดูจาก query ก็เห็นที่ผิดชัดเจนนี่ครับ status_block='' ตกลงมันจะเป็นค่าอะไรล่ะ หาให้เจอว่ามันหายไปไหนครับ
ผมเขียนเงื่อนไขเพิ่้มเป็น 2 เงือนไข
ขอบคุณคุณมากครับ
ขอเรียกว่าอาจารย์เลยแล้วกัยครับ
ขอบคุณอาจราย์ระครับ
ผมไม่น่าไปคิดมากให้มันยากเลย ความจริงมันไม่ยากเลยนะครับ
ถ้าเราค่อยๆไล่โค๊ด
ดูจากโค้ด ไม่เห็นการรับค่าตัวแปร และ ถ้า $status_block เป็น 1 กับ 0 สิ่งที่ควรทำคือ
$status_block = intval($_GET['status_block']); // หรือ $_POST