Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

標籤: PHP

在網頁中嵌入 FCKeditor by PHP

Posted on 2007 年 12 月 24 日2021 年 3 月 12 日 By 日落 在〈在網頁中嵌入 FCKeditor by PHP〉中尚無留言

網路上的所見即得編輯器真多,昨天為了讓使用者不用自己打 HTML 標籤,花了一些時間把 FCKeditor 嵌入網頁中使用,功能比我想像中的還要強大!不但基本該有的按鈕都有了,還支援復原、剪貼簿、圖片和檔案上傳、表格、排版,甚至還能編輯表單!連在網頁上面顯示的工具列也可以自訂按鈕功能和版面樣式!

功能強但是安裝卻很簡單,只要在 PHP 程式碼中也只要加入五行左右的程式碼就可以正常運作,不賴吧?

首先你必須先引用 FCKeditor 已經寫好的程式碼,裡面會宣告編輯器所用到的物件和物件屬性:require("fckeditor/fckeditor.php");
再來就可以宣告編輯器物件,並且對物件屬性做設定:

$oFCKeditor = new FCKeditor('FCKeditor1');
$oFCKeditor->BasePath = 'fckeditor/';
$oFCKeditor->Value = 'Default text in editor';

第一行 initialize 中的字串,是產生文字編輯區時編輯區的名稱,也就是 textarea 的 name 屬性,以上面的範例來說,後端要接收資料就要使用:$_POST[‘FCKeditor1’]。
第二行是設定 FCKeditor 程式所在位置,如果沒有設定好,會無法載入 Javascript 和 CSS 檔,到時候網頁會無法顯示。第三行則是文字編輯區預設會出現的文字。

最後在 <form></form> 中間加上:$oFCKeditor->Create();
這樣顯示出來大概會向這樣:

再來我們加入二個參數來設定編輯器預設的大小:

$oFCKeditor->Width = '100%';
$oFCKeditor->Height = '400';

如果你不喜歡預設的版面,FCKeditor 有提供 office2003 和 silver 的版面可以更換,只要加入版面路徑到參數裡面就可以了:
$oFCKeditor->Config['SkinPath'] = 'skins/office2003/';

當然 FCKeditor 的功能不只如此,其他功能在官方的部落格都有詳細的說明。

FCKeditor Wiki
http://wiki.fckeditor.net/FCKeditor

FCKeditor 官網
http://www.fckeditor.net/

Tags:PHP, 程式設計, 資訊學習

PHP counter by file IO

Posted on 2007 年 10 月 6 日2021 年 3 月 12 日 By 日落 在〈PHP counter by file IO〉中有 1 則留言

PHP 計數器,使用檔案讀寫的方式實作。

counter.php:

<?php
$pt = @fopen("log","r");
if( $pt ){
$size = filesize("log")==0?1:filesize("log");
$num = fread($pt,$size);
fclose($pt);

if( !is_numeric($num) ){
$num = 0;
}
$num++;

$pt = fopen("log","w");
fwrite($pt,$num);
fclose($pt);
}else{
$num=1;
$pt = fopen("log","w");
fwrite($pt,$num);
fclose($pt);
}
echo $num." 人次";
?>
Tags:PHP, 程式設計

PHP avoid SQL injection 2

Posted on 2007 年 9 月 8 日2021 年 3 月 12 日 By 日落 在〈PHP avoid SQL injection 2〉中有 1 則留言

之前在網路上找到一個函式可以分辨 php.ini 是否有開啟 magic_quote 並且把傳入的字串做處理:

function quotes($content){
if (!get_magic_quotes_gpc()) {
if (is_array($content)) {
foreach ($content as $key=>$value) {
$content[$key] = addslashes($value);
}
} else {
addslashes($content);
}
}
return $content;
}

不過因為一個表單的欄位絕對不只十幾個,有可能超過一百的欄位,所以每次用到一個欄位就要自己打一次 $variabal = quotes( $variable ) 實在很不方便。

我想偷懶,所以用 foreach 把 $_POST 和 $_GET 的值一次處理完丟到 $http_post 和 $http_get 中,只要程式執行前執行一次所有欄位就全部處理完了。

function quotes($content){
if (!get_magic_quotes_gpc()) {
if (is_array($content)) {
foreach ($content as $key=>$value) {
$content[$key] = addslashes($value);
}
} else {
addslashes($content);
}
}
return $content;
}

foreach( $_POST as $key => $value ){
$http_post[$key] = quotes( $value );
}
foreach( $_GET as $key => $value ){
$http_get[$key] = quotes( $value );
}
Tags:PHP, 程式設計

PHP encryption note

Posted on 2007 年 9 月 1 日2021 年 3 月 12 日 By 日落 在〈PHP encryption note〉中尚無留言

開始找可用的 PHP 編碼方式,MD5 已經不能在用了,SHA1 目前還好但是不知道以後會不會出問題。


$phrase = "Hello World";

$sha1a = base64_encode(sha1($phrase));
$sha1b = base64_encode(bin2hex(mhash(MHASH_SHA1,$phrase)));
$sha256b= base64_encode(bin2hex(mhash(MHASH_SHA256,$phrase)));

echo ("SHA1..:" . $sha1a . "n");
echo ("SHA1..:" . $sha1b . "n");
echo ("SHA256:" . $sha256b . "n");
?>
Tags:PHP, 網路架站, 資訊安全

用 PHP 隱藏檔案下載位置

Posted on 2007 年 8 月 27 日2021 年 3 月 12 日 By 日落 在〈用 PHP 隱藏檔案下載位置〉中尚無留言

很多網站都會怕大家知道檔案位置以後,開始隨便散步網址給大家盜連,這樣網站的流量馬上會爆掉。另外也有可能讓駭客找到漏洞上傳 Web Shell,並且開始遙控……。

後來玩 PHPWind 論壇的時候,發現論壇可以讓上傳的檔案名稱全部改掉,在下載的時候也看不到檔案在伺服器上面的位置,所以跑去看了一下原始碼是怎麼寫的。PHPWind 檔案下載的程式是寫成 function 放在 /job.php 裡面,找到下面這行:

elseif($action=='download')

他的確是用 header() 來做檔案連結,但是不是我想像中的 header(“Location: URL”),這樣其實瀏覽器還是可以看到檔案位置,他是用 header 讓瀏覽器知道之後傳的資料為檔案內容,讓瀏覽器把資料寫成檔案,然後由伺服器先讀檔案內容以後傳給瀏覽器。所以瀏覽器從頭到尾只知道要存檔時預設的檔名、檔案類型和檔案內容,完全不知道檔案在伺服器上的位址。下面是 job.php 負責檔案下載的程式片段:

header('Last-Modified: '.gmdate('D, d M Y H:i:s',time()+31536000 ).' GMT');
header('Pragma: no-cache');
header('Content-Encoding: none');
header('Content-Disposition: '.$attachment.'; filename='.$name);
header('Content-type: '.$fileext);

if($attach_url && !file_exists("$attachdir/$attachurl") && function_exists('file_get_contents')){
$downcontent=file_get_contents($attach_url."/$attachurl");
}else{
$filesize = filesize($attachdir.'/'.$attachurl);
header('Content-Length: '.$filesize);
$downcontent=readover("$attachdir/$attachurl");
}
echo $downcontent;
exit;

稍微改了一下以後會變成下面這幾行:

header('Last-Modified: '.gmdate('D, d M Y H:i:s',time()).' GMT');
header('Pragma: no-cache');
header('Content-Encoding: none');
header('Content-Disposition: '.'attachment'.'; filename='.$file_name);
header('Content-type: '.$file_type);
header('Content-Length: '.filesize( $file_path_on_server ));
$downcontent=file_get_contents( $file_path_on_server );
echo $downcontent;

$file_nam:瀏覽器存檔時預設的檔案名稱
$file_type:檔案類型,檔案上傳時會顯示
$file_path_on_server:檔案在伺服器上真正的路徑

至於 header() 的設定細節我還沒摸清楚,header() 的資料很多,目前還沒整理出一個頭緒,弄清楚以後再來做筆記吧。

Tags:PHP, 程式設計, 網路架站

文章分頁

上一頁 1 ... 23 24 25 26 下一頁

其他

關於我  (About me)

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.