More Related Content More from burin rujjanapan (20) Ch191. บทที่ 19 : ภาษา PHP
บทที่ 19
ภาษา PHP
PHP ถูกพัฒนาโดย Mr.Rasmus Lerdorf เริมเผยแพรเมือปพ.ศ. 2527 (ค.ศ. 1984) และตอมา
่ ่
มีการปรับปรุงโดย Mr.Zeev Saraski และ Andi Gutmans ทําใหสมบูรณ และเกิดการพัฒนาอยางตอเนือง ่
จนเปนรุนที่ 4 ในปจจุบน
ั
เว็บโปรแกรมเมอร
เรื่ อ งน า รู สํา หรั บ
PHP เดิมยอมาจาก Personal Home Page ตอมาปรับเปน Professional Home Page มีรปแบบ
ู
ภาษาคลายภาษา C หรือ PERL แตใชงานไดงายกวา หลายทานทีเคยพัฒนาเว็บไซตดวย PERL เมือหัน
่ ่
มาลองใช PHP จะติดใจ เพราะภาษานีบอกจุดผิดพลาดเมือเขียนผิด ไดรบการพัฒนาอยางตอเนือง ใชงานงาย
้ ่ ั ่
รูปแบบภาษาไมซบซอน ติดตอกับฐานขอมูลไดหลากหลาย มีลกษณะการทํางานแบบ Server-side script
ั ั
ซึงทํางานบนเครืองใหบริการ (Server) เชนเดียวกับภาษา PERL หรือ ASP ภาษาเหลานีเก็บ Source code
่ ่ ้
ตอนที่
3:
บนเครืองบริการ (Server) แตเมือผูใชรองขอโปรแกรมทีตองการจากเครืองบริการ สิงทีสงใหผใช คือ
่ ่ ่ ่ ่ ่ ู
ผลลัพธทผานการประมวลผลเทานัน
ี่ ้
19.1 แหลงทดสอบการใชโปรแกรม
1. ใชงานกับ Free hosting
การเขียนโปรแกรมดวย PHP ไมยงยากเหมือนภาษา PERL ถาใชบริการ Free hosting ที่เปด
ุ
ใหใช PHP จะเก็บโปรแกรมทีเ่ ขียนขึนไวทใดก็ได ไมจาเปนตองเก็บในหอง CGI-BIN และไมจาเปนตอง ใชคาสัง
้ ี่ ํ ํ ํ ่
ปรับปรุง : มิถุนายน 2546 149
>>>
PDF created with FinePrint pdfFactory Pro trial version http://www.pdffactory.com
2. ตอนที่ 3 : เรื่องนารูสําหรับเว็บโปรแกรมเมอร
chmod สิ่งที่จําเปนตองเรียนรูมีเพียง 4 เรื่อง คือ สมัครใชบริการอยางไร เขียนโปรแกรมอยางไร
สงแฟมขึนไปยังเครืองบริการอยางไร และเปดดูเว็บของตัวเองไดอยางไร
้ ่
2. ติดตั้ง PWS (Personal Web Server) หรือ Web server ตัวอื่น แลวติดตั้ง ตัวแปลภาษา
PHP เพิ่มภายหลัง
มีหลายโปรแกรมทีสามารถทําใหเครืองของทานเปน Web server ทีใหบริการ PHP บางโปรแกรม
่ ่ ่
เมือติดตังแลวจะใชงาน PHP ไดทนที แตบางโปรแกรมตองไปหาตัวแปลภาษา PHP มาติดตังเพิม ซึง
่ ้ ั ้ ่ ่
รายละเอียดของแตละโปรแกรมเปลียนแปลงตามการพัฒนาแตละรุน ขอใหศกษาจากเจาของโปรแกรม
่ ึ
สําหรับ PWS เปนโปรแกรมของ Microsoft ยังไมมตวแปลภาษา PHP แตมีตัวแปลภาษา ASP ติดตั้ง
ี ั
เปนมาตรฐาน ถาตองการให PWS บริการ PHP จะตองติดตังโปรแกรมเพิมเติม
้ ่
โปรแกรมนีไมจาเปนตอง Download เพราะมีอยูในแผน CD Windows98 ในหอง Add-on ทาน
้ ํ
เพียงแตทาการติดตังลงไปเทานัน แตถาทานใช WindowsXP ขึนไป จะมีโปรแกรม IIS (Internet Information
ํ ้ ้ ้
System) ติดตังอยู ซึงนํามาแทน PWS ทีออกแบบมาใหใชกบ Windows98 หรือ Windows95 เปนตน
้ ่ ่ ั
ติดตังตัวแปลภาษา PHP
้
ถาโปรแกรม Web server ของทานยังไมมตวแปลภาษา PHP ทานจําเปนตอง Download PHP
ี ั
มาติดตังจาก http://www.php.net ซึงมีขอมูลทีสมบูรณสาหรับนักพัฒนา PHP เกือบทุกเรือง ตัวแปล
้ ่ ่ ํ ่
ภาษา PHP ถูกพัฒนาใหสามารถใชไดในเกือบทุกระบบปฏิบตการ ไมวาทานจะนําไปใชในระบบใด ก็จะมี
ั ิ
รายละเอียดแตกตางกันไมมาก
3. ติดตั้ง OMNIHTTPD ซึ่งเปน Web server ที่ใหบริการ PHP4 โดยไมตองลง PHP เพิ่ม
ถาทานเลือก PWS หรือ IIS ก็ไมจาเปนตองติดตัง OMNIHTTPD เลือกใชตวใดตัวหนึงเปน Web
ํ ้ ั ่
server ก็พอ แตในเครืองของผูเขียนลงไวทง 2 ตัว จะใชตวใดก็เลือกเปดตัวนัน เพราะชอบศึกษาความ
่ ั้ ั ้
สามารถของโปรแกรม ทีอาจตองใช จึงตองเรียนรูไว
่
<<< 150 Introduction to Webmaster
PDF created with FinePrint pdfFactory Pro trial version http://www.pdffactory.com
3. บทที่ 19 : ภาษา PHP
โปรแกรมนีนาใชมาก เพราะมีเมนูทเี่ ขาใจไดงาย เคยใชกบ Windows2000 สามารถทําใหคอม-
้ ั
พิวเตอรเครืองเดียว มีเว็บไซตหลายชือได เพราะความสามารถในการเพิม IP ของ Windows2000 นันเอง
่ ่ ่ ่
เมือลงโปรแกรม MYSQLและ PHPMYADMIN ก็จะใชงานเปน Web server ทีใหบริการไดอยางมีประสิทธิภาพ
่ ่
ผูเ ขียนเองก็ใชพฒนาโปรแกรมในเครืองคอมพิวเตอรทบาน เมือถึงเวลาจึง Upload โปรแกรมขึนไปประมวล
ั ่ ี่ ่ ้
ผลยังเว็บทีเ่ ก็บขอมูล ถากลาวถึง PHP ก็ยงไมพบผูใหบริการทีใชระบบปฏิบตการ Windows ใหบริการ PHP
ั ่ ั ิ
เพราะสวนใหญชนชอบ Linux แตถาเปน ASP ก็ยงไมมรายใดใช Linux เชนกัน เนืองจากนิยมใช Microsoft
ื่ ั ี ่
Windwos ทํา Web server ใหบริการ ASP + MDB สําหรับโปรแกรม OMNIHTTPD ซึ่งพัฒนาโดย
OMNICRON Technologies Corporation ถานําไปทําธุรกิจสามารถซือไดในราคาประมาณ $113 หรือทดลอง
้
ดูกอน สามารถ download ไดจาก http://www.omnicron.ca
ติดตังโปรแกรม MYSQL
้
นักพัฒนาทัวไปทีใช PHP มักมองหา MYSQL (http://www.mysql.com) เพราะทําใหการพัฒนา
่ ่
ระบบฐานขอมูลเปนไปอยางสะดวก และ MYSQL เปนโปรแกรมทีไมเสียเงิน จึงสามารถ Download มา
่
ติดตังไดงาย และเปนฐานขอมูลสําหรับ PHP ทีไดรบความนิยมสูงสุด
้ ่ ั
ปจจุบนกําลังพัฒนา MYSQL ในรุน 4 แตยงไมอยูในระหวางทดสอบ และปรับปรุงใหดกวารุน 3.23
ั ั ี
ทีถกนําไปใชกนทัวโลก ผูเ ขียนเองก็ใชทงบน Windows และ Red hat Linux
ู่ ั ่ ั้
เว็บโปรแกรมเมอร
เรื่ อ งน า รู สํา หรั บ
ตอนที่
3:
ปรับปรุง : มิถุนายน 2546 151
>>>
PDF created with FinePrint pdfFactory Pro trial version http://www.pdffactory.com
4. ตอนที่ 3 : เรื่องนารูสําหรับเว็บโปรแกรมเมอร
ติดตังโปรแกรม PHPMYADMIN
้
MYSQL ถูกออกแบบมาเพือบริการฐานขอมูล แตการสรางตาราง หรือการประมวลผลขอมูล
่
ในฐานขอมูลทําไดยาก จึงมีการพัฒนา PHPMYADMIN ซึงเปน Server-Side Script เพือใชจดการขอมูล
่ ่ ั
ใน MYSQL และเปนโปรแกรมทีใชคกบ MYSQL มากทีสด เพราะผูเขียนพบบริการนีที่ f2s.com และ
่ ู ั ุ่ ้
lycos.co.uk ตางก็ใหบริการ MYSQL คูกบ PHPMYADMIN มิเชนนันก็ยากทีจะสรางตาราง หรือเปดดูขอมูล
ั ้ ่
19.2 เหตุผลที่เลือกเขียน PHP
PHP รุน 3 คือ โปรแกรมทีพฒนาดวย PHP แตมนามสกุลเปน PHP3 ในปพ.ศ. 2540 (ค.ศ.
่ ั ี
1997) เริมมีการใช PHP รุนที่ 4 มากขึน มีคําสั่งใหใชมากขึ้น เหตุผลที่สําคัญที่สุดอยางหนึ่งคือ free
่ ้
hosting เริมหันมาใหบริการ PHP แทน PERL มากขึน ผูเขียนจึงไดเขาไปมาสัมผัสกับภาษานี้
่ ้
ผูเ ขียนเคยคิดจะเขียน PERL เพียงภาษาเดียว แตในฐานะทีเ่ ปนอาจารยอาจมีคนถามวาทําไมไมใช
PHP จึงตองเขาไปศึกษา เมือศึกษาพบวาภาษานีงายกวา PERL อยางเห็นไดชด โดยเฉพาะเรืองการทํางาน
่ ้ ั ่
กับฐานขอมูลทีใช SQL เขียนโปรแกรมเพียงบรรทัดเดียว แตสามารถประมวลผลไดอยางมีประสิทธิภาพ
่
ถาใช PERL ปรับปรุงขอมูล จะมีขนตอนมากมาย และผูเขียนก็เห็นการคืบคลานเขามาของภาษา PHP
ั้
อยางตอเนื่อง เว็บไซตใหญหลายเว็บเปลี่ยนไปใช PHP แทน CGI หรือ PERL ทําใหผูเขียนตองเริ่ม
ศึกษาอยางจริงจัง จนในทีสดมีบริษททีเปดใหบริการ E-commerce ระดับองคกร ชวนผูเขียนไปทํางาน
ุ่ ั ่
ทีปรึกษา ทําใหมโอกาสสัมผัสภาษานีในแงมมของธุรกิจมากขึน
่ ี ้ ุ ้
<<< 152 Introduction to Webmaster
PDF created with FinePrint pdfFactory Pro trial version http://www.pdffactory.com
5. บทที่ 19 : ภาษา PHP
ตัวอยางงานของผูเขียน ทีใชภาษา PHP พัฒนา
่
1. บริการขอสอบ online http://www.thaiall.com/quiz
2. บทเรียนสอนเขียน PHP http://www.thaiall.com/php
3. เกม Online แบบทีมใน Casino
่ ี http://www.thaiall.com/joyspin
4. ระบบขายสินคา e-commerce http://www.cookkoo.com
5. ระบบสมาชิก e-commerce http://www.payaftersale.com
6. ระบบสมาชิกชาวลําปาง http://www.lovelampang.com/id
19.3 การเขียน PHP ใชที่บาน
การเขียนโปรแกรม PHP ในเครืองคอมพิวเตอรทบาน แมจะไม Online ก็ไมใชเรืองยาก เพียง
่ ี่ ่
download โปรแกรม OMNIHTTPD จาก http://www.omnicron.ca มาติดตัง ทําใหเครืองของทานเปน
้ ่
Web server ไดอยางงายดาย ปจจุบนนักเรียนประถมปที่ 6 เขาพัฒนาเว็บไซตกนเปนแลว ผูเขียนเห็น
ั ั
นักเรียนโรงเรียนอนุบาลลําปาง (เขลางครตนอนุสรณ) จังหวัดลําปาง เขียนเว็บไดดจนไดรางวัลระดับ
ั ี
ประเทศหลายรางวัล กวาจะจบมหาวิทยาลัย ผูเ ขียนคิดวา เด็กทีสนใจหลายคนคงกลายเปนนักพัฒนาเว็บ
่
ชั้นยอดไปแลว ผูเขียนเริ่มตนหลังจากจบปริญญาโท ยังมาไดไกลพอสมควร นี่เริ่มตนตั้งแตประถม
พวกเขาเปนคนยุคใหมทพบโอกาสทีดี เมือหันกลับไปดูตนเอง จึงทําใหผเู ขียนอยูเ ฉยไมได เด็กประถมยัง
ี่ ่ ่
เว็บโปรแกรมเมอร
เรื่ อ งน า รู สํา หรั บ
ทําไดแลวทานจะทําไมไดเชียวหรือ โอกาสของทุกคนในยุค IT มีเทากันหมด ทุกอยางอยูในอินเทอรเน็ต
เพียงแตใครจะใชเวลามากกวากัน หาขอมูลที่ตรงกับความตองการ และใชประโยชนไดเหมาะสมกับ
สถานการณกวากันเทานัน้
ขันตอนการเขียนโปรแกรมภาษา PHP โปรแกรมแรก
้
ตอนที่
3:
1. ติดตังโปรแกรม OMNIHTTPD ทีสามารถ download จาก http://www.omnicron.ca
้ ่
2. เขียนโปรแกรมดวย Notepad มี 3 บรรทัด จัดเก็บชือ ohwow.php ไวใน c:httpdhtdocs
่
<?
echo “abc”;
?>
3. เมือเปดเว็บชือ http://localhost/ohwow.php จะเห็นคําวา abc เพียง 3 อักษร แสดงวาสําเร็จ
่ ่
4. ใหลองนํา Source code จาก http://www.perlphpasp.com ไปทดสอบ และเรียนรูเพิมเติม
่
ปรับปรุง : มิถุนายน 2546 153
>>>
PDF created with FinePrint pdfFactory Pro trial version http://www.pdffactory.com
6. ตอนที่ 3 : เรื่องนารูสําหรับเว็บโปรแกรมเมอร
19.4 การเขียน PHP ใชกับ Free hosting
Free hosting คือ เว็บไซตททานไปสมัครขอพืนทีทาเว็บไดฟรี เมือขอแลวจะไดรหัสผูใช (User
ี่ ้ ่ ํ ่
name) และรหัสผาน (Password) ถามีบริการ FTP (File Transfer Protocol) ก็ตองรูชื่อ host
ทีใชสาหรับติดตอเขาไป มีเว็บทีใหบริการหลายราย บางรายยอดเยียมมากเชน f2s.com หรือ hyper-
่ ํ ่ ่
mart.net เปนตน แตทั้งคู ตางก็ปดรับสมัครสมาชิกใหม พบเว็บที่นาสนใจคือ http://www.tripod.
lycos.co.uk ที่นี่ยังเปดรับสมาชิก (พฤษภาคม 2545) และมีบริการที่ยอดเยี่ยมหลายรายการ เชน
บริการ PHP, MYSQL, FTP และใหพื้นที่สูงถึง 50 Mb ชื่อเว็บไซตที่ได เชน http://members.
lycos.co.uk/yourname ถาตองการใชบริการที่ไมธรรมดา ทานตองเขาไปขอเปดบริการ FTP, PHP
และ MYSQL อีกครั้ง จึงจะใชบริการเหลานี้
1. สมัครใชบริการกับ free hosting เพือใหไดรหัสผูใช (Username) และรหัสผาน (Password)
่
แนะนําใหใช http://www.tripod.lycos.co.uk
ถาใชของ se-ed.net ก็ได แตเดือนพฤษภาคม 2545 ยังไมเปดใหบริการ MYSQL บริการอื่น
สมบูรณมาก ในอนาคตนาจะมีเว็บทีใหบริการ PHP + MYSQL เพิมมากขึน มีปญหาก็ mail มาคุยกันได
่ ่ ้
2. Login ผานหนาเว็บไซต เพือขอเปดบริการ FTP, PHP และ MYSQL
่
3. เขียนโปรแกรมดวย Notepad มี 3 บรรทัด จัดเก็บชือ wow.php แลว upload ขึนไป
่ ้
<?
echo “abe”;
?>
4. ทดสอบเปดเว็บชือ http://members.lycos.co.uk/yourname/wow.phpถาเห็นอักษร abc แสดงวาสําเร็จ
่
19.5 การสรางตาราง หรือเพิ่มระเบียนใหม
ที่ http://www.tripod.lycos.co.uk มีบริการ MYSQL และการเขียนโปรแกรมทีใชตดตอฐาน
่ ิ
ขอมูล ไมจาเปนตองกําหนดรหัสผูใช และรหัสผานในโปรแกรม ถาทานจะเขียนโปรแกรมนีแลวนําไป
ํ ้
ทดสอบ ตองเปลียนคําวา thaiall เปนรหัสผูใช (Username) ทีทานไดจากผูใหบริการ เมือเขียนเสร็จแลว
่ ่ ่
ให Upload ขึนไป แลวใช IE ทดสอบ
้
<<< 154 Introduction to Webmaster
PDF created with FinePrint pdfFactory Pro trial version http://www.pdffactory.com
7. บทที่ 19 : ภาษา PHP
เพือใหเห็นการทํางานทีตดตอฐานขอมูล ควรมีโปรแกรมสําหรับสรางขอมูล และอานขอมูลมา
่ ่ ิ
แสดงผล ผูเขียนไดสรางโปรแกรม mysqlcreate.php ก็คือ โปรแกรมขางลางนี้ เพื่อทําหนาที่เพิ่ม
ระเบียนใหมเขาไปในตาราง worker และโปรแกรม mysqlselect.php สําหรับอานขอมูลจากตาราง worker
มาแสดงผล ซึงอยูในหัวขอตอไป จากนันทานควรใชเขาไปดูขอมูลผานบริการที่ free hosting จัดเตรียม
่ ้
ใหผานการ login เขาไป แลวจึงเลือก MYSQL database : admin เพือเปดดูขอมูลในตาราง worker และ
่
จํานวนระเบียนวาถูกตองหรือไม การประมวลผลโปรแกรมนีครังหนึง จะสรางระเบียน 3 ระเบียน การสัง
้ ้ ่ ่
Refresh 10 ครังอาจสรางระเบียนถึง 30 ระเบียน ถาจํานวนระเบียนเพิมขึนตอไปอาจมีปญหา ทานควร
้ ่ ้
ลบระเบียน หรือลบตาราง
ตัวอยางโปรแกรม mysqlcreate.php (อยางลืมเปลียนคําวา thaiall เปน username ของทาน)
่
<?
$db= “thaiall_uk_db”;
$connect=mysql_connect();
$tb= “worker”;
$result=mysql_create_db($connect);
echo “Create database thaiall (table $tb)”;
$query= “create table $tb (eid char(4),ename char(40))”;
$result=mysql_db_query($db,$query);
$sql= “insert into $tb values(‘1001’, ‘Tom’)”;
$result=mysql_db_query($db,$sql);
$sql= “insert into $tb values(‘1002’, ‘Dang’)”;
$result=mysql_db_query($db,$sql);
$sql= “insert into $tb values( ‘1003’, ‘Pom’)”;
$result=mysql_db_query($db,$sql);
mysql_close($connect);
?>
เว็บโปรแกรมเมอร
เรื่ อ งน า รู สํา หรั บ
ตอนที่
3:
ปรับปรุง : มิถุนายน 2546 155
>>>
PDF created with FinePrint pdfFactory Pro trial version http://www.pdffactory.com
8. ตอนที่ 3 : เรื่องนารูสําหรับเว็บโปรแกรมเมอร
19.6 การอานขอมูลจากตารางมาแสดงผล
เมือเขาใจวาจะสรางตาราง หรือระเบียนอยางไร ก็มาดูวาจะนําขอมูลออกมาแสดงผลดวย PHP
่
อยางไร ผูเขียนสรางโปรแกรมชื่อ mysqlselect.php ซึ่งทําหนาที่อานขอมูลจาก worker มาแสดงผล
ทานสามารถทดสอบโปรแกรมนีเ้ หมือนทีผเ ู ขียนทดสอบไดที่ http://members.lycos.co.uk/thaiall/mysql
่
select.php แตไมสามารถทดสอบโปรแกรมสราง เพราะผูเขียนลบโปรแกรม mysqlcreate.php ออกไป
กอนทีจะลบผูเ ขียนสงโปรแกรมทัง 2 เขาไป โดยใชโปรแกรม WS_FTP ซึงเห็นผลดังภาพ
่ ้ ่
ตัวอยางโปรแกรม mysqlselect.php (อยางลืมเปลียนคําวา thaiall เปน username ของทาน)
่
<?
$db= “thaiall_uk_db”;
$connect=mysql_connect();
echo “Display records :”;
$tb= “worker”;
$query= “select * from $tb”;
$result=mysql_db_query($db,$query);
if ($result) { echo “OK<br>”; } else { exit; }
while ($object=mysql_fetch_object($result)) {
echo $object->eid . “ ”. $object->ename . “<br>”;
}
echo “Total records : ”.mysql_num_rows($result);
mysql_close($connect);
?>
<<< 156 Introduction to Webmaster
PDF created with FinePrint pdfFactory Pro trial version http://www.pdffactory.com
9. บทที่ 19 : ภาษา PHP
ตัวอยางผลลัพธจากโปรแกรม mysqlselect.php
19.7 การแสดงคาสภาพแวดลอมทั้งหมด
โปรแกรมนีสาคัญมาก เพราะทําใหสามารถเขาไปเลือกใชตวแปรบางตัวของระบบได บางครัง
้ํ ั ้
ตองการทราบวา DOCUMENT_ROOT ของระบบอยูทใด เพือทีจะเขียนโปรแกรมเขาไปอานแฟมขอมูล
ี่ ่ ่
และบางครัง Web server ไมไดเขียนคําอธิบายไว นักพัฒนาจึงตองเขียนโปรแกรมขึนมา เพือตรวจสอบ
้ ้ ่
เว็บโปรแกรมเมอร
เรื่ อ งน า รู สํา หรั บ
คาเหลานีในเครืองบริการ และนําไปใช คําสังเพือเรียกเฉพาะบางคามาใช เขียนไดดงนี้ echo $DOCU-
้ ่ ่ ่ ั
MENT _ROOT;
โปรแกรมแสดงคา $HTTP_ENV_VARS ทังหมด ้
<?
ตอนที่
3:
while (list ($key, $val) = each ($HTTP_ENV_VARS)) {
echo “$key = $val<br>”;
}
?>
19.8 แนะนําเว็บไซต
1. http://www.hotscripts.com แหลงแนะนํา Source code ชันเยียมเกือบทุกภาษา
้ ่
2. http://www.mysql.com ผูพฒนาโปรแกรม MYSQL
ั
3. http://www.omnicron.ca ผูพฒนาโปรแกรม Omnihttpd (Web server) ทีใช PHP ได
ั ่
4. http://www.php.net แหลงอางอิงภาษา PHP ทีทวโลกยอมรับ
่ ั่
ปรับปรุง : มิถุนายน 2546 157
>>>
PDF created with FinePrint pdfFactory Pro trial version http://www.pdffactory.com
10. ตอนที่ 3 : เรื่องนารูสําหรับเว็บโปรแกรมเมอร
5. http://www.phpwizard.net ผูพฒนาโปรแกรม PHPMYADMIN
ั
6. http://www.spaceports.com ผู ใ ห บ ริ ก าร
Free web hosting 30 Mb + Mysql 7. http://www.t35.com
ผูใหบริการ Free web hosting 35 Mb 8. h t t p : / /
www.thaiall.com/php บทเรียนสอนเขียนโปรแกรมภาษา ASP โดยผูเขียน
9. http://www.tripod.lycos.co.uk ผู ใ ห บ ริ ก าร
Free web hosting 50 Mb + Mysql 10. http://www.uebimiau.sili.com.br
ผูพัฒนาโปรแกรมอาน E-mail จาก POP3 mail server
<<< 158 Introduction to Webmaster
PDF created with FinePrint pdfFactory Pro trial version http://www.pdffactory.com