<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Photoartisan&apos;s Storage</title>
    <link rel="alternate" type="text/html" href="http://photoartisan.jp/storage/" />
    <link rel="self" type="application/atom+xml" href="http://photoartisan.jp/storage/atom.xml" />
    <id>tag:photoartisan.jp,2010-05-27:/storage//9</id>
    <updated>2011-05-20T09:33:42Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 5.04</generator>

<entry>
    <title>EXIFデータから撮影日時を自動挿入</title>
    <link rel="alternate" type="text/html" href="http://photoartisan.jp/storage/2011/05/exif.html" />
    <id>tag:photoartisan.jp,2011:/storage//9.70</id>

    <published>2011-05-20T08:17:07Z</published>
    <updated>2011-05-20T09:33:42Z</updated>

    <summary>jpgデータに含まれたEXIFデータを元に、写真の撮影日時を画像に挿入するオンラ...</summary>
    <author>
        <name>photoartisan</name>
        
    </author>
    
        <category term="Photo" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="jQuery" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="javascript" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="php" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://photoartisan.jp/storage/">
        <![CDATA[<p>jpgデータに含まれたEXIFデータを元に、写真の撮影日時を画像に挿入するオンラインジェネレータです。</p>]]>
        <![CDATA[<p>撮影日時を画像に入れる必要があったのですが、Photshopのアクション等ではEXIFを読み込むことができないため、自作しました。</p>

<p>JPG画像の右下に撮影日時を埋め込みます。<br />
色、フォントサイズ、位置は調整できますが、初期値は銀塩カメラで見慣れた感じにしておきました。<br />
日付、時間など書式もいろいろ選べます。<br />
複数JPGをzipで固めることにより、一括処理も可能です。</p>

<p>サーバ負荷軽減のため、2MBに制限させていただいています。<a href="mailto:webmaster@photoartisan.jp">メール</a>かコメントをいただければ、容量制限を大きくした別URLをご案内します。<br />
<big><big><strong><a href="http://photoartisan.jp/addtimestamp/">AddTimestamp</a></strong></big></big><br />
<a href="http://photoartisan.jp/addtimestamp/"><img alt="080105_0082_s.jpg" src="http://photoartisan.jp/storage/images/080105_0082_s.jpg" width="450" height="300" class="mt-image-none" style="" /></a></p>]]>
    </content>
</entry>

<entry>
    <title>親要素全体をリンクボックスにするJqueryプラグイン</title>
    <link rel="alternate" type="text/html" href="http://photoartisan.jp/storage/2011/05/LinkFromParent.html" />
    <id>tag:photoartisan.jp,2011:/storage//9.69</id>

    <published>2011-05-19T03:54:05Z</published>
    <updated>2011-05-19T04:07:41Z</updated>

    <summary> 		.ParentBox{ 		width:80%; 		height:120...</summary>
    <author>
        <name>photoartisan</name>
        
    </author>
    
        <category term="jQuery" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="javascript" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://photoartisan.jp/storage/">
        <![CDATA[<script type="text/javascript" src="http://photoartisan.jp/LinkFromParent/js/LinkFromParent.js"></script>
<link rel="stylesheet" href="http://photoartisan.jp/LinkFromParent/css/LinkFromParent.css" />
<style type="text/css">
		.ParentBox{
		width:80%;
		height:120px;
		padding:10px;
		margin:10px auto;
		border:1px solid;
font-size:30px;
		}
	</style>
<script type="text/javascript">
$(function(){ 
	$(".ParentBox").LinkFromParent({
		dummyImgSrc:"http://"+location.hostname+"/images/dummy.gif"
	});
});
</script>
<a href="http://photoartisan.jp/LinkFromParent/">LinkFromParent.js</a>はa要素を含むdivを指定する事より、親要素全体をリンクボックスとして使用する<a href="http://jquery.com/" target="_blank" >jQuery</a>プラグインです。
<div class="ParentBox">
<a href="http://photoartisan.jp/LinkFromParent/" target="_brank">LinkFromParent.js</a>
</div>]]>
        <![CDATA[同様の物には<a href="http://www.ollicle.com/projects/jquery/biggerlink/" target="_blank">Biggerlink</a>や<a href="http://newism.com.au/blog/post/58/bigtarget-js-increasing-the-size-of-clickable-targets/" target="_blank">BigTarget</a>等がありますが、いずれもwindow.locationを使用してリンクを設定しているようです。<br />
このため、<a href="http://www.lokeshdhakar.com/projects/lightbox2/">lightbox</a>や<a href="http://www.pierrebertet.net/projects/jquery_superbox/">superbox</a>の様にrel属性を使用する場合や、target属性を使用したい場合には使えません。<br />
LinkFromParent.jsでは内包する要素と同じアンカータグを持った透過gifを埋め込むため、rel属性、target属性、title属性を使用できます。]]>
    </content>
</entry>

<entry>
    <title>cronでfopen</title>
    <link rel="alternate" type="text/html" href="http://photoartisan.jp/storage/2011/04/cronfopen.html" />
    <id>tag:photoartisan.jp,2011:/storage//9.67</id>

    <published>2011-04-14T10:03:10Z</published>
    <updated>2011-04-14T10:17:01Z</updated>

    <summary>cronでiniファイルを自動更新する際にひっかかったのでメモ...</summary>
    <author>
        <name>photoartisan</name>
        
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="php" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://photoartisan.jp/storage/">
        cronでiniファイルを自動更新する際にひっかかったのでメモ
        <![CDATA[cronでfopenする場合は、ルートからの絶対パスで指定する必要があるようだ。<br />
以下、さくらインターネットの場合
<div class="codex"><pre><code>&lt;?php
function write_ini($inifile,$iniarray){
	$fp = fopen('/home/ユーザアカウント/www/ファイルへのパス/'.$inifile, 'w');
	flock($fp,LOCK_EX) ;
	fputs($fp, "&lt;?php /*\n");
	foreach ($iniarray  as $key =&gt; $val){
		if(is_array($val)){
			fputs($fp, "[".$key."]\n");
			foreach ($val  as $k =&gt; $i){
				fputs($fp, $k.'="'.$i.'"'."\n");
				}
			}
		else{fputs($fp, $k.'="'.$i.'"'."\n");}
		}
	fputs($fp, "*/ ?&gt;");
	fclose($fp);	
}
?&gt;</code></pre></div>]]>
    </content>
</entry>

<entry>
    <title>土壌の放射性物質予測値</title>
    <link rel="alternate" type="text/html" href="http://photoartisan.jp/storage/2011/04/atm.html" />
    <id>tag:photoartisan.jp,2011:/storage//9.66</id>

    <published>2011-04-13T09:41:23Z</published>
    <updated>2011-05-20T15:53:27Z</updated>

    <summary>現時点では東京都土壌内の放射能測定値は公開されていないようなので、毎日発表されて...</summary>
    <author>
        <name>photoartisan</name>
        
    </author>
    
        <category term="php" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://photoartisan.jp/storage/">
        <![CDATA[<p>現時点では東京都土壌内の放射能測定値は公開されていないようなので、毎日発表されている<a href="http://ftp.jaist.ac.jp/pub/emergency/monitoring.tokyo-eiken.go.jp/monitoring/f-past_data.html">都内の降下物（塵や雨）の放射能調査結果</a>をもとに 土壌に堆積した放射性物質量を計算するプログラムを書いてみました。</p>]]>
        <![CDATA[<h2><a href="http://photoartisan.jp/atm/radio_shinjuku.php">東京都土壌の放射性物質予測値</a></h2>
<a href="http://ftp.jaist.ac.jp/pub/emergency/monitoring.tokyo-eiken.go.jp/monitoring/index.html">東京都健康安全研究センター</a>からデータを取得し、計算しています。

<p>半減期の計算は<br />
round(元の放射能量*pow(0.5,(経過日数/半減期)),2);<br />
で求めています。</p>]]>
    </content>
</entry>

<entry>
    <title>ImageMagick+GDでプレビュー作成</title>
    <link rel="alternate" type="text/html" href="http://photoartisan.jp/storage/2011/02/imagemagickgd.html" />
    <id>tag:photoartisan.jp,2011:/storage//9.65</id>

    <published>2011-02-07T11:41:19Z</published>
    <updated>2011-03-10T10:54:15Z</updated>

    <summary>ImageMagickを利用し、JPG、GIFFはもちろん、EPSやPSD、TI...</summary>
    <author>
        <name>photoartisan</name>
        
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="php" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://photoartisan.jp/storage/">
        <![CDATA[ImageMagickを利用し、JPG、GIFFはもちろん、EPSやPSD、TIFFからもプレビューを作成します。<div><a href="http://photoartisan.jp/storage/2011/02/imagemagickcmykrgb.html">CMYKの変換はGDの方がまし</a>なので、CMYKの場合のみGDに渡して出力します。</div><div><b>要ImageMagic&amp;Imagick&amp;GD</b></div>]]>
        <![CDATA[<b>pa_thumbnail.php</b>
<div class="codex"><pre><code>&lt;?php
//
// +----------------------------------------------------------------------+
//pa_thumbnail
// +----------------------------------------------------------------------+
//@package pa_thumbnail(beta) 2011/2/7
//@author Studio PhotoArtisan
//@copyright 2011 Studio PhotoArtisan
//
$src=$_GET['src'];
$size=$_GET['size'];
$image = new Imagick();//ImageMagicで読み込み
$image -&gt; readImage($src);
$image-&gt;setImageOpacity(1.0);//透過画像対策
$image -&gt; flattenImages();//レイヤー対策
$image-&gt;thumbnailImage($size,$size, true);//サイズ変更
$image -&gt; setImageFormat('jpg');//jpgに変換
$cs=$image -&gt;getImageColorspace();//カラースペースを取得
if($cs ==Imagick::COLORSPACE_CMYK)//CMYKの場合
  {
  $cachefile=mt_rand(1000,9999).".jpg";//キャッシュファイル名を設定
  $image-&gt;writeImage($cachefile);//キャッシュファイルを作成
  $gdimage = ImageCreateFromJPEG($cachefile);//GDで読み込み
  unlink($cachefile);//キャッシュファイルを削除
  ImageJPEG($gdimage);//GDで表示(GD内で自動的にRGBに変換)
  }
else//CMYK以外
{
 header('Content-type: image/jpeg');
 echo $image;
}
?&gt;</code></pre></div>
<b>html</b>
<div class="codex"><pre><code>&lt;img src="pa_thumbnail.php?src=画像url&amp;size=サムネイル長辺ピクセル数 /&gt;</code></pre></div>
imgタグでpa_thumbnail.phpに画像URLとサイズを渡すと、サムネイルを生成し表示します。<br />


<script type="text/javascript">
<!--
$(function(){
$("#getpv").click(function(){
$("#pvimg").html('<img src="http://photoartisan.jp/storage/pa_thumbnail.php?src='+$("#imgurl").val()+'&size='+$("#imgsize").val()+'" />');
});

});
// -->
</script>
<br />
<b>動作サンプル</b><br />
画像URL<input type="text" id="imgurl" value="http://photoartisan.jp/storage/cmyk.eps" size="50" /><br />サムネイルサイズ<input type="text" id="imgsize" value="300" /><input type="button" id="getpv" value="生成" /><br />
<div id="pvimg">
<img src="http://photoartisan.jp/storage/pa_thumbnail.php?src=http://photoartisan.jp/storage/cmyk.eps&size=300" />
</div>]]>
    </content>
</entry>

<entry>
    <title>ImageMagickでCMYK=&gt;RGB変換</title>
    <link rel="alternate" type="text/html" href="http://photoartisan.jp/storage/2011/02/imagemagickcmykrgb.html" />
    <id>tag:photoartisan.jp,2011:/storage//9.64</id>

    <published>2011-02-07T11:21:53Z</published>
    <updated>2011-03-10T10:04:45Z</updated>

    <summary>ImageMagickでCMYKからRGBに変換するための情報が少なかったためメ...</summary>
    <author>
        <name>photoartisan</name>
        
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="php" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://photoartisan.jp/storage/">
        <![CDATA[ImageMagickでCMYKからRGBに変換するための情報が少なかったためメモ<br />
<div><b>要ImageMagic&amp;Imagick</b></div>]]>
        <![CDATA[<strong>単純にカラースペースを指定した場合</strong>
<div class="codex"><pre><code>$image -&gt; readImage('cmyk.eps');
$image -&gt;setImageColorspace(Imagick::COLORSPACE_SRGB);
//反転してしまう
$image -&gt;negateImage(false);
//反転してあげればとりあえず見れるようにはなるが、K版が反映されていないようだ。
</code></pre></div>
<br />
<strong>sRGBのプロファイルを読み込んだ場合</strong>
<div class="codex"><pre><code>$image -&gt; readImage('cmyk.eps');
//sRGBのプロファイルを読み込む
$sRGBPath = '../sRGB.icm';
$sRGB = file_get_contents($sRGBPath);
$image-&gt;profileImage('icc', $sRGB);<br />$image-&gt;setImageColorspace(Imagick::COLORSPACE_SRGB);
//プロファイルの埋め込まれたCMYKは変換できるが、プロファイル無しのCMYKは反転
</code></pre></div>
<br />
<strong>CMYKのプロファイルも読み込んだ場合</strong>
<div class="codex"><pre><code>$image -&gt; readImage('cmyk.eps');
//CMYKのプロファイルを読み込む
$CMYKPath = '../JapanColor2001Coated.icc';
$CMYK = file_get_contents($CMYKPath);
$image-&gt;profileImage('icc', $CMYK);
//sRGBのプロファイルを読み込む
$sRGBPath = '../sRGB.icm';
$sRGB = file_get_contents($sRGBPath);
$image-&gt;profileImage('icc', $sRGB);<br />$image-&gt;setImageColorspace(Imagick::COLORSPACE_SRGB);
//プロファイルの有無に関わらず変換
</code></pre></div>
とりあえずこれでRGBにはなるが、どんな画像かはわかる程度で、色は全く当てになりません。<div>&nbsp;GDを使った方がまだましのようです。 </div><div><a href="http://photoartisan.jp/storage/2011/02/imagemagickgd.html">ImageMagick+GDでプレビュー作成</a></div>]]>
    </content>
</entry>

<entry>
    <title>JS_AnimationGenerator</title>
    <link rel="alternate" type="text/html" href="http://photoartisan.jp/storage/2011/01/js-animation.html" />
    <id>tag:photoartisan.jp,2011:/storage//9.62</id>

    <published>2011-01-06T13:17:01Z</published>
    <updated>2011-01-06T14:10:24Z</updated>

    <summary>JavaScriptによるアニメーションバナーを生成するオンラインジェネレータで...</summary>
    <author>
        <name>photoartisan</name>
        
    </author>
    
        <category term="jQuery" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="javascript" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://photoartisan.jp/storage/">
        <![CDATA[JavaScriptによるアニメーションバナーを生成するオンラインジェネレータです。<div>生成したアニメーションはFlashを使用しないため、iPhoneやiPadでも動作します。</div><div><br /></div><div><br /></div>]]>
        <![CDATA[現在β版につき、FireFox、Safari、GoogleCromeのみの対応とさせていただきます。<div><div><font class="Apple-style-span" style="font-size: 1.25em; "><b><a href="http://photoartisan.jp/storage/js_animate" target="_blank" style="text-decoration: underline; ">JS_AnimationGenerator</a></b></font></div><div><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></div><div><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></div>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">google.load('jquery', '1.4')</script>
<script type="text/javascript" src="http://photoartisan.jp/storage/js_animate/sample/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="http://photoartisan.jp/storage/js_animate/sample/js_animate.js"></script>
<link href="http://photoartisan.jp/storage/js_animate/sample/js_animate.css" rel="stylesheet" type="text/css">
<hr>
<big>アニメーションサンプル</big>
<div id="animate">
	<div id="layer1">全品50%OFF!</div>
	<div id="layer2">7/1〜8/31</div>
	<div id="layer3">Summer Sale!</div>
	<div id="layer4"><img src="http://photoartisan.jp/storage/js_animate/sample/images/sample2.gif" id="layer4_img" /></div>
	<div id="layer5"><img src="http://photoartisan.jp/storage/js_animate/sample/images/sample1.jpg" id="layer5_img" /></div>
  </div></div>]]>
    </content>
</entry>

<entry>
    <title>電話番号チェック</title>
    <link rel="alternate" type="text/html" href="http://photoartisan.jp/storage/2010/10/post.html" />
    <id>tag:photoartisan.jp,2010:/storage//9.62</id>

    <published>2010-10-29T12:00:48Z</published>
    <updated>2010-12-29T10:51:18Z</updated>

    <summary>電話番号の入力値をリアルタイムにチェックするjavascript 全角、半角とも...</summary>
    <author>
        <name>photoartisan</name>
        
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="javascript" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://photoartisan.jp/storage/">
        <![CDATA[電話番号の入力値をリアルタイムにチェックするjavascript



<ul>
<li>全角、半角とも入力可</li>
<li>ハイフンあり、括弧あり入力可</li>
<li>桁数計算(通常10桁、携帯、IPなどは11桁)</li>
<li>入力値が不完全な場合は入力欄横に警告を表示</li>
<li>入力値が正しければ、自動的に次のフィールドへフォーカス移動</li>
</ul>]]>
        <![CDATA[第２引数に次のフィールドのIDを設定します。設定しない場合は、フォーカスが外れます。

<div class="codex">
<code>
<pre>function TelCheck(obj,NextId) {
   var str = obj.value;
   var substr=str.replace(/[\-−ー―?‐\(\)（）\s]/g,"");
   var alertId= "alert_"+obj.id;
   
   if(str ==""){
   document.getElementById(alertId).innerHTML="";
   }
   else if( str.match( /[^0-9０-９\-−ー―?‐\(\)（）\s]+/ ) ) {
   document.getElementById(alertId).innerHTML="数字のみで入力して下さい。";	  
   }
   else if( substr.match( /^[^0|０]/ ) ) {
   document.getElementById(alertId).innerHTML="市外局番から入力して下さい。";	  
   }
   else if( substr.match( /^00|^００/ ) ) {
   document.getElementById(alertId).innerHTML="番号を確認して下さい。";	  
   }
   
    else if(substr.length>11 ) {
   document.getElementById(alertId).innerHTML="桁数がオーバーしました。";	  
   }
   
   else if( !substr.match( /^0.0|^０.０/ ) && substr.length>10 ) {
   document.getElementById(alertId).innerHTML="桁数がオーバーしました。";	  
   }
   else if( substr.match( /^0.0|^０.０/ ) && substr.length<11 ) {
   document.getElementById(alertId).innerHTML="入力が不完全です";	  
   }
   else if(substr.length<10 ) {
   document.getElementById(alertId).innerHTML="入力が不完全です";	  
   }
   else{
   document.getElementById(alertId).innerHTML="";
   if(NextId== undefined){
   		obj.blur();
	   }
	else{
   document.getElementById(NextId).focus();
   }
   }
}


フォームhtml
&lt;form name="form"&gt;
電話&lt;input type="text" name="tel" id="tel" onkeyup="TelCheck(this,'fax');" /&gt;&lt;span class="alert" id="alert_tel" style="color:red;font-weight:bold;"&gt;&lt;/span&gt;&lt;br /&gt;
fax&lt;input type="text" name="fax" id="fax" onkeyup="TelCheck(this);" /&gt;&lt;span class="alert" id="alert_fax" style="color:red;font-weight:bold;"&gt;&lt;/span&gt;

&lt;/form&gt;


</pre>
</code>

</div>

<pre>
<script language="javascript"> 
function TelCheck(obj,NextId) {
   var str = obj.value;
   var substr=str.replace(/[\-−ー―?‐\(\)（）\s]/g,"");
   var alertId= "alert_"+obj.id;
   
   if(str ==""){
   document.getElementById(alertId).innerHTML="";
   }
   else if( str.match( /[^0-9０-９\-−ー―?‐\(\)（）\s]+/ ) ) {
   document.getElementById(alertId).innerHTML="数字のみで入力して下さい。";	  
   }
   else if( substr.match( /^[^0|０]/ ) ) {
   document.getElementById(alertId).innerHTML="市外局番から入力して下さい。";	  
   }
   else if( substr.match( /^00|^００/ ) ) {
   document.getElementById(alertId).innerHTML="番号を確認して下さい。";	  
   }
   
    else if(substr.length>11 ) {
   document.getElementById(alertId).innerHTML="桁数がオーバーしました。";	  
   }
   
   else if( !substr.match( /^0.0|^０.０/ ) && substr.length>10 ) {
   document.getElementById(alertId).innerHTML="桁数がオーバーしました。";	  
   }
   else if( substr.match( /^0.0|^０.０/ ) && substr.length<11 ) {
   document.getElementById(alertId).innerHTML="入力が不完全です";	  
   }
   else if(substr.length<10 ) {
   document.getElementById(alertId).innerHTML="入力が不完全です";	  
   }
   else{
   document.getElementById(alertId).innerHTML="";
   if(NextId== undefined){
   		obj.blur();
	   }
	else{
   document.getElementById(NextId).focus();
   }
   }
}

</script>
</pre>



<b>動作デモ</b>

<form name="form">
電話<input type="text" name="tel" id="tel" onkeyup="TelCheck(this,'fax');" /><span class="alert" id="alert_tel" style="color:red;font-weight:bold;"></span><br />
fax<input type="text" name="fax" id="fax" onkeyup="TelCheck(this);" /><span class="alert" id="alert_fax" style="color:red;font-weight:bold;"></span>

</form>]]>
    </content>
</entry>

<entry>
    <title>phpユーザ認証プログラム</title>
    <link rel="alternate" type="text/html" href="http://photoartisan.jp/storage/2010/08/auth.html" />
    <id>tag:photoartisan.jp,2010:/storage//9.61</id>

    <published>2010-08-09T06:02:49Z</published>
    <updated>2011-01-12T03:54:51Z</updated>

    <summary><![CDATA[phpによるログインプログラムです。 ソースコードにて公開します。 &gt;&g...]]></summary>
    <author>
        <name>photoartisan</name>
        
    </author>
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="php" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://photoartisan.jp/storage/">
        <![CDATA[<p>phpによるログインプログラムです。<br />
ソースコードにて公開します。<br /><br />
<a href="http://photoartisan.jp/storage/pa_auth/" target="_blank">&gt;&gt;実行デモ</a></p>]]>
        <![CDATA[<a href="http://photoartisan.jp/storage/dl/pa_auth_v01.zip">&gt;&gt;サンプルファイルダウンロード</a>

<p>ファイル構成<br />
　index.php　ログイン画面<br />
　admin.php　管理画面　パスワードを設定<br />
　user.php　ユーザ画面<br />
　user.ini.php　パスワード情報を記述</p>

<p><b>※パスワード情報はuser.ini.phpに暗号化されずに記載されています。<br />
iniファイルをphpにしてコメントアウトすることにより、ブラウザでは表示されないようになっていますが、何らかの方法でダウンロードされるとパスワードが丸見えになってしまいます。<br />&nbsp;セキュリティを要する場合には、暗号化して記述するように改造してください。</b></p>

<b>index.php</b>
<div class="codex"><pre><code>&lt;?php
//
// +----------------------------------------------------------------------+
//pa_auth
// +----------------------------------------------------------------------+
//@package pa_auth 0.1(beta) 2010/8/9
//@author Studio PhotoArtisan
//@copyright 2010 Studio PhotoArtisan
//


$userini = parse_ini_file('user.ini.php');//iniファイル読み込み
$msg="";//メッセージを一旦空に
setcookie("PASS", "", time() - 3600);//ログイン情報を空に


if(isset($_COOKIE["msg"])){//COOKIEにメッセージがある場合は$msgに格納
$msg='&lt;div class="error"&gt;'.$_COOKIE["msg"].'&lt;/div&gt;';
setcookie("msg", "", time() - 3600);//COOKIE内メッセージを空に
}

$id=$_COOKIE["ID"];//COOKIEにIDがある場合は$idに格納




if(isset($_POST["id"])){//POSTされた場合
	$id=$_POST["id"];//IDを$idに格納
	setcookie("ID",$id);//COOKIEにIDを格納
	
	
	if( $id=='admin'){//idがadminの場合
		if( $userini[admin]=== $_POST["password"]){//管理者パスワードを照合
			setcookie("PASS", md5($_POST["password"]),time() +30);//パスワードをCOOKIEに格納(期限付き)
			header("Location:admin.php");//admin.phpに移動
		}
		else{//管理者パスワードの照合に失敗した場合
			$msg='&lt;div class="error"&gt;管理者パスワードが違います。&lt;/div&gt;';//エラーメッセージを$msgに格納
		}
	}
	elseif( $userini[$id]=== $_POST["password"]){//IDとパスワードを照合
			setcookie("PASS", md5($_POST["password"]),time() +30);//パスワードをCOOKIEに格納(期限付き)
			header("Location:user.php");//user.phpに移動
		}

	else{//IDとパスワードが照合できなかった場合
		$msg= '&lt;div class="error"&gt;IDとパスワードが一致しません。&lt;/div&gt;';//エラーメッセージを$msgに格納
	}
}



//$html_headderを設定
$html_headder='&lt;?xml version="1.0" encoding="UTF-8"?&gt;
	&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"&gt;
	&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"&gt;
	&lt;head&gt;
	&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;
	&lt;meta http-equiv="Content-Script-Type" content="text/javascript" /&gt;
	&lt;link rel="stylesheet" href="style.css" type="text/css" /&gt;
	&lt;title&gt;管理画面&lt;/title&gt;
	&lt;/head&gt;';


//$contentsを設定
$contents = '&lt;body&gt;&lt;h1&gt;ログイン&lt;/h1&gt;
&lt;hr /&gt;&lt;div class="txt"&gt;ID、パスワードを入力してください。&lt;/div&gt;';


//$msgが空ではない場合
if($msg != NULL){
	$contents .=  '&lt;div id="msg"&gt;'.$msg.'&lt;/div&gt;';//メッセージを挿入
}


//ログインフォーム
$contents.='&lt;form action="" name="logon" method="post"&gt;
ID:&lt;input name="id" type="text" value="'.$id.'"/&gt;&lt;br /&gt;'; //valueに$idを表示
	
//パスワード入力欄
$contents.= 'パスワード:&lt;input name="password" type="password" /&gt;&lt;br /&gt;';

//送信ボタン
$contents.= '&lt;input type="submit" value="logon" /&gt;&lt;/form&gt;';

	
//現在の管理者パスワード表示
//デモ用です。本番では必ず削除してください。
$contents.='管理者ID:admin&lt;br /&gt;現在の管理者パスワード:'.$userini[admin];


//$footerを設定
$footer='&lt;hr /&gt;&lt;div class="copy"&gt;Copyright(c)2010 &lt;a href="http://photoartisan.jp"&gt;Studio PhotoArtisan&lt;/a&gt;&lt;/div&gt;
&lt;/body&gt;&lt;/html&gt;';



//html出力
echo $html_headder;
echo $contents;
echo $footer;

?&gt;
</code></pre><code></code></div>
<div>
user.ini.phpに書き込まれたパスワード情報を$useriniに読み込み、POSTされたID、パスワードと照合します。<br />
照合できた場合はパスワードをmd5で暗号化しCOOKIEに保存し、admin.phpとuser.phpに振り分けます。<br />
このスクリプトは期限切れをわかりやすくするため、COOKIEの有効期限を30秒に設定しています。<br />
実際に使用する際には、<br />
setcookie("PASS", md5($_POST["password"]),time() +30);<br />
の+30の部分を、もう少し長い時間に設定してください。<br />
<br />
デモ用に現在の管理者パスワードを表示するようになっています。<br />
必ず<br />
$contents.='管理者ID:admin&lt;br /&gt;現在の管理者パスワード:'.$userini[admin];<br />
の部分を削除してください。<br />


</div>
<br />
<b>admin.php</b>
<div class="codex"><pre><code>&lt;?php
//
// +----------------------------------------------------------------------+
//pa_auth
// +----------------------------------------------------------------------+
//@package pa_auth 0.1(beta) 2010/8/9
//@author Studio PhotoArtisan
//@copyright 2010 Studio PhotoArtisan
//

$userini = parse_ini_file('user.ini.php');//iniファイル読み込み

$msg ="";//メッセージを一旦空に
setcookie("msg", "", time() - 3600);//COOKIE内メッセージを空に


if(isset($_COOKIE["PASS"]) &amp;&amp; md5($userini['admin']) == $_COOKIE["PASS"]){//COOKIEの認証情報を確認
	if (isset($_POST['adminpass'])) {//POSTされた場合
	$userini="";//$useriniを空に
	$userini['admin'] = $_POST['adminpass'];//$useriniにadminパスワードを格納
	
	
	foreach($_POST['username'] as $key =&gt; $val){//$_POST['username']を展開
	if($val !=NULL &amp;&amp; $_POST['userpass'][$key]!=NULL){//空欄以外がPOSTされた場合
	$userini[$val] = $_POST['userpass'][$key];//$useriniにuserパスワードを格納
	}
	}
	
	
	$fp = fopen('user.ini.php', 'w');//user.ini.phpをfopen
	flock($fp,LOCK_EX) ;//排他ロック
	fputs($fp, "&lt;?php /*\n");//一行目にphpのコメントとして記述
	foreach ($userini  as $key =&gt; $val){//$useriniを展開
		fputs($fp, $key."=".$val."\n");//一行ずつ記述
		}
	fputs($fp, "*/ ?&gt;");//最終行にコメント終了を記述
	fclose($fp);//user.ini.phpを閉じる
	
	
	$msg ='IDを設定しました。&lt;br /&gt;';//メッセージを$msgに格納
		
	setcookie("PASS", md5( $userini['admin']),time() +30);//パスワードを変更したので、C00KIEを再設定
			
	}
	
	
	//html_headderを設定
	$html_headder='&lt;?xml version="1.0" encoding="UTF-8"?&gt;
	&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"&gt;
	&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"&gt;
	&lt;head&gt;
	&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;
	&lt;meta http-equiv="Content-Script-Type" content="text/javascript" /&gt;
	&lt;link rel="stylesheet" href="style.css" type="text/css" /&gt;
	&lt;title&gt;管理画面&lt;/title&gt;
	&lt;/head&gt;';

	//$contentsを設定
	$contents =  '&lt;body&gt;&lt;h1&gt;ログインID一覧&lt;/h1&gt;&lt;a href="index.php"&gt;ログアウト&lt;/a&gt;&lt;br /&gt;';
	

	//$msgが空ではない場合
	if($msg != NULL){
	$contents .=  '&lt;div id="msg"&gt;'.$msg.'&lt;/div&gt;';//メッセージを挿入
	}
	

	//フォーム
	$contents .=  '&lt;form method="post" action="'.$_SERVER['PHP_SELF'].'" name="setup"&gt;
	管理者パスワード： &lt;input type="text" name="adminpass" value="'.$userini[admin].'"&gt;&lt;br /&gt;&lt;br /&gt;';
	$userno=1;//usernoを1に
	foreach($userini as $name=&gt;$pass){//$useriniを$nameと$passに展開

		if($name !="admin"){//管理者IDを除外
			$contents .= 'ユーザ'.$userno.' :&lt;input type="text" name="username[]" value="'.$name.'"&gt;　Pass:&lt;input type="text" name="userpass[]" value="'.$pass.'"&gt;&lt;br /&gt;';//IDとパスワードを$_POST[username]と$_POST[userpass]に配列として
			$userno++;//$usernoに1加える
		}
	}

	//最後に1つ空欄を作る
	$contents .= 'ユーザ'.$userno.' :&lt;input type="text" name="username[]" value=""&gt;　Pass:&lt;input type="text" name="userpass[]" value=""&gt;&lt;br /&gt;';
	$contents .='&lt;input type="submit" value="設定"&gt;&lt;/form&gt;';//送信ボタン



	setcookie("PASS", md5( $userini['admin']),time() +30);//読み込み後にC00KIEを再設定


	//$footerを設定
	$footer='&lt;hr /&gt;&lt;div class="copy"&gt;Copyright(c)2010 &lt;a href="http://photoartisan.jp"&gt;Studio PhotoArtisan&lt;/a&gt;&lt;/div&gt;
	&lt;/body&gt;&lt;/html&gt;';



	//html出力
	echo $html_headder;
	echo $contents;
	echo $footer;
	
}
else{//COOKIEで認証できなかった場合
	setcookie("msg", "一定時間操作が行われなかったため、ログアウトしました。&lt;br /&gt;再度ログインしてください。", time() +5);//COOKIEにメッセージを格納
	header("Location:index.php");//indexへ移動
}
?&gt;
</code></pre><code></code></div>
<div>
user.ini.phpのパスワード情報を$useriniに読み込み、COOKIEにセットされたパスワードと照合します。<br />
照合できた場合は、$useriniの中身をフォーム入力欄に展開します。<br />
POSTされたときは$useriniをPOSTされた値に置き換え、user.ini.phpを書き換えます。

</div>
<br />
<b>user.php</b>
<div class="codex"><pre><code>
&lt;?php
//
// +----------------------------------------------------------------------+
//pa_auth
// +----------------------------------------------------------------------+
//@package pa_auth 0.1(beta) 2010/8/9
//@author Studio PhotoArtisan
//@copyright 2010 Studio PhotoArtisan
//

$userini = parse_ini_file('user.ini.php');//iniファイル読み込み
$id = $_COOKIE[ID];//IDをCOOKIEから取得

if(isset($_COOKIE["PASS"]) &amp;&amp; md5($userini[$id]) === $_COOKIE["PASS"]){//COOKIEの認証情報を確認


	//ログイン時実行プログラム
	$contents = $id.'でログイン中　　　&lt;a href="index.php"&gt;ログアウト&lt;/a&gt;&lt;br /&gt;';
	$contents .= '&lt;a href ="'.$_SERVER["PHP_SELF"].'?action=demo"&gt;操作のデモ&lt;/a&gt;&lt;br /&gt;';
	$contents .=  'ユーザ領域です。実行プログラムをここに記載して下さい。&lt;br /&gt;';

	if($_GET[action] == "demo"){
		$contents .= "デモプログラムです";
	}

//ここまでログイン時実行プログラム



//html_headderを設定
	$html_headder='&lt;?xml version="1.0" encoding="UTF-8"?&gt;
	&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"&gt;
	&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"&gt;
	&lt;head&gt;
	&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;
	&lt;meta http-equiv="Content-Script-Type" content="text/javascript" /&gt;
	&lt;link rel="stylesheet" href="style.css" type="text/css" /&gt;
	&lt;title&gt;ユーザ画面&lt;/title&gt;
	&lt;/head&gt;';

	setcookie("PASS", md5($userini[$id]) ,time() +30);//読み込み後にCOOKIEを再設定


	//$footerを設定
	$footer='&lt;hr /&gt;&lt;div class="copy"&gt;Copyright(c)2010 &lt;a href="http://photoartisan.jp"&gt;Studio PhotoArtisan&lt;/a&gt;&lt;/div&gt;
	&lt;/body&gt;&lt;/html&gt;';



	//html出力
	echo $html_headder;
	echo $msg;
	echo $contents;
	echo $footer;
	
}
else{//COOKIEで認証できなかった場合
	setcookie("msg", "一定時間操作が行われなかったため、ログアウトしました。&lt;br /&gt;再度ログインしてください。", time() +5);//COOKIEにメッセージを格納
	header("Location:index.php");//indexへ移動
}



?&gt;
</code></pre></div>
<div>
admin.phpと同様にログイン情報を照合しています。<br />
$idにユーザIDを格納しているので、これを利用してユーザごとに違う処理を行うこともできます。<br />
</div>
<br />

<b>user.ini.php</b>
<div class="codex"><pre><code>
&lt;?php /*
admin=pass
user1=1111
user2=2222
user3=3333
*/ ?&gt;
</code></pre></div>
<div>
中身は通常のiniファイルですので、1行ごとに<br />
ユーザ名=パスワード　改行<br />
というように書き込みますが、ブラウザから読まれないために<br />
&lt;?php /*<br />
*/ ?&gt;<br />
で囲んでいます。<br />
これにより、通常のブラウザにはPHPのコメントとして扱われるため、表示できません。<br />
</div>
<br />
<div>
<b>ライセンス</b><br />
フリーウェア<br />
このままではログインするだけのプログラムですので、自由に改変してお使いください。<br />
簡易的なユーザ認証ですので、セキュリティ面には責任を一切負いません。<br />
ご自身の責任でお使いください。<br />
このプラグラムに関しては著作権表示を外してもらって構いませんが、どこかに当サイトへのリンクを張っていただけるとありがたいです。<br />
</div>]]>
    </content>
</entry>

<entry>
    <title>phpのエラー表示</title>
    <link rel="alternate" type="text/html" href="http://photoartisan.jp/storage/2010/08/php.html" />
    <id>tag:photoartisan.jp,2010:/storage//9.60</id>

    <published>2010-08-07T11:16:32Z</published>
    <updated>2010-08-09T01:20:33Z</updated>

    <summary>OSXServer10.6でPHPを有効にし、テストプログラムを実行すると真っ白...</summary>
    <author>
        <name>photoartisan</name>
        
    </author>
    
        <category term="OSXSERVER" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="php" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://photoartisan.jp/storage/">
        <![CDATA[<p>OSXServer10.6でPHPを有効にし、テストプログラムを実行すると真っ白の画面。<br />
Webのエラーログを確認するとしっかりphpエラーが・・・</p>

<p>もしやと思いphpinfo()を実行すると、やはり"display_errors"がOffになっています。</p>

<p>php.iniでdisplay_errorsをonにして解決。</p>

<p>とおもいきや、今度は大量のNOTICEが・・・・<br />
<div class="codex"><pre><code>error_reporting = E_ALL & ~E_DEPRECATED</code></pre></div><br />
となっているところを<br />
<div class="codex"><pre><code>error_reporting = E_ALL & ~E_NOTICE</code></pre></div><br />
に変更して、万事解決。</p>]]>
        
    </content>
</entry>

<entry>
    <title>Pearインストール</title>
    <link rel="alternate" type="text/html" href="http://photoartisan.jp/storage/2010/08/pear.html" />
    <id>tag:photoartisan.jp,2010:/storage//9.59</id>

    <published>2010-08-07T07:42:17Z</published>
    <updated>2010-08-07T08:50:17Z</updated>

    <summary>OSXのPHPにはPearが入っていないので、インストール手順のメモ ...</summary>
    <author>
        <name>photoartisan</name>
        
    </author>
    
        <category term="OSXSERVER" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="php" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://photoartisan.jp/storage/">
        <![CDATA[OSXのPHPにはPearが入っていないので、インストール手順のメモ<br />
]]>
        <![CDATA[<br />
ターミナルでgo-pearをダウンロード<br />
<div class="codex"><pre><code>$ curl -o go-pear.php http://pear.php.net/go-pear</code></pre></div>
<br />
ユーザホームにgo-pear.phpがダウンロードされるので、これを実行<br />
<div class="codex"><pre><code>$ sudo php -q go-pear.php </code></pre></div>
<br />
途中でインストール場所を聞かれるので
 <div class="codex"><pre><code>1. Installation prefix ($prefix) : /Users/******
2. Temporary files directory     : $prefix/temp
3. Binaries directory            : $prefix/bin
4. PHP code directory ($php_dir) : $prefix/PEAR
5. Documentation base directory  : $php_dir/docs
6. Data base directory           : $php_dir/data
7. Tests base directory          : $php_dir/tests
</code></pre></div>
ユーザホーム以下へインストールするのがいやなので、"1"を入力して/usr/share/pearに変更
 <div class="codex"><pre><code>1. Installation prefix ($prefix) : /usr/share/pear
2. Temporary files directory     : $prefix/temp
3. Binaries directory            : $prefix/bin
4. PHP code directory ($php_dir) : $prefix/PEAR
5. Documentation base directory  : $php_dir/docs
6. Data base directory           : $php_dir/data
7. Tests base directory          : $php_dir/tests
</code></pre></div>
php.iniを編集するかと聞かれるので、"y"を入力
 <div class="codex"><pre><code>Current include path           : .:/usr/lib/php
Configured directory           : /usr/share/pear/PEAR
Currently used php.ini (guess) : /private/etc/php.ini
</code></pre></div>
確認してenter<br />
これでインストールは完了ですが、このままではbashにパスが通っていないので、.bash_profileを編集(新規作成)<br />
 <div class="codex"><pre><code>$ sudo nano ~/.bash_profile
</code></pre></div>
.bash_profileの中身
 <div class="codex"><pre><code>export PATH=/usr/share/pear/bin:$PATH
</code></pre></div>
保存してnanoを閉じ、.bash_profileを適用
<div class="codex"><pre><code>$ source ~/.bash_profile
</code></pre></div>
これでターミナルでpearが実行できる様になったので、リスト表示をしてテスト
 <div class="codex"><pre><code>$ pear list
Installed packages, channel pear.php.net:
=========================================
Package           Version State
Archive_Tar       1.3.7   stable
Config            1.10.11 stable
Console_Getopt    1.2.3   stable
HTML_Template_IT  1.3.0   stable
MDB2              2.4.1   stable
MIME_Type         1.2.0   stable
PEAR              1.9.1   stable
PEAR_Frontend_Web 0.7.4   beta
Structures_Graph  1.0.3   stable
</code></pre></div>
インストール済みのパッケージがリスト表示されます。<br />
必要に応じて追加インストールを実行
 <div class="codex"><pre><code>$ sudo pear install -a Mail
</code></pre></div>
-aオプションを付けないと、依存ファイルが自動インストールされません。<br />
<br />
php.iniを編集しているので、Apacheをリスタートして作業完了です。<br />
これでphpからpearが呼び出せるはずです・・・]]>
    </content>
</entry>

<entry>
    <title>サーバ監視プログラム</title>
    <link rel="alternate" type="text/html" href="http://photoartisan.jp/storage/2010/05/portcheck.html" />
    <id>tag:photoartisan.jp,2010:/storage//9.58</id>

    <published>2010-05-26T17:12:37Z</published>
    <updated>2010-08-09T09:19:59Z</updated>

    <summary>自分の運営している自宅サーバなどの状態を監視し、異常があればメールで通知するプロ...</summary>
    <author>
        <name>photoartisan</name>
        
    </author>
    
        <category term="php" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://photoartisan.jp/storage/">
        <![CDATA[<p>自分の運営している自宅サーバなどの状態を監視し、異常があればメールで通知するプログラムです。</p><div><br /></div><div>監視するサーバとは別のレンタルサーバなどにインストールし、監視するサーバのHTTPレスポンスコード及び指定したポートの開閉状態に変化があった場合は、メールで通知します。</div><div>サーバのダウンや、不正なアクセスによりポートをあけられた場合、リダイレクト設定を行われた場合などに通知されます。</div><div><br /></div><div><b>システム要件</b>(インストールサーバ側)</div><div>PHP及びcronの作動するサーバ</div><div><br /></div><div><br /></div><p></p>]]>
        <![CDATA[<p><b>ダウンロード</b></p><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><b><a href="http://photoartisan.jp/storage/dl/pa_portchecker_v01.zip">pa_portchecker_v01.zip</a>&nbsp;</b>フリーウェア</blockquote><p><b><br /></b></p><p><b>インストール方法</b></p><div>はじめにインストールするサーバでPHPとcronが使えること及びcronの設定方法を確認してください。</div><div>cronの設定方法はサーバにより異なりますので、サーバ会社に問い合わせるか、"サーバ会社名　cron"などで検索して調べてください。</div><div><br /></div><div>ダウンロードしたファイルを解凍し、"cron.sh"をお使いのサーバに合わせて編集します。</div><div><b>例：さくらインターネット</b></div>
<div class="codex"><pre><code>#!/bin/sh
/usr/local/bin/php /home/アカウント名/www/portchecker/portcheck.php
exit</code></pre></div>
<div><b>例：XREA+</b></div>
<div class="codex"><pre><code>#!/bin/sh
/usr/local/bin/php /virtual/アカウント名/public_html/portchecker/portcheck.php
exit</code></pre></div>フォルダをアップロードし、アクセス権を下記のように設定します。<blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><font class="Apple-style-span" face="monospace, helvetica, hirakakupro-w3, osaka, 'ms pgothic', sans-serif"><span class="Apple-style-span" style="white-space: pre; "><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Hiragino Kaku Gothic ProN">authority.txt 644</p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Hiragino Kaku Gothic ProN"></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Hiragino Kaku Gothic ProN">config.ini 603　パスワード情報が含まれますので、必ず外部から読み込みのできない権限にしてください。</p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Hiragino Kaku Gothic ProN"></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Hiragino Kaku Gothic ProN">config.php 644</p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Hiragino Kaku Gothic ProN">cron.sh 700</p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Hiragino Kaku Gothic ProN">index.php 644</p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Hiragino Kaku Gothic ProN">portcheck.php 644</p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Hiragino Kaku Gothic ProN"><br /></p><p></p><p></p></span></font></blockquote><font class="Apple-style-span" face="'Hiragino Kaku Gothic ProN', helvetica, hirakakupro-w3, osaka, 'ms pgothic', sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px; white-space: pre;">index.phpにアクセスし、初期パスワード"pass"を入力して設定画面に入ります。</span></font><div><font class="Apple-style-span" face="'Hiragino Kaku Gothic ProN', helvetica, hirakakupro-w3, osaka, 'ms pgothic', sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px; white-space: pre;"><br /></span></font></div><div><font class="Apple-style-span" face="'Hiragino Kaku Gothic ProN', helvetica, hirakakupro-w3, osaka, 'ms pgothic', sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px; white-space: pre;"><b>設定方法</b></span></font></div><div><font class="Apple-style-span" face="'Hiragino Kaku Gothic ProN', helvetica, hirakakupro-w3, osaka, 'ms pgothic', sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px; white-space: pre;"><b><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">	</span></span>パスワード</div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">		</span></span><span class="Apple-style-span" style="font-weight: normal;">初回ログイン時に必ず変更してください。</span></div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">	</span></span></div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">	</span></span>監視するサーバ<span class="Apple-style-span" style="font-weight: normal;">&nbsp;</span></div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">		</span></span><span class="Apple-style-span" style="font-weight: normal;">監視するサーバドメイン名またはIPアドレスを入力してください。"http://"や"/"は入力できません。</span></div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">			</span></span><span class="Apple-style-span" style="font-weight: normal;">例：<i>photoartisan.jp</i></span></div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">		</span></span></div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">	</span></span>レスポンスコード</div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">		</span></span><span class="Apple-style-span" style="font-weight: normal;">通常は"200"になります。リダイレクト設定などを行っている場合は、必要に応じて変更してください。</span></div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">		</span></span></div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">	</span></span>解放しているポート</div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">		</span></span><span class="Apple-style-span" style="font-weight: normal;">解放しているポート番号を","区切りで入力してください。</span></div><div><span class="Apple-style-span" style="font-weight: normal;"><br /></span></div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">	</span></span>閉鎖しているポート</div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">		</span></span><span class="Apple-style-span" style="font-weight: normal;">閉鎖しているポート番号を","区切りで入力してください。</span></div><div><span class="Apple-style-span" style="font-weight: normal;"><br /></span></div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">	</span></span>送信先アドレス</div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">		</span></span><span class="Apple-style-span" style="font-weight: normal;">通知メールを送るアドレスを入力してください。</span></div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">		</span></span><span class="Apple-style-span" style="font-weight: normal;">3つまで入力できます。</span></div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">		</span></span></div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">	</span></span>送信元アドレス&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">		</span></span><span class="Apple-style-span" style="font-weight: normal;">通知メールの送信元アドレスを入力してください。</span></div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">		</span></span></div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">	</span></span>通知メールタイトル</div><div><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-weight: normal;">		</span></span><span class="Apple-style-span" style="font-weight: normal;">通知メールのタイトルを入力してください。</span></div><div><span class="Apple-style-span" style="font-weight: normal;"><br /></span></div><div><span class="Apple-style-span" style="font-weight: normal;"><br /></span></div><div><span class="Apple-style-span" style="font-weight: normal;">設定項目を入力し、設定ボタンをクリックしてください。</span></div><div><span class="Apple-style-span" style="font-weight: normal;"><br /></span></div><div><span class="Apple-style-span" style="font-weight: normal;">認証コードが表示されますので、認証コードを記入した"<i>authority.txt</i>"を作成し、監視するサーバにアップロードしてください。</span></div><div><span class="Apple-style-span" style="font-weight: normal;"><br /></span></div><div><span class="Apple-style-span" style="font-weight: normal;">アップロードが終わったら、表示されたリンクからテストを行ってください。</span></div><div><span class="Apple-style-span" style="font-weight: normal;"><br /></span></div><div><span class="Apple-style-span" style="font-weight: normal;">ポート設定が間違っている場合はサーバ監視メールが送信されます。</span></div><div><span class="Apple-style-span" style="font-weight: normal;">初めて設置する際は、間違ったポート設定を入力し、サーバ監視メールが届くことを確認してください。</span></div><div><span class="Apple-style-span" style="font-weight: normal;"><br /></span></div><div><span class="Apple-style-span" style="font-weight: normal;">監視テストが成功したら、設置サーバのcron設定を行ってください。</span></div><div><span class="Apple-style-span" style="font-weight: normal;">監視サーバに異変があった場合は、改善されるまでcronで設定した時間ごとに監視メールが送られ続けます。</span></div><div><span class="Apple-style-span" style="font-weight: normal;">このことを考慮してcronの設定時間を決めてください。</span></div><div><br /></div></b></span></font></div><div><font class="Apple-style-span" face="'Hiragino Kaku Gothic ProN', helvetica, hirakakupro-w3, osaka, 'ms pgothic', sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px; white-space: pre; "><b><br /></b></span></font></div>]]>
    </content>
</entry>

</feed>

