目前分類:PHP (6)

瀏覽方式: 標題列表 簡短摘要

context 欄位數性必須設為 BLOB
CREATE TABLE `Sample` (
 `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
 `context` BLOB NOT NULL
) TYPE = MYISAM ;

使用 COMPRESS function 進行字串壓縮
INSERT INTO Sample( id, context ) VALUES (NULL , COMPRESS( 'Welcome to hello world.' ) );

使用 UNCOMPRESS function 進行字串解壓縮
SELECT id, UNCOMPRESS(context) FROM Sample;

coolouis 發表在 痞客邦 留言(0) 人氣()

PHP Magic Constants: __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ , and __METHOD__

 

<?php

print(__FILE__);

// C:\xampp\htdocs\test\xx.php

 

print(__LINE__);

// line 5

 

sayHello();

$one = new Person();

 

function sayHello(){

        print(__FUNCTION__);

        // sayHello

}

 

class Person {

        function __construct() {

                print(__CLASS__);

                // Person          

                print(__METHOD__);

                // Person::__construct

        }

}

?>

coolouis 發表在 痞客邦 留言(0) 人氣()

// Autoloading Objects

function __autoload($class_name) {

        require_once $class_name . '.php';

}

 

class MyClass {

        // Defining an object constructor

        function __construct() {}

       

        // Defining an object destructor

        function __destruct() {}

 

        // Defining a class's stringification      

        function __toString() {}

 

        // It is triggered when invoking inaccessible methods

        // in an object context.

        function __call($name, $arguments) {}

 

        // An object copy is created by using the clone keyword

   // (which calls the object's __clone() method if possible)

        function __clone() {}

 

        // It is utilized for reading data from inaccessible members.

        function __get($property) {}

 

        // It is run when writing data to inaccessible members.

        function __set($property, $value) {}

 

        // called when object is serialized

        function __sleep() {}

 

        // called when object is unserialized

        function __wakeUp() {}

}

 

詳細內容:http://www.php.net/manual/en/language.oop5.magic.php

coolouis 發表在 痞客邦 留言(0) 人氣()

下面是當前規則表達式裡可用的修飾.括號內的名字是那些修飾符的內部PCRE名字.

 

i (PCRE_CASELESS)

如果設置了這個修飾符,則表達式不區分大小寫.

 

m (PCRE_MULTILINE)

默認的, PCRE認為目標字符串值是單行字符串(即使他確實包含多行).行開始標記(^)只匹配字符串的開始部分,而行結束標記($)只匹配字符串的尾部,或者一個結束行(除非指定E修飾符).這個和Perl裡面一樣.

 

如果設定了這個修飾符,行開始和行結束結構分別匹配在目標字符串任何新行的當前位置後面的或者以前的,和每一個開始和結束一樣.這個等於Perl裡面的/m修飾符.如果目標字符串沒有"n"字符,或者模式裡沒有^$ ,這個修飾符不起作用.

 

s (PCRE_DOTALL)

如果設置這個修飾符,模式裡的一個""將匹配所有字符,包括換行.沒有他,換行將被排除在外.這個修飾符等同於Perl裡面的/s修飾符.一個相反的類型,例如[^a]將總是匹配換行字符,而不管這個修飾符的限制.

 

x (PCRE_EXTENDED)

如果設置這個修飾符,模式裡面的空格數句將會被全部忽略,除非用轉義符或者一個字符的內部類型,還有所有字符類型外的未轉義的#號之間的也被忽略.這個等同於Perl裡面的/x修飾符,這樣可以復雜的模式裡面加入註釋.注意,只適用於數據字符.空格字符將不會在指定的模式字符指定順序中出現。

 

e

如果設置這個修飾符, preg_replace()將在替換值裡進行正常的涉及到\的替換,等同於在PHP代碼裡面一樣,然後用於替換搜索到的字符串.

 

只在preg_replace()裡使用這個修飾符;其它PCRE函數忽略他.

 

A (PCRE_ANCHORED)

如果設置這個修飾符,模式被強制為錨(anchored,也就是說,他將值匹配搜索字符串的開始.這個效果可以通過恰當的模式結構自身來實現,那是在Perl裡面的唯一途徑.

 

D (PCRE_DOLLAR_ENDONLY)

如果設置這個修飾符,則模式裡的$修飾符將僅匹配目標字符串裡的尾部.沒有這個修飾符, $字符也匹配新行的尾部(但是不再新行的前面).如果設置了m修飾符則忽略這個修飾符.Perl裡面沒有類似的.

 

S

如果一個模式將被使用多次,使用長些時間分析他來來提高匹配的速度.如果使用這個修飾符,則進行額外的分析.目前,研究模式僅用於非錨模式,沒有一個固定的開始字符.

 

U (PCRE_UNGREEDY)

這個修飾符翻轉數量的"greediness" ,使得默認不被greedy,但是如果你緊跟問號(?),則可以greedy.這個和Perl不兼容.這個也可以通過在模式裡面的(?U)修飾符得到.

 

X (PCRE_EXTRA)

這個修飾符打開額外的功能,這些和Perl不兼容.任何模式裡面的後面帶字符但沒有特殊意義的反斜杠將引起錯誤,從而儲備這些聯合用於將來的擴充.默認的,Perl裡面,反斜杠後面有無意義的字符被當成正常的literal.

 

資料來源:網路

 

coolouis 發表在 痞客邦 留言(0) 人氣()

auth.JPG 

function authenticate() {
  header('WWW-Authenticate: Basic realm="Test Authentication System"');
  header('HTTP/1.0 401 Unauthorized');
 // Text to send if user hits Cancel button
  echo "You must enter a valid login ID and password to access this resource\n";
  exit;
}

if (!isset($_SERVER['PHP_AUTH_USER']) || ($_POST['SeenBefore'] == 1 && $_POST['OldAuth'] == $_SERVER['PHP_AUTH_USER'])) {
 authenticate();
}
else {
 echo "<p>Welcome: {$_SERVER['PHP_AUTH_USER']}<br>";
 echo "Old: {$_REQUEST['OldAuth']}";
 echo "<form action='{$_SERVER['PHP_SELF']}' METHOD='POST'>\n";
 echo "<input type='hidden' name='SeenBefore' value='1'>\n";
 echo "<input type='hidden' name='OldAuth' value='{$_SERVER['PHP_AUTH_USER']}'>\n";
 echo "<input type='submit' value='Re Authenticate'>\n";
 echo "</form></p>\n";
}

詳細資料請參考
http://linux.tnc.edu.tw/techdoc/php/php_big5/features.http-auth.html

目前我想try try看,是否有可能寫支robot破突這樣的認証機制或則找出漏洞?

coolouis 發表在 痞客邦 留言(0) 人氣()

有四天的時間沒碰電腦了,打開 RSS Reader 瀏覽文章列表,看看最近有沒有什麼新鮮貨?發現這篇「PHP Tutorials Utopia: 13 Vital PHP skills for every novice PHP developer and solutions」,寫的很棒!作者整理了十三個主題說明 PHP 設計人員必需知道的技能和學習參考網站。

 

00 - PHP Basics

01 - Object Oriented Programming (OOP) in PHP

02 - PHP Template Engines

03 - Sending & Managing PHP Emails

04 - Learn How To Use PHP Frameworks

05 - PayPal Integration & Payment Processing

06 - Databases: PHP& MySQL Tutorials

07 - Learning Regular Expression

08 - Working with Images in PHP

09 - PHP & Security

10 - PHP & XML & Web Services

11 - PHP Best Practices & tips

12 - Authentication & Access Control

13 - Caching in PHP

 

原文網址

coolouis 發表在 痞客邦 留言(0) 人氣()