アフィリエイト広告を利用しています

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2016年01月12日

【Smarty】PHPでメール本文を別ファイルから読み込む


PHPでmb_send_mailを使ってメールを送る場合、
smartyを使うと別ファイルのテンプレートファイルにメール本文を用意しておいたものを
組み込むことが簡単にできます。

smartyのインスタンスを生成した状態で以下のように記述します。

テンプレートファイル
【sample.tpl】


------------------------
名前 : {$name} 様
メールアドレス:{$address}
------------------------



PHPファイル


<?php
// Smarty のインスタンスを生成
省略

// Smarty に変数を設定
$smarty->assign('name', "hoge");
$smarty->assign('address', "hoge@hoge.com");

// send_mailに必要な宛先等を記述
$to = 宛先メールアドレス;
$subject = 件名;
$header = ヘッダー情報;

// テンプレート(xxx.tpl)からメール本文を取得
$body = $smarty->fetch('sample.tpl');

// メール送信
mb_send_mail($to,$subject,$body,$header);
?>



これでメール本文を別ファイルに持っておいてsend_mailすることができます。





posted by newprogramer at 01:22| Comment(0) | TrackBack(0) | Smarty

2015年12月28日

【Smarty】for文を実装するにはsectionを使う


Smartyでfor文のようにループを行いたい場合があります。
ループはforeachもありますが、ループ回数に制約をかけたい場合には、
for文があればと思ったものです。
Smartyでは、for文にかわってsectionを使用します。

それではSmartyのsectionを使用して、phpのfor文と同じように使用する方法をメモφ(..)


PHPの場合は以下のようになる

for ($i = 0; $i < 10; $i++) {
echo $i;
}



以下はSmartyの場合

{section name=hoge start=0 loop=10}
{$smarty.section.hoge.index}
{/section}



属性で必須となるのは、nameとloop。
”{$smarty.section.hoge.index}”ではループ回数(0始まり)を表示できます。
1始まりにしたい場合には、「index」でなく「iteration」を使用します。




posted by newprogramer at 00:32| Comment(0) | TrackBack(0) | Smarty

2015年11月24日

【Smarty】HTMLのエスケープ処理


エスケープ処理は、クロスサイト・スクリプティングなどのセキュリティ上の問題に対し行わなければいけません
「<」や「&」などのHTMLやURLなど、ユーザーから入力された値をそのまま表示するように記述したい箇所には、
エスケープ処理(escape)をします。
Smartyでの実装がとても簡単です。

書き方は以下。

{$変数名|escape:"エスケープ種類"}



これだけでスクリプトタグが打ち込まれても、そのままの入力値で表示される。

エスケープ種類は以下。

html
htmlall
url
urlpathinfo
quotes
hex
hexentity
javascript
mail



デフォルトではエスケープ種類はhtmlになっているので、以下の@とAは同じ処理を示す。

@{$変数名|escape}
A{$変数名|escape:"html"}




オプションがhtmlの場合は「<」や「&」がエスケープされるが、
例えばquotesにすると変数名が「\'」で囲まれる。
mailにすると、「@」や「.」が「AT」「DOT」となる。





posted by newprogramer at 23:39| Comment(0) | TrackBack(0) | Smarty

2015年10月30日

【Smarty】phpファイルの作成


プログラム側(phpファイル)では、テンプレートに渡す値を作成したり、
最終的にテンプレートを呼び出して画面に表示させたりします。

プログラムは以下の通りです。

<?php

//Smartyを読み込む
require_once('Smarty.class.php');

$smarty = new Smarty();

//テンプレートファイルなどを配置したディレクトリを絶対パスで指定
$smarty->template_dir = 'd:/path/templates/';
$smarty->compile_dir = 'd:/path/templates_c/';
$smarty->config_dir = 'd:/path/configs/';
$smarty->cache_dir = 'd:/path/cache/';

//テンプレートファイルに記述した変数に渡す値を設定
$smarty->assign('msg','Hello World!');

//テンプレートを呼び出して表示
$smarty->display('sample.tpl');

?>




テンプレートファイルには、以下のように変数を記述する。

sample.tpl

<html>
<head><title></title></head>
<body>

main<br>
{$msg}<br>

</body>
</html?>




ディスプレイ表示は、以下のようになる。

main
Hello World!








posted by newprogramer at 22:37| Comment(0) | TrackBack(0) | Smarty
検索
カテゴリーアーカイブ

最新記事
×

この広告は30日以上新しい記事の更新がないブログに表示されております。