|  ♥ | ||
| ปรับปรุง : 2568-02-19 (มาร์คดาวน์) |  | 
| การเขียนโปรแกรมพีเอชพี และจาวาสคริปต์PHP and Javascript ProgrammingThaiall.com/php/php7.htm 3(2-2-5)ปรับปรุง 16 สิงหาคม 2564 | 
| โฮมเพจที่เกี่ยวข้อง
 | 
| MD1 : markdown viewer extension
 | 
| MD2 : markdown viewer extension"http://www.thaiall.com/md" 1. Extension enable : Markdown Viewer 2. Address Bar : Click เลือก Extension : Markdown Viewer 3. Click : ADVANCED OPTIONS 4. Click : ALLOW ACCESS TO FILE:// URLS 5. Enable : Allow access to file URLs 6. Chrome : file:///D:/phpjs_all.md | 
| หน่วยที่ 1 ฟูลสแตก (Full Stack)ฟูลสแตก (Full stack)โปรแกรมเอดิเตอร์ (Editor)โปรแกรมบราวเซอร์ (Web Browser)การใช้สื่อสังคม (Social Media) | 
| ฟูลสแตก (Full stack)
 แหล่งสำรวจแล้วจัดอันดับที่น่าสนใจ "https://w3techs.com/" "https://webtechsurvey.com/technology-type" | 
| ฟูลสแตก (Full stack) - Type of development
 
 | 
| ฟูลสแตก (Full stack)
 Program : Browser (like using JavaScript, jQuery, Angular, or Vue) Program : Server (like using PHP, ASP, Python, or Node) Program : Database (like using SQL, SQLite, or MongoDB) 
 LAMP stack: JavaScript - Linux - Apache - MySQL - PHP LEMP stack: JavaScript - Linux - Nginx - MySQL - PHP MEAN stack: JavaScript - MongoDB - Express - AngularJS - Node.js Django stack: JavaScript - Python - Django - MySQL Ruby on Rails: JavaScript - Ruby - SQLite - Rails 
 | 
| ฟูลสแตก (Full stack)
 | 
| ฟูลสแตก (Full stack)
 | 
| ฟูลสแตก (Full stack) : PHP Manualเอกสารสำหรับผู้เริ่มต้น เป็นคู่มือแบบที่พบใน php.net 
 เอกสารสำหรับมืออาชีพ 
 | 
| นิยามศัพท์ (Technical Terms)
 | 
| นิยามศัพท์ (Technical Terms)
 | 
| นิยามศัพท์ (Technical Terms) : TOP
 
 
 
 | 
| นิยามศัพท์ (Technical Terms)
 | 
| นิยามศัพท์ (Technical Terms)
 
 | 
| องค์ประกอบของ e-Learning
 | 
| องค์ประกอบของระบบอีคอมเมิร์ซ
 | 
| โปรแกรมเอดิเตอร์ (Editor)
 | 
| ผลสำรวจ editor พบ sublime, notepad++, vim, atom, emacs
 | 
| การ find & replace และใช้ regex บน vscode
 | 
| การ find & replace และใช้ regex บน notepad++
 | 
| การคัดลอกข้อมูลจาก timeshighereducation.com มาใช้ขั้นตอนการปรับปรุงเว็บเพจ (12 กรกฎาคม 2563) 
 | 
| การจัดการ code ของ timeshighereducation.comเตรียมข้อมูล ฝึกปฏิบัติ 
 <style>
.pane-content{background-color:#ddffdd;}
thead{background-color:#dddddd;}
div{background-color:white;float:left;}
.odd{background-color:#ddffdd;}
.even{background-color:#ffffdd;}
</style> | 
| Regular Expression
 | 
| Regular Expression- คำว่า <div><span><a href="(.*)">(.*)</a></span></div> เป็น <div><span>$2</span></div> ของ vscode - คำว่า <div><span><a href="(.*)">(.*)</a></span></div> เป็น <div><span>\2</span></div> ของ editplus 
 | 
| การใช้ editor สั่งแทนที่คำว่า Thailand ด้วย THAILAND
 | 
| โปรแกรมบราวเซอร์ (Web Browser)
 | 
| การใช้สื่อสังคม (Social Media)
 | 
| หน่วยที่ 2 กริต (Git)การใช้บริการ Github.comการเขียน Homepage บน Githubการใช้งาน Github.com | 
| การใช้บริการ Github.com
 | 
| การเขียน Homepage บน Github
 | 
| หน่วยที่ 3 การใช้กริต (Git)การใช้ Command Lineการใช้ Application | 
| การใช้ Command Lineคำสั่ง Git 
 | 
| การ push
 | 
| การใช้ Application
 | 
| Git GUI
 | 
| หน่วยที่ 4 ภาษาเอชทีเอ็มแอล (HTML)ภาษาเอชทีเอ็มแอล (HTML)ความรู้เกี่ยวกับซีเอสเอส (CSS)ความรู้เกี่ยวกับจาวาสคริปต์ (Javascript) | 
| ภาษาเอชทีเอ็มแอล (HTML)
 | 
| ความรู้เกี่ยวกับซีเอสเอส (CSS)
 | 
| ความรู้เกี่ยวกับจาวาสคริปต์ (Javascript)
 | 
| Blockly
 | 
| Scratch
 | 
| หน่วยที่ 5 การใช้ซีเอสเอส (CSS)การเขียนเว็บเพจแบบ Responsive Web Designการใช้ CSS ภายในการใช้ CSS ภายนอก | 
| การเขียนเว็บเพจแบบ Responsive Web Design.m{width:100%;}
@media only screen and (max-width:320px){
.m{width:315px;}
}
@media only screen and (min-width:321px) and (max-width:375px){
.m{width:370px;}
}
@media only screen and (min-width:376px) and (max-width:728px){
.m{width:90%;}
}
 | 
| การใช้ CSS ภายใน<style>
@font-face{font-family:'THBaijam'; src: url('TH Baijam.ttf');}
</style>
<div style="font-family:THBaijam">abc</div>
 | 
| การใช้ CSS ภายนอก<link type="text/css" rel="stylesheet" href="rsp80.css" /> <div class="hello">abc</div> 
 | 
| หน่วยที่ 6 ภาษาจาวาสคริปต์ (Javascript)การเขียนเว็บเพจด้วย Javascriptการเรียกใช้ jquery | 
| การเขียนเว็บเพจด้วย Javascript
 | 
| การเรียกใช้ jquery
 | 
| หน่วยที่ 7 บูทสแตป (Bootstrap)บริการของ Bootstrapการจัดการ Layout | 
| บริการของ Bootstrap
 | 
| การจัดการ Layout
 | 
| หน่วยที่ 8 เทมเพจด้วยบูทสแตป (Bootstrap)โครงสร้าง AdminTLEการประยุกต์ใช้ AdminTLE | 
| โครงสร้าง AdminTLE
     - starter.html
    - index.html index2.html index3.html
    /build
    /dist
    /docs
    /pages
    /plugins
 | 
| การประยุกต์ใช้ AdminTLE
 <html><head><link rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700" >
<style> body {font-family: 'Source Sans Pro';font-size:20px;font-weight:300;}
.c1 {font-family: 'Source Sans Pro';font-weight:400;font-style:italic;}
.c2 {font-family: 'Source Sans Pro';font-weight:400;}
.c3 {font-family: 'Source Sans Pro';font-weight:700;}
</style>
</head><body>Hello 300
<div class="c1">World 400i</div>
<div class="c2">I am a 400</div>
<div class="c3">man 700</div>
 | 
| หน่วยที่ 9 เครื่องบริการเว็บ (Web Server)เครื่องบริการ (Webserver)โปรแกรม Apacheโปรแกรม MySQLโปรแกรม PHPMyAdmin | 
| เครื่องบริการ (Webserver)
 | 
| โปรแกรม Apache
 | 
| โปรแกรม MySQL
 | 
| Practice SQL Online" Play online https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all https://www.jdoodle.com/execute-sql-online/ http://sqlfiddle.com/ https://sqliteonline.com/ https://www.mycompiler.io/online-sql-editor https://livesql.oracle.com/ (Tutorial)" | 
| ระบบฐานข้อมูล Northwind บน w3schools.com
 Tablename Records Customers 91 Categories 8 Employees 10 OrderDetails 518 Orders 196 Products 77 Shippers 3 Suppliers 29 | 
| ระบบฐานข้อมูล Northwind
 | 
| Select (1/19)
 select * from orders /* w3schools : ok */ | 
| Select (2/19)
 select * from `order details` -- select * from orderdetails /* w3schools : ok */ | 
| Select (3/19)
 select * from products limit 0,5 /* w3schools : ok */ | 
| Select (4/19)
 select * from products order by productname desc /* w3schools : ok */ | 
| Select (5/19)
 select * from orders where employeeid = 4 /* w3schools : ok */ | 
| Select (6/19)
 select * from orders where freight > 100 and freight < 1000 -- SELECT * FROM [OrderDetails] where quantity > 5 and quantity < 10 | 
| Select (7/19)
 select * from products where QuantityPerUnit like '%pieces%' -- select * from products where unit like '%boxes%' | 
| Select (8/19)
 select `order details`.*, products.* from `order details`,products where `order details`.productid = products.productid /* select [orderdetails].*, products.* from [orderdetails],products where orderdetails.productid = products.productid */ | 
| Select (9/19)
 select `order details`.*, products.* from (`order details` inner join products on `order details`.productid = products.productid) /* select `orderdetails`.*, products.* from (`orderdetails` inner join products on `orderdetails`.productid = products.productid) */ | 
| Select (10/19)
 select orderid, count(orderid) as cnt from `order details` group by orderid -- select orderid, count(orderid) as cnt from `orderdetails` group by orderid | 
| Select (11/19)
 select orderid, sum(quantity * unitprice) as total from `order details` group by orderid /* select orderid, sum(quantity) as total from [orderdetails] group by orderid */ | 
| Select (12/19)
 select `order details`.*, products.* from (`order details` inner join products on `order details`.productid = products.productid) where `order details`.unitprice > 100 /* select `orderdetails`.*, products.* from (`orderdetails` inner join products on `orderdetails`.productid = products.productid) where `orderdetails`.quantity > 10 */ | 
| Select (13/19)
 select orders.customerid, `order details`.*, products.* from orders, (`order details` inner join products on `order details`.productid = products.productid) where `order details`.unitprice > 100 and orders.orderid = `order details`.orderid /* select orders.customerid, `orderdetails`.*, products.* from orders, (`orderdetails` inner join products on `orderdetails`.productid = products.productid) where `orderdetails`.quantity > 10 and orders.orderid = `orderdetails`.orderid */ | 
| Select (14/19)
 select orders.customerid, `order details`.*, products.* from (orders inner join `order details` on orders.orderid = `order details`.orderid inner join products on `order details`.productid = products.productid) where `order details`.unitprice > 100 /* select orders.customerid, `orderdetails`.*, products.* from (orders inner join `orderdetails` on orders.orderid = `orderdetails`.orderid inner join products on `orderdetails`.productid = products.productid) where `orderdetails`.quantity > 10 */ | 
| Select (15/19)
 select orderid, sum(quantity * unitprice) as total from `order details` group by orderid having sum(quantity * unitprice) > 1000 /* select orderid, sum(quantity) as total from `orderdetails` group by orderid having sum(quantity) > 10 */ | 
| Select (16/19)
 select * from `order details` where productid in (select productid from products where unitsinstock = 0) order by productid /* select * from `orderdetails` where productid in (select productid from products where price > 5) order by productid */ | 
| Select (17/19)
 select employees.employeeid, count(orders.orderid) as cnt_orderid from (employees inner join orders on employees.employeeid = orders.employeeid) where orders.shipcountry ='Spain' group by employees.employeeid /* select employees.employeeid, count(orders.orderid) as cnt_orderid from (employees inner join orders on employees.employeeid = orders.employeeid) where orders.shipperid =2 group by employees.employeeid */ | 
| Select (18/19)
 select * from employees where employeeid in (select employees.employeeid from (employees inner join orders on employees.employeeid = orders.employeeid) where orders.shipcountry ='Spain' group by employees.employeeid) /* select * from employees where employeeid in (select employees.employeeid from (employees inner join orders on employees.employeeid = orders.employeeid) where orders.shipperid =2 group by employees.employeeid) */ | 
| Select (19/19)
 select emp_left.employeeid, emp_right.cnt_order from employees emp_left left join (select orders.employeeid, count(orders.orderid) as cnt_order from orders where orders.shipcountry ='Spain' group by orders.employeeid) emp_right on emp_right.employeeid = emp_left.employeeid /* select emp_left.employeeid, emp_right.cnt_order from employees emp_left left join (select orders.employeeid, count(orders.orderid) as cnt_order from orders where orders.shipperid =2 group by orders.employeeid) emp_right on emp_right.employeeid = emp_left.employeeid */ | 
| โปรแกรม PHPMyAdmin
 | 
| JMeter
 | 
| หน่วยที่ 10 เฟรมเวิร์คพีเอชพี (PHP Framework)โปรแกรมลาราเวล (PHP Framework : Laravel)โปรแกรม Composerโปรแกรม Node.js | 
| โปรแกรมลาราเวล (PHP Framework : Laravel)
 DOS> composer create-project --prefer-dist laravel/laravel helloworld
พบปัญหา
    [Composer\Downloader\TransportException]
    Unable to use a proxy: malformed http_proxy url
น่าจะเกิดจาก : ขณะติดตั้ง composer ไปเลือก Check : Use a proxy server to connect to internet
DOS> composer diagnose (เพื่อตรวจสอบ composer)
DOS> netsh winhttp show proxy (เพื่อตรวจสอบ proxy)
DOS> echo %HTTP_PROXY%
DOS> set
วิธีแก้ไข
ในกรณีไม่จำเป็นต้องผ่าน proxy แต่ไปเลือก proxy ในขณะติดตั้ง composer
วิธีที่ 1. ลบตัวแปร Control Panel -> System -> Advanced system settings -> Environment Veriables -> http_proxy
วิธีที่ 2. DOS> set http_proxy= และ set https_proxy
วิธีที่ 3. DOS> netsh winhttp reset proxy | 
| ติดตั้ง Laravel ด้วย ComposerDOS>node -v (v10.15.3)
DOS>npm -v (6.4.1)
DOS>npx -v (6.4.1)
# ติดตั้ง Laravel ด้วย Composer
DOS> composer create-project --prefer-dist laravel/laravel ex1
DOS> xcopy ex1 ex1b /e (เพื่อสำรองก่อนปรับปรุง หรือหลังผ่านการทดสอบ)
/e คือ Copies directories and subdirectories, including empty ones.
DOS> cd ex1
DOS> php artisan -V (Laravel Framework 7.9.2)
DOS> php artisan serve
>    Laravel development server started: http://127.0.0.1:8000 (Ctrl+C)
[Folder] (8,596 Files, 1,542 Folders, 36.6MB)
    app
    bootstrap
    config
    database
    public
    resources
    routes
    storage
    tests
    vendor | 
| โปรแกรม Composer
 https://getcomposer.org/Composer-Setup.exe
1. DOS> composer -v
2. DOS> cd c:\xampp\htdocs
3. DOS> composer require erusev/parsedown
Using version ^1.7 for erusev/parsedown
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing erusev/parsedown (1.7.4): Downloading (100%)
Writing lock file
Generating autoload files
4.  พบใน c:\xampp\htdocs
composer.json
composer.lock
/vendor
/vendor/autoload.php
/vendor/composer มี 8 แฟ้ม
/vendor/erusev
/vendor/erusev/parsedown/ มี 4 แฟ้ม
5. test1.php
<?php
require_once 'vendor/erusev/parsedown/parsedown.php';
$parsedown = new Parsedown();
$text = file_get_contents('test1.md');
echo $parsedown->text($text);
// echo $parsedown->line($text); ไม่มีการจัดรูปแบบแยก paragraph
6. localhost/test1.php | 
| โปรแกรม Node.js
 ทดสอบตัวอย่างการใช้ Node.js เบื้องต้น - DOS> npx create-react-app hello - DOS> cd hello - DOS> npm start - DOS> explorer http://localhost:3000 | 
| หน่วยที่ 11 ลาราเวล (Laravel)การทำงานกับลาราเวล (Laravel)หลักการ Modelหลักการ Viewหลักการ Controller | 
| การทำงานกับลาราเวล (Laravel)
 | 
| หลักการ ModelModels in Laravel
https://laravel.com/docs/7.x/eloquent#introduction
https://laravel.com/docs/7.x/migrations
https://blog.pusher.com/laravel-mvc-use/
cd htdocs
php artisan (Could not open input file: artisan)
cd ex4
php artisan (Laravel Framework 7.6.2)
editplus.exe htdocs/ex4/config/database.php
'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''),
'database' => env('DB_DATABASE', 'test'), 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', ''),
php artisan make:model Flight --migration
Created Migration: 2020_04_24_140657_create_flights_table
พบแฟ้มนี้ใน ex4/database/migrations/2020_04_24_140657_create_flights_table.php
บรรทัดที่ 17 พบ  $table->id();
เพิ่ม $table->string('name',100)->charset('utf8')->default(0);
เพิ่ม $table->integer('salary');
ก่อนบรรทัดนี้   $table->timestamps();
พบ Flight.php ใน ex4/app
เปิดแฟ้ม ex4/.env
เปลี่ยน DB_DATABASE=laravel เป็น test
php artisan migrate
สร้างตาราง Flights มาให้
---
xampp/mysql_start.bat
cd xampp/mysql/bin
mysql -u root -p (Server version: 10.4.11-MariaDB)
use test;
create table books (
 id int(11) NOT NULL,
 name varchar(256) NOT NULL,
 category varchar(256) NOT NULL,
 description text NOT NULL
);
 | 
| หลักการ View
 <div class="flex-center position-ref full-height">
  <div class="content">
    <div class="title m-b-md">Product Store</div>
    <div class="links">
      <a href="{{ config('app.url')}}/products/create">Create Product</a>
      <a href="{{ config('app.url')}}/products">View Products</a>
    </div>
  </div>
</div>
 | 
| หลักการ Controllerจะพบแฟ้ม ProductController.php ใน ex4/app/Http/Controllers
public function create()
    {
        return view('createproduct'); // เพิ่มมาใหม่
    }
public function store(Request $request)
    {
        \App\Product::create([
          'name' => $request->get('name'),
          'description' => $request->get('description'),
          'price' => $request->get('price'),
          'count' => $request->get('count'),
        ]);
        return redirect('/products');
    }
 public function index()
    {
       $products = \App\Product::all();
        return view('viewproducts', ['allProducts' => $products]);
    }
 | 
| หน่วยที่ 12 การจัดการข้อมูล (CRUD Package)การติดตั้ง (Install)การสร้าง (Create)การอ่าน (Read)การปรับปรุง (Update)การลบ (Delete) | 
| การติดตั้ง (Install)
 | 
| การติดตั้ง (Install)
 | 
| การติดตั้ง (Install)CRUD generator package https://medium.com/ideagital/มาใช้งาน-laravel-crud-generator-ตัวช่วยสร้าง-crud-สำเร็จรูป-c465ffe8f074 DOS> php artisan -V Laravel Framework 7.16.1 - โหลด appzcoder/crud-generator DOS> composer require appzcoder/crud-generator --dev ดึง assets ขึ้นมาใช้งาน DOS> php artisan vendor:publish --provider="Appzcoder\CrudGenerator\CrudGeneratorServiceProvider" เริ่มสร้าง crud http://www.thaiall.com/project/projectdbnwind.htm DOS> php artisan crud:generate Categories --fields="categoryid#integer; categoryname#string; description#text" --view-path=northwind --controller-namespace=northwind --route-group=northwind --form-helper=html พบแฟ้ม ex1/database/migrations/2020_06_23_120044_create_categories_table.php ex1/app/Category.php ex1/app/Http/Controllers/Northwind/CategoriesController.php ex1/resources/views/northwind/categories - create.blade.php - edit.blade.php - form.blade.php - index.blade.php - show.blade.php DOS> php artisan route:list มีให้เรียกใช้เยอะเลย Route Name categories.store categories.index categories.create categories.update categories.show categories.destroy categories.edit mysql_start.bat DOS> php artisan migrate DOS> php artisan serve 127.0.0.1/northwind/categories 127.0.0.1:8000/northwind/categories 
 | 
| การสร้าง (Create)
 | 
| ทดสอบตัวอย่างการใช้ Node.js เบื้องต้น
 | 
| การอ่าน (Read)
 <!DOCTYPE html><html><body> <h1>Summer</h1><p>I love the sun!</p> </body></html> <!DOCTYPE html><html><body> <h1>Winter</h1><p>I love the snow!</p> </body></html> 
 | 
| การปรับปรุง (Update)
 editplus.exe mytest/routes/web.php
    Route::get('/changename', function () { return view('changename'); });
    Route::post('/changename',  'test1Controller@changename');
editplus.exe resources/views/changename.blade.php
    <!doctype html><html><head><title>Changename</title></head><body>
    <div class="flex-center position-ref full-height">
    <div class="content">
    <form method="POST" action="{{ config('app.url')}}/changename">
    @csrf
    <h1>Changename</h1>
    <div class="form-input"><label>ID</label><input type="text" name="id"></div>
    <div class="form-input"><label>Name</label><input type="text" name="name"></div>
    <button type="submit">Submit</button>
    </form>
    </div></div></body></html>
https://github.com/scotch-io/laravel-database-course/blob/master/app/Http/Controllers/UserController.php
editplus.exe app/Http/Controllers/test1controller.php
    public function changename(Request $request)    {
        $myid = $request->id;
        $myname = $request->name;
        $chg = \App\test1::find($myid);
        $chg->name = $myname;
        $chg->save();
        // หรือ $affectedRows =  \App\test1::where("id", $myid)->update(["name" => $myname]);
        return redirect('/test1');
    }
 | 
| การลบ (Delete)
 - คัดลอก welcome.blade.php เป็น deluser.blade.php
- เปิด web.php ใน ex1/routes มาแก้ไข
- เพิ่มบรรทัด
    Route::get('/delu',  'HomeController@delu');
    Route::post('/delu',  'HomeController@delbyid');
-  เปิด HomeController.php ใน ex1/app/Http/Controllers เพิ่ม public function delu(){ return view('deluser'); }
- เพิ่ม บรรทัดต่อไปนี้ ใน deluser.blade.php
    <form method="POST" action="{{ config('app.url')}}/delu">
    @csrf
    <div class="form-input"><input type="text" name="name"></div>
    <!-- input type="hidden" name="_token" value="{{ csrf_token() }}" -->
    <!-- TokenMismatchException in VerifyCsrfToken.php line 67: -->
    <button type="submit">Submit</button>
    </form>
- DOS> php artisan make:model mgmtusers (ไม่มีโมเดลต่างเครื่อง)
- แก้ไข mgmtusers.php ใน ex1/app เพิ่ม protected $table = 'users'; ถ้าไม่เพิ่มจะมีค่าปริยายเป็น "mgmtusers"
- เปิด HomeController.php ใน ex1/app/Http/Controllers เพิ่ม
    public function delbyid(Request $request)    {
        $myname = $request->name;
        $usr = \App\mgmtusers::where('name',$myname)->first();
        $usr->delete();
        return redirect('/welcome');
    }
 | 
| หน่วยที่ 13 รีแอ็ค (React)การติดตั้ง Reactการเขียนเว็บเพจด้วย React | 
| การติดตั้ง React
 | 
| การเขียนเว็บเพจด้วย React
 | 
| การเรียกใช้ Node.js URL Module
 | 
| code<h1>Summer</h1> <p>I love the sun!</p> <h1>Winter</h1> <p>I love the snow!</p> | 
| code ใน demo.jsvar http = require('http');
var url = require('url');
var fs = require('fs');
http.createServer(function (req, res) {
  var q = url.parse(req.url, true);
  var filename = "." + q.pathname;
  fs.readFile(filename, function(err, data) {
    if (err) {
      res.writeHead(404, {'Content-Type': 'text/html'});
      return res.end("404 Not Found");
    }
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write(data);
    return res.end();
  });
}).listen(8080); | 
| หน่วยที่ 14 ไลน์ (Line)การใช้บริการ Line notifyการเขียนสคริปต์ส่งข้อความหลายกลุ่ม | 
| การใช้บริการ Line notify
 | 
| การเขียนสคริปต์ส่งข้อความหลายกลุ่ม
 | 
| การทำ Line notify ส่งข้อความเข้า Line group
 | 
| การสร้าง Token
 | 
| ตัวอย่าง code ใน sendnotify.php แบบ curl$headers = array('Content-Type: application/x-www-form-urlencoded','Authorization: Bearer ' . '.. token ..');
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, 'https://notify-api.line.me/api/notify');
curl_setopt( $ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_POSTFIELDS, 'message='. 'hello' );
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec( $ch );
curl_close( $ch );
var_dump(json_decode($result,TRUE)); | 
| ตัวอย่าง code ใน sendnotify.php แบบ file_get_contentsif(!ini_get('allow_url_fopen')) die('file_get_contents : Disabled');
$data = array("message" => 'hello');
$data = http_build_query($data,'','&');
$headerOptions = array('http'=>array('method'=>'POST',
'header'=> 'Content-Type: application/x-www-form-urlencoded\r\n'
.'Authorization: Bearer '.'.. token ..'.'\r\n'.'Content-Length: '.strlen($data).'\r\n','content' => $data),);
$context = stream_context_create($headerOptions);
$result = file_get_contents('https://notify-api.line.me/api/notify',FALSE,$context);
$res = json_decode($result); | 
| หน่วยที่ 15 มัลติมีเดีย(Multimedia)สื่อแบบ Audio และ Videoสื่อแบบ Flash | 
| สื่อแบบ Audio และ Video<audio controls> <source src="horse.mp3" type="audio/mpeg"> Your browser does not support the audio element. </audio> 
 | 
| สื่อแบบ Flash
 <object id="lesson0201">
  <embed name="lesson0201" src="lesson0201.swf" width="100" height="80"
    type="application/x-shockwave-flash">
  </embed>
</object>
 | 
| End
 | 
| โครงงานระบบสั่งซื้อบริษัท Northwind (1/4)กิจกรรมที่ต้องมีในตัวโครงงาน 
 
 
 
 
 
 
 
 | 
| โครงงานระบบสั่งซื้อบริษัท Northwind (2/4)
 
 
 
 
 
 
 | 
| โครงงานระบบสั่งซื้อบริษัท Northwind (3/4)
 
 
 
 
 
 
 | 
| โครงงานระบบสั่งซื้อบริษัท Northwind (4/4)
 
 
 
 | 
| ประเด็นที่น่าสนใจ (1/2)
 | 
| ประเด็นที่น่าสนใจ (2/2)"Technology: Laravel - php, Django - python , Node.js , React Mobile , Desktop , Server , API, Library, Bootstrap, JQuery Social media, Blog, Retouch, Optimization, SEO, Line notify, E-book การใช้บริการ Free webhosting หรือติดตั้ง web server http://www.thaiall.com/blog/burin/8834/ - ทดสอบ Free web hosting http://www.thaiall.com/omni/indexo.html - hosting และ script การใช้ FTP ทั้ง command line และ filezilla หรือโปรแกรมอื่น http://www.thaiall.com/learn/useftp.htm การเขียน Markdown นำเสนอผลงาน http://www.thaiall.com/md/ - ใช้งานบน github.com การบีบอัดแฟ้ม .rar หรือ .zip แบบกำหนดรหัสผ่าน https://www.protectedzip.com/ การสร้างแฟ้มจำนวนมาก นับแสนแฟ้ม นับล้านแฟ้ม ที่มีเนื้อหา และด้วยภาษาต่าง ๆ เช่น php หรือ java หรือ python หรือ C# http://www.thaiall.com/php/ - ต.ย.73 สร้างหมื่นแฟ้มใช้เวลา 10 วินาที http://www.thaiall.com/class/ - สร้างแฟ้มจำนวนมาก ด้วย จาวา http://www.thaiall.com/python/ - สร้างแฟ้มขนาด 1 MB การเขียนโปรแกรมจัดการข้อมูล http://www.thaiall.com/project/projectdbnwind.htm การใช้ phpmyadmin หรือ command line จัดการ mysql http://www.thaiall.com/mysql/ การ select ข้อมูลแบบ inner join http://www.thaiall.com/project/projectdbnwind.htm การ insert , delete , update http://www.thaiall.com/php/training492.htm การจัดการข้อมูลด้วย php 357 http://www.thaiall.com/perlphpasp/source.pl?key=9144 การค้นหาจุดผิดพลาด 20 จุด ใน PHP http://www.thaiall.com/perlphpasp/source.pl?key=9148 การเขียน CSS แบบ internal, external , in line http://www.thaiall.com/perlphpasp/source.pl?key=9147 การสร้างอัลบั้มตาม template http://www.thaiall.com/actress/joom.htm การใช้ Web template เช่น adminlte http://www.thaiall.com/adminlte/ การใช้จัดการข้อมูลใน mysql บน adminlte template แบบตารางเดียว http://www.thaiall.com/adminlte/ การใช้จัดการข้อมูลใน mysql บน adminlte template แบบหลายตาราง http://www.thaiall.com/mysql/ การใช้ vscode เปลี่ยนรู้แบบข้อมูล ระหว่าง json กับ csv กับ sql http://www.thaiall.com/vscode/ การใช้งาน google chart + php + mysql http://www.thaiall.com/php/ การใช้งาน api หรือ javascript library เช่น google map http://www.thaiall.com/jslibrary/ การใช้ HTML5 วาดภาพ http://www.thaiall.com/html5/ การใช้ Python - Turtle วาดภาพ http://www.thaiall.com/python/ การใช้ Wordpress เขียน blog + homepage http://www.thaiall.com/wordpress/ การใช้ Woocommerce บน wordpress มีการเพิ่มสินค้า การสั่งซื้อ การจัดการบัญชี http://www.thaiall.com/wordpress/ การจัดการ repository บน github.com และใช้ git command และใช้ vscode http://www.thaiall.com/git/ การใช้ CSS แบบ external file, internal file และ inline http://www.thaiall.com/web2/ การใช้ html + javascript + css + library ภายนอก http://www.thaiall.com/java/ https://console.cloud.google.com/projectselector2/google/maps-apis/overview การเขียนโปรแกรม java ประมวลผลได้ csv, text, json ที่ประยุกต์ใช้ template แล้วสร้างแฟ้ม http://www.thaiall.com/class/ การสร้างแอพแบบ no code ด้วย thunkable หรือ appinventor.mit.edu http://www.thaiall.com/programming/helloworld.htm การสร้าง mobile app บน thunkable.com หรือ appinventor.mit.edu ที่ใช้ webview http://www.thaiall.com/actress/joom.htm http://www.thaiall.com/adminlte/ web view - google form การเขียนเว็บเพจ บน google drive หรือ one drive แล้วใช้บริการ https://drv.tw/ สร้าง webpage link การเขียนคำสั่ง SQL ผ่าน command line และ phpmyadmin ให้ได้ผลตามที่ต้องการ http://www.thaiall.com/mysql/ ระบบเมนู ควบคุมด้วย user หรือ admin ที่ใช้ php + mysql http://www.thaiall.com/mysql/ การเขียนโปรแกรมจัดการข้อมูล แบบหลายตาราง และแยกแฟ้มโปรแกรม http://www.thaiall.com/perlphpasp/source.pl?key=9148 การเขียนรายงานการวิจัย http://www.thaiall.com/research/" | 
| สรุปการออกแบบ joom.htm
 | 
| การเรียนรู้ในศตวรรษที่ 21 (1/6)
 | 
| ทักษะที่จำเป็นสำหรับการเรียนรู้ในศตวรรษที่ 21 (2/6)
 | 
| ทักษะสำคัญที่คนส่วนใหญ่ให้ความสำคัญมาก (3/6)
 
 
 
 
 
 | 
| ทักษะที่จำเป็นสำหรับการเรียนรู้ในศตวรรษที่ 21 (4/6)
 | 
| ความเป็นพลเมืองดิจิทัล (5/6)
 
 | 
| ทักษะจำเป็น เพื่อก้าวสู่การเป็นพลเมืองดิจิทัล (6/6)
 | 
| 5 ซอฟต์สกิล และ 5 ฮาร์ดสกิล เพื่อได้งานและรักษางาน
 | 
| 5 ซอฟต์สกิล และ 5 ฮาร์ดสกิล เพื่อได้งานและรักษางาน
 | 
| สุดยอด 3 เรื่องเล่าเร้าพลังใจ
 | 
| python : introduction
 https://www.python.org/downloads/
https://www.python.org/ftp/python/3.9.6/python-3.9.6-amd64.exe (25 MB)
1) Search , python  2) Start button, IDLE - window form 2) Start button, Python - command line* 4) Run, py 5) run, cmd, py
C:\> py
>>> exit() หรือ ctrl-break
C:\> nodepad myserver.py (210 bytes)
import os
from http.server import HTTPServer, CGIHTTPRequestHandler
os.chdir('.')
server_object = HTTPServer(server_address=('', 80), RequestHandlerClass=CGIHTTPRequestHandler)
server_object.serve_forever()
C:\> py myserver.py (Allow access)
http://localhost in chrome หรือ http://localhost/myserver.py in chrome
Ctrl-Break to stop server | 
| python : cgi-binสร้าง folder cgi-bin ใน root directory
ใช้ notepad สร้างแฟ้ม hello.py ใน cgi-bin
print ("Content-Type: text/html\n\n")
print ("Hello World!")
เปิด localhost/cgi-bin/hello.py จะเห็นเฉพาะ Hello World!
ถ้าสร้างแฟ้ม hello.py ใน root directory แล้วเปิด จะเห็น source code | 
| python : flaskติดตั้ง Flask
C:\> py -m pip install Flask
C:\> notepad code1.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def Home():
   return "<h1>Hello</h1>"
if __name__ == '__main__':
 app.debug = True
 app.run(host='0.0.0.0', port=8000)
C:\> py code1.py
 explorer http://172.50.0.7:8000/
 Ctrl-C to quit
https://www.borntodev.com/2020/02/19/ทำเว็บด้วย-python/ | 
| python : djangoDjango framework บน python C:\> py -m pip install --upgrade pip C:\> py -m pip install django C:\> py -m pip uninstall django C:\> py -m pip install -e django C:\> cd C:\Users\LAB\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python 3.9 C:\> cd C:\Users\LAB\AppData\Local\Programs\Python\Python39 https://www.stanleyulili.com/django/how-to-install-django-on-windows/ C:\django> py -m venv venv C:\django> venv\Scripts\activate (venv) C:\Users\LAB\django> (venv) C:\Users\LAB\django> pip install django (venv) C:\Users\LAB\django> django-admin --version (3.2.5) (venv) C:\Users\LAB\django> django-admin startproject testsite (venv) C:\Users\LAB\django> cd testsite (venv) C:\Users\LAB\django> dir (venv) C:\Users\LAB\django> python manage.py runserver explorer http://127.0.0.1:8000/ Ctrl-Break to quit >>> import django >>> django <module 'django' from 'C:\\Users\\LAB\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\django\\__init__.py'> https://codeburst.io/%E0%B9%80%E0%B8%A3%E0%B8%B4%E0%B9%88%E0%B8%A1%E0%B8%9E%E0%B8%B1%E0%B8%92%E0%B8%99%E0%B8%B2-web-application-%E0%B8%81%E0%B8%B1%E0%B8%9A%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2-python-%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-django-framework-38ce132ac706 | 
| python : functionC:\> nodepad input.py
def checkName(name):
    checkName = input("Name :" + name + "?")
    if checkName.lower() == "yes":
        print("Hello,", name)
    else:
        print("no boy")
checkName("boy")
C:\> py input.py | 
| python : File 1 MBf = open("d:\onembpy.htm","w+")
v =""
for i in range(100000): v+=("12345678\n")
f.write(v)
f.close()
# https://www.guru99.com/reading-and-writing-files-in-python.html
# https://www.tutorialspoint.com/python/python_files_io.htm | 
| python : logo - turtlefrom turtle import *
bgpic("roadmap.png")
color('red', 'yellow')
begin_fill()
while True:
    forward(200)
    left(160) # 170
    if abs(pos()) < 1:
        break
end_fill()
penup(); setpos((-100,100))
pendown()
right(90)
forward(40); left(90)
forward(70); right(90)
forward(120); left(90)
forward(60); left(90)
forward(75); right(90)
forward(75)
done() | 
| อ่านหนังสือ e-book (1/3)"แหล่งอีบุ๊ค (E-book Center) 1. ฟรีอีบุ๊ค ด้านสุขภาพ https://multimedia.anamai.moph.go.th/ebooks/ 2. ฟรีอีบุ๊ค ด้านสุขภาพ https://www.free-ebooks.net/health 3. ฟรีอีบุ๊ค กรมสุขภาพจิต https://new.camri.go.th/ebook 4. ฟรีอีบุ๊ค สถาบันการจัดการระบบสุขภาพ http://hsmi.psu.ac.th/?page_id=1714 5. ฟรีอีบุ๊ค มหาวิทยาลัยรามคำแหง http://e-book.ru.ac.th/ 6. ฟรีอีบุ๊ค ด้านคอมพิวเตอร์ https://goalkicker.com 7. ฟรีอีบุ๊ค ด้านคอมพิวเตอร์ https://riptutorial.com/ebook/ 8. ฟรีอีบุ๊ค ด้านคอมพิวเตอร์ https://allitbooks.net/ 9. ฟรีอีบุ๊ค ด้านภาษาอังกฤษ https://indeedproject.org/free-ebooks/ 10. ร้านหนังสืออีบุ๊ค https://www.packtpub.com/ 11. ร้านหนังสืออีบุ๊ค https://www.se-ed.com/e-books.aspx 12. ร้านหนังสืออีบุ๊ค https://www.naiin.com/e-books/ 13. ร้านหนังสืออีบุ๊ค https://www.chulabook.com/en/main-ebook 14. ร้านหนังสืออีบุ๊ค https://www.ookbee.com/ 15. ร้านหนังสืออีบุ๊ค https://www.mebmarket.com/ 16. ร้านหนังสืออีบุ๊ค https://www.ebooks.in.th/ 17. ร้านหนังสืออีบุ๊ค http://store.2ebook.com/ 18. ร้านหนังสืออีบุ๊ค https://www.ebooks.com/en-th/ 19. ร้านหนังสืออีบุ๊ค https://books.google.com/ 20. ร้านหนังสืออีบุ๊ค https://www.barnesandnoble.com/" | 
| อ่านหนังสือ e-book (2/3)"ระบบห้องสมุดออนไลน์ (Online library system) 1. ห้องสมุดออนไลน์สถาบัน Goethe http://www.goethe.de/ins/th/th/ban/kul/bib/onl.html 2. ห้องสมุดพระพุทธศาสนานานาชาติมหาสิรินาถ http://www.mahasirinath.com/searchpage.asp 3. ห้องสมุดมหาจุฬาลงกรณราชวิทยาลัย http://library.mcu.ac.th/home/ 4. ห้องสมุดออนไลน์ในประเทศไทย http://www.correct.go.th/hrd/library.htm 5. Globethics.net http://www.globethics.net 6. Buddhist eLibrary http://www.buddhistelibrary.org/th/index.php?cat=41 7. Open Library https://openlibrary.org/ 8. American Library https://archive.org/details/americana 9. Online Christian Library http://www.patheos.com/Library 10. Library of World Religions and Faith Traditions http://www.patheos.com/Library 11. Islamic Library http://www.minhajbooks.com/english/index.html 12. Al Islam http://www.alislam.org/books/ 13. Jewish Virtual Library http://www.jewishvirtuallibrary.org/ - แนะนำแหล่งสืบค้นข้อมูล https://www.ium-thai.org/blank-18" | 
| อ่านหนังสือ e-book (3/3)"แหล่งสืบค้นเอกสารทั่วไป/เอกสารเฉพาะด้าน (Document search engine) 1. ฐานข้อมูลวารสารอิเล็กทรอนิกส์กลาง https://www.tci-thaijo.org (ThaiJO) 2. เครือข่ายห้องสมุดอุดมศึกษาไทย https://tdc.thailis.or.th/tdc/basic.php (ThaiLIS) 3. รวมข้อมูลประชุมวิชาการ http://www.conferenceinthai.com/ 4. Government open data http://www.data.go.th 5. อาร์ไคฟ์เก็บเว็บไซต์ http://www.archive.org 6. วิกิพีเดียร์ https://www.wikipedia.org 7. พจนานุกรม https://dict.longdo.com 8. อักขราวิสุทธิ์ http://plag.grad.chula.ac.th 9. แหล่งเผยแพร่ scribd.com http://www.scribd.com 10. แหล่งเผยแพร่ slideshare.net http://www.slideshare.net 11. แหล่งเผยแพร่ issuu.com http://www.issuu.com 12. แหล่งเผยแพร่ flipsnack.com http://www.flipsnack.com" | 
| บริการประมวลผลออนไลน์ (1/22)
 "    https://www.ilovepdf.com/word_to_pdf
    https://smallpdf.com/word-to-pdf
    https://www.adobe.com/sea/acrobat/online/word-to-pdf.html
    https://www.freepdfconvert.com/word-to-pdf
    https://www.sodapdf.com/word-to-pdf/" | 
| เพิ่มเลขหน้าให้ pdf (2/22)
 "    https://www.ilovepdf.com/add_pdf_page_number
    https://smallpdf.com/add-page-numbers-to-pdf
    https://tools.pdf24.org/en/add-page-numbers-to-pdf
    https://www.sodapdf.com/add-page-numbers-to-pdf/
    https://www.cleverpdf.com/pdf-page-number" | 
| ปลดล็อกรหัสแฟ้ม pdf (3/22)
 "    https://smallpdf.com/unlock-pdf/
    https://www.ilovepdf.com/unlock_pdf/
    https://www.sodapdf.com/unlock-pdf/
    https://pdf.io/unlock/
    https://www.pdf2go.com/unlock-pdf
    https://pdfbear.com/unlock-pdf" | 
| ลดขนาดแฟ้มให้เล็กลง (4/22)
 "    https://www.reduceimages.com/
    https://www.iloveimg.com/resize-image
    https://tinypng.com/
    https://www.img2go.com/compress-image
    https://www.resizepixel.com/reduce-image-in-kb/
    https://resizeimage.net/" | 
| ลบภาพพื้นหลัง (5/22)
 "    https://www.remove.bg/
    https://removal.ai/
    https://photoscissors.com/
    https://clippingmagic.com/
    https://www.fococlipping.com/
    https://www.photoroom.com/background-remover/" | 
| จำลองตัวแปลภาษา (6/22)
 "    https://www.tutorialspoint.com/compile_java_online.php
    https://www.jdoodle.com/online-java-compiler/
    https://www.onlinegdb.com/online_java_compiler
    https://jsfiddle.net/
    https://code.labstack.com/
    https://www.programming-hero.com/code-playground/python/index.html
    https://www.w3schools.com/html/tryit.asp?filename=tryhtml_basic
    https://nostarch.com/scratch3playground
    https://developers.google.com/blockly
    https://blockly.programming.in.th/
    https://blockly-demo.appspot.com/static/demos/code/index.html" | 
| จำลองฐานข้อมูลใช้ SQL (7/22)
 "    https://www.w3schools.com/sql/
    http://sqlfiddle.com/
    https://www.jdoodle.com/execute-sql-online/
    https://sqliteonline.com/
    https://www.mycompiler.io/new/sql
    https://www.db-fiddle.com/" | 
| จำลองระบบลีนุกซ์ (8/22)
 "    https://itsfoss.com/online-linux-terminals/
    https://bellard.org/jslinux/
    https://cocalc.com/doc/terminal.html
    https://www.masswerk.at/jsuix/index.html
    http://cb.vu/
    https://linuxcontainers.org/lxd/try-it/" | 
| เข้ารหัสถอดรหัส base64 (9/22)
 "    https://www.base64encode.net/
    https://codebeautify.org/base64-decode
    https://elmah.io/tools/base64-image-encoder/
    https://www.utilities-online.info/base64
    https://rawgit.com/MrRio/jsPDF/master/fontconverter/fontconverter.html" | 
| จัดเรียงข้อมูลตัวอักษร (10/22)
 "    https://codebeautify.org/sort-text-lines
    https://textmechanic.com/text-tools/basic-text-tools/sort-text-lines/
    https://www.ipvoid.com/sort-text-lines/
    https://www.textfixer.com/tools/alphabetical-order.php
    https://alphabetizer.flap.tv/" | 
| แปลงแฟ้มภาพเป็น webp (11/22)
 "    https://convertio.co/png-webp/
    https://image.online-convert.com/convert-to-webp
    https://cloudconvert.com/webp-converter
    https://ezgif.com/jpg-to-webp
    https://converter.11zon.com/en/image-to-webp/" | 
| แปลศัพท์/ตรวจคำ (12/22)
 "    https://translate.google.com/
    https://dict.longdo.com/
    https://www.reverso.net/
    https://itranslate.com/
    http://plag.grad.chula.ac.th/
    https://plagiarismdetector.net/" | 
| ตรวจ grammar (13/22)
 "    https://www.grammarly.com/
    https://instatext.io/
    https://www.grammarcheck.net/editor/
    https://languagetool.org/
    https://www.reverso.net/spell-checker/english-spelling-grammar/" | 
| บริการเว็บโฮสติ้ง (14/22)
 "    https://www.000webhost.com/
    https://infinityfree.net/
    https://sites.google.com/
    https://www.awardspace.com/
    https://github.com/
    https://themeisle.com/blog/best-free-website-hosting/" | 
| บริการพื้นที่เก็บข้อมูล (15/22)
 "    https://www.google.com/drive/
    https://onedrive.live.com/
    https://www.4shared.com/
    https://www.dropbox.com/
    https://www.box.com/" | 
| บริการ cloud office (16/22)
 "    https://docs.google.com/
    https://www.office.com/ 
    https://www.huaweicloud.com/
    https://www.libreoffice.org/    
    https://www.onlyoffice.com/" | 
| บริการ e-journal (17/22)
 "    https://www.tci-thaijo.org/
    https://tdc.thailis.or.th/tdc/basic.php
    http://www.conferenceinthai.com/" | 
| บริการ e-book (18/22)
 "    https://www.ookbee.com/
    https://bookboon.com/
    https://books.goalkicker.com/
    https://www.packtpub.com/
    https://www.scribd.com/" | 
| บริการ e-commerce (19/22)
 "    https://shopee.co.th/
    https://www.lazada.co.th/
    https://www.oscommerce.com/
    https://woocommerce.com/" | 
| บริการ e-learning (20/22)
 "    https://moodle.org/
    https://classroom.google.com/
    https://www.microsoft.com/th-th/microsoft-teams" | 
| บริการ e-assistant (21/22)
 "    https://www.apple.com/siri/
    https://assistant.google.com/
    Smart device เช่น Microsoft hololens 2 หรือ Google Glass" | 
| บริการ virtual world (22/22)
 "    Social media 
    Online game - mmorpg
    https://secondlife.com/" | 
| "ไม่เริ่มต้นในวันนี้ จะไม่มีทางสำเร็จในวันพรุ่ง" โดย โยฮัน ว็อล์ฟกัง ฟ็อน เกอเทอ |