よく利用するphpのコードを 自分用のメモに載せておきます。 よかったら使って下さいまし。

2008/11123456789101112131415161718192021222324252627282930312009/01

phpmyadminで日本語を利用して表示する方法

1.デフォルトキャラクタセットを指定する(ここではutf-8の例です)

ALTER DATABASE `DB名` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

2.次にデータベース接続後(テーブル接続前)に次の1文を挿入

mysql_query("SET NAMES utf8");

php5.2.3以降であれば下記の方がセキュリティの関係上よいらしいです。
mysql_query("SET NAMES utf8");の部分を
mysql_set_charset(utf8);へ変更


以上の手順で日本語での書き込み、読み込みができるようになると思います。
uniqidではなく独自の形式でユニークIDを取得したい場合
作成したものをDBに存在するかチェックして入れることで実現

$uniqid = ""; // ID取得用の変数
$overlap = ""; //重複チェック用
while(!$aid && !$overlap){

//接頭にアルファベット1文字追加
$setkey=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
$prefix = rand(0, count($setkey)-1);
//接頭処理ここまで

$uniqid = $setkey[$prefix];

//8桁の数値を付加
for($i=1;$i<9;$i++){
$uniqid.= rand(0,9);
}

$sql_aid_check = "SELECT * FROM table where フィールド名 = '$uniqid'";
$result_aid_check = mysql_query($sql_aid_check);
$result_aid_check_count=mysql_num_rows($result_aid_check);

//uniqidが存在しなければ重複フラグをチェック

if(!$result_aid_check_count){
$overlap = 1;
}
}
//画像のリサイズ
$size=getImageSize($uploadfile); //画像サイズを取得
$newwidth = "600";
$newheight = "450";
$thumb = imagecreatetruecolor($newwidth, $newheight); //画像サイズを指定
$source = imagecreatefromjpeg($uploadfile); //元の画像を読み込み
ImageCopyResized($thumb,$source,0,0,0,0,$newwidth,$newheight,$size[0],$size[1]);

// header('Content-type: image/jpeg'); //表示の場合はこちらを利用
// imagejpeg($thumb); //表示の場合はこちらを利用
imagejpeg($thumb, $uploadfile . ".jpg");//これでサーバへ保存
//upディレクトリまでのパーミッションを777へ変更しておくこと
$updir = '/home/○○/www/img/'; //保存先ディレクトリ(フルパス レンタルサーバ時はhomeの次にuser名を忘れずに)
$uploadfile = $updir.$_FILES['img']['name']; //アップファイル名を取得(第一引数[]はformの名前と一致)
$Max_Size = 100000; //ファイルの最大サイズ

//テスト表示用(適宜利用)
/*
echo "name: " . $_FILES['img']['name']. "
";
echo "type: " . $_FILES['img']['type']. "
";
echo "size: " . $_FILES['img']['size']. "
";
echo "tmp_name: " . $_FILES['img']['tmp_name']. "
";
echo "error: " . $_FILES['img']['error']. "
";
*/

$result= "";
if($_POST['SUBMIT'] && $_FILES['img']['name'] != ""){

if($_FILES['img']['size'] <= $Max_Size){
if (move_uploaded_file($_FILES['img']['tmp_name'],$uploadfile)) {

$result = "アップロード成功";
}
else{

$result = "アップロード失敗";
}

}
else{
$result = "画像サイズオーバー";
}
}

?>
<?=$result?>

<FORM ACTION="<input type="hidden" name="MAX_FILE_SIZE" value="<?=$Max_Size?>">
画像:<INPUT TYPE="file" NAME="img" size = "70"><br>
<input type = "submit" value = "画像の登録" name = "SUBMIT">

</FORM>


【参考】
$_FILEで取得可能な変数
$_FILE[ パラメータ名 ][ name ] アップロードファイル名
$_FILE[ パラメータ名 ][ type ] MIMEタイプ
$_FILE[ パラメータ名 ][ size ] アップロードされたファイルサイズ
$_FILE[ パラメータ名 ][ tmp_name ] テンポラリファイル名。アップロードされたファイルが一時的に保存されたファイルパス
$_FILE[ パラメータ名 ][ error ] エラーコード。正常にアップロードされたらゼロになります。


FTPで確認する際にはフォルダを開いても中身が表示されない場合があります。
そのときは最新の状態に更新してみると表示されます。
レンタルサーバだと設定によってhtml内でphpが使えたりつかなかったりする。

そこで.htaccessを操作してhtml内でphpを使えるように設定する方法を掲載しておきます。

使いたいフォルダの中で.htaccessファイルを作成します。
.htaccessの中には

#----------------
RemoveHandler .html
AddType application/x-httpd-php .html
#----------------

を書いてアップします。

htmlファイルの中にはそのままphpのファイルを入れておけばOKです。