Posts tagged: PHP

Block IE6

By สุดเดช, 8 สิงหาคม 2009 20:08

เรื่องก็บอกอยู่แล้วน่ะคับ ปิดกั้น IE6

ก็จะมีคำถามอยู่ว่า ทำไมต้อง ปิดกั้น ไออี6

ie6_protect

ie6_protect2

ie6_protect3

ผมไม่ได้ซีเรียส กะเรื่อง ความปลอดภัย หรือว่า พวกที่เป็น สริปต์ในการโจมตีเครืองหรอกครับ

ผมจะเครียดในเรื่องของ การแสดงผลมากกว่าครับ จึงเขียนเรื่องนี้และ ก็พอหาข้อมูลมา

มา ๆ หาวิธีการ บล๊อกกันน่ะคับวันนี้

ตัวอย่างแรก PHP

I want to block IE6 and below from my site. I have the following code but that blocks just IE 6. I need a code that just blocks IE6 and below (so IE5 and such) users.

 <?php
 if (eregi("MSIE6",getenv("HTTP_USER_AGENT")… ||
 eregi("Internet Explorer 6",getenv("HTTP_USER_AGENT"))) {
 Header("Location: http://www.xxx-link-xxx.com/ieindex.php");
 exit;
 }
 ?>

ตัวที่สองนี่ CSS คับ เป็น condition มัน

<pre><code><!--[if IE 6]>
ข้อความ
<![endif]--></code></pre>

website : http://vasthtml.com/ เว็บนี้ เป็น plugin ของ wp น่ะคับ ดูได้เลย

บทความที่เกียวข้อง

IE6 Must Die (จังซี่มันต้องถอน)

posted on 18 Jul 2009 19:56 by i-natmon  in -Website-

เบื่อ เบื่อมากครับ.. ไอ้อี6(IE6)ที่คอยเป็นตัวถ่วงในการสร้างเว็ปสวยๆ…

ผมคิดว่าหลายคนคงจะอยากต่อต้าน และไล่มันให้ไปตายซะ… มีเว็ปนึงที่สามารถแสดงเจตนารมณ์ผ่าน Twitter ของคุณได้ ด้วยเว็ปนี้ครับ

http://twibbon.com/Join/IE6-Must-Die

เมื่อเข้าไป ก็จะมีกลุ่มม๊อบ เอ๊ย.. ผู้ร่วมอุดมการณ์ต่อต้าน IE6 ใหัมันไปตายซะ..

http://i-natmon.exteen.com/20090718/ie6-must-die

ใคร ได้เข้าเว็บยูทูบ (YouTube) ด้วย IE6 เว็บเบราว์เซอร์รุ่นโบราณ คงเริ่มเห็นประกาศที่ด้านบนของแต่ละหน้ากันแล้วว่าเว็บยูทูบจะเลิกสนับสนุน เบราว์เซอร์ตัวนี้ (ถ้าใครใช้เบราว์เซอร์อื่นจะไม่เห็น) โดยบอกต่อไปอีกว่า (ตามภาพ) ให้อัปเกรดไปใช้เบราว์เซอร์อื่น ไม่ว่า โครม ไฟร์ฟอกซ์ หรือ IE8 เลยทีเดียว

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

http://itshee.exteen.com/20090714/youtube-ie6

Bookmark and Share

class delete mysql

By สุดเดช, 13 กรกฎาคม 2009 19:14

จากครั้งที่แล้วมา ผมเคยได้ เสนอ การใช้ class เพื่อติดต่อฐานข้อมูล
จากลิงค์นี้น่ะคับ class db

วันนี้ผมจะนำเสนอ เกี่ยวกับการ ลบ ข้อมูลในตารางออก โดย ที่มี ID เกี่ยวข้องกัน

1 : 1 relation

มาดูโค้ดของ การลบ ก่อนคับ โค้ดตรงนี้ ให้นำ ไปใส่ไว้ใน class อันที่แล้วก่อนน่ะคับ class db

function del($table="table",$where="where"){
 $sql="DELETE FROM ".$table." WHERE ".$where;
 if (mysql_query($sql)){
 return true;
 }else{
 $this->_error();
 return false;
 }
 }

จากนั้นก็มาเขียนโค้ดในหน้าใหม่ คับ

$sql=$db->select_query("show tables;");
 while(list($tables_name)=$db->fetch($sql)){
 $tables_name;
 $db->del($table_name,"model_id = $model_id");
 }

แค่เพียงเท่านี้ท่านก็จะ สามารถลบ ข้อมูลที่มี ความสัมพันธ์ แบบ 1:1 ได้อย่างรวดเร็วคับ ไม่ว่าจะมี กี่ ตาราง(table)ก็ตาม

ข้อมูลเผ่ยแพร่ได้คับ ขอเครดิตด้วย ขอรับ

Bookmark and Share

Class insert comma

By สุดเดช, 30 เมษายน 2009 21:57

คลาสนี้จะรับค่าของ อาร์เรย์เข้ามาหลาย ๆ จำนวนแล้ว ตัวสุดท้ายจะไม่มีคอมม่า

ตัวอย่างข้อมูล : ABCD

result : A,B,C,D

<?
class class_insert_comma{

static function read_array($read){
foreach($read as $key => $val){
echo $val;
}
}
public function change_value($value,$compare_array){
foreach($value as $name => $val){
if($val){
$file_array[]=$compare_array["$val"];
}
}
$file_array=$this->insert_comma($file_array);
return($file_array);
}

private function insert_comma($value_array){
$uncomma=end($value_array);
foreach($value_array as $name){
if($uncomma == $name){
$file_c[]=$name;
}else{
$file_c[]="$name , ";
}
}
return $file_c;
}

}//close class
?>
Bookmark and Share

class upload file

By สุดเดช, 6 มีนาคม 2009 13:57

วันนี้มาแจก อีกแล้วครับ คลาส อัพโหลดไฟล์

ดูโค้ดและ ก็ภาพการทำงานล่ะกันน่ะคับ

<?
### class upload version 2
##  author sudej.com
define("PATH","images/");
define("FILE_LIMIT","194304"); //4194304 = 4MB
class upload{

public function check_file_to_upload($file){

$file_name = $_FILES["userfile"]["name"];
$file_size = $_FILES["userfile"]["size"];
$file_temp = $_FILES["userfile"]["tmp_name"];
$file_err = $_FILES["userfile"]["error"];

echo "<div style=\"padding: 4px;\">ข้อมูลทั่วไป ของไฟล์ที่ทำการอัพโหลด</div>
<ul>
<li>ชื่อไฟล์ : <span style=\"color:#933\";>" .$file_name. "</span></li>
<li>ชนิด : <span style=\"color:#933\";>" .$this->check_file_type($file_name)."</span></li>
<li>ขนาด : <span style=\"color:#933\";>" .$this->convert_byte_to_kb($file_size). "</span> กิโลไบต์</li>
<li>เทมโพลารี ่: <span style=\"color:#933\";>" .$file_temp. "</span></li>
<li>ผิดพลาด : <span style=\"color:#933\";>" . $file_err. "</span></li>
</ul>";
echo"<div style=\"border:1px dashed green; padding:10px; width:400;\">
<ul>
<li>";
$this->check_allow_file($this->check_file_type($file_name));
echo"</li>
<li>";
$this->check_size($file_size);
echo"</li><li>";
$this->check_error_upload($file_error,$file_temp,$file_name);
echo"</li></ul>
</div>";
}// close function

function convert_byte_to_kb($file_size){
$file_size = $file_size/1024;
$file_size = number_format($file_size,"2",".",",");
return $file_size;
}

private function check_file_type($file_name){
$file_type = $file_name;
$file_type_length = strlen($file_type) - 3;
$file_type = substr($file_type, $file_type_length);
return($file_type);
}

private function check_size($file_size){
if($file_size > FILE_LIMIT){
echo "<span style=\"color:#F03\"><strong>ขนาดของไฟล์เกินกว่าที่กำหนดไว้ </strong><span><br />";
echo "ขนาดที่อนุญาตให้ใช้่ ".$this->convert_byte_to_kb(FILE_LIMIT)." กิโลไบต์";
exit();
}else{
echo"<span style=\"color:#6C3;\"><strong>อนุญาิตขนาดไฟล์</strong></span><br />";
}
}

private function check_allow_file($file_type){
$file_type = strtolower($file_type);
$files = array();
$files[] = "jpeg";
$files[] = "jpg";
$files[] = "gif";
$files[] = "png";
$chk = array_search($file_type, $files);
if($chk) {
echo "<span style=\"color:#6C3;\"><strong>อนุญาิตไฟล์</strong></span><br />";
} else {
echo "<span style=\"color:#F03\"><strong>ไม่อนุญาติ</strong></span><br />";
echo "ไฟล์ที่ได้รับการ อนุญาต<br />";
foreach($files as $key){
echo"   -  $key<br />";
}
exit();
}
}

private function check_error_upload($file_error,$file_temp,$file_name){
$error_count = count($file_error);
if($error_count > 0) {
for($i = 0; $i <= $error_count; ++$i) {
echo $_FILES["userfile"]["error"][$i];
}
} else {
if(@move_uploaded_file($file_temp, PATH.$file_name."")) {
echo "<h3>Upload Successful ... </h3>";
} else {
echo "<h3>ERROR</h3>";
}
}
}

} //close class
?>
not allow picture

not allow picture

ไฟล์มีขนาดใหญ่กว่าที่ระบบกำหนด

ไฟล์มีขนาดใหญ่กว่าที่ระบบกำหนด

upload_file_ver2

เครดิต สุดเดช ดอทคอม

ตัวพ่อ www.php.net

Bookmark and Share

php script backup database

By สุดเดช, 26 กุมภาพันธ์ 2009 20:17

วันนี้ผมจะมานำเสนอ การ Backup database โดยใช้ php น่ะคับ

เป็นการ backup ข้อมูลผ่าน สริปต์ โดยใช้ ตัว crontab ใน Linux เป็นตัวเรียก สริปต์นี้

ใ้ห้ทำงานน่ะคับ วันนี้จะนำเสนอ ในเรื่องของ สริปต์กันก่อนน่ะคัีบ

ผมได้ เรียนรู้บางคำสั่ง จาก อาจารย์ เปิ้ล แอบ เซิฟ  และ การโค้ดดิ้ง แนะแนวโดยพี่แม๊กมอไซค์คับ

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

สังคมน่าอยู่เพราะว่ามีคนมีน้ำใจ

sp thx[1]: NECTEC
sp thx[2]: Thai Admin

<?

class BackUp{

function WhatBackup($whatBackup){
if (    (!$whatBackup) || ($whatBackup == "")    )    {
die("Specify folder to backup");
}
$this->whatBackup    = $whatBackup;
}

###    Make dir if not exists    ###
function WhereBackup($whereBackup){
$this->whereBackup    = $whereBackup;
}

###    Build FileName    ###
function FileName($fileName){
$today        = date("Y_m_d_H-i");
$fileName    = (    (!$fileName) || ($fileName == "")    ) ? $today : $fileName;
$this->fileName    = $fileName;
}
###    Do It    ###
function Backup(){

$today        = date("d-m-Y, H:i:s");
$comm         = "tar cfvz ".$this->whereBackup."/phpbb_".$this->fileName.".tar.gz ".$this->whatBackup;
###    If u want All output, use passthru() function    ###

### Send E-mail ###

$run        = exec($comm);
$msg        = ($run != "") ? "Backup OK" : "Backup FAILED";

$to  ="webxxx@mail.com";

$subject = "Backup system Database ip xxx [phpbb]";

$message = "Backup System Report Server : ip xxx <br />";
$message .="Date : ".$today ."<br />";
$message .="Status : ".$msg."<br />";
$message .="What Backup : ".$this->whatBackup."<br />";
$message .="Where Backup : ".$this->whereBackup."<br />";
$message .="File name : phpbb_".$this->fileName.".tar.gz";

$headers  = "MIME-Version: 1.0" . "rn";
$headers .= "Content-type: text/html; charset=utf-8" . "rn";
$headers .= "From: email@mail.com" . "rn";
$headers .= "X-Mailer: PHP/".phpversion();
@mail($to, $subject, $message, $headers);
exec("sleep 30");
}

}

?>
Bookmark and Share

TRUNCATE TABLES ALL

By สุดเดช, 19 กุมภาพันธ์ 2009 19:25

เมื่อผู้พัฒนา เรื่องเข้าใจ ในการทำงานของ คลาส ดาต้าเบส แล้ว
ต่อจากนี้ผมจะเอาตัวที่จัดการ การทำงาน ของ MySQL ตัวหนึ่งมาให้รู้กัน
นั้นคือ คำสั่ง TRUNCATE นั้นเองการทำงานของคำสั่งนี่คือการทำให้ Table ที่ทุกสั่งนั้น จะเป็น EMPTY ทั้งหมด
ในโปรแกรม phpmyadmin นั้นมีอยู่แล้ว แต่ว่า ผมอยากเขียนขึ้นมาใหม่อ่ะ ขี้เกียจไปเข้ามันช้า

มาดูการเขียนกันคับ
รูปแบบคำสั่งของมันจะเป็นแบบนี้คับ และ เพิ่มเติมให้อีกอันน่ะคับ นั้นก็คือตัว SHOW TABLES;

TRUNCATE TABLE ชื่อเทเบิ้ล;

ex TRUNCATE TABLE tbl_model;

งั้นมาดูโค้ดที่ผมเขียนกันเลยน่ะคับ

ขั้นตอนแรกก็ include ไฟล์ที่ชื่อว่า class.mysql.php เข้ามาก่อนน่ะคับ
แ้ล้วไปตั้ง ค่า config ที่ตัว constant กันก่อนคับ ลอง ๆ หาดู จะได้คล่อง
ถ้าติดตรงไหนก็ถามผมได้คับยินดีตอบคับ

<?
include("class.mysql.php");

$db = new db;
$db->connectdb(DB_NAME,DB_USERNAME,DB_PASSWORD);

$tables=$_GET["tables"];
if($tables){
if($tables=="all"){

$sql=$db->select_query("show tables;");
while(list($query_tables)=$db->fetch($sql)){
$db->select_query("TRUNCATE TABLE $query_tables;");
}
echo"TRUNCATE TABLE ALL";
header("refresh: 3; url=truncate_table.php");
}else{
$check=$db->select_query("TRUNCATE TABLE $tables;");
if($check){
echo"System :: <br />";
echo"<u>TRUNCATE TABLE $tables;</u><br />";
echo" Finish<br />";
header("refresh: 3; url=truncate_table.php");
}else{
echo"Have not your select table";
header("refresh: 3; url=truncate_table.php");
}
}
}else{
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>TRUNCATE TABLE </title>
</head>

<body>
<h1>Select Truncate Table</h1>
<ul>
<?
$sql=$db->select_query("show tables;");
while(list($show_tables)=$db->fetch($sql)){
?>
<li>
<a href="?tables=<?=$show_tables;?>" onclick="javascript:return confirm('TRUNCATE TABLE <?=$show_tables;?>;');">
<?=$show_tables;?>
</a>
</li>
<?
}
?>
</ul>
<a href="?tables=all" onclick="javascript:return confirm('TRUNCATE TABLE ALL;');">
[TRUNCATE TABLES ALL]</a>
</body>
</html>
<?
}
?>

RESULT :

truncate_table

ใครมีอะไรที่เจ๋ง ๆ ก็แนะนำกันหน่อยน่ะคับ โลกใบนี้หาความรู้ได้ทุกวันจริง ๆ ฮ าๆ

Bookmark and Share

database class

เขียนคลาสขึ้นมาเพื่อควบคุมการใช้งาน DATABASE ได้อย่างมีประสิทธิ์ภาพ
ขอขอบคุณ พี่แม๊กมอไซค์ สำหรับโค้ดบางส่วนในการพัฒนางานในครั้งนี้

class db{
var $host = DB_HOST;
var $database;
var $connect_db;
var $selectdb;
var $db;
var $sql;
var $table;
var $where;
public function connectdb($db_name="database",$user="username",$pwd="password"){
$this->database = $db_name;
$this->username = $user;
$this->password = $pwd;
$this->connect_db = mysql_pconnect($this->host, $this->username, $this->password ) or $this->_error();
$this->db = mysql_select_db ( $this->database, $this->connect_db) or $this->_error();

mysql_query("SET NAMES UTF8");
mysql_query("SET character_set_results=utf8");
return true;
}
//// MYSQL Query ////
function select_query($sql="sql"){
if ($result = mysql_query($sql)){
return $result;
}else{
$this->_error();
return false;
}
}
//// MYSQL Result ////
function fetch($sql="sql"){
if ($result = mysql_fetch_array($sql)){
return $result;
}else{
$this->_error();
return false;
}
}
} // close class

จะมีงานต่อจากนี้ ให้ผู้ที่จะใช้ในการพัฒนา ตั้งชื่อไฟล์นี้ไว้ว่า class.mysql.php คับผม

Bookmark and Share

การตั้งค่า utf8

By สุดเดช, 21 มกราคม 2009 18:33

สำหรับท่านที่ เปลี่ยนมาใช้ utf-8 แล้วเกิดปัญหา
เวลา Browser เปิดข้อมูลแล้วเกิดปัญหาตัวอักษรไม่แสดงผล
ตามที่เราตั้งค่าไว้
21-1-2552-18-24-16

ปัญหามันเกิดมาจาก ตัว Content-Type:text/html; ไม่ยอมเรียกค่า ปกติมันออกมา

เราก็มีวิธีแก้ปัญหาดังนี้คับ

สำหรับคนใช้ Linux fedora, redhat น่ะคับ
อับดับแรกก็ไปแก้ไข ไฟล์ที่ชื่อว่า httpd.conf

<code>##########################
AddDefaultCharset UTF-8
AddCharset ISO-8859-1  .iso8859-1  .latin1
AddCharset UTF-8       .utf8
AddCharset utf-8       .utf8
AddCharset TIS-620      .tis-620        th
##########################

สำหรับคนที่ไม่สามารถแก้ไขได้เนื่องจากท่านไม่ Admin ระบบ
ก็ให้เขียนไฟล์ .htaccess หรือ htaccess.txt
แล้วให้ upload ไปยังที่ directory ที่เก็บไฟล์ไว้ของผมอยู่ที่ htdocs คับ
ซึ่งของผมเช่า host ไว้ที่ www.appservhosting.com จารย์เปิ้ล แห่ง appservnetwork.com

<code><IfModule mod_rewrite.c>
AddDefaultCharset utf-8
</IfModule>

ขั้นตอนสุดท้ายมันยังไม่มาอีก
นี้เลยคับ ระบุตัวนี้ไว้ที่หน้าที่จะแสดงเลยคับ

header( 'Content-Type:text/html; charset=utf-8');


หรือใส่ตัว meta กำหนด content-type น่ะคับ

<code><meta http-equiv="content-type" content="text/html; charset=utf-8" />

ไม่ออกให้ตบ ลองดูคับ
21-1-2552-18-25-05
สุดเดช แห่ง สุดเดช บล๊อก ได้กล่าวไว้ว่า
การแบ่งบันสิ่งดี ๆ ให้แก่กัน ทำให้สังคมเราน่าอยู่ขึ้น

Bookmark and Share

Array 2 Dimensions

By สุดเดช, 15 มกราคม 2009 20:31

วันนี้ผมจะพูดถึงเรื่องการสร้าง อาร์เรย์ สองมิติคับ

เป็นการนำเอาค่าที่ใกล้เคียงกันเข้ามาเก็บไว้ในอาร์เรย์ แล้ว ให้ตัวโปรแกรมแปลงเป็นข้อมูลที่มีดังกล่าว

แสดงผลออกมา คราวนี้ผมจะ นำเอาโค้ดมาใส่ไว้ด้วยน่ะคับ

ขั้นตอนแรก นำตัวแปล อาร์เรย์มากำหนด ไว้ก่อนคับ
ดังภาพ

2dimension-1

$file_sound_array=array(1=>"$mp3","$acc","$rm","$wav","$wma");

$file_vdo_array=array(1=>"$mp4","$gp3","$wmv","$flv");

$file_picture_array=array(1=>"$jpg","$bmp","$gif","$tiff");

$file_document_array=array(1=>"$doc","$xls","$ppt","$pdf","$txt");

$file_array=array("sound"=>$file_sound_array,"vdo"=>$file_vdo_array,"picture"=>$file_picture_array,"document"=>$file_document_array);

เมื่อได้แล้วเราก็ไปสร้างคลาสกันเลยคับ
ภาพ
2dimension-2


class class_file_support{
function file_support($file_array){
global $FILE_SOUND,$FILE_VDO,$FILE_PICTURE,$FILE_DOCUMENT;

foreach($file_array as $key => $val_array){
if($key=="sound"){
echo"- ไฟล์เสียง : ";
foreach($val_array as $type_sound => $key_sound){
if($key_sound){
echo $FILE_SOUND["$key_sound"].", ";
}
}
}//close if sound

if($key=="vdo"){
echo"
- ไฟล์วีดีโอ : ";
foreach($val_array as $type_vdo => $key_vdo){
if($key_vdo){
echo $FILE_VDO["$key_vdo"].", ";
}
}
}//close if vdo

if($key=="picture"){
echo"
- ไฟล์ภาพ : ";
foreach($val_array as $type_picture => $key_picture){
if($key_picture){
echo $FILE_PICTURE["$key_picture"].", ";
}
}
}//close if picture

if($key=="document"){
echo"
- ไฟล์เอกสาร : ";
foreach($val_array as $type_document => $key_document){
if($key_document){
echo $FILE_DOCUMENT["$key_document"].", ";
}
}
}//close if document
}// close big loop array

}// close function
}//close Class 

แล้วผลก็จะออกมาดังภาพ สุดท้ายนี้คับ

ตามคำสั่งนี้คับ

$class_file_support->file_support($file_array);

2dimension-3

Bookmark and Share

return array

By สุดเดช, 13 มกราคม 2009 14:28

วันนี้จะมาแสดงการคืนค่า Function Array กันน่ะคับ

คลิ๊กที่รุปเพื่อแสดงผลใหญ่กว่าภาพปัจจุบัน

เริ่มจาก เขียน function ลงไปใน Class ก่อนน่ะคับ ตามภาพเลยคับ

13-1-2552-14-16-15

หลังจากนั้นก็ จะเรียกใช้ Function กันน่ะคับ

13-1-2552-14-16-53

แล้วก็เป็นผลที่แสดงออกมาน่ะคับ

13-1-2552-14-17-37

Credit : sudej.com

Bookmark and Share

Panorama theme by Themocracy