useBBの注意点。
投稿の時間が夜中になっていて、あれ?とおもったら。
デフォルトがGMTになっているので+9の設定をする。
ログイン後、オプション編集で設定できます。
追記>これだけではダメでした。
config.phpファイルで以下を設定します。
$conf['timezone'] = 9;
これでOK
useBBの注意点。
投稿の時間が夜中になっていて、あれ?とおもったら。
デフォルトがGMTになっているので+9の設定をする。
ログイン後、オプション編集で設定できます。
追記>これだけではダメでした。
config.phpファイルで以下を設定します。
$conf['timezone'] = 9;
これでOK
掲示板のUseBBを使ってみました。
まずはソースをダウンロードして解凍します。
次にフォルダごとアップロード。
さて、この次ですが、
config.php-dist を config.phpに変更。
次に、 掲示板URL/install にアクセスしてインストール完了!
携帯小説サイト移管時の変更点をメモ。ハマッタネ。
set names sjis => set names binary に変更
binaryにすると、データベースの初期文字コードを無視するらしい。
sjisだと文字化けして(これでおおはまり。)、どうやらさくらの初期文字コードが問題なのかもしれない。
あとは、さくらはphp.iniでセッションをusecookiesとか一括管理するので管理画面もURL引数で管理することにした。
そのため、管理フォルダのlogin.phpのlocation: 部分に?PHPSESSID=session_id()を追記
SJISのプログラムをさくらに移してみた。
が、案の定文字化け。
php.iniを設定するも直らず。。。
携帯サイトはSJISだから厳しいね。
MDB2は、PHP5、MYSQL5以上が無難。
ちなみに、MDB2は各DB用のドライバをインストールしなければならないので注意。
PEARのMDB2とDBにはいろいろ違いがあるので、移行には本格的な見直しが必要。
たんなる一括置換ソフトでは厳しい。
それにしても、いまどきPHP4やMYSQL4を使っているサーバが多いのには驚きます。
PHPパラメータあり編で、リダイレクトを設定しました。
一応パラメータは2つまで。以下.htaccessの記載内容です。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z_\-]+)/$ $1\.php [L]
RewriteRule ^([0-9a-zA-Z_\-]+)/(.*)/(.*)$ $1\.php?p1=$2&p2=$3 [L]
1行目でmod_rewriteのリライトを使う宣言
2行目、3行目は実在するファイルやディレクトリにはリダイレクトを適用しない旨。
4行目は aaa/ と入力した際に aaa.php にアクセスする記載
5行目 aaa/bb/cc/ と入力すると、 aaa.php?p1=bb&p2=ccを処理する。
ちなみに、4行目と5行目はどちらか一方の適用になります。
ユーザエージェントから携帯キャリアを判別します。
$agent = $_SERVER['HTTP_USER_AGENT'];
if(ereg(”^DoCoMo”, $agent)){
}else if(ereg(”^J-PHONE|^Vodafone|^SoftBank”, $agent)){
}else if(ereg(”^UP.Browser|^KDDI”, $agent)){
}
以上
PHPファイルを静的に見せる方法。
今回は、apacheのmod_rewriteモジュールを.htaccessを動かす。
以下mod_rewriteの設定は完了しているものとします。
.htaccessファイルの記述例
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z_\-]+)\.html$ $1\.php [L]
これで例えばtop.htmlと入力したときに、top.phpを処理できます。
ちなみに、2行目3行目は、実在するファイル、ディレクトリの場合には書き換えしませんということ。
また、動的なファイルを静的にする例。最後の行を次のように変更します。
RewriteRule ^([0-9A-Za-z]+)/([0-9A-Za-z)]+)\.html$ file.php?var1=$1&var2=$2 [L]
これで、例えば dir/say.html のアクセスがあった場合に、file.php?var1=dir&var2=say
の結果を返します。
PHPでランダムな英数字で文字列を作る場合は・・
てくめも@coop さんより
<?php
/**
* ランダムな文字列を生成する。
* @param int $nLengthRequired 必要な文字列長。省略すると 8 文字
* @return String ランダムな文字列
*/
function getRandomString($nLengthRequired = 8){
$sCharList = “abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_”;
mt_srand();
$sRes = “”;
for($i = 0; $i < $nLengthRequired; $i++)
$sRes .= $sCharList{mt_rand(0, strlen($sCharList) - 1)};
return $sRes;
}
// 使ってみる
echo getRandomString() . “\n”;
?>
毎回、考えていたのでこうやってまとめてもらえると助かります。ありがとうございます。