ソフトウェア関連/siteDev2/CGI版PHPで動作(もっと簡単な方法)
以前、ソフトウェア関連/siteDev2/CGI版PHPで動作というのを書いたのですが…
もっとずっと簡単な方法があったので、それを紹介。
PHPの設定 bookmark
PHP設定情報の /home/アカウント/www/php.ini に、以下の一文を追加 cgi.fix_pathinfo=1 これで、"/"を含んだパス情報が扱えます。
パス取得文の書き換え bookmark
PHPファイルの中に、 $_SERVER['PATH_INFO'] という文があるので、それを $_SERVER['ORIG_PATH_INFO'] に書き換えます。 lib/init.phpとか。
- 注:この変更はPHP4の時だけ必要みたいです…。
ログイン用入力ボックスの設置 bookmark
skin/design.skin.htmlの管理メニューの部分を以下のように書き換え
<div id="extra">
<p>管理メニュー: {$toppage} {$new} {$edit} {$menuedit} {$attach} {$backup} {$diff} {$freeze} {$list} {$close} </p>
<form action="index.php"method="post"><input type="password" name="pass">
<input type="submit" value="login"></form>
</div><!--/#extra-->
これで、ログイン用入力ボックスが追加されます。
ログイン管理をセッション方式へ変更 bookmark
sd_class/limit.phpの認証方式を以下のように書き換えます。 なお"session"フォルダは事前に用意しておいてください。
pukiwiki.ini.php bookmark
これを追記するのを忘れてた…。
$adminpass = '81dc9bdb52d04dc20036dbd8313ed055'; // md5('1234')
つまり、ログインの比較を行うのは、常に生ハッシュを使うということです。
雑記 bookmark
たぶん、このやり方だと他のPHPでできたツールなんかも動くはずです。
余談ですが、 rss.inc.phpで以下の部分を変更しておくと、便利かも
//header('Content-type: application/xml');
header('Content-type: text/xml');
そして、MENUの編集でRSSのアイコンを設置
#html{{
<a href="/index.php?cmd=rss&ver=1.0"><img src="/image/rss.png" border="0" alt="RSS:西風の道標"></a>
}}
#html{{
<a href="/index.php?cmd=rss&ver=2.0"><img src="/image/rss20.png" border="0" alt="RSS:西風の道標"></a>
最後の仕上げに、design.skin.htmlの<head>...</head>の中に、 <link rel="alternate" type="application/rss+xml" title="タイトル名" href="http://???/sitedev2/?cmd=rss&ver=1.0" /> を入れてやるとブラウザが自動検出できる。
セキュリティ向上 bookmark
管理メニューを以下のように書き換えて、
"MD5.js"と"login.js"を配置する事で、平文パスワードを流さなくなります。
skin/design.skin.html(内部のjsファイルは、フルパスで書いた方が良いみたい。)
<div id="extra">
<script language="javascript" src="http://arthur.jpn.org/md5.js"></script>
<script language="javascript" src="http://arthur.jpn.org/login.js"></script>
<p>管理メニュー: {$toppage} {$new} {$edit} {$menuedit} {$attach} {$backup} {$diff} {$freeze} {$list} {$close}
<form action="#" onsubmit="javascript:login_submit('form_login');return;" name="form_login">
<input type="password" name="pass">
<input type="submit" value="認証" >
</form>
</p>
</div><!--/#extra-->
login.js
function login_submit(form_name){
var tmp = window.document.forms[form_name].pass.value;
window.document.forms[form_name].method="post";
if(tmp != ""){
//クライアント側でハッシュを生成して、それをSubmitする。
window.document.forms[form_name].pass.value=MD5_hexhash(tmp);
window.document.forms[form_name].submit();
}else{
window.alert("パスワードを入力してください。");
}
return;
}
"MD5.js"は、検索すればすぐに見つかります。
動きがおかしい場合 bookmark
おまけ bookmark
"ls2.inc.php" 以下の変更で、#ls2を使った場合でも"/"区切りで正しくリンクをするようになる。
plugin_ls2_get_headings //$href = $script . '?cmd=read&page=' . $r_page; $r_page = eregi_replace ( '%2F' , '/' , $r_page ); $href = $script . '/' . $r_page;
VirtualHostを使ってると挙動がおかしい場合があります。(md5.jsやlogin.jsをうまく読んでくれないとか。) 以下4ファイルの「SERVER_NAME」のところを「HTTP_HOST」に直すと改善するかも? 1 /lib/func.php 2 /lib/init.php 3 /plugin/flush_inc.php 4 /plugin/server_inc.php

