[ IE6対策 ] 選択していないsubmitのnameとvalueが送信されてしまう対策

忘れたころにやって来るIE6対応のWEB。。。

<form method=”post”>
<input type=”submit” name=”cmd” value=”追加” />
<input type=”submit” name=”cmd” value=”編集” />
<input type=”submit” name=”cmd” value=”削除” />
</form>

追加をクリックしたら、cmd=追加 のみ送信してほしいですよね。
ところが、IE6の場合は、クリックしていない ボタン の値を全て送信してくれます。クリックしたボタンで処理を分けたい場合は致命的です。

毎回はハマって時間を費やしてしまうのでメモ。さすがにdisabled は機能してくれます。

$(function(){
	//選択していないsubmitのname=valueが送信されてしまうIE6対策
	$('input[type=submit],button[type=submit]').click(function(){
		$('input[type=submit],button[type=submit]').attr('disabled','disabled');
		$(this).removeAttr('disabled');
	});
});

XAMPP on mac  ファイルアップロードサイズが変更できない!?

XAMPP on mac にて、ファイルアップロードサイズの変更が適用されず、3時間消費

【定石】ファイルアップロードサイズの変更

[php.ini] の場合
post_max_size 4096M
upload_max_filesize 4096M
max_input_time -1

[.htaccess] の場合
php_value post_max_size 4096M
php_value upload_max_filesize 4096M
php_value max_input_time -1

2GB以上の対応

filesize()関数が返す値が負の値になってしまうので、符号なしに変換してあげます。
$size = sprintf(‘%u’,filesize($path));

4GB以上のファイル

filesize($path)  0ゼロが返ってくるため、扱うことができません。

 

開発環境 XAMPP on Windows7(64bit)  ではパーフェクトなのにどういうこと??

XAMPP on mac では適用されません。

 

解決策

4096M」の記載を 「4294967296」(=4096×1024×1024)に変更すると認識してくれます。

 

時は金なり…。Google先生、同じところでハマっている人の検索結果に、どうか表示してあげてください!

MySQL のサブクエリが遅い!!

鉄則

MySQLでは 「IN」 にサブクエリを使わない。
FROM 句に全て並べる!

(例)この商品を買った人はこんな商品も購入しています!

SELECT item_id FROM order
INNER JOIN order_detail ON order.id = order_detail.order_id
WHERE customer_id IN (
SELECT customer_id FROM order_detail

(↑↑クラッシュしたのかとビックリするほど時間がかかります)

INを使わずFROM句で。

SELECT item_id FROM order,order_detail,(
SELECT customer_id FROM order_detail

)  AS tbl1
WHERE order.id = order_detail.order_id
order.customer_id = tbl1.customer_id

(サクサクです)

 

(参考)なぜMySQLのサブクエリは遅いのか。