PHP Category

เลือกทำ 3 ข้อ โดยมีเวลา 3 ชั่วโมง
1. เขียนโปรแกรมเพื่อแสดง tree view โดยมีข้อกำหนดดังนี้

ในแต่ละ node สามารถมี child ได้ไม่จำกัด
ไม่จำกัด level
สามารถเพิ่ม, ลบ, แก้ไข ได้

addthis_url = ‘http%3A%2F%2Fcallmebird.com%2Fweblog%2Fphp-programmer-test’;
addthis_title = ‘%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%AA%E0%B8%AD%E0%B8%9A+%E0%B8%95%E0%B8%B3%E0%B9%81%E0%B8%AB%E0%B8%99%E0%B9%88%E0%B8%87+PHP+Programmer’;
addthis_pub = ‘callmebird’;

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

php หรือ
javascript

addthis_url = ‘http%3A%2F%2Fcallmebird.com%2Fweblog%2Fbrowser-detection-ie-or-notie’;
addthis_title = ‘%E0%B9%80%E0%B8%82%E0%B8%B5%E0%B8%A2%E0%B8%99+code+%E0%B8%95%E0%B8%A3%E0%B8%A7%E0%B8%88%E0%B8%AA%E0%B8%AD%E0%B8%9A+browser’;
addthis_pub = ‘callmebird’;

modulo ของ php

In: PHP

ในภาษา php จะใช้เครื่องหมาย % ในการ modulo
ปัญหาที่เกิดขึ้นก็คือเราจะไม่สามารถ modulo ทศนิยมได้
ดู bug ได้ที่ http://bugs.php.net/bug.php?id=41802
เช่น 5%0.11 แทนที่จะได้ 0.05 กลับกลายเป็นว่าได้ 0 และ
แถม warning มาด้วย (Warning: Division by zero)

ทั้งนี้ก็เพราะ % ไม่สามารถกระทำกับ float ได้ โดยจะตัดทศนิยมทิ้ง
ในกรณีตัวอย่างข้างต้น จะปัดเหลือ 0 ทำให้เกิด warning ขึ้น
วิธีแก้ก็คือ เปลี่ยนไปใช้ function fmod
float fmod( float $x  , float $y  )
http://us2.php.net/manual/en/function.fmod.php

addthis_url = ‘http%3A%2F%2Fcallmebird.com%2Fweblog%2Fmodulo-php’;
addthis_title = [...]

HTTP authentication ด้วย PHP

In: PHP

authentication คืออะไร พูดง่าย ๆ ที่สุด ก็คือ การป้องกันการเข้าถึงข้อมูลโดยการใช้ username และ password ในบทความนี้เราจะมา authentication ด้วยภาษาสคริปอย่าง php กัน แต่คุณจะต้องติดตั้ง apache module นั่นก็หมายความว่าแบบ CGI นั้นก็ใช้ไม่ได้นั่นเอง
ดูโคดตัวอย่างกันคับ ในที่นี้สมมติว่าเราป้องกันการเข้าถึงด้วย username “myuser” และ password “mypass”

<?php

if ($_SERVER[‘PHP_AUTH_USER’] != "mysuser" or $_SERVER[‘PHP_AUTH_PW’] != "mypass"):

Header( "WWW-authenticate: basic realm=’Protected’");

Header( "HTTP/1.0 401 Unauthorized");

?>

<HTML>

<HEAD><TITLE>Authorization Failed</TITLE></HEAD>

<BODY>

<H1>Authorization Failed</H1>

<P>Without a valid username and password,

access to this page cannot be granted.

Please click "reload" [...]

About this blog

callmebird is Bird's weblog. Bird is blogger who spend life for programming and web technology. This weblog provide web technology article for anyone who love web programming and web design.

Flickr PhotoStream

    panorama

Sponsors