カテゴリー
SugiBlog Webデザイナー・プログラマーのためのお役立ちTips

ブラウザの戻るでもフォームの値を保持する

HTMLでフォームを設置したとき、フォームに内容を入力し、内容確認などするようにしたところ、
ブラウザの戻るで入力画面に戻ると入力していた内容がクリアされてしまう、ということがあるかと思います。

ユーザービリティを考慮すると、入力した内容は残っていたほうがよい。
そこで以下のような方法があります。

PHPのセッションを使用している場合、session_start関数の前にsession_cache_limiter関数を実行します。
特にPHPのセッションを使っている場合はキャッシュが無効になっているようです。

session_cache_limiter("private_no_expire");
session_start();

キャッシュ指定をヘッダー出力

header("Cache-Control: Private\n");
9,894 views

getimagesize

$data = getimagesize($filename);
$data[0] = 幅
$data[1] = 高さ
$data[2] = 画像種類(gif:1,jpg:2)
$data[3] = 高さ="" 幅=""
$data["bits"] = ビット/ピクセル
$data["channels"] = チャンネル
$data["mime"] = MIMEタイプ
965 views

ファイルアップロードの最大サイズを変更

フォームよりアップロードできるファイルの最大容量を変更したいとき、
php.iniで以下の設定を変更します。

upload_max_filesize

1つのファイルアップロードに許可される最大サイズ
デフォルト:2M 40M

upload_max_filesize = 40M
post_max_size

POST送信できる最大サイズ
デフォルト:8M 40M

post_max_size = 40M
memory_limit

メモリ使用量の制限
デフォルト:128MB 512MB
-1にすると無制限

memory_limit = 512MB
max_execution_time

タイムアウト秒数
デフォルト:20 120
0にすると無制限

max_execution_time = 120
max_file_uploads

1回の送信で送れるファイルの個数
デフォルト:20
※こちらについてはphp.ini、もしくはApacheのhttpd.conf(extra/httpd-vhost.conf)でないと設定できません。

max_file_uploads = 150

memory_limitpost_max_sizeupload_max_filesizeについては以下のような関係になるよう設定してください。

memory_limit > post_max_size > upload_max_filesize

Apacheで設定する

<Directory "/var/www/html">
    php_value memory_limit 128M
    php_value max_execution_time 0
</Directory>

.htaccessファイルで設定することも可能です。

php_value memory_limit 128M
php_value max_execution_time 0

最後に

変更した後は忘れずにApacheを再起動しましょう。

2,182 views

PHP ファイルアップロードのエラー

ファイルアップロードのエラーについてまとめました。

フォームのサンプル

<form method="post" action="my.php" enctype="multipart/form-data">
    <input type="file" name="upfile" size="50"><br>
    <input name="submit" type="submit" value="アップロード">
</form>

PHPのサンプル

if ($_FILES["upfile"]["error"] == UPLOAD_ERR_OK)
{
    //アップロード成功
}
else
{
    //エラー発生
}

・エラーコードについて

UPLOAD_ERR_OK
値:0
エラーなし。ファイルアップロード成功。
続きを読む…»

3,351 views

ファイルを添付してメール送信2

複数の画像を添付してメールを送信するフォームを作ったので参考に載せておきます。
要所のみで省略している部分もあります。
ここでは添付できるファイル数を5つで作成しています。

<form action="./confirm.php" method="post" enctype="multipart/form-data">
    <input type="file" size="30" name="upfile1"><br>
    <input type="file" size="30" name="upfile2"><br>
    <input type="file" size="30" name="upfile3"><br>
    <input type="file" size="30" name="upfile4"><br>
    <input type="file" size="30" name="upfile5"><br>
    <input type="submit" name="submit" value="内容確認">
    <input type="reset" value="リセット">
</form>
<?php
// 共通初期設定
//{
    // 拡張子制限(0=しない・1=する)
    $ext_denied = 1;
    // 許可する拡張子リスト
    $ext_allow1 = "jpg";
    $ext_allow2 = "jpeg";
    $ext_allow3 = "gif";
    // 配列に格納しておく
    $EXT_ALLOWS = array($ext_allow1, $ext_allow2, $ext_allow3);

    // アップロード容量制限(0=しない・1=する)
    $maxmemory = 1;
    // 最大容量(KB)
    $max = 3000;
//}
?>

続きを読む…»

15,302 views