วันอาทิตย์ที่ 27 พฤศจิกายน พ.ศ. 2559

[Mobile App] Alz Calendar 365 วันป้องกันอัลไซเมอร์


          ศูนย์ความเป็นเลิศด้านชีววิทยาศาสตร์ (TCELS) กระทรวงวิทยาศาสตร์และเทคโนโลยี ร่วมกับมูลนิธิโรคอัลไซเมอร์แห่งประเทศไทยได้ออกแอปพลิเคชันเพื่อช่วยลดความเสี่ยงในการเกิดโรคอัลไซเมอร์ที่ชื่อ Alz Calendar หรือ "365 วันป้องกันอัลไซเมอร์" โดยแอปพลิเคชั่นนี้จะเป็นเกมให้เพื่อน ๆ ได้ฝึกฝนและออกกำลังสมองทั้ง 365 วัน แบ่งเป็นวันละเกมที่จะช่วยฝึกการทำงานของสมองในด้านต่าง ๆ ทำให้เพื่อน ๆ เกิดกิจกรรมการออกกำลังสมองเพื่อลดความเสี่ยงในการเกิดโรคอัลไซเมอร์


          แอปพลิเคชั่นเกมนี้มีการใช้งานที่ง่ายมาก เมื่อเปิดเข้ามาแล้วก็จะเจอกับหน้าแสดงวันที่เล่นซึ่งจะบอกว่าเพื่อน ๆ เล่นเกมนี้เป็นวันที่เท่าไหร่ แล้วก็มีปุ่มให้กด 3 ปุ่ม

 
          ปุ่มปฏิทิน: ปุ่มนี้อยู่ล่างซ้าย เมื่อกดแล้วก็จะแสดงปฏิทินพร้อมทั้งจำนวนวันที่เพื่อน ๆ ได้เล่นเกมผ่านแล้ว

          ปุ่มเกี่ยวกับ: ปุ่มนี้จะอยู่ล่างขวา ซึ่งกดแล้วก็จะแสดงข้อมูลรายละเอียดเกี่ยวกับแอปพลิเคชั่นและหน่วยงานที่สนับสนุนในการพัฒนาแอปพลิเคชั่นพร้อมทั้งช่องทางติดต่อ นอกจากนี้ยังสามารถโทรติดต่อหน่วยงานดังกล่าวได้ทันที

 
 
          ปุ่มทดสอบ: ปุ่มนี้อยู่ตรงกลางหน้าจอ เมื่อกดแล้วก็จะเป็นการเริ่มเกม ซึ่งจะมีให้เล่นวันละเกม โดยในแต่ละวันก็จะเป็นเกมที่ไม่ซ้ำกัน บางเกมก็ไม่มีปุ่มให้กดตอบ บางเกมหลังจากเล่นเสร็จแล้วก็จะแสดงเวลาที่ใช้ในการเล่นเกม เมื่อเล่นจบแล้วสามารถย้อนกลับมาเล่นซ้ำได้อีก

          โดยส่วนตัวแล้วรู้สึกว่าเป็นแอปพลิเคชั่นที่ดี ถึงบางเกมจะง่ายไป พอเล่นเกมซ้ำแล้วคำตอบทุกอย่างไม่มีการสลับเปลี่ยนหรือย้ายที่ แถมยังไม่สามารถเลือกเกมที่จะเล่นได้อีก แต่เนื่องจากความง่ายในการใช้งานทำให้ไม่ต้องใช้เวลานานในการที่ผู้สูงอายุจะทำความเข้าใจในการเล่นเกม แอปพลิเคชั่นนี้สามารถดาวน์โหลดได้แล้วทั้งในระบบ Android และ iOS แต่สำหรับในระบบ Android จำเป็นต้องดาวน์โหลด Adobe AIR ก่อนถึงจะใช้งานได้ (ดาวน์โหลด Adobe AIR ได้ ที่นี่)




วันพฤหัสบดีที่ 24 พฤศจิกายน พ.ศ. 2559

[PHP] ตอนที่ 7: การทำซ้ำ


          บ่อยครั้งในการเขียนโปรแกรมที่เราต้องการให้โค้ดส่วนหนึ่งมีการทำงานซ้ำ ๆ แทนที่เราจะทำการ copy โค้ดบรรทัดนั้นมาวางในบรรทัดต่อ ๆ ไป เราสามารถใช้คำสั่งทำซ้ำเพื่อลดการเขียนโค้ดซ้ำ โดยในคำสั่งทำซ้ำโปรแกรมจะทำงานซ้ำไปเรื่อย ๆ เท่ากับจำนวนครั้งตามเงื่อนไขที่กำหนดไว้ หมายความว่าถ้ายังตรงตามเงื่อนไขอยู่โปรแกรมก็จะทำงานซ้ำต่อไป ซึ่งอาจเกิดกรณีเลวร้ายที่โปรแกรมทำงานซ้ำไปเรื่อย ๆ ไม่มีที่สิ้นสุดได้ ดังนั้นเราจึงจำเป็นต้องกำหนดเงื่อนไขอย่างระมัดระวัง คำสั่งสำหรับการทำซ้ำแบ่งออกเป็นคำสั่ง while , คำสั่ง do...while , คำสั่ง for  และคำสั่ง foreach

คำสั่ง while


<?php

/********** Syntax **********/
while( เงื่อนไข )
{
 //การทำงาน
} 

/********** ตัวอย่าง **********/
$count = 1;
while( $count <= 5 )
{
    echo "นับหมายเลข: $x <br>";
    $count++; // ทำการเพิ่มค่าให้กับตัวแปร $count ไปอีก 1 ค่า
} 

?>
          คำสั่ง while( เงื่อนไข ) จะทำงานโดยการเช็คเงื่อนไขภายในวงเล็บก่อน ถ้าเงื่อนไขนั้นเป็นจริง โปรแกรมจะทำงานตามโค้ดที่ระบุไว้ภายในปีกกา และจะทำงานซ้ำต่อไปเรื่อย ๆ จนกว่าเงื่อนไขนั้นจะเป็นเท็จ จากตัวอย่างจะเห็นได้ว่าถ้าไม่มีคำสั่งสำหรับเพิ่มค่าให้กับตัวแปร $count โปรแกรมจะทำงานซ้ำต่อไปเรื่อย ๆ ไม่มีที่สิ้นสุด ดังนั้นเวลาเพื่อน ๆ ใช้งานคำสั่ง while( เงื่อนไข ) จะต้องตรวจสอบว่าเงื่อนไขมีจุดสิ้นสุดก่อนเสมอ

คำสั่ง do...while


<?php

/********** Syntax **********/
do
{
 //การทำงาน
} while( เงื่อนไข )

/********** ตัวอย่าง **********/
$count = 1;
do
{
    echo "นับหมายเลข: $count <br>";
    $count++; // ทำการเพิ่มค่าให้กับตัวแปร $count ไปอีก 1 ค่า
} while( $count <= 5 );

?>
          คำสั่ง do...while( เงื่อนไข ) จะมีการทำงานคล้าย ๆ กับคำสั่ง while( เงื่อนไข ) แต่มีจุดที่ต่างกันเล็กน้อยคือคำสั่ง do...while( เงื่อนไข ) จะทำงานตามโค้ดที่ระบุไว้ภายในปีกกาก่อนครั้งนึง แล้วจึงจะตรวจสอบเงื่อนไขภายในวงเล็บ ถ้าเงื่อนไขนั้นเป็นจริงก็จะทำงานซ้ำต่อ แต่ถ้าเงื่อนไขนั้นเป็นเท็จก็จะหยุดทำงาน

คำสั่ง for


<?php

/********** Syntax **********/
for( กำหนดค่า; เงื่อนไข; เพิ่มหรือลดค่า; )
{
 //การทำงาน
}

/********** ตัวอย่าง **********/
for( $count = 0; $count <= 9; $count++; )
{
    echo "หมายเลข: $count <br>";
}

?>
          คำสั่ง for( กำหนดค่า; เงื่อนไข; เพิ่มหรือลดค่า; ) เหมาะสำหรับการใช้งานในกรณีที่เราคาดเดาได้ว่าจะต้องทำซ้ำเป็นจำนวนเท่าไหร่ โดยในวงเล็บจะมีการกำหนดต่าง ๆ ดังนี้
  • กำหนดค่า: เป็นการกำหนดค่าเริ่มต้นของในการทำซ้ำ
  • เงื่อนไข: เป็นการกำหนดเงื่อนไข ถ้าเงื่อนไขเป็นจริงก็จะทำการวนซ้ำต่อ แต่ถ้าเงื่อนไขเป็นเท็จก็จะหยุดการทำงานทันที
  • เพิ่มหรือลดค่า: เป็นการเพิ่มหรือลดค่าเริ่มต้น
          เนื่องจากมีการกำหนดค่าต่าง ๆ ไว้ในวงเล็บที่คำสั่ง for จึงทำให้ง่ายที่จะตรวจสอบว่าคำสั่งนี้มีจุดสิ้นสุดการทำซ้ำหรือเปล่า จึงช่วยลดโอกาสที่โปรแกรมจะทำงานต่อไปเรื่อย ๆ ได้

คำสั่ง foreach


<?php

/********** Syntax **********/
foreach( ตัวแปรอะเรย์ as ค่าอ้างอิง=>ค่าที่เก็บไว้ )
{
 //การทำงาน
}

/********** ตัวอย่าง **********/
$dayList = array("วันจันทร์", "วันอังคาร", "วันพุธ", "วันพฤหัสบดี", "วันศุกร์", "วันเสาร์", "วันอาทิตย์");
foreach( $dayList as $key=>$value )
{
    echo "วันที่ $key คือ $value <br>";
}

?>
          คำสั่ง foreach( ตัวแปรอะเรย์ as ค่าอ้างอิง=>ค่าที่เก็บไว้ ) เป็นคำสั่งที่ใช้งานกับตัวแปร array เท่านั้น ทุก ๆ ครั้งที่วนรอบก็จะแสดงค่าถัดไปที่อยู่ในตัวแปรโดย
  • ค่าอ้างอิง: คือตัวที่ใช้สำหรับอ้างอิงถึงค่าที่เก็บไว้
  • ค่าที่เก็บไว้: คือค่าที่เก็บไว้ในตัวแปร array ซึ่งจะเข้าถึงได้โดยการระบุ ค่าอ้างอิง

คำสั่ง break


<?php

/********** Syntax **********/
while( เงื่อนไข )
{
 //การทำงาน
 break;
}

/********** ตัวอย่าง **********/
$count = 1;
while( $count <= 50 )
{
    echo "นับหมายเลข: $count <br>";
    $count++; // ทำการเพิ่มค่าให้กับตัวแปร $count ไปอีก 1 ค่า
    
    if( $count == 20 )
    {
        break;
    }
} 

?>
          คำสั่ง break เป็นคำสั่งที่ใช้สำหรับออกจากการทำงานและลงไปทำงานคำสั่งถัดไป โดยเพื่อน ๆ ได้เห็นคำสั่งนี้แล้วใน บทความตอนที่แล้ว ซึ่งถ้าเอามาใช้งานภายในคำสั่งทำซ้ำก็จะเป็นการออกจากการทำซ้ำทันที สามารถใช้คำสั่งนี้เพื่อป้องกันกรณีที่โปรแกรมทำงานซ้ำไปเรื่อย ๆ ไม่มีที่สิ้นสุดได้

          ในบทความตอนนี้เพื่อน ๆ จะได้เรียนรู้เกี่ยวกับคำสั่งทำซ้ำ ซึ่งจะช่วยลดการเขียนการทำงานซ้ำ ๆ ออก แต่การใช้คำสั่งทำซ้ำก็มีข้อควรระวังนั่นคือเพื่อน ๆ จะต้องตรวจสอบเงื่อนไขที่กำหนดในคำสั่งทำซ้ำให้ดี ไม่งั้นโปรแกรมอาจจะทำงานซ้ำแบบไม่มีที่สิ้นสุดได้


----- สารบัญ -----


วันพุธที่ 23 พฤศจิกายน พ.ศ. 2559

[PHP] ตอนที่ 6: การตรวจสอบเงื่อนไข


          ส่วนมากในการเขียนโปรแกรม เราจำเป็นต้องเขียนให้โปรแกรมมีการตัดสินใจทำอะไรบางอย่างตามเงื่อนไขต่าง ๆ เช่น โปรแกรมตัดเกรดที่จะรับคะแนนของนักเรียนเข้ามาแล้วแปลงเป็นเกรด เป็นต้น ดังนั้นเราจึงจำเป็นต้องเขียนโปรแกรมให้มีการตรวจสอบเงื่อนไข เพื่อเป็นการกำหนดเส้นทางการทำงานว่าโปรแกรมควรจะทำอะไรต่อไป โดยคำสั่งสำหรับตรวจสอบเงื่อนไขแบ่งออกเป็น 2 คำสั่ง ได้แก่ คำสั่ง if และ คำสั่ง switch

คำสั่ง if


          คำสั่ง if เป็นคำสั่งสำหรับตรวจสอบเงื่อนไขอย่างง่าย สามารถแบ่งเป็น 3 รูปแบบใหญ่ ๆ คือ การตรวจสอบเงื่อนไขทางเลือกเดียว, การตรวจสอบเงื่อนไข 2 ทางเลือก, การตรวจสอบเงื่อนไขหลายทางเลือก

การตรวจสอบเงื่อนไขทางเลือกเดียว

<?php

/********** Syntax **********/
if( เงื่อนไข )
{
 //การทำงาน
}

/********** ตัวอย่าง **********/
$a = 81;
if( $a >= 80 )
{
 echo 'ตัวแปร $a มีค่ามากกว่าเท่ากับ 80';
}

if( $a >= 80 && $a <= 100 )
{
 echo 'ตัวแปร $a มีค่าอยู่ในระหว่าง 80 ถึง 100';
}

?>
          การตรวจสอบเงื่อนไขทางเลือกเดียวจะใช้คำสั่ง if( เงื่อนไข ) โดยเมื่อเงื่อนไขเป็นจริง โปรแกรมก็จะทำงานตามการทำงานที่ถูกกำหนดไว้ในเครื่องหมายปีกกา

การตรวจสอบเงื่อนไข 2 ทางเลือก

<?php

/********** Syntax **********/
if( เงื่อนไข )
{
 //การทำงาน (1)
}
else
{
 //การทำงาน (2)
}

/********** ตัวอย่าง **********/
$a = 81;
if( $a >= 80 )
{
 echo 'ตัวแปร $a มีค่ามากกว่าเท่ากับ 80';
}
else
{
 echo 'ตัวแปร $a มีค่าน้อยกว่า 80';
}

?>
          การตรวจสอบเงื่อนไขทางเลือกเดียวจะใช้คำสั่ง if( เงื่อนไข ) ..... else ..... โดยเมื่อเงื่อนไขเป็นจริง โปรแกรมก็จะทำงานตาม การทำงาน (1) ที่ถูกกำหนดไว้ในเครื่องหมายปีกกา และเมื่อเงื่อนไขไม่เป็นจริงโปรแกรมก็จะทำงานตาม การทำงาน (2)

การตรวจสอบเงื่อนไขหลายทางเลือก

<?php

/********** Syntax **********/
if( เงื่อนไข 1 )
{
 //การทำงาน (1)
}
else if( เงื่อนไข 2 )
{
 //การทำงาน (2)
}
else if( เงื่อนไข 3 )
{
 //การทำงาน (3)
}
else
{
 //การทำงาน (สุดท้าย)
}


/********** ตัวอย่าง **********/
$score = 75;

if( $score >= 80 )
{
 echo "เกรด A";
}
else if( $score >= 70 )
{
 echo "เกรด B";
}
else if( $score >= 60 )
{
 echo "เกรด C";
}
else if( $score >= 50 )
{
 echo "เกรด D";
}
else
{
 echo "เกรด F";
}

?>
          การตรวจสอบเงื่อนไขทางเลือกเดียวจะใช้คำสั่ง if( เงื่อนไข ) ..... else if( เงื่อนไข ) ..... โดยเมื่อ เงื่อนไข 1 เป็นจริง โปรแกรมก็จะทำงานตาม การทำงาน (1) ถ้า เงื่อนไข 1 ไม่เป็นจริงโปรแกรมก็จะไล่เช็คเงื่อนไขต่อ ๆ ไป เมื่อเจอเงื่อนไขที่เป็นจริงแล้ว โปรแกรมก็จะทำงานตามการทำงานที่อยู่ในเงื่อนไขนั้น ๆ และข้ามการทำงานของเงื่อนไขอื่น ๆ ไป

คำสั่ง switch


          คำสั่ง switch เป็นคำสั่งสำหรับตรวจสอบเงื่อนไขหลายทางเลือกคล้าย ๆ กับของ คำสั่ง if แต่มีรูปแบบการเขียนที่กระชับกว่า จุดที่แตกต่างกันคือ คำสั่ง switch จะตรวจสอบว่าเงื่อนไขนั้นมีค่าตรงตามที่กำหนดไว้หรือเปล่า ทำให้มีความยืดหยุ่นน้อยกว่า คำสั่ง if

<?php

/********** Syntax **********/
switch( เงื่อนไข )
{
 case ค่าที่ 1:
  //การทำงาน (1)
  break;
 case ค่าที่ 2:
  //การทำงาน (2)
  break;
 case ค่าที่ 3:
  //การทำงาน (3)
  break;
 ...
 default:
  //การทำงาน (สุดท้าย)
} 

/********** ตัวอย่าง **********/
$gender = "ผู้ชาย";
switch($gender)
{
 case "ผู้ชาย":
  echo "ชื่อของคุณขึ้นต้นด้วยคำว่า นาย";
  break;
 case "ผู้หญิง":
  echo "ชื่อของคุณขึ้นต้นด้วยคำว่า นาง หรือ นางสาว";
  break;
 default:
  echo "คุณเป็นเพศที่ 3";
} 

?>
          คำสั่ง switch( เงื่อนไข ) จะทำการตรวจสอบเงื่อนไข ถ้าเงื่อนไขนั้นมีค่าตรงกับ case ไหนก็จะทำงานตามคำสั่งที่อยู่ภายใน case นั้น และเมื่อทำงานเสร็จแล้วจะต้องมีคำสั่ง break; เพื่อแสดงจุดสิ้นสุดการทำงาน ซึ่งโปรแกรมก็จะไม่ทำการตรวจสอบเงื่อนไขกับ case อื่น ๆ ที่เหลืออีก

          ในบทความตอนนี้เพื่อน ๆ จะได้เรียนรู้เกี่ยวกับวิธีเขียนโปรแกรมแบบกำหนดเงื่อนไขซึ่งจะช่วยให้โปรแกรมของเพื่อน ๆ มีการทำงานที่เปลี่ยนแปลงไปตามข้อมูลได้ ในบทความถัดไปจะเป็นเรื่องเกี่ยวกับคำสั่งทำซ้ำ (Loop)


----- สารบัญ -----


วันอังคารที่ 22 พฤศจิกายน พ.ศ. 2559

[PHP] ตอนที่ 5: ตัวดำเนินการ


          ในการเขียนโปรแกรม สิ่งที่เพื่อน ๆ ไม่สามารถหลีกเลี่ยงได้เลยก็คือการคำนวณค่าหาผลลัพธ์ เช่น การคำนวณหากำไรจากการขายสินค้า เป็นต้น ซึ่งจำเป็นต้องใช้ความรู้จากวิชาคณิตศาสตร์ที่เพื่อน ๆ บางคนอาจจะไม่ชอบ (ฮา) และถ้าเปรียบในทางคณิตศาสตร์แล้วตัวดำเนินการ (Operator) ก็คือเครื่องหมายบวก ลบ คูณ หารที่เพื่อน ๆ คุ้นเคยนั่นเอง นั่นหมายถึงเราต้องนำตัวดำเนินการมากระทำกับตัวแปรหรือค่าต่าง ๆ เพื่อหาผลลัพธ์.....เอาละ เรามาดูประเภทของตัวดำเนินการกันเลยดีกว่า

ตัวดำเนินการทางคณิตศาสตร์ (Arithmetic operators)


          กลุ่มของตัวดำเนินการที่เพื่อน ๆ น่าจะคุ้นเคยที่สุด เป็นตัวดำเนินการที่ใช้ร่วมกับค่าตัวเลขเพื่อใช้คำนวณทางคณิตศาสตร์ทั่วไป

ตัวดำเนินการ ตัวอย่าง คำอธิบาย
+ $a + $b หาผลบวกของ $a บวก $b
- $a - $b หาผลลบของ $a ลบ $b
* $a * $b หาผลคูณของ $a คูณ $b
/ $a / $b หาผลหารของ $a หารด้วย $b
% $a % $b หาเศษจากผลหารของ $a หารด้วย $b

ตัวดำเนินการทางข้อความ (String operators)


          ตัวดำเนินการที่ใช้ร่วมกับข้อความ

ตัวดำเนินการ ตัวอย่าง คำอธิบาย
. $a . $b เชื่อมต่อข้อความ $a กับข้อความ $b

ตัวดำเนินการกำหนดค่า (Assignment operators)


          กลุ่มของตัวดำเนินการที่ใช้สำหรับกำหนดค่าให้กับตัวแปร พื้นฐานของตัวดำเนินการกลุ่มนี้คือเครื่องหมาย equal (=)

การกำหนดค่า ให้ผลเหมือนกับ คำอธิบาย
$a = $b $a = $b กำหนดค่าให้ $a มีค่าเท่ากับ $b
$a += $b $a = $a + $b กำหนดค่าให้ $a มีค่าเท่ากับ $a บวก $b
$a -= $b $a = $a - $b กำหนดค่าให้ $a มีค่าเท่ากับ $a ลบ $b
$a *= $b $a = $a * $b กำหนดค่าให้ $a มีค่าเท่ากับ $a คูณ $b
$a /= $b $a = $a / $b กำหนดค่าให้ $a มีค่าเท่ากับ $a หารด้วย $b
$a %= $b $a = $a % $b กำหนดค่าให้ $a มีค่าเท่ากับเศษจากผลลัพธ์ของ $a หารด้วย $b
$a .= $b $a = $a . $b กำหนดค่าให้ $a มีเท่ากับข้อความ $a ต่อด้วยข้อความ $b

ตัวดำเนินการเพิ่ม/ลดค่า (Increment/Decrement operators)


          กลุ่มของตัวดำเนินการที่ใช้เพิ่มหรือลดค่าของตัวเลข

ตัวดำเนินการ ตัวอย่าง คำอธิบาย
++ ++$a เพิ่มค่าของ $a ไป 1 ค่า จากนั้นก็คืนค่า $a
$a++ คืนค่า $a จากนั้นเพิ่มค่าของ $a ไป 1 ค่า
-- --$a ลดค่าของ $a ไป 1 ค่า จากนั้นก็คืนค่า $a
$a-- คืนค่า $a จากนั้นลดค่าของ $a ไป 1 ค่า

ตัวดำเนินการเปรียบเทียบ (Comparison operators)


          กลุ่มของตัวดำเนินการที่ใช้สำหรับเปรียบเทียบ ผลลัพธ์ที่ได้คือ true หรือ false

ตัวดำเนินการ ตัวอย่าง คำอธิบาย
== $a == $b คืนค่า true เมื่อ $a เท่ากับ $b
=== $a === $b คืนค่า true เมื่อ $a เท่ากับ $b และ $a กับ $b มี Data Type เดียวกัน
!= $a != $b คืนค่า true เมื่อ $a ไม่เท่ากับ $b
< > $a <> $b คืนค่า true เมื่อ $a ไม่เท่ากับ $b
!== $a !== $b คืนค่า true เมื่อ $a ไม่เท่ากับ $b หรือ $a กับ $b ไม่ใช่ Data Type เดียวกัน
< $a < $b คืนค่า true เมื่อ $a น้อยกว่า $b
> $a > $b คืนค่า true เมื่อ $a มากกว่า $b
<= $a <= $b คืนค่า true เมื่อ $a น้อยกว่าหรือเท่ากับ $b
>= $a >= $b คืนค่า true เมื่อ $a มากกว่าหรือเท่ากับ $b

ตัวดำเนินการทางตรรกะ (Logical operators)


          กลุ่มของตัวดำเนินการที่ใช้สำหรับเชื่อมต่อค่าความจริง ผลลัพธ์ที่ได้คือ true หรือ false

ตัวดำเนินการ ตัวอย่าง คำอธิบาย
and $a and $b คืนค่า true เมื่อ $a และ $b มีค่าเป็นจริงทั้งคู่
or $a or $b คืนค่า true เมื่อ $a หรือ $b มีค่าเป็นจริง
xor $a xor $b คืนค่า true เมื่อ $a กับ $b มีค่าความจริงไม่เหมือนกัน
&& $a && $b คืนค่า true เมื่อ $a และ $b มีค่าเป็นจริงทั้งคู่
|| $a || $b คืนค่า true เมื่อ $a หรือ $b มีค่าเป็นจริง
! $a ! $b คืนค่า true เมื่อ $a มีค่าเป็นเท็จ


          ในบทความตอนนี้ค่อนข้างจะใช้ความรู้ของวิชาคณิตศาสตร์ที่เพื่อน ๆ เคยเรียนกันมาอยู่บ้าง อย่างเรื่องตรรกะ เช่น จริงและจริงเป็นจริงจริงและเท็จเป็นเท็จ เป็นต้น ซึ่งถ้าเพื่อน ๆ ถนัดวิชาคณิตศาสตร์บ้างก็จะทำให้การเขียนโปรแกรมง่ายขึ้นล่ะ อ้อ.....เพื่อน ๆ สามารถเอาโค้ด PHP ไปทดลองรันบนเว็บโดยไม่ต้องรันบนเครื่องของตัวเองได้ที่ Phptester.net/


----- สารบัญ -----


วันศุกร์ที่ 18 พฤศจิกายน พ.ศ. 2559

[PHP] ตอนที่ 4: การใช้งานตัวแปร


          ในการเขียนโปรแกรม สิ่งนึงที่จะขาดไม่ได้เลยก็คือ "ตัวแปร" หรือตัวที่เก็บค่าต่าง ๆ เพื่อใช้ในการคำนวณและเอาไปแสดงผล
<php

echo 50 + 3;
echo "<br />";
echo 17 - 1;

?>
          จากตัวอย่างข้างบน ผลลัพธ์ที่ได้ออกมาคือ 53 กับ 16 แต่ถ้าเราต้องการนำผลลัพธ์ที่ได้ไปคำนวณต่อก็จำเป็นต้องเก็บค่าไว้ในตัวแปรก่อน โดยตัวแปรก็คือชื่อที่เราตั้งขึ้นเพื่อใช้อ้างอิงถึงค่าที่เรานำมาเก็บไว้ ซึ่งในการประกาศตัวแปรของภาษา PHP จะมีข้อกำหนดอยู่เล็กน้อย ดังนี้
  • ชื่อของตัวแปรจะต้องขึ้นต้นด้วย dollar sign ($) เสมอ
  • หลัง $ คือชื่อของตัวแปรที่ขึ้นต้นด้วยตัวอักษร a-z, A-Z หรือเครื่องหมาย underscore (_) เท่านั้น
  • ตัวถัดจากชื่อของตัวแปรเป็นตัวอักษร a-z, A-Z หรือตัวเลข หรือเครื่องหมาย underscore (_)
  • ชื่อของตัวแปรเป็น Case Sensitive ซึ่งหมายถึงตัวพิมพ์ใหญ่กับตัวพิมพ์เล็กถือเป็นคนละตัวกัน เช่น $myvar ≠ $myVar เป็นต้น
<php

$myVar = "Hello World";
$x = "This is my web";

echo $myVar;
echo "<br />";
echo $x;

?>
          การประกาศตัวแปรทำได้โดยให้ชื่อตัวแปรอยู่ฝั่งซ้ายของเครื่องหมาย equal (=) ส่วนฝั่งขวาจะเป็นค่าที่ต้องการจะเก็บ โดยชื่อตัวแปรสามารถตั้งได้ตามที่เพื่อน ๆ ชอบ ซึ่งตัวอย่างในบทความนี้จะตั้งชื่อตัวแปรง่าย ๆ เพื่อให้เพื่อน ๆ เห็นภาพเท่านั้น เวลาเขียนโปรแกรมเพื่อใช้งานจริงควรจะตั้งให้มันสื่อถึงค่าของตัวแปรด้วยนะ เช่น ตัวอย่างข้างบนชื่อตัวแปร $x ไม่สื่อถึงค่าที่มันเก็บไว้ ในกรณีที่ต้องไล่โค้ดเพื่อแก้ไขอาจจะทำให้เพื่อน ๆ งงได้ว่าตัวแปรนี้ใช้เก็บค่าอะไรไว้อยู่

ชนิดของตัวแปร



<php

$booleanVar1 = true;
$booleanVar2 = false;

?>
          Boolean: เป็นตัวแปรที่มีค่าได้แค่ 2 ค่า นั่นคือ true หรือ false เท่านั้น ส่วนมากใช้ในการตรวจสอบเงื่อนไข


<php

$stringVar1 = 'เสือพึ่งป่า';
$stringVar2 = "น้ำพึ่งเรือ $stringVar1";
$stringVar3 = 'น้ำพึ่งเรือ $stringVar1';
$stringVar4 = "150";

echo $stringVar2;
echo "<br />";
echo $stringVar3;
echo "<br />";
echo $stringVar4;
echo "<br />";
echo "M".$stringVar4;     // เชื่อมต่อข้อความ

?>
          String: เป็นข้อมูลชนิดตัวอักษรที่อยู่ภายในเครื่องหมาย single quote (') หรือ double quote (") โดยตัวแปรที่อยู่ภายในเครื่องหมาย double quote (") จะถูกประมวลผลด้วยซึ่งต่างจาก single quote (') ที่จะไม่ประมวลผลตัวแปรหรืออักษรพิเศษ ส่วนตัวแปร $stringVar4 จะเป็นข้อมูลประเภท String เนื่องจากอยู่ภายในเครื่องหมาย single quote (') หรือ double quote (") นอกจากนี้เรายังสามารถนำตัวแปร ข้อความ หรือตัวอักษรมาเชื่อมต่อกันได้ด้วยเครื่องหมาย .


<php

$numericVar1 = 15;
$numericVar2 = 20.5;

echo $numberVar1;
echo "<br />";
echo $numberVar2;

?>
          Numeric: เป็นข้อมูลชนิดตัวเลขที่สามารถเอาไปคำนวณร่วมกับเครื่องหมายทางคณิตศาสตร์ได้


<php

$arrayVar = array("Gaim", "Drive", "Ghost", "Ex-Aid");
$arrayVar['name'] = "Kabuto";

echo $arrayVar[0];
echo "<br />";
echo $arrayVar[1];
echo "<br />";
echo $arrayVar[2];
echo "<br />";
echo $arrayVar[3];
echo "<br />";
echo $arrayVar['name'];
echo "<br />";
print_r($arrayVar);

?>
          Array: เป็นตัวแปรที่เก็บค่าในลักษณะของชุดข้อมูล มีรูปแบบการประกาศตัวแปรคือ

ชื่อตัวแปร = array( "index1" => "value1", "index2" => "value2", ..... );
หรือ
ชื่อตัวแปร = array( "value1", "value2", ..... );

          ในการประกาศตัวแปรแบบระบุ index (รูปแบบบน) เราสามารถระบุ index เป็นตัวอักษรได้ ส่วนการประกาศตัวแปรแบบไม่ระบุ index (รูปแบบล่าง) index จะเริ่มต้นที่ 0 และเรียงไปเรื่อย ๆ ซึ่ง index จะใช้ในการอ้างอิงถึงค่า value หนึ่ง ๆ ดังนั้นเวลาแสดงข้อมูลจึงจำเป็นต้องระบุ index ด้วย หรือถ้าต้องการแสดงข้อมูลทั้งหมดที่เก็บไว้ใน array ให้ใช้คำสั่ง print_r(ตัวแปร array)

การกำหนดชนิดของตัวแปร


<php

$myVar1 = "5bar"; // String
$myVar2 = true; // Boolean

// การใช้งานฟังก์ชัน settype(ชื่อตัวแปร, "ชนิดของตัวแปร");
settype($myVar1 , "integer");
settype($myVar2 , "string");
echo $myVar1;
echo "<br />";
echo $myVar2;

?>
          ในการประกาศตัวแปรของภาษา PHP เราไม่จำเป็นต้องระบุชนิดของตัวแปร เพราะ PHP จะทำการกำหนดชนิดให้เองโดยอัตโนมัติ จึงทำให้การประกาศตัวแปรทำได้ง่าย แต่เราสามารถกำหนดชนิดของตัวแปรได้ด้วยคำสั่ง settype(ชื่อตัวแปร, "ชนิดของตัวแปร"); โดยผลลัพธ์ของคำสั่งนี้คือ true เมื่อแปลงตัวแปรสำเร็จ และ false เมื่อแปลงตัวแปรไม่สำเร็จ ซึ่ง ชนิดของตัวแปร มีค่าดังต่อไปนี้
  • "boolean"
  • "integer"
  • "float"
  • "string"
  • "array"
  • "object"
  • "null"

<php

$stringVar = "54";
$numericVar = 5;

echo $stringVar + $numberVar;
echo "<br />";
echo gettype($stringVar);
echo "<br />";
echo gettype($numericVar);

?>
          จากตัวอย่างข้างบน เรานำตัวแปรชนิดตัวอักษรมาบวกกับตัวแปรชนิดตัวเลข ถ้าเป็นภาษาโปรแกรมบางภาษาจะมีการแจ้งเตือนข้อผิดพลาด แต่สำหรับ PHP จะทำการแปลงชนิดของตัวแปร $stringVar จากตัวอักษรเป็นตัวเลขโดยอัตโนมัติเพื่อให้สามารถนำไปคำนวณค่าได้ จริง ๆ ถ้าถามว่าสะดวกดีไหมก็สะดวกดีนะ แต่เพื่อให้เว็บของเรามีความปลอดภัย เราควรจะเช็คชนิดของตัวแปรด้วย ยิ่งในกรณีที่รับค่ามาจากผู้ใช้งานอื่น ยิ่งจำเป็นต้องมีการตรวจสอบข้อมูลที่ผู้ใช้งานกรอกเข้ามาก่อนจะนำไปบันทึกลงในฐานข้อมูล โดยคำสั่งที่ใช้ในการตรวจสอบชนิดของตัวแปรคือ gettype(ชื่อตัวแปร); โดยผลลัพธ์ที่ได้มีค่าดังต่อไปนี้
  • "boolean"
  • "integer"
  • "double"
  • "string"
  • "array"
  • "object"
  • "resource"
  • "NULL"
  • "unknown type"

ค่าคงที่


<php

define("name", "AiNoTsubasa");
define("year", 2559);

echo name;
echo "<br />";
echo year;

?>
          ค่าคงที่ (Constants) คือชื่อที่กำหนดขึ้นมาเพื่อใช้เก็บค่าใดค่าหนึ่งที่ไม่ค่อยมีการเปลี่ยนแปลง มีรูปแบบคำสั่ง define(ชื่อค่าคงที่, ค่าที่ต้องการเก็บ);

          สำหรับบทความตอนนี้เพื่อน ๆ ก็จะได้รู้จักวิธีประกาศตัวแปรและค่าคงที่แล้ว ในบทความถัดไปเราจะเอาตัวแปรไปคำนวณกัน แล้วพบกันใหม่ในบทความต่อไป


----- สารบัญ -----


วันพฤหัสบดีที่ 10 พฤศจิกายน พ.ศ. 2559

[PHP] ตอนที่ 3: เริ่มเขียน PHP กันเล้ย!


          หลังจากเตรียมเครื่องของเพื่อน ๆ ให้พร้อมใน บทความสอน PHP ตอนที่ 2 เรียบร้อยแล้ว เรามาเริ่มเขียน PHP กันเลยดีกว่า

PHP & HTML


          PHP เป็น script ที่ทำงานบนฝั่ง Server แล้วแสดงผลออกมาอยู่ในรูปแบบของเอกสาร HTML ดังนั้นจึงสามารถเขียนแทรกอยู่คำสั่ง HTML ได้ แต่ไม่ใช่ว่าจู่ ๆ จะเขียน script PHP แทรกลงไปในคำสั่ง HTML ได้เลยนะ จำเป็นต้องเขียนอยู่ภายใน tag ดังต่อไปนี้

  1. <? ..... ?> หรือ <?php ..... ?>
  2. <% ..... %> หรือ <%= ..... %>
  3. <script language="php"> ..... </script>
          ใน PHP เวอร์ชั่น 7 ขึ้นไปได้มีการนำ tag <%, <%= และ <script language="php"> ออก จึงเหลือให้ใช้งานแค่ tag เดียว คือ tag <?php ..... ?> (สามารถเขียนย่อ ๆ ได้เป็น <? ..... ?> แต่ Web Server บางตัวจะไม่อนุญาตให้เขียนแบบนี้ ดังนั้นก็เขียนแบบเต็ม ๆ ไปเถอะเนอะ) โดยเพื่อน ๆ สามารถเช็คเวอร์ชั่นของ PHP และค่าต่าง ๆ ของ Web Server ได้จากคำสั่ง

<?php

phpinfo();

?>

          ในส่วนของการแสดงผลข้อมูลให้ออกมาอยู่ในรูปแบบเอกสาร HTML สามารถทำได้โดยการใช้คำสั่ง echo ตามด้วยข้อความที่อยู่ใน single quote (') หรือ double quote (") และทุกคำสั่งของ PHP จะต้องปิดท้ายคำสั่งด้วย semicolon (;) เสมอ เช่น

<?php

echo "Hello World, PHP.";

?>

          จากตัวอย่างข้างต้นเป็นการใช้ PHP แสดงผลออกมาตรง ๆ ซึ่งในการแสดงผลเราสามารถนำ tag PHP ไปแทรกอยู่ระหว่าง tag HTML ได้เลย

<html>
<head>
<title>My Webpage</title>
</head>
<body>
<h1>Hello, <?php echo "This is my first page."; ?></h1>
</body>
</html>

          หรือจะเขียน PHP ให้แสดง tag HTML ออกมาก็ได้

<php

echo "<html>";
echo "<head>";
echo "<title>My Webpage</title>";
echo "</head>";
echo "<body>";
echo "<h1>Hello, This is my first page.</h1>";
echo "</body>";
echo "</html>";

?>

Comment ใน PHP


          Comment คือส่วนของข้อความที่ PHP จะไม่ทำการประมวลผล .....สิ่งหนึ่งที่จำเป็นในการเขียนโค้ดนั่นก็คือการเขียน Comment กำกับเข้าไปด้วย ยิ่งเพื่อน ๆ เขียนเว็บให้มีการทำงานที่หลากหลายมากขึ้นเท่าไร จำนวนโค้ดก็จะยิ่งเยอะ ถ้าไม่มีการเขียน Comment อธิบายโค้ดเอาไว้ เวลาเพื่อน ๆ ต้องการกลับมาแก้ไขก็ต้องมานั่งไล่โค้ดทีละบรรทัด นอกจากนี้ยังเป็นการทำสัญลักษณ์เพื่อช่วยให้ง่ายต่อการค้นหาหรือแก้ไข ดังนั้นการเขียน Comment เอาไว้ก็จะช่วยลดเวลาในการไล่โค้ด รูปแบบการเขียน Comment ใน PHP มี 2 รูปแบบ ได้แก่
  1. // ใช้สำหรับ Comment 1 บรรทัด
  2. /* ..... */ ใช้สำหรับ Comment หลายบรรทัด

<?php

echo "Hello World, PHP.";
echo "<br />";      // tag HTML สำหรับขึ้นบรรทัดใหม่
// echo "ในส่วนนี้จะไม่แสดงผลออกทางหน้าจอ";

/*
Comment หลายบรรทัด
echo "สวัสดีชาวโลก";
*/

?>

          เมื่อเว็บเกิด Error จนไม่สามารถแสดงข้อมูลได้ เพื่อน ๆ สามารถใส่เครื่องหมาย Comment หน้าคำสั่งที่น่าจะเกิด Error แทนการลบคำสั่งนั้นทิ้งไปก็ได้ .....ในส่วนของบทความนี้ขอจบลงเพียงเท่านี้ แล้วพบกันใหม่ในบทความถัดไป


----- สารบัญ -----


วันอังคารที่ 8 พฤศจิกายน พ.ศ. 2559

Android ครองส่วนแบ่ง 88% ของตลาดสมาร์ทโฟนทั่วโลก



          Strategy Analytics บริษัทวิจัยตลาดเผยไตรมาสที่ 3 ของปี 2559 มีสมาร์ทโฟนที่ใช้งานระบบปฏิบัติการ Andriod ประมาณ 328.6 ล้านเครื่อง คิดเป็น 87.5% ของตลาดสมาร์ทโฟนทั่วโลก โดยมีสมาร์ทโฟนที่ใช้งานระบบปฏิบัติการ iOS ประมาณ 45.5 ล้านเครื่อง คิดเป็น 12.1% และมีสมาร์ทโฟนที่ใช้งานระบบปฏิบัติการอื่น ๆ อีก 1.3 ล้านเครื่อง คิดเป็น 0.3% ซึ่งเมื่อเทียบกับช่วงเวลาเดียวกันของปีที่แล้วจะเห็นได้ว่าส่วนแบ่งการตลาดของ Android เติบโตขึ้น 10.3% ส่วนของ iOS ลดลง 5.2%

          ส่วนแบ่งการตลาดของสมาร์ทโฟนทั่วโลกเพิ่มขึ้นจากปีที่แล้วถึง 6% จาก 354.2 ล้านเครื่องเพิ่มขึ้นเป็น 375.4 ล้านเครื่อง ซึ่งถือว่าอุตสาหกรรมสมาร์ทโฟนมีอัตราการเติบโตที่เร็วที่สุดใน 1 ปี 




วันจันทร์ที่ 7 พฤศจิกายน พ.ศ. 2559

OWASP Thailand Meeting : A8 Cross-Site Request Forgery (CSRF)


          เมื่อวันพฤหัสบดีที่ผ่านมา (27 ตุลาคม 2559) ผมได้ไปร่วมงานสัมนาของ OWASP Thailand ในหัวข้อ A8 Cross-Site Request Forgery (CSRF) ที่สำนักงานคณะกรรมการกำกับหลักทรัพย์และตลาดหลักทรัพย์ (ก.ล.ต.) ภายในงานมีเลี้ยงขนมจีบกุ้งกับกาแฟในระหว่างรอฟังบรรยาย


          A8 เป็น 1 ใน 10 อันดับของ OWASP Top 10 ปี 2013 ที่ทาง OWASP ได้จัดอันดับช่องโหว่ที่พบได้บ่อยในเว็บแอปพลิเคชัน 10 อันดับ โดย Cross-Site Request Forgery (CSRF) เป็นช่องโหว่ที่อาศัยพฤติกรรมของผู้ใช้งานทำให้ผู้ไม่ประสงค์ดีสามารถสั่งให้ผู้ใช้งานเว็บแอปพลิเคชันทำกิจกรรมบางอย่าง (เช่น การโอนเงิน) โดยที่ผู้ใช้งานไม่ได้ตั้งใจที่จะทำได้

          ปัจจุบันนี้ผู้ใช้งานเว็บแอปพลิเคชันมักจะ Log in ค้างไว้และไม่ยอม Log out ออก (เช่นเว็บไซต์ที่เพื่อน ๆ ทุกคนน่าจะเข้าเป็นประจำอย่าง Facebook.com) โดยเว็บไซต์จะมีหลักการทำงานดังนี้ เมื่อ Log in แล้วเว็บไซต์ก็จะจดจำว่าผู้ใช้งานอยู่ในระบบ ซึ่งผู้ใช้งานจะสามารถใช้งานฟังก์ชันต่าง ๆ ภายในเว็บไซต์ได้ เช่น โพสสถานะ เพิ่มเพื่อน หรือแม้กระทั่งลบแอคเคาท์ โดยผู้ใช้บริการเว็บไซต์จะใช้งานฟังก์ชันเดียวกันทุกคน ต่างกันที่ฟังก์ชันนั้น ๆ จะทำงานอยู่ภายใต้ข้อมูลของตัวเอง เช่น ฟังก์ชันโพสสถานะ ทุกคนใช้งานฟังก์ชันนี้เหมือนกันหมด แต่ตัวเว็บไซต์จะอ่านข้อมูลของผู้ใช้คนนั้น ๆ ที่ Log in อยู่ เพื่อแยกแยะว่าใครเป็นคนโพสสถานะ เป็นต้น

          จากหลักการทำงานนี้ถ้าเพื่อน ๆ ยัง Log in อยู่ในระบบ แล้วเผลอไปคลิก Link จากเว็บไซต์แปลก ๆ ที่ส่ง Request ไปยังเว็บไซต์ให้ลบแอคเคาท์ของตัวเอง และเว็บไซต์นั้น ๆ ไม่ได้มีการตรวจสอบ Request ที่ดีพอ ผลที่ได้คือแอคเคาท์ของเพื่อน ๆ ก็จะถูกลบออกจากระบบโดยที่เพื่อน ๆ ไม่ได้ต้องการ หรือในตัวอย่างที่เลวร้ายกว่านี้ ถ้าเพื่อน ๆ ทำธุรกรรมผ่าน Internet Banking และไม่ได้ Log out จากระบบ แล้วไปคลิก Link ไม่น่าไว้ใจที่แอบแฝง Request โอนเงินไปให้แฮกเกอร์ เพื่อน ๆ ก็จะสูญเสียเงินทันที .....ซึ่งการป้องกันแบ่งออกได้เป็น 2 ส่วน

  1. ส่วนของผู้ใช้งาน: ให้ทำการ Log out ออกจากระบบหลังจากเลิกใช้งานเว็บไซต์ต่าง ๆ และไม่ไปคลิก Link แปลก ๆ ที่ไม่น่าไว้ใจ
  2. ส่วนของนักพัฒนา: ควรมีการสร้าง key เฉพาะและแนบไปกับ Link ทุกครั้ง เมื่อมี Request เข้ามาให้ทำการเช็ค key เฉพาะว่าตรงกับที่ระบบสร้างไว้หรือเปล่า ถ้าไม่ตรงก็ไม่ควรรับ Request นั้น ๆ


          หลังจากอธิบาย Cross-Site Request Forgery (CSRF) เสร็จ คุณพลากรก็อธิบายช่องโหว่อีกรูปแบบนึงที่มีลักษณะคล้าย ๆ กัน นั่นก็คือ Cross-Site Scripting (XSS) ซึ่งเป็นการแทรกสคริปต์ (เช่น JavaScript) เข้าไปยังเว็บไซต์แล้วทำการเปลี่ยนแปลงหรือขโมยข้อมูลภายในเว็บไซต์ โดยส่วนมากจะพบในเว็บไซต์ประเภทเว็บบอร์ดหรือเว็บที่มีการรับข้อมูลจากผู้ใช้ เมื่อผู้ใช้ทำการใส่สคริปต์ลงในช่องกรอกข้อมูลและส่งค่าไปบันทึกในฐานข้อมูล ก็จะทำให้สคริปต์ถูกเก็บไว้ในฐานข้อมูลไปด้วย ยกตัวอย่างเช่น ถ้าแฮกเกอร์ใส่สคริปต์เปลี่ยนสีพื้นหลังของเว็บไซต์เข้าไป ทุกครั้งที่เว็บมีการอ่านข้อมูลที่แฮกเกอร์กรอกเข้าไป สคริปต์ของแฮกเกอร์ก็จะทำงาน ส่งผลให้พื้นหลังของเว็บไซต์เปลี่ยนไป เป็นต้น สามารถป้องกันได้โดยการตรวจเช็คข้อมูลที่ผู้ใช้งานกรอกเข้ามาก่อนบันทึกลงฐานข้อมูล คัดกรอกไม่ให้มี tag แปลก ๆ

          หลังจากจบการบรรยาย ก็มีการแจ้งงานสัมนาใหญ่ปลายปี ซึ่งก็คืองาน OWASP Day 2016 - Let's secure!! ซึ่งจัดในวันศุกร์ที่ 11 พฤศจิกายน 2559 เวลา 08:30 - 17:00 น. ณ โรงแรมเจ้าพระยาปาร์ค รัชดา.....สำหรับอันดับอื่น ๆ ของ OWASP Top 10 ปี 2013 เพื่อน ๆ สามารถอ่านเพิ่มเติมได้ ที่นี่ เลยครับ


วันพฤหัสบดีที่ 3 พฤศจิกายน พ.ศ. 2559

[ประชาสัมพันธ์] THEPA Talk (เท่ปะทอล์ค) #3 : Highly Sensitive Optical Measurement


        ประชาสัมพันธ์งานบรรยายพิเศษเกี่ยวกับฟิสิกส์ในหัวข้อ Highly Sensitive Optical Measurement โดย ดร.ธารา เฉลิมทรงศักดิ์ หน่วยวิทยาศาสตร์ วิทยาลัยนานาชาติมหิดล และสมาชิกหน่วยวิจัย LIGO ที่ค้นพบ Gravitational Wave

วันพุธที่ 9 พฤศจิกายน 2559
เวลา 13.30 - 15.30 น.
สถานที่ ห้อง 410 อาคาร 10 มหาวิทยาลัยศรีนครินทรวิโรฒ


วิธีเดินทาง

  • รถยนต์
    • ด้านถนนอโศกมนตรี: มาได้จากเส้น ถ.รัชดาภิเษก, หรือมาทาง ถ.พระราม 3, แยกอโศก, แยกเพชรบุรี ทางด่วนที่ใกล้ ทางด่วนพระราม 9 และทางพิเศษศรีรัชแยกประดิษฐ์มนูธรรม
    • ด้านถนนสุขุมวิท 23: มาได้จากเส้น ถ.สุขุมวิท หรือมาทาง ถ.พระราม 1 เข้าซอยสุขุมวิท 23 (มีปั๊ม Shell และตึกจัสมินระหว่างซอย) ขับตรงมาจากปากซอย 23 เรื่อยๆจนสุดซอย
    • ด้านถนนเพชรบุรีตัดใหม่: เลี้ยวเข้าซอยพร้อมพงษ์ (แยกอิตัลไทย/สเต็กลาว) เข้าเส้นสุขุมวิท 39 วันเวย์ตามทางพร้อมจิตร และเข้าเส้นสุขุมวิท 31 สังเกตป้าย มศว ตลอดทาง เข้าด้านหลังโรงเรียนสาธิต มศว ประสานมิตร
  • รถไฟฟ้าBTS: สถานีอโศก ลง Exit 3 ข้ามฝั่ง (ลงทางเชื่อม MRT ได้) มายังซอยสุขุมวิท 23 ขึ้นวินมอเตอร์ไซค์ได้ตรง ซอยคาวบอย หรือเดินทะลุ Interchange 21 มาขึ้นมอเตอร์ไซค์ด้านหลังตึก
  • รถไฟฟ้าใต้ดิน MRT
    • สถานีเพชรบุรี
      • ออกประตู 2 เดินย้อนข้ามคลองแสนแสบถึง 7-eleven ข้ามฝั่งไปโรงพยาบาลจักษุรัตนิน เดินเข้าไปจนสุดซอย
      • ออกประตู 1 เดินย้อนไปเส้น ถ.เพชรบุรี ข้ามสะพานลอย เข้าซอยตรง 7-eleven เดินข้ามคลองแสนแสบ หรือขึ้นวินมอเตอร์ไซค์หน้าสถานี
    • สถานีสุขุมวิท:
      • ออกประตู 2 เดินย้อนเข้าตึก Interchange 21 ออกด้านหลัง ขึ้นวินมอเตอร์ไซค์ซอยสุขุมวิท 23
      • ออกประตู 1, 3 ขึ้นมอเตอร์ไซค์ วิ่งเส้นอโศกมนตรี
  • เรือโดยสารคลองแสนแสบ: ขึ้นที่ท่าเรือ มศว ประสานมิตร
  • รถประจำทาง
    • ด้านถนนอโศกมนตรี: รถเมล์สาย 138, 98, 136 ลงหน้า Q House เดินเข้าลาน SWUNIPLEX หรือลงโรงพยาบาลจักษุรัตนิน เดินเข้าซอยด้านข้างมหาวิทยาลัย 
    • ด้านถนนสุขุมวิท 23: รถเมล์สาย 2, 25 38, 40, 48, 98, 501, 508, 511, ปอ.พ. 6 และ Airport bus ลงหน้าตึก Jasmine เดินเข้าซอยสุขุมวิท 23 ต่อวินมอเตอร์ไซค์ 
    • ด้านถนนเพชรบุรีตัดใหม่: รถเมล์สาย 11, 23, 58, 60, 72, 93, 99, 113, 206, 512, ปอ.พ. 10 และปอ.พ. 23 เข้าซอยข้าง 7-eleven และ CP Freshmart ข้ามสะพานคลองแสนแสบ