setcookie php secure httponlyのサンプルコード


 //ここまでに通信bodyに出力がなにもないことが条件
session_start();
 
 $time=time()+3600*240;
      setcookie('_user[0]' ,"44",$time,"/","","","");
      setcookie('_user[1]' ,"Jackey",$time ,"/","",true );
      setcookie('_user[2]' ,"guest",$time ,"/","",true,true);

 header("Content-type: text/html; charset=UTF-8");

print_r($_COOKIE);
?>
引数の 5 はdomain 省略するとサブドメインは含めいない
6 セキュア属性 SSLのみでやり取りする
7 httponly属性 下のスクリプトでは表示されない

 <script>
   
   console.log(document.cookie);
 </script>

have_posts()でカテゴリ分岐


//カテゴリーID 2の記事
 if( have_posts() ) {
		 while(have_posts() ) {
		 the_post();
			 $cat = get_the_category(); //現在の記事のカテゴリー情報を取得
			 	if( $cat[0]->term_id===1) //現在の記事のカテゴリーIDを取得
			 get_template_part( 'content');
		 }
 } 
//カテゴリーID 2の記事
  if( have_posts() ) {
		 while(have_posts() ) {
		 the_post();
			 	 $cat = get_the_category(); 
			 	if( $cat[0]->term_id===2) 
			 get_template_part( 'content');
		 }
 } 

query_posts、get_posts を使うとページャーが動かなくなるので注意!

波ダッシュ(チルダ)問題

	
var_dump( '~'=== '〜');
bool(false)

var_dump( '〜'=== '〜');
bool(true)

'/[~|〜|/]/' 正規表現で置換はできる模様

Contact Form 7 で送信後に異なる URL にリダイレクトさせるには.

コンタクトフォーム サンキューページ

これらのフックは2017年廃止予定となっているので使えなくなりました。on sent ok:, on submit:

また、こちらの本家サイトの記事でうまくいかない場合の対処方法

手順はこう

  1. 送信フォームの専用テンプレートが必要。例 page-contact.php
  2. 固定ページへショートコードの投稿 → スラッグは"contact"
  3. page-contact.phpの先頭にコレを追加
    
    	<?php
    		if(!empty($_POST['必須項目']) && !empty($_POST['必須項目']) ...全部の必須 ){
    			header('Location: http://example.com/thanks/');
    			exit;
    		}
    	?>
    
  4. 固定ページへ サンクスページ投稿 →スラッグは "thanks"

二次元の連想配列を値で検索して一次元のキーを取得


pref_areas= array(
	"hokkaido" => array(1,"北海道"),	"aomori" => array(2,"青森県"),.....
  • array_column
  • array_search
  • array_slice
  • key

    青森県 で aomori を取得したい場合 、上の関数から順に使って

    	
     var_dump(key(array_slice($pref_areas, array_search( '青森県',array_column($pref_areas,1)), 1, true)));
    

    二次元の方のキーを取得したい場合

    		
     var_dump(array_search( "青森県" ,array_column($pref_areas, 1 ))+1 );
    

    javascript EC6でもできるようになった

    
    
    var obj2={'北海道':'hokkaido','青森':'aomori'};
      var searchKen = 'aomori';
      
    var result = Object.keys(obj2).reduce(function(r, k) {
                 return obj2[k] == searchKen ? k : r 
            }, null);
    console.log(result);
    

    reduce → 配列をループして1つの値を取得。

    rにはそれまでの結果
    kには今のキーが代入される

  • 画像リンクに書き出されるURLを [ショートコード] 化する方法 WordPress

    <img src="http://sanzo.domain.jp/ze/wp-content/uploads/2017/09/torapist1-300x281.jpg" alt="" width="300" height="281" class="alignnone size-medium wp-image-36" />

    ↑サイトURL を ショートコード化↓

    <img src="[site]/wp-content/uploads/2017/09/torapist1-300x281.jpg" alt="" width="300" height="281" class="alignnone size-medium wp-image-36" />

    メリットはたくさんあるといっても思いついたのは3つだけ

    1. ローカルからアップするときに文字置換がいらない (リンクについては)
    2. ドメイン名が変わっても自動的に対応
    3. パスが短くなる

    やりかた
     

     add_shortcode('site', 'site_url');

    このコードを functions.php に書くだけ。  site_url() WP関数が最初からある

    Mac OS X El CapitanにMySQL をインストール

    1.MySQLをダウンロードする
    https://dev.mysql.com/downloads/mysql/

    公式サイトのMySQL Community Server 5.7.14のリストから一番上にある「Mac OS X 10.XX (x86, 64-bit), DMG Archive」を選択する。

    2.MySQLをインストールする
    デフォルトパスワードが表示されるので控える。
    システム環境設定にMySQLのアイコンが追加される。
    ちなみにインストール先は /usr/local/mysql-5.7.18-macos10.12-x86_64/
    エイリアスがmysqlで自動作成される


    スタートとstopはここから

    3. ログインはターミナルから パスは通っていないので
    cd /インストール先
    ./mysql -u root -p
    Enter password: インストール中に表示されたヤツ

    mysql> show databases
    You must reset your password using ALTER USER statement before executing this statement.
    初期パスワード扱いなのでだめらしい

    mysql> USER 'root'@'localhost' IDENTIFIED BY 'あんたのぱすわーど';
    OK!

    EclipseでのSSH鍵認証

    Eclipseで公開鍵/秘密鍵の認証を使用するには、実際には非常に簡単です。

    リモート・システム・エクスプローラ・プラグインがインストールされていることを確認してください。 Eclipseのこの機能は、SFTPを介して別のサーバーに接続してファイルを編集できるようにするものです。

    インストールが完了したら、システム上に作成した秘密鍵をEclipseに認識させる必要があります。

    「ウィンドウ」 - >「環境設定」に進み、SSH2を検索します。 次のようなボックスが表示されます。

    "Add Private Key"ボタンをクリックし、追加したいシステム上の秘密鍵を探します。 ボタンをクリックし続けると、さらに秘密鍵を追加し続けることができます。

    重要な点:パテでキーを作成した場合は、 OPENSSH 形式でエクスポートする必要があることを理解しておいてください。 EclipseはOpenSSHにあるプライベートキーのみを受け入れます。デフォルトのパテッティ.ppkフォーマットではありません! puttygenプログラムでは、Conversions - > Export OpenSSHです。

    Eclipseに戻る - 終了したら、OKを押してから、 "Remote Systems"ビューに移動します。 右クリックし、新しい接続を言う。 SSHのみを選択:

     

    次の画面で、サーバー情報を入力します。 作成したら、 "Sftp Files"オプションを右クリックし、 "Properties"をクリックします。 Subsystemでは、デフォルト以外のポートが必要な場合は、ポートを入力できます。

    あなたはおそらく、特定のディレクトリに接続するときに開始したいと思うでしょう。 これを実行するには、Sftpファイルを右クリックし、新規を選択してからフィルタを選択します。

    [フォルダ]ボックスに場所を入力します:

    この点で、接続を試みる前にECLIPSEを再起動する必要があります!

    新しいフィルタの場所を開くと、接続する必要があり、提供する必要のある資格情報を入力するように求められます。

     カラのままOK

     

    サーバーキャッシュ対策

    <link rel="stylesheet" href="../common.css?v=1.1" />  とか

    <script src="found.js?v=123"></script> とか

    クエリストリングを送ってやれば別ものと理解して新しく読み込んでくれる

    手動で書き換えるのも大変なのでstaticな宣言の変数で番号を増やせばいい

    <?php
    // Here your code !
    if( isset($_COOKIE['version']) ){ // クッキーがあればその値がカウント値
      $visit = $_COOKIE['version'];
    } else{ // クッキーがなければ初回訪問としてカウント値は0
      $visit = 0;
    }
     
    $visit++; // カウント値+1
    setcookie('version', $visit); // 有効期限なしのクッキーを設定
    ?>
    <link rel="stylesheet" href="../common.css?v=<?= $visit ?>" />

    Linuxで使うネットワーク系コマンド

    対象IPへの経路を確認する

    【コマンド】traceroute -n 8.8.8.8

    ▼ネットワークの接続状況を確認する

    【コマンド】netstat -an

    ドメイン名の詳細を調べる

    【コマンド】dig rpapaweb.com

     

    [Linux]tcpdumpの使い方

    Linuxサーバでのパケットキャプチャを実施する場合に重宝する「tcpdump」でよく使うコマンド

    ▼IPを指定する場合

    tcpdump host 192.168.100.1

    ▼ネットワークアドレスで指定する場合

    tcpdump net 192.168.100.0 mask 255.255.255.0

    ▼ポート番号を指定する場合

    tcpdump port 80

     

    iptables

    iptables は Linux カーネルの IP パケットフィルタルールのテーブルを 設定・管理・検査するために使われる。

    GitからリポジトリをプロジェクトにPull Eclipce (PDT)使い方

    GithubからプロジェクトごとPull

    GithubにあるリポジトリからEclipceにプロジェクトをPullします

    1. Eclipceで file → import
    2. Project From Gitを選択
    3. URIを選択し、次へをクリック
    4. GitHubのURI、ユーザー、パスワードを入力し、次へをクリック。
      https を入れるとパスワード認証になるので、自分のGitアカウントを入れる
    5. pullしたいブランチを選んでNext x3くらいで全部ダウンロードできる。

    ChromeのHTML5動画再生で緑の画面

    Amazonビデオ、Youtubeで再生する動画が緑色になる現象
    設定→ 詳細→ハードウェアアクセラレーションのチェックをOFF

     

    Chrome再起動で解決!

    wp-config.phpへのパス 移動

    プラグインとして読み込まれている場合

    ../wp-config.php

    プラグインディレクトリの孤立ファイルからの相対パスなら

     ../../../wp-config.php

    wp-config.phpを移動している場合は../が一つ増えるので注意・

    非公開ディレクトリに移動の件

    そのままmvで移動、wp-config.phpは同じ場所に新たに作成して、require '../wp-config.php' にしておけ
    ちなみに WinのXAMPP環境なら C:\XAMPP.. とかフルパスで書かないと読まれないらしい。

    正規表現 すべての記号を除去

    $acl = preg_replace('/[^ぁ-んァ-ンーa-zA-Z0-9一-0-9\-\r]+/u','' ,$_POST['acl']);

    特殊記号の排除

    別のプログラムに与えるパラメータに用いる文字種を英数字のみ等安全なものに限定し、検査してから渡す。

    bashの場合、次の特殊記号は別コマンドの実行に使われるものとして特に警戒する。

    「;」「|」「&」「`」「(」「)」

    また、次の特殊記号もファイルへのアクセスが起こったりコマンドの意味が変わり得るので警戒する。

    「$」「<」「>」「*」「?」「{」「}」「[」「]」「!」

    EC-cube3カスタマイズ スライドショウ 画像追加

    ec-2EC-cubeのデフォルトのテーマにあるスライドショウに画像を追加、削除、変更するカスタマイズ。

    ファイルはsrc/Eccube/Resource/template/default/index.twig

    ファイルさえわかればあとは増やせばいい。

    ec-3

    Apnata3にWordPress関数のコードアシスト追加

    Windows環境のばあいは先にmintyを入れておいてください。
    Windowsにminttyを入れた話

    AptanaではGit commandがないと言われる。(インストール時に入れたつもりだったが・・)

    仕方ないので入れてみる
    すごく丁寧な記事へのリンク

    あとはメニューバーの command → BundleDevelopment → InstallBundle → WordPress だけでOK
    git_command001

    やってみたところうまくいったようだ。

    aptana3-jquery

    OSCLASS をインストール

    普通に入るが、サイト表示の際に「AdminTheme.php」がインクルードできずFatalエラー。
    圧縮ファイル内から取り出して設置でうまく行った。
    フォルダ構造はWPと同じようなので扱いやすい。

    ダッシュボードを開くには http://your FQDN/oc-admin/   …WPと同じ。

    facebooklogin001

    日本語化

    この記事でなんとかなる
    マッチングサイト構築・Osclassを日本語化する方法

     

     

    テーマ選択

    マーケット → テーマ   5ページ目くらいから無料のも出てくる。
    → ダウンロードを試したがいつまでたっても終わらない。
    → cancel して 外観 → テーマの管理 に行ったら完了していたので 有効化
    →  他にも <a href="http://market.osclass.org/search/pattern,free/iPage,6">ここからダウンロード</a>できる 。

     

    通貨設定

    通貨を日本円に変更 – Osclass

    管理画面から、「設定」→「言語」→ Japanesの「編集」をクリック→「言語を編集」画面で「桁区切り」欄をゼロに
     

    言語設定

    os_setting001

    エラー修正

    「広告の管理」をクリックすると、

    「Warning: sprintf() [function.sprintf]: Too few arguments in
    「items.php」の該当の%sを%%sに変更

     

    初期設定の無料広告設定 では誰でも登録できてしまう

     

    ディレクトリとテンプレート

    構造はWordpressと全く同じ。
    テンプレートは、item.phpがsingle.phpに相当。
    main.phpがたぶんhome.php

    xmlrpc.php へのアタック対策 Apache & nginx

    xmlrpc.php はwordpressのファイルで、管理画面以外から投稿を受け入れる機能があるファイル。
    このファイルを狙ったアタックを検知した。
    xmlrpc

    このファイルへのアクセスはデフォルトでこんな感じ
    urlbarxmlaccess

     

    プラグインで防ぐ方法もあるようだが、htaccessでできる

      <Files "xmlrpc.php">
      order deny,allow
      deny from all
      </Files>
    

    対策後のログ

      46.235.9.240.static.teknikdata.com - - [09/Mar/2016:19:16:41 +0900] "POST /xmlrpc.php HTTP/1.1" 200 441 "-" "Mozilla/5.0 
    46.235.9.240.static.teknikdata.com - - [09/Mar/2016:19:21:11 +0900] "POST /xmlrpc.php HTTP/1.1" 404 18208 "-" "Mozilla/5.0 
    

    HTTPレスポンスが200から404に変わった。
    見てみると
    xml404
    アタックも止まった。うまく行ったようだ。

     

    以下は nginxの場合 

    confファイルに追加して再起動]


    #access denyed
    location = /xmlrpc.php {
    deny all;
    access_log off;
    error_log off;
    }
    #複数ファイルならこう
    location ~ (/xmlrpc.php|/moodle/calendar/set.php|/moodle/calendar/view.php)$ {