コード
カタログオンラインV2.6[edit]
2023/03/21 【コード】
1、「input type="text"」と「textarea」に「maxlength」を設定できるように変更
2、日付型の「date_XXX」フィールドを入力必須に設定
3、「function.php」に「autohyperlink」関数追加(URLとメールアドレスを自動リンク)
4、file_10に画像以外を設定した場合、オリジナルのファイル名が表示されない不具合修正
●card.php
(修正前)$row['filename_'.right($field,1)]
(修正後)$row['filename_'.$matches[1]]
●function.php
(修正前)$img_ext = array("gif","jpg","png");
(修正後)$img_ext = array("gif","jpg","png","bmp");
https://www.nipc.or.jp/~sys/designhall/
タグ >> php
PHP URLとメールアドレスを自動でaタグで囲む[edit]
2023/02/11 【コード】
http,https,*@*に自動でa hrefをつけてくれる関数
function autohyperlink( $content ) {
//http,https,ついでにftpにマッチ
$pattern_http = '/((?:https?|ftp):\/\/[-_.!~*\'()a-zA-Z0-9;\/?:@&=+$,%#]+)/';
$replace_http = '<a href="\1" target="_blank">\1</a>';
//メールアドレスにマッチ
$pattern_mail = '/([a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-\.]+\.[a-zA-Z]+)/';
$replace_mail = '<a href="mailto:\1">\1</a>';
//置換
$content = preg_replace( $pattern_http, $replace_http, $content );
$content = preg_replace( $pattern_mail, $replace_mail, $content );
return $content;
}
カタログオンライン V2.2 バグ修正[edit]
2021/04/16 【コード】
cart.php 152行名を以下に修正すること
(bookmarkにNULLが入らないように、 order byでおかしくなる)
foreach ($fields_card as $field){
if ( !(preg_match('/^file_([0-9]+)/',$field))){
if (is_null($_POST[$field])){
$val ="";
} else {
$val = $_POST[$field];
}
$stmt->bindValue(':'.$field, $val, PDO::PARAM_STR);
}
}
タグ >> カタログオンライン
正規表現パターンサンプル[edit]
2021/03/09 【コード】
パターン 意味
/^[0-9]*$/ 半角数値のみ(空文字OK)
/^[0-9]+$/ 半角数値のみ(空文字NG)
/^[a-zA-Z]*$/ 半角英字のみ(空文字OK)
/^[a-zA-Z]+$/ 半角英字のみ(空文字NG)
/^[0-9a-zA-Z]*$/ 半角英数字のみ(空文字OK)
/^[a-zA-Z0-9!-/:-@¥[-`{-~]*$/ 半角英数記号のみ(空文字OK)
/^([a-zA-Z0-9]{8,})$/ 8文字以上の半角英数字
/^([a-zA-Z0-9]{6,8})$/ 6文字以上8文字以内の半角英数字
/^([0-9]{0,8})$/ 8文字以下の半角数値
/^[0-9]{8}$/ 8文字の半角数値
/^https?:\/\/ URL
/^\d{3}-\d{4}$/ 郵便番号(999-9999形式)
/^\d{1,3}(\.\d{1,3}){3}$/ IP(999.999.999.999形式)
/^([1-9][0-9]*|0)(\.[0-9]+)?$/ 正の小数
/^-?([1-9][0-9]*|0)(\.[0-9]+)?$/ 正・負の小数
/^[ぁ-んー]*$/ 全角ひらがな(空文字OK)
/^[ァ-ンヴー]*$/ 全角カタカナ(空文字OK)
/^[ァ-ン゙゚\-]*$/ 半角カタカナ(空文字OK)
/^[^\x20-\x7e]*$/ 全角文字のみ(空文字OK)
https://javascript.programmer-reference.com/js-regexp-sample/
タグ >> HTML Javascript PHP
VBAでCSV出力する際のダブルクォーテーションのエスケープ[edit]
2018/12/21 【コード】
4. 改行コードは(CR+LF)を使用すること。
5. 改行コード(CR+LF)、ダブルクォーテーション、カンマを含むフィールドは ダブルクォーテーションで囲むのが望ましい。
6. フィールド内にダブルクォーテーションを含む場合、直前にダブルクォーテーションを付けてエスケープしなければならない。
7. ファイル内最終レコードの末尾には改行コードがあってもなくてもよい
ExcelでCSVを読ませるためには RFC4180 に準拠して、ダブルクォーテーションの前にダブルクオーテーションでエスケープする必要があると
常時SSL設定(SSLへイダイレクト設定)[edit]
2018/07/30 【コード】
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
ラジオボタンを2度押しで選択解除する(複数グループ)[edit]
2018/06/21 【コード】
--------------------------------
HTML
--------------------------------
<input type="radio" name="radio1" id="radio1_1" value="1">
<input type="radio" name="radio1" id="radio1_2" value="2">
<input type="radio" name="radio1" id="radio1_3" value="3">
<input type="radio" name="radio2" id="radio2_1" value="1">
<input type="radio" name="radio2" id="radio2_2" value="2">
<input type="radio" name="radio2" id="radio2_3" value="3">
--------------------------------
JQuery
--------------------------------
// 予めチェックされているもの
var nowchecked = [];
$('input[type="radio"]:checked').each(function(){
nowchecked.push( $(this).attr('id') );
});
$('input[type="radio"]').click(function(){
var idx = $.inArray( $(this).attr('id'), nowchecked ); // nowcheckedにクリックされたボタンのidが含まれるか判定。なければ-1が返る。
if( idx >= 0 ) { // クリックしたボタンにチェックが入っていた場合
$(this).prop('checked', false); // チェックを外す
nowchecked.splice(idx,1); // nowcheckedからこのボタンのidを削除
} else { // チェックが入っていなかった場合
// 同じname属性のラジオボタンをnowcheckedから削除する
var name = $(this).attr('name');
$('input[name="' + name + '"]').each(function(){
var idx2 = $.inArray( $(this).attr('id'), nowchecked);
if( idx2 >= 0 ){
nowchecked.splice(idx2,1);
}
});
// チェックしたものをnowcheckedに追加
nowchecked.push( $(this).attr('id') );
}
});
https://norando.net/radio-cancel/
タグ >> javascript JQuery
VBScriptを暗号化する方法 (Encode a Script)[edit]
2018/02/20 【コード】
VBScriptを個人で使用する場合は問題無いが、組織内の不特定多数で使用する場合にはコードを改変される可能性がある。改変されると最悪の場合、PCのシステムファイルを破壊したり、機密情報を外部へ送信したりと有害な動作をする可能性がある。コードの改変を簡単にできないようにする手段として、コードを暗号化するというのがある。
以前は Windows Script Encoder というツールがマイクロソフトから提供されていたが、現在はWindow OSに標準で暗号化機能が用意されている。scrrun.dllのEncoderオブジェクトを利用してVBScriptを暗号化するスクリプトを作成できる。
添付ファイルの拡張子を「txt」から「vbs」に変更して利用
https://gallery.technet.microsoft.com/scriptcenter/16439c02-3296-4ec8-9134-6eb6fb599880
Chrome の「このページは動作していません」問題を回避する[edit]
2018/02/06 【コード】
Chromeのバージョン56から、<script> や <iframe> タグが送信されると、「このページは動作していません」という ERR_BLOCKED_BY_XSS_AUDITOR エラーが出る場合がある。
「X-XSS-Protection」ヘッダーを送り出すことで、XSS機能を無効にすることができる。
-----------------------
●.htaccess
<ifModule mod_headers.c>
Header always set X-XSS-Protection "0"
</ifModule>
●Perlの場合の例
print "X-XSS-Protection: 0\n";
●PHPの場合の例
header('X-XSS-Protection: 0');
https://kantaro-cgi.com/blog/browser/disabled_chrome_err_blocked_by_xss_auditor.html
PHP で、ユーザーエージェント(iPhone・Android・タブレット・携帯・PC)によってページを振り分ける[edit]
2017/09/20 【コード】
$ua = $_SERVER['HTTP_USER_AGENT'];
if ((strpos($ua, 'Android') !== false) && (strpos($ua, 'Mobile') !== false) || (strpos($ua, 'iPhone') !== false) || (strpos($ua, 'Windows Phone') !== false)) {
// スマートフォンからアクセスされた場合
header("Location: smartphone/index.html");
exit();
} elseif ((strpos($ua, 'Android') !== false) || (strpos($ua, 'iPad') !== false)) {
// タブレットからアクセスされた場合
header("Location: tablet/index.html");
exit();
} elseif ((strpos($ua, 'DoCoMo') !== false) || (strpos($ua, 'KDDI') !== false) || (strpos($ua, 'SoftBank') !== false) || (strpos($ua, 'Vodafone') !== false) || (strpos($ua, 'J-PHONE') !== false)) {
// 携帯からアクセスされた場合
header("Location: mobile/index.html");
exit();
} else {
// その他(PC)からアクセスされた場合
header("Location: pc/index.html");
exit();
}

