お疲れ様です。
少しハマりましたので備忘録です。
PHPにおいてファイルをアップロードする際
ファイルの容量がphp.ini(設定ファイル)で決められています。
初期状態だと2Mだそうです。
変更する場合は
php.iniを直接編集することになりますが
レンタルサーバーなどの場合
変更が容易でないことがあります。
私はさくらインターネットを愛用(会社が)しています。
さくらインターネットはコントロールパネルから
php.iniの変更が可能ですので
好きなサイズに変更が可能です。
例)
upload_max_filesize = 5M
こんな感じです。
あまり大きすぎると
いろいろ問題がありそうなので
こういう設定も可能だという程度でいいかと思います。
以上
うちなーんちゅプログラマーのクラクラが、仕事中(主にPHP関連、CakePHP(1.2系)関連。たまにその他雑記)に得た知識等を備忘録として残し、そして同じ問題で悩んでいる人がこの備忘録を参考に解決出来ればと思い、開設しました。温かい目で見てやってください。 ☆コメントどしどし募集中☆
2011年4月27日水曜日
2011年4月19日火曜日
【CakePHP関連】hiddenメソッドについて
何回も調べなおすので備忘録します。
Formヘルパーのhiddenメソッドについて。
$form->hidden('User.id',array('value'=>3));
こんな感じで使います。
以上
Formヘルパーのhiddenメソッドについて。
$form->hidden('User.id',array('value'=>3));
こんな感じで使います。
以上
【CakePHP関連】PHPExcelのセル関数絡み
お疲れ様です。
PHPExcelのセルに値をセットする関数で
いい情報が載っていたので
備忘録します。
// セルに値をセットする
$sheet->setCellValueByColumnAndRow(0, 1, "文字列!");
$sheet->setCellValueByColumnAndRow(1, 2, 12345);
$sheet->setCellValueByColumnAndRow(2, 3, true);
$sheet->setCellValueByColumnAndRow(3, 4, date("Y/m/d"));
参考サイト:
誰かのホームページ様
http://www.24w.jp/study_contents.php?bid=php&iid=phpexcel&sid=cell&cid=005
ありがとうございます
以上
PHPExcelのセルに値をセットする関数で
いい情報が載っていたので
備忘録します。
// セルに値をセットする
$sheet->setCellValueByColumnAndRow(0, 1, "文字列!");
$sheet->setCellValueByColumnAndRow(1, 2, 12345);
$sheet->setCellValueByColumnAndRow(2, 3, true);
$sheet->setCellValueByColumnAndRow(3, 4, date("Y/m/d"));
参考サイト:
誰かのホームページ様
http://www.24w.jp/study_contents.php?bid=php&iid=phpexcel&sid=cell&cid=005
ありがとうございます
以上
【CakePHP関連】PHPExcelを利用する方法
お疲れ様です。
PHPExcelというphpでExcelファイルを生成するライブラリがあります。
それをCakePHPで実装する方法をご紹介します。
環境
cakephp:1.2.10
PHPExcel:1.7.6
フォルダ構成
add/vendorsの中にphpexcelフォルダを生成し、その中にダウンロードした
PHPExcelファイル群をアップロードし、phpexcel.phpを新規に作成します。
app
└vendors
└phpexcel(新規フォルダ)
└Classes
└Documentation
└Tests
└changelog.txt
└install.txt
└license.txt
└phpexcel.php(オリジナルファイル)
わかりづらいですが、こんな感じです。
また、予めテンプレートExcelファイルをアップロードします。
場所はapp/webroot/tmpフォルダ内です。
tmpフォルダがない場合は、新規に作成します。
テンプレートExcelファイル名は「template.xls」となります。
続いてオリジナルファイルの中身です。
<?php
ini_set('include_path', get_include_path() . PATH_SEPARATOR . VENDORS. "phpexcel" . DS . "Classes");
require_once 'Classes/PHPExcel.php';
require_once 'Classes/PHPExcel/IOFactory.php';
?>
<?php
//PHPExcleの読み込み
require_once '../vendors/phpexcel/phpexcel.php';
class TestsController extends AppController {
public $name = 'Tests';
public $uses = 'Tests';
function dailies_report_download(){
$this->autoRender = false; // Viewを使わない
Configure::write('debug', 0); // debugコードを出さない
//Templateを読み込んで、PHPExcelオブジェクトの生成
$reader = PHPExcel_IOFactory::createReader('Excel5');
$xl = $reader->load('tmp/template.xls');
//シートの設定
$xl->setActiveSheetIndex(0);
$sheet = $xl->getActiveSheet();
//セルの値を設定
$sheet->setCellValue('b3', 'b3のセルに値が入る');
$sheet->setCellValue('b4', 'b4のセルに値が入る');
$sheet->setCellValue('c8', 'c8のセルに値が入る');
$sheet->setCellValue('e8', 'e8のセルに値が入る');
//画像用のオプジェクト作成
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setPath('../webroot/img/Tests/Test.png');///貼り付ける画像のパスを指定
$objDrawing->setHeight(210);////画像の高さを指定
///画像のプロパティを見たときに表示される情報を設定
$objDrawing->setName('Test');////ファイル名
$objDrawing->setDescription('Test画像');////画像の概要
$objDrawing->setCoordinates('B14');///位置
$objDrawing->setOffsetX(50);////横方向へ何ピクセルずらすかを指定
$objDrawing->getShadow()->setVisible(true);////ドロップシャドウをつけるかどうか。
///PHPExcelオブジェクトに張り込み
$objDrawing->setWorksheet($sheet);
//スタイルの設定(標準フォント、罫線、中央揃え)
$sheet->getDefaultStyle()->getFont()->setName('MS Pゴシック');
$sheet->getDefaultStyle()->getFont()->setSize(11);
$sheet->getStyle('b3')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
//Excel95形式で保存
$writer = PHPExcel_IOFactory::createWriter($xl, 'Excel5');
//tmpフォルダ内にExcelファイルが保存される
$writer->save("tmp/output.xls");
/*
* 95-2003形式でダウンロード
*/
//ダウンロードされるExcelファイルの名前を指定
header ("Content-disposition: attachment; filename=test.xls");
header ("Content-type: application/octet-stream; name=test.xls");
//tmpフォルダに保存されているExcelファイルをダウンロード
$out = file_get_contents("tmp/output.xls");
return($out);
}
}
?>
以上です。
PHPExcelというphpでExcelファイルを生成するライブラリがあります。
それをCakePHPで実装する方法をご紹介します。
環境
cakephp:1.2.10
PHPExcel:1.7.6
フォルダ構成
add/vendorsの中にphpexcelフォルダを生成し、その中にダウンロードした
PHPExcelファイル群をアップロードし、phpexcel.phpを新規に作成します。
app
└vendors
└phpexcel(新規フォルダ)
└Classes
└Documentation
└Tests
└changelog.txt
└install.txt
└license.txt
└phpexcel.php(オリジナルファイル)
わかりづらいですが、こんな感じです。
また、予めテンプレートExcelファイルをアップロードします。
場所はapp/webroot/tmpフォルダ内です。
tmpフォルダがない場合は、新規に作成します。
テンプレートExcelファイル名は「template.xls」となります。
続いてオリジナルファイルの中身です。
<?php
ini_set('include_path', get_include_path() . PATH_SEPARATOR . VENDORS. "phpexcel" . DS . "Classes");
require_once 'Classes/PHPExcel.php';
require_once 'Classes/PHPExcel/IOFactory.php';
?>
ここで、Classes中のPHPExcel.phpと、PHPExcel内のIOFactory.phpを呼び出します。
最後にコントローラーの記述です。
<?php
//PHPExcleの読み込み
require_once '../vendors/phpexcel/phpexcel.php';
class TestsController extends AppController {
public $name = 'Tests';
public $uses = 'Tests';
function dailies_report_download(){
$this->autoRender = false; // Viewを使わない
Configure::write('debug', 0); // debugコードを出さない
//Templateを読み込んで、PHPExcelオブジェクトの生成
$reader = PHPExcel_IOFactory::createReader('Excel5');
$xl = $reader->load('tmp/template.xls');
//シートの設定
$xl->setActiveSheetIndex(0);
$sheet = $xl->getActiveSheet();
//セルの値を設定
$sheet->setCellValue('b3', 'b3のセルに値が入る');
$sheet->setCellValue('b4', 'b4のセルに値が入る');
$sheet->setCellValue('c8', 'c8のセルに値が入る');
$sheet->setCellValue('e8', 'e8のセルに値が入る');
//画像用のオプジェクト作成
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setPath('../webroot/img/Tests/Test.png');///貼り付ける画像のパスを指定
$objDrawing->setHeight(210);////画像の高さを指定
///画像のプロパティを見たときに表示される情報を設定
$objDrawing->setName('Test');////ファイル名
$objDrawing->setDescription('Test画像');////画像の概要
$objDrawing->setCoordinates('B14');///位置
$objDrawing->setOffsetX(50);////横方向へ何ピクセルずらすかを指定
$objDrawing->getShadow()->setVisible(true);////ドロップシャドウをつけるかどうか。
///PHPExcelオブジェクトに張り込み
$objDrawing->setWorksheet($sheet);
//スタイルの設定(標準フォント、罫線、中央揃え)
$sheet->getDefaultStyle()->getFont()->setName('MS Pゴシック');
$sheet->getDefaultStyle()->getFont()->setSize(11);
$sheet->getStyle('b3')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
//Excel95形式で保存
$writer = PHPExcel_IOFactory::createWriter($xl, 'Excel5');
//tmpフォルダ内にExcelファイルが保存される
$writer->save("tmp/output.xls");
/*
* 95-2003形式でダウンロード
*/
//ダウンロードされるExcelファイルの名前を指定
header ("Content-disposition: attachment; filename=test.xls");
header ("Content-type: application/octet-stream; name=test.xls");
//tmpフォルダに保存されているExcelファイルをダウンロード
$out = file_get_contents("tmp/output.xls");
return($out);
}
}
?>
以上です。
2011年4月7日木曜日
【Joomla1.5系関連】サイト内検索の結果表示のフォームをカスタマイズするには
お疲れ様です。
タイトルの件で備忘録します。
以前紹介したスタンダードカテゴリレイアウトと同様なイメージでカスタマイズが可能です。
まずファイルの格納場所ですが。。。
ルートフォルダ/components/com_search/views/search/tmplの
default_form.phpです。
あとはじっくり眺めれば、大体わかります(笑)
以上
タイトルの件で備忘録します。
以前紹介したスタンダードカテゴリレイアウトと同様なイメージでカスタマイズが可能です。
まずファイルの格納場所ですが。。。
ルートフォルダ/components/com_search/views/search/tmplの
default_form.phpです。
あとはじっくり眺めれば、大体わかります(笑)
以上
【Joomla1.5系関連】メニューアイテムのスタンダードカテゴリレイアウトをカスタマイズするには
お疲れ様です。
タイトルの件ですが、今回いじる必要があったので備忘録します。
まず、スタンダードカテゴリレイアウトを生成しているphpファイルの在り処は・・・
ルートフォルダ/components/com_content/views/category/teplの
default_items.phpです
結構長いソースですが、じっくり眺めればたいていわかります(笑)
以上
タイトルの件ですが、今回いじる必要があったので備忘録します。
まず、スタンダードカテゴリレイアウトを生成しているphpファイルの在り処は・・・
ルートフォルダ/components/com_content/views/category/teplの
default_items.phpです
結構長いソースですが、じっくり眺めればたいていわかります(笑)
以上
2011年4月6日水曜日
【PHPセキュリティ関連】ファイルアップロード攻撃について
お疲れ様です。
今回はセキュリティについて備忘録します。
PHPをコーティングしていくうえで、いろいろなセキュリティ対策を行なうかと
思いますが、今回はファイルアップロード攻撃についてです。
ファイルアップロード攻撃とは
「ファイルをサーバー上にアップロードした後、アップロードしたファイルにアクセスしてPHPコードやJavascriptを実行する」
攻撃です。
サーバー上で、任意のコードが実行出来てしまうので結構危険です。
対策としては
・ファイルをアップロードするフォルダを公開フォルダの外にする。
・アップされるファイル名をランダムにする
・転送スクリプトを書く
などがあるみたいです。
下記参考サイトに非常に分かりやすく記載があります。
参考サイト:http://d.hatena.ne.jp/owa-tayo/20100129/1264714595
owa-tayo初心技術者の玉手箱様 ありがとうございます。
以上
今回はセキュリティについて備忘録します。
PHPをコーティングしていくうえで、いろいろなセキュリティ対策を行なうかと
思いますが、今回はファイルアップロード攻撃についてです。
ファイルアップロード攻撃とは
「ファイルをサーバー上にアップロードした後、アップロードしたファイルにアクセスしてPHPコードやJavascriptを実行する」
攻撃です。
サーバー上で、任意のコードが実行出来てしまうので結構危険です。
対策としては
・ファイルをアップロードするフォルダを公開フォルダの外にする。
・アップされるファイル名をランダムにする
・転送スクリプトを書く
などがあるみたいです。
下記参考サイトに非常に分かりやすく記載があります。
参考サイト:http://d.hatena.ne.jp/owa-tayo/20100129/1264714595
owa-tayo初心技術者の玉手箱様 ありがとうございます。
以上
2011年4月5日火曜日
【PHP関連】mb_send_mail()関数の文字化けについて
お疲れ様です。
最近更新をサボっています・・・
いろいろと備忘録するネタはあるんですが
書くのを面倒くさがっています。
新年度になりましたので、気を引き締めていきたいと思います。
さて、件名の件で備忘録します。
非常に便利なメール送信関数のmb_send_mail()関数ですが
文字化けしましたので、その時の対処を備忘録します。
原因は
PHPのスクリプトを書いている文字コードと、そのPHPスクリプトを動作させるサーバーのデフォルトの文字コード設定の相違らしいです。
なので下記コードを追加すると解決しました。
カレントの言語を日本語に設定する
mb_language("ja");
内部文字エンコードを設定する
mb_internal_encoding("UTF-8");
この後にmb_send_mail()関数を実行します。
以上
最近更新をサボっています・・・
いろいろと備忘録するネタはあるんですが
書くのを面倒くさがっています。
新年度になりましたので、気を引き締めていきたいと思います。
さて、件名の件で備忘録します。
非常に便利なメール送信関数のmb_send_mail()関数ですが
文字化けしましたので、その時の対処を備忘録します。
原因は
PHPのスクリプトを書いている文字コードと、そのPHPスクリプトを動作させるサーバーのデフォルトの文字コード設定の相違らしいです。
なので下記コードを追加すると解決しました。
カレントの言語を日本語に設定する
mb_language("ja");
内部文字エンコードを設定する
mb_internal_encoding("UTF-8");
この後にmb_send_mail()関数を実行します。
以上
登録:
投稿 (Atom)