アフィリエイト広告を利用しています

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2015年11月30日

【Mysql】ログを容量でローテート


MySQLのバイナリログがファイル容量を指定してローテートすることができたので、
その方法をメモ( ..)φ

ローテートのファイル容量はmax_binlog_size で指定します。
デフォルトは1Gです。


/etc/my.cnf から直接書き足す場合は、以下を実行します。

#vi /etc/my.cnf

[mysqld]ブロックに以下を書き足します。

max_binlog_size = 209715200 //200MBに設定

mysqldを再起動すると反映されます。

# service mysqld restart


再起動ができない場合などは、以下でもできます。

現在のローテートのファイル容量はmax_binlog_sizeは以下で確認する。

# mysql -uroot -p

mysql> SHOW VARIABLES like 'max_binlog_size';
+-----------------+------------+
| Variable_name | Value |
+-----------------+------------+
| max_binlog_size | 1073741824 |
+-----------------+------------+
1 row in set (0.00 sec)

以下で設定変更します。

mysql> SET GLOBAL max_binlog_size=209715200;





posted by newprogramer at 23:04| Comment(0) | TrackBack(0) | DB

2015年11月25日

【jQuery】フォーカスアウト時に日付入力チェックを行う


テキストエリアから違う場所をクリック(フォーカスアウト)したときに
日付チェックを行い、日付形式で入力されていなければ、今日の日付を自動でセットされるようにします。

わけあってHTML5のdate関数を使えないとか、
入力値をそのままフォームで飛ばしたいとかいうときに使えるとおもいます。

以下、javascriptに記載する部分を3つに分けて記述しています。
3つまとめて記載すれば問題ないと思います。
フォーカスアウトイベント、日付の書式チェック、日付フォーマットです。


id="sample"指定したテキストエリアからフォーカスアウトした時のイベント


<script>
 $('#sample').focusout(function(e) {
  var str = $('#sample').children().val(); // ←入力した値を取得し、格納
   // ブランクチェック
   if (str != '') {
    //日付形式チェック
    if (!ckDate(str)) {
     //今日の日付をyyyy/mm/ddでセットする。
     $('#sample').children().val(dateFormat.format(new Date(), 'yyyy/MM/dd'));
    }
  }
});
</script>



日付入力の書式チェック


<script>
function ckDate(datestr) {
 // 正規表現による書式チェック
 if(!datestr.match(/^\d{4}\/\d{2}\/\d{2}$/)){
  return false;
 }
 var vYear = datestr.substr(0, 4) - 0;
 var vMonth = datestr.substr(5, 2) - 1; // Javascriptは、0-11で表現
 var vDay = datestr.substr(8, 2) - 0;
 // 月,日の妥当性チェック
 if(vMonth >= 0 && vMonth <= 11 && vDay >= 1 && vDay <= 31){
  var vDt = new Date(vYear, vMonth, vDay);
  if(isNaN(vDt)){
   return false;
  }else if(vDt.getFullYear() == vYear && vDt.getMonth() == vMonth && vDt.getDate() == vDay){  
   return true;
  }else{
   return false;
  }
 }else{
  return false;
 }
}
</script>



日付のフォーマットを指定


<script>
dateFormat = {
 fmt : {
  "yyyy": function(date) { return date.getFullYear() + ''; },
  "MM": function(date) { return ('0' + (date.getMonth() + 1)).slice(-2); },
  "dd": function(date) { return ('0' + date.getDate()).slice(-2); },
  "hh": function(date) { return ('0' + date.getHours()).slice(-2); },
  "mm": function(date) { return ('0' + date.getMinutes()).slice(-2); },
  "ss": function(date) { return ('0' + date.getSeconds()).slice(-2); }
},
format:function dateFormat (date, format) {
  var result = format;
  for (var key in this.fmt)
   result = result.replace(key, this.fmt[key](date)); 
   return result;
}
};
</script>








posted by newprogramer at 23:52| Comment(0) | TrackBack(0) | jQuery

2015年11月24日

【Smarty】HTMLのエスケープ処理


エスケープ処理は、クロスサイト・スクリプティングなどのセキュリティ上の問題に対し行わなければいけません
「<」や「&」などのHTMLやURLなど、ユーザーから入力された値をそのまま表示するように記述したい箇所には、
エスケープ処理(escape)をします。
Smartyでの実装がとても簡単です。

書き方は以下。

{$変数名|escape:"エスケープ種類"}



これだけでスクリプトタグが打ち込まれても、そのままの入力値で表示される。

エスケープ種類は以下。

html
htmlall
url
urlpathinfo
quotes
hex
hexentity
javascript
mail



デフォルトではエスケープ種類はhtmlになっているので、以下の@とAは同じ処理を示す。

@{$変数名|escape}
A{$変数名|escape:"html"}




オプションがhtmlの場合は「<」や「&」がエスケープされるが、
例えばquotesにすると変数名が「\'」で囲まれる。
mailにすると、「@」や「.」が「AT」「DOT」となる。





posted by newprogramer at 23:39| Comment(0) | TrackBack(0) | Smarty

2015年11月23日

【jQuery】Datatablesオプション一部抜粋


bootstrapのDatatableについては以下で説明しています。

使い方などについても以下のリンクからどうぞ。
【Bootstrap】DataTablesがすごい

実際に使用してみると、
もっとアレンジしたいとか、要望がガサガサ出てきて、
オプションも書ききれてなかったものがザクザク出てきたので追加でメモ( ..)φ

DatatablesとはきれいなUIであることだけでなく、
ソート機能や検索機能などをもったプラグインです。

2015-10-29_232840.png


$(document).ready(function() {
$('#example').DataTable();

//ここにオプションを記載

} );



オプション
// falseにすると全データが表示され、ページ切替ボタンが非表示になる
paging: true,
// falseにすると検索ボックスが非表示になる
searching: true,
// falseにするとヘッダーをクリックしてもソート不可になる
ordering: true,
// falseにすると左下のインフォメーションが非表示になる。
info: true,
// ページ初期表示時にソートする列を指定
order: [[0, 'asc']],  
// [[0, 'asc']]は、0列目を昇順表示とする意味。
 // ex: 左から2列目を降順であれば、[[1,'desc']]





posted by newprogramer at 22:29| Comment(0) | TrackBack(0) | jQuery

2015年11月21日

【CSS】画面表示の際に改行されない時の対処法


DBからHTMLで画面に表示させるとき、
div要素が邪魔したりでうまく改行されていない・・・
DBでは改行されているのに・・・ということがあったので、メモ。

・CSSのwhite-spaceプロパティを使う!!
white-spaceプロパティは、ソース中の半角スペース・タブ・改行の表示の仕方を指定する際に使用します。
自分の場合は、ソース内で改行されないという問題があったので、
pre-lineを指定してやると改行されるようになりました。


white-spaceに与えられる値は以下。

white-space: normal;


通常と同様、ソース中の連続する半角スペース・タブ・改行を、1つの半角スペースとして表示。
ボックスの大きさが指定されている場合には、その大きさに応じて自動的改行。

white-space: pre;


ソース中の連続する半角スペース・タブ・改行を、そのまま表示。

white-space: nowrap;


ソース中の連続する半角スペース・タブ・改行を、1つの半角スペースとして表示。
ボックスの大きさが指定されている場合にも、自動的改行されない。

white-space: pre-wrap;


[pre]同様に、ソース中の連続する半角スペース・タブ・改行を、そのまま表示。
ただし、要素の端まで行くと自動的に改行。

white-space: pre-line


[normal]と同様ですが、ソース内の改行位置でも改行される。





posted by newprogramer at 21:51| Comment(0) | TrackBack(0) | CSS

2015年11月18日

【javascript】要素を別ファイルのIDに渡す







1.ボタンを押すと、HTMLの値をJavascriptで取得
2.Javascriptで値を変更
3.Javascriptで変更した値をHTMLで取得

という処理を書いていきます。

基本的に、
document.getElementById("id名").innerHTML =
で、id名の付いたタグのテキストを書き換えることができます。
下記の例でも同じことを書いています。下の書き方の方が、スッキリ見やすいです。


HTML

<div id="result">変更前</div>
<div id="btn">ボタン</div>



Javascript

<script>
// HTMLの要素を取得
var btn = document.getElementsById( "btn" );
var result = document.etElementsById( "result" );

// ボタンをクリックするとresultに値を格納
btn.addEventListener('click',function(){
result.innerHTML = "変更後";
});

</script>





2015年11月16日

【javascript】Class名から要素を取得


javascriptで要素を複数取得する場合、
以下のリンクの方法をとれば複数のIDから取得できます。

【jQuery】同じIDを持つ複数の要素を選択する

ただ、「IDはユニークであるもの」というのが一般的に推奨されているため、
複数の要素を指定してjavascriptで使う際、特別な理由がなければクラスを指定する方が良いみたいです。

クラス属性を指定して要素を取得するには、
getElementsByClassName()を使います。
取得した要素は配列形式になるため、何らかの処理を行う際には、要素番号の指定が必要です。

HTML

<ul>
<li class="example">要素1</li>
<li class="example">要素2</li>
<li class="example">要素3</li>
<li class="example">要素4</li>
</ul>



Javascript

// exampleクラスの要素を取得
var elements = document.getElementsByClassName( "example" ) ;

// 要素1を指定する場合
// elements[0]




ちなみに、jQueryで書くと、以下のようになります。

var elements = $( ".example" ) ;








2015年11月15日

【PHP】日付を取得するdate関数


日付の取得には、date関数を使う。





今日の日付を取得


$today = date("n/j H:i");
→11/12 21:52

$today = date("\'y/m/d h:i:s");
'15/11/12 09:52:18

$today = date("Y/m/d(D)");
→2015/11/12(Thu)



明日の日付を取得


$tomorrow = date("n/j", strtotime("+1 day"));
→11/13



昨日の日付を取得


$yesterday = date("n/j", strtotime("-1 day"));
→11/11



以下、date関数のフォーマットをまとめたもの。


Y
4ケタの西暦

y
西暦の下2ケタ

m
2ケタの月

n
頭に0がつかない月

M
英語表記の月(略語)

F
英語表記の月

d
2ケタの日

D
英語表記の曜日(略語)

H
時間の24時間表記

h
時間の12時間表記

i


s






posted by newprogramer at 21:23| Comment(0) | TrackBack(0) | PHP

2015年11月09日

【jQuery】同じIDを持つ複数の要素を選択する


javascriptで、IDはひとつのページ内でユニークであるものですが、
ここでは複数の要素に同じIDをつけられる方法をメモ( ..)φ

普通のiQueryの#idセレクタでは、ひとつの要素、複数同じIDがある場合には最初に合致した要素しか選択できません。

[id=xx]の形で書けば、複数の同じIDを選択することができます。


javascript


// 一般の、IDはユニークである場合
$("#unique").css("background-color","red");
// 複数のIDを選択
$("[id=multi]").css("background-color","white");



html


// 一般の、IDはユニークである場合
<input type="text" id="unique" value="1" >
// 複数のIDを選択
<input type="text" id="multi" value="2" >
<input type="text" id="multi" value="3" >
<input type="text" id="multi" value="4" >





posted by newprogramer at 23:48| Comment(0) | TrackBack(0) | jQuery

2015年11月05日

【MySQL】データベースのバックアップと復元方法


MySQLのdump(ダンプ)でデータをバックアップ/復元する方法です。


・ダンプファイルでバックアップをとる

特定のデータベースのみバックアップを取る場合は以下のコマンドを実行。

mysqldump -u[ユーザ名] -p DB名 > 出力ファイル名



mysqldump -u root -p dbname > dump.sql




全てのデータベースのバックアップをとる場合は、以下を実行。

mysqldump -u root -x --all-databases > dump.sql





・ダンプからデータを復元

特定のデータベースのみの復元の場合は、以下のコマンドで復元できる。

mysql -u [ユーザ名] -p DB名 < ダンプファイル名




mysql -u root -p DB名 < dump.sql




mysqldumpの全てのデータベースのバックアップを復元するには、以下のコマンド。

mysql -u root -p < dump.sql



mysqlにファイルの内容をリダイレクトするだけでOK。


mysqldumpのバックアップは、SQLベースのバックアップができ、
存在するデータを全てSQLにして、テキスト形式に保存できます。




posted by newprogramer at 23:59| Comment(0) | TrackBack(0) | DB
検索
カテゴリーアーカイブ

最新記事
×

この広告は30日以上新しい記事の更新がないブログに表示されております。