วันอังคารที่ 29 เมษายน พ.ศ. 2557

เริ่มต้นกับ Html5

มีอะไรใหม่ใน HTML5
หลายเว็บอาจจะใช้ <div class="foot"> <div class="head"> แต่ก็อาจไม่ได้ fix ไปตายตัวเลยว่า head นี้จะอยู่ส่วนไหน เพราะทั้ง foot และ head เราเป็นคนกำหนดขึ้นมาเอง และจะต่อยอดเป็นข้อมูลแบบมีโครงสร้างที่จำเป็นในการทำ Seo Onpage ในอนาคตได้ครับ ทำให้บอทเข้าใจหมวดหมู่และเรื่องราวในเว็บเรามากขึ้น

HTML5 ได้มีแท็กใหม่ขึ้นมาเพื่อกำหนดหน้าที่ของแต่ละแท็กอย่างชัดเจนขึ้นเช่น


  • <header>
  • <nav>
  • <section>
  • <article>
  • <aside>
  • <figure>
  • <figcaption>
  • <Footer>
  • <details>
  • <summary>
  • <mark>
  • <time>




สำหรับ HTML5 1 เพจต้องมีอย่างน้อยดังโค๊ดด้านล่างนี้

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title of the document</title>
</head>
<body>
 เนื้อหา - ข้อมูลเว็บ
</body>
</html>



อธิบายแท็ก HTML5 พื้นฐาน

<section>

เป็นการจัดกลุ่มของเนื้อหา ยกตัวอย่างในกรณีที่หน้าเว็บมีเนื้อหามากกว่า 1 อย่างขึ้นไป
ส่วนใหญ่จะอยู่ภายใต้แท็ก <article> ตัวอย่างเช่นใน 1 หน้าเพจมี

<section>
  <h1>ตลาด</h1>
  <p>ป็นการชุมนุมกันทางสังคม แลกเปลี่ยนสินค้ากัน ในภาษาทั่วไป ตลาดหมายความรวมถึงสถานที่ที่มนุษย์มาชุมนุมกันเพื่อค้าขาย ในทางเศรษฐศาสตร์ ตลาดหมายถึงการแลกเปลี่ยนซื้อขาย </p>
</section>

<section>
  <h1>ตลาดรถ</h1>
  <p>รถบ้าน หมายถึงรถมือสองที่ไม่ได้ขายผ่านเต้นท์รถ ตลาดรถ หรือศูนย์จำหน่ายรถมือสอง แต่เป็นรถที่เจ้าของรถคันนั้นเช่น คนรู้จัก เพื่อร่วมงาน ญาติพี่น้องที่คุณเห็นเขาขับรถคันนั้นเกือบทุกวัน หรือเห็นบ่อยๆและคุณก็รู้ว่าเขาดูแลรถดีหรือไม่ดีอย่างไร ได้ขายให้คุณด้วยตัวเอง</p>
</section>

จุดสังเกตสำหรับ section นี้คือ ไม่จำเป็นต้องมีเนื้อหาต่างกันเสมอไป แต่อาจจะเอาไว้แยกกลุ่ม ตามที่เจ้าของเว็บต้องการก็ได้ครับ สามารถมี header หรือ article หรืออื่นๆ ภายใต้ tag นี้ได้ด้วยครับ









วันพฤหัสบดีที่ 24 เมษายน พ.ศ. 2557

ข้อแตกต่างระหว่าง include กับ require

ถ้าเราพยามจะนำไฟล์ html php หรืออื่นๆ มาใส่ลงในหน้าเว็บ php นั้นส่วนใหญ่จะเห็น เป็น include นะครับ
ตัวอย่างเช่น

<?php
include("header.php");
include("content.html");
?>

แต่ถ้าเราดันไม่มีไฟล์ header.php หรือไฟล์ content.html ตามตัวอย่าง มันมักจะฟ้องเป็นแค่ warning เตือนเฉยๆครับ และจะดำเนินการต่อไป ส่วนถ้าเราเปลี่ยนเป็น

<?php
require("header.php");
require("content.html");
?>

โค๊ดด้านบนนี้ ถ้าเราไม่มีไฟล์ header.php หรือไฟล์ content.html มันจะฟ้อง error เลยและจะหยุดดำเนินการที่บรรทัดนั้นๆ ทั้นทีครับ



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

ส่วนถ้าจะแนะนำนะครับ ควรใช้ include ถ้าไฟล์ที่นำเข้านั้นเป็น html ธรรมดา ไม่มีผลกระทบอะไรต่อหน้าเพจครับ แต่ถ้าจะใช้ Require ก็ต่อเมื่อ ไฟล์ที่นำเข้าเป็นฟังก์ชั่น หรือมีตัวแปรที่ต้องใช้ในหน้านั้นๆ ครับ

วันพุธที่ 23 เมษายน พ.ศ. 2557

เดวิด มอยส์ โดนเด้งแล้วครับพี่น้องครับ

ตั้งแต่เซอร์ เอล็กซ์ เฟอร์กูสัน จากแมนยูไป คนที่รับหน้าที่ต่อจาก ท่านเซอร์คือ เดวิด มอยส์นั้นเองครับ
มอยส์นี้ คุมทีมแมนยูฯ มาเกือบจะจบฤดูกาลอยู่แล้วเชียวครับ แต่ก็โดนเด้งกลางอากาศจนได้ หลังจากไปบุกแพ้เอฟเวอร์ตัน ทีมเก่า 0-2 

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




นี่คือสถิติอันงามไส้นะครับ แฟนผีใจเย็นครับ
- แมนฯ ยูไนเต็ด แพ้ไปแล้ว 8 เกม เป็นการแพ้มากที่สุด หลังจากผ่านไป 24 นัดของโปรแกรมการแข่งขัน แพ้มากกว่าปี 2001-2002 ซึ่งฤดูกาลนั้นปีศาจแดงได้อันดับ 3
- มอยส์ทำทีมแมนฯ ยูไนเต็ดแพ้ในบ้านไปแล้ว 4 เกม ถ้าฤดูกาลนี้แพ้ในบ้านเพิ่มอีก 3 เกม จะทำลายสถิติแพ้ในบ้านมากที่สุด 6 เกม ในฤดูกาล 2001-02
- ฤดูกาล ที่แล้ว เซอร์ อเล็กซ์ เฟอร์กูสัน คุมทีมปีศาจแดงจบ 24 นัด เก็บไป 59 คะแนน ส่วนทางด้านเดวิด มอยส์ คุมทีม 24 นัด เก็บไป 40 คะแนน (อย่างน้อยก็การันตีว่าไม่ตกชั้นแน่นอน)
- แมนฯ ยูไนเต็ดแพ้มากที่สุด 10 นัด ในฤดูกาล 1990-91 จบที่ 6 ในฤดูกาลนั้น
- เฟอร์กูสันเคยคุมทีมปีศาจแดงแพ้ไป 16 นัด จบที่อันดับ 13 ในปี 1989-90 ซึ่งป๋าเฟอร์กี้คุมทีมเต็มตัวเป็นฤดูกาลที่ 3
- ป๋าเคยคุมทีมแพ้ 3 นัดติดต่อกัน ในฤดูกาล 2001 โดยแพ้ สเปอร์ส,สวอนซี และซันเดอร์แลนด์ ปีศาจแดงเคยแพ้ 4 นัดติดต่อกัน ตั้งแต่ปี 1961 โดยแพ้ เบอร์มิ่งแฮม,อาร์เซนอล,โบลตัน และเชฟฟิลด์ เวนส์เดย์ แต่ปีศาจแดงไม่เคยแพ้ 5 นัดติดต่อกัน
- แมนฯ ยูไนเต็ด ต้องเก็บชัยชนะ 9 นัด จาก 14 นัดที่เหลือ เพื่อหนีสถิติชนะน้อยที่สุดในฤดูกาล ที่ 21 นัด ในปี 1996-97
- ทีมของเดวิด มอยส์ ถ้าเสียอีก 17 ลูก จะทำสถิติโดนยิงมากที่สุด โดยที่ผ่านมาปีศาจแดงโดยคู่แข่งยิงมากที่สุดที่ 45 ลูก ในฤดูกาล 1999-00 และ 2001-02
- แมนฯ ยูไนเต็ด แพ้ สวอนซี ในเกมเอฟเอ คัพ ในวันที่ 5 มกราคม ที่ผ่านมา เป็นครั้งแรกที่สวอนซีบุกมาเก็บชัยที่โอลด์ แทร็ฟฟอร์ด
และนี่คือสถิติใหม่ ถ้าเดวิด มอยส์ พาทีมแพ้ ในโปรแกรมต่อไปนี้
- 22 กุมภาพันธ์ (เยือน) คริสตัล พาเลซ ปีศาจแดงไม่เคยออกไปแพ้พาเลซ ตั้งแต่ปี 1991 โดยปีนั้นแมนฯ ยูไนเต็ดแพ้ไป 3-0
- 8 มีนาคม (เยือน) เวสต์บรอมวิช ปีศาจแดงไม่เคยออกไปแพ้ตั้งแต่ปี 1984 โดยปีนั้นแมนฯ ยูไนเต็ดแพ้ไป 2-0
- 12 เมษายน (เหย้า) ฮัลล์ ซิตี้ ปีศาจแดงไม่เคยแพ้ฮัลล์ ซิตี้ ในพรีเมียร์ลีกเลย
- 26 เมษายน (เหน้า) นอริช เจ้านกขมิ้นเคยบุกมายำปีศาจแดงถึงในบ้านด้วยสกอร์ 2-0 แต่มันเกิดขึ้นในปี 1989
- 3 พฤษภาคม (เหย้า) ซันเดอร์แลนด์ ปีศาจแดงตกรอบลีกคัพคาบ้านเพราะซันเดอร์แลนด์มาแล้ว แต่ถ้าในพรีเมียร์ลีกครั้งสุดท้ายที่แพ้ซันเดอร์แลนด์มันเกิดขึ้นในปี 1986


สถิติที่ เดวิด มอยส์ ได้ทำลายลงไปแล้ว
- แพ้ เวสต์บรอมวิช ในบ้านครั้งแรกตั้งแต่ปี 1978
- แพ้ นิวคาสเซิล ในบ้านครั้งแรกตั้งแต่ปี 1972
- แพ้ เอฟเวอร์ตัน ในบ้านครั้งแรกตั้งแต่ปี 1992
- แพ้ สวอนซี ในบ้านครั้งแรกในถ้วยเอฟเอ คัพ รอบที่ 3
- เดือนมกราคม แมนฯ ยูไนเต็ด แพ้ไปแล้วถึง 3 นัด ซึ่งปีศาจแดงเคยทำสถิตินี้มาแล้วในปี 2001
- การแพ้สโต๊คเมื่อวันเสาร์ที่ผ่านมา เป็นการแพ้สโต๊คครั้งแรก ตั้งแต่ปี 1984

วันพุธที่ 9 เมษายน พ.ศ. 2557

isset คืออะไร และใช้ตอนไหนกันบ่อยๆ ใน php

สำหรับ php บางเวอร์ชั่นนั้น น่าจะเจอกันบ้างนะครับกับ message ที่บอกว่า
PHP Notice: Undefined index
เรื่องราวก็ประมาณนี้
<?php
$x = $_GET['page']; 
<a href='?page=1'>คลิกไปยังหน้าแรก</a>
?>
ที่มันเตือนก็ตรงนี้ละครับ ตัว page นี้(ที่ highlight มันยังมิได้ถูกกำหนดค่า ซึ่งจะมีค่าก็ต่อเมื่อเราได้กดคำว่า คลิกไปยังหน้าแรก เพื่อไปหน้าเดิม แต่เอาค่าตัวแปร page=1 หิ้วไปด้วยครับ)
วิธีแก้มีหลายวิธีนะฮะ แต่ที่ผะ ผม จะเลือกมาก็คือ ไอ้เจ้าตัว isset 

ISSET
ตัวนี้มีหน้าที่ดักจับว่าตัวแปรไหนที่มีการส่งค่าแล้ว จะส่งค่ากลับไปเป็น 1 ส่วนตัวแปรไหนที่ครอบด้วย isset นี้ไม่มีค่า จะส่งค่ากลับเป็นค่าว่างครับตัวอย่าง
$a = 999;
echo "a= ".isset($a)."<br />";
echo "b= ".isset($b)."<br />";
ผลลัพธ์จะได้
a=1
b= 
กลับกันถ้าใส่ค่า $b เป็น null
$a = 999;
$b = '';
echo "a= ".isset($a)."<br />";
echo "b= ".isset($b)."<br />";
ผลลัพธ์จะได้
a=1
b=1
อาจสรุปได้ว่ามันจะให้ค่า true หรือ 1 สำหรับตัวแปรที่ได้ถูกกำหนดค่าเท่านั้น ไม่สนว่าค่านั้นจะเป็นอย่างไร จะเป็นค่าว่างมันนับหมดจ๊ะ

ย้อนกลับมาการแก้ปัญหาด้านบนสุดกันต่อ วิธีแก้คือ
<?php
if(isset($_GET['page']))
{
$x = $_GET['page'];
}
<a href='?page=1'>คลิกไปยังหน้าแรก</a>
?>

แค่นี้ละฮะง่ายจริงเชียว แถมยังเอาไปทำอะไรได้อีกตั้งหลายอย่าง ไอ้เจ้า isset เนี่ย นี่ผมเอาตัวอย่างมาให้ดู เฉพาะผมใช้ประจำ ฮาๆๆ