ダイジェスト認証の設定 Windows + Apache

.htaccessを使った例

.htaccess 新規作成→ 認証をかけたい場所に置く


		AuthUserFile D:/xampp/password
		AuthName "Digest Auth"
		AuthType Digest
		require valid-user

	

httpd.conf の編集 以下の行を探す

#LoadModule auth_digest_module modules/mod_auth_digest.so

「#」を外して Apache再起動

パスワードファイル作成

コマンドプロンプトかPowerShell起動 xamppインストールフォルダへ移動し、
パスワード発行コマンドを打つ

	> CD c:\xampp\apache\bin
	> htdigest -c "D:xampp\password" "Digest Auth" izumo

ブラウザで認証をかけたい場所の URLを入力 localhost/認証フォルダ
※インデックスには表示されないので手打ち

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

 

MOODLE使い方

何か編集するのであれば管理者でログインして「編集モードの開始」を押す。

1.階層イメージ

カテゴリ→ サブカテゴリ →コース →

2.何はともあれコースを作る

1) 管理者権限
(あるいはコース作成を許可されているユーザ権限) でログインしてください。
2)「サイト管理」の「コース」をクリックしてください。


>3.コースに教師として登録する

Home→コース選択→設定(ユーザ)→登録ユーザ→[ユーザを登録する]を押す

4.プロファイルの編集

Moodle には、ユーザ間でメッセージのやり取りをしたり、ブログを記述したりする SNS機能があります。

5.コースに学生を登録する



a,201301,jioro,tanaka,j-ytanaka@exaple.jp

▼サイト管理 → ユーザ → アカウント →ユーザをアップロードする

6.課題のインポート

新しいコースを作成したら、過去のコースから課題をインポートできる。
カテゴリ▶コース▶コース名選択▶管理▶インポート▶ ここでチェックは全部に付けたままにして次へ▶


7.小テスト ドラッグ&ドロップテキスト の作り方

[[1]] [[2]](配送日, 部署ID, 部署名, 配送先 ,部品ID, 数量)
[[3]]( 2016-8-30 500 研究開発部 川崎事業所 2346 50 )
2重の大かっこがドロップエリアの空欄になる

解答の選択肢は下に書く

穴埋め問題

    データベースへ接続して
    {1:SHORTANSWER:誤答#誤答へのフィードバック~=SQL#正答へのフィードバック~%50%クエリ#対応するフィードバック}
    文を実行することでデータベースを操作する。

    {1:SHORTANSWER:誤答#誤答へのフィードバック~=プリペアドステートメント#正答へのフィードバック~%50%プリペアド#対応するフィードバック}ではSQL文とパラメータ(ユーザーの入力値)を別々にDBへ渡すのでSQLインジェクションが防げる

    SQL文のパラメータ部分のところには値を入れずに:名前や?の文字を入れて開けておきます。この部分のことを{1:SHORTANSWER:誤答#誤答へのフィードバック~=プレースホルダ#正答へのフィードバック~%50%ぷれーすほるだ#対応するフィードバック}といい、後追いで値だけ変数にして{1:SHORTANSWER:誤答#誤答へのフィードバック~=バインド#正答へのフィードバック~%50%#対応するフィードバック}(結びつけ)してやります。

サーバーキャッシュ対策

<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 ?>" />

phpMyadmin CSSカスタマイズ & CSSの強度

"\phpMyAdmin\themes\sprites.css.php"

内にCSSを追加するだけ。一応 !important しておく

補足

セレクタによるCSSの強度(まとめ)

  1. 値の 右に!importantをつけると最強
  2. インラインスタイル
  3. idセレクタが単独でも強い ()
  4. 親指定した複合セレクタが強い。祖先を指定するほど強い
  5. 親よりも自分のタグにあてられたほうが強い
  6. 下の行に書いたほうが強い (複数cssも同じ+ヘッダースタイルも)

Ec-cube サブドメイン さくら html除去 htaccess

 

  1. サーバー管理画面から、サブドメインを作る。例)store.ultimai.org > ultimai.org/ec/html を参照させる
  2. クイックインストールで、ultimai.org/ec/ にインストール
  3. Ec-cubeの設定(セットアップ)になったら、store.ultimai.org(サブドメイン)で開き直す。
  4. 完了後 store.ultimai.org だと Access forbidden! になるので
    html/.htaccess を編集 RewriteRule ^(.*)$ /index.php [QSA,L]  スラッシュをつけるだけ
  5. これにて store.ultimai.org だけでTOPページにたどりつける。
    他のリンクも大丈夫だ。

 
管理画面にもこの設定後ならサブドメインで入れた。

プラグインからデータベース接続

//こういう接続クラスがある
 global $wpdb;  
$kkyk = $wpdb->posts;
 $strsql =  "select k.kkyk_id,kkyk_mei,kkyk_huri 
             FROM $kkyk as k 
             WHERE k.kkyk_mail= %s";
 
 $col = $wpdb->get_row( $wpdb->prepare($strsql,$email));

object(stdClass)#2915 (3) { ["kkyk_id"]=> string(1) "1" ["kkyk_mei"]=> string(12) "佐藤治郎" ["kkyk_huri"]=> string(18) "さとうじろう" }

URLパラメータを拒否 ?from=http

Apacheの mod_rewrite を使います。
ドキュメントルートに .htaccessを設置

# 例えば http://abcce.com/?from=http://abc.to とか
RewriteEngine On
RewriteCond %{QUERY_STRING} from
RewriteRule ^.*$ - [F,L]

APIによるGoogleMap

真ん中にマーカーが来ている

<div class="map">

   <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>

    <script>

      var mapZoom = 16;

      var mapCenter = new google.maps.LatLng(39.626028,140.1615576);緯度経度

      function mapCreate(){

        var mapOption={

          zoom:mapZoom,

          center:mapCenter

        };

      var map=new google.maps.Map(document.getElementById('map'),mapOption);

        markerCreate(map);

      }

      function markerCreate(map){

        new google.maps.Marker({

          position:mapCenter,

          map:map

        });

      }

      google.maps.event.addDomListener(window, 'load', mapCreate);

    </script>

  <div id="map"></div>

</div>

[css]これは必要

#map {
 width: 50%;
 height: 230px;
}

自作MAPをgoogleMapみたいに

 

<iframe class="mapillare" src="./zoom_map.html" width=100% frameborder=0></iframe>
<!DOCTYPE html>
<meta charset="utf-8">
<style>
html,body {
margin: 0;
width: 100%;
height: 100%;
overflow: hidden;
background: white;
}
.mapfr{width: 100%;
}
</style>
<body>
<script src="js/d3.v3.min.js" charset="utf-8"></script>
<script>
var zoom = d3.behavior.zoom()
.scale(1)
.scaleExtent([.1, 10])
.on("zoom", zoomed);

var svg = d3.select("body")
.call(zoom);

function zoomed() {
var t = "translate(" + d3.event.translate[0] + 'px,' + d3.event.translate[1] +"px) " +
"scale(" + d3.event.scale + ',' + d3.event.scale + ")";
d3.select("img")
.style("transform-origin", "0 0")
.style("-moz-transform-origin", "0 0")
.style("-webkit-transform-origin", "0 0")
.style("-o-transform-origin", "0 0")
.style("-ms-transform-origin", "0 0")
.style("transform", t)
.style("-moz-transform", t)
.style("-webkit-transform", t)
.style("-o-transform", t)
.style("-ms-transform", t);
}
</script>
<img class="mapfr" src="img/mapillare.svg">
</body>

wordpressのログインアタック (ブルートフォース攻撃)

GoogleAnalyticsの最近のアクセス状況。
GoogleAnalytics

不自然なアクセス数の増減からログを調べたところこんなかんじだった。


logatt1

こいつのWhois情報
logatt2

とりあえずhtaccessであちこちブロック deny from 排除したいIPアドレス
logatt3

投稿の作者名がIDと同じなのはマズイ。名には日本語を入れるといい.
そして、ブログ上の表示名を日本語の表記にする。

プラグインも入れておけ Limit Login Attempts

それでも効果ないならこれをwp-login.php先頭のほうに追加。"てきとうなひらがな"をセッション変数に格納するphpファイルを作って、wp-login.phpにリンクを貼っておく。これで効果覿面

session_start();
if(!isset($_SESSION['任意文字'])){
    echo '<h1>404 Not Found<hr></h1>';
    exit;
}
if($_SESSION['任意文字']!="てきとうなひらがな"){
    echo '<h1>404 Not Found<hr></h1>';
    exit;
}


もっと設置が楽な方法として、wp-adminディレクトリにBsic認証を設置する方法がある

 

 

Amazon在庫 出品管理

amazonで無在庫販売を行うためのツールです。
国内のamazonと海外のamazonから取得したデータを取り込んで、 送料や手数料・利益率などを含んだ売価を計算します。
データ件数は数万件に対応しています、為替レートや利益率の調整、安すぎる売価の一括調整 と出品データの書出しができます。

このシステムにはamazonから商品データを取得する機能はありませんが、オプションで 設置することも可能です。
Amazon在庫 出品管理ツール

枠からはみ出る文字は…にする CSS

WordPressのウィジットなどで記事のタイトルが長い場合の対策

/* 枠からはみ出る文字は…にする*/
.blogmenu{overflow: hidden; width: 100%;
}
.blogmenu ul li ul li{ overflow: hidden;
text-overflow: ellipsis;
}

ウィジット以外で固定文字数で表示したいならPHPに便利な関数がある。

例1 mb_strimwidth() の例

<?php
echo mb_strimwidth("Hello World", 0, 10, "...");
// Hello W... と出力します
?>

Adobe Edge Reflow 絵で見る使い方

 

 

 

1. 起動したら新規ファイルができているので、ブレイクポイントを作成します。
右上の+ボタンを押すか、ルーラーの上でWクリック

edveref5

 

2. ボックスになる矩形を書いたら、背景に画像を入れておきます。

edveref22

3. トップイメージができました。この前面にタイトルをテキストで入れてみます。

edveref55

4. フォントは既存のものやら、いろいろ指定できます。

edveref4

 

5. 次にメインコンテンツになるボックスと、ナビゲーションになるメニューボックスを並べて作ります。

edveref10

6. プレビューで見えないので、ボーダーをつけます

edveref9

7. ブレイクポイントまでカンバスハンドルを動かして、モバイル用の配置にします。

edveref3

 

8.  File→HTMLに発行して完成

 

 

 

WordPressアップデート失敗

ailed to open stream: Permission denied in 〜〜〜 class-wp-filesystem-direct.php on line 202
ファイルをコピーできませんでした。
インストール失敗
----------------------------

■原因
FTP接続の設定になっていたりApacheの実行ユーザーが
nobodyになっていることなどが原因。

1.wp-config.php に最下部に下記を記載する。
これがFTP接続情報を回避する方法となる。
------------------------------
define('FS_METHOD','direct');
------------------------------

2./etc/httpd/conf/httpd.conf の
user と group を自分のユーザー名に変える。
コピーできないとかパーミッションがなんとか言われた場合の回避方法。

------------------------------
138 #User nobody
139 #Group nogroup
140 User 自分のユーザー名
141 Group 自分のグループ名
------------------------------

3.変えたユーザーは戻したほうが無難

とあるプラグインを読み込んで別ウィンドウでテーマフォルダのテンプレートを開く方法

http:// wrapper is disabled in the server configuration by allow_url_include=0

というエラーがありまして。その解決方法

$fullpath=dirname(__FILE__);

    $path=strrpos($fullpath,'/');

    $path9=strrpos($fullpath,'/');

    $plugin-name=substr($fullpath,0,$path).'/plugin-name;

     define('PDIR',$plugin-name);

ここまでプラグインのTOPで行う

以下を別窓で開いたテーマフォルダのテンプレートに書く

require_once (PDIR.'/plugin-file.php');

プラグインでCSSファイルを読み込む方法

CSSを読み込むには、以下の関数を使用します。
wp_enqueue_style

$pdir; にはこのプラグインフォルダまでのフルパスが格納されておる

function your_styles() {
global $pdir;
wp_enqueue_style( 'message',  $pdir . '/message.css', array(), null, 'all');
}
add_action( 'wp_enqueue_scripts', ' your_styles');

 

  • $handle:(必須) (required) ハンドル名を指定 [デフォルト: なし]
  • $src:(任意)ファイルパスを指定 [デフォルト:false]
    get_option('siteurl') // ルートディレクトリ
    get_bloginfo('stylesheet_directory') // 子テーマのディレクトリ
    get_bloginfo('template_url') // 親テーマのディレクトリ
    get_bloginfo('plugins_url') // プラグインのディレクトリ
  • $deps:(任意)依存関係を明示。特定のCSSファイルの後に読み込みを行わせたい場合に指定する。ハンドル名で明示 [デフォルト:array()]
  • $ver:(任意)ファイルのバージョン番号を指定 [デフォルト:false]
  • $media:(任意) CSSのメディアタイプを指定 [デフォルト:'all']

デベロッパーツールでデバック chrome

デベロッパーツール

Sources]パネル

Sourcesパネルは、CSSやJavaScriptのコードをデバッグできる機能である

この例では、JavaScriptコードが開かれている。

  • 1ページのソースファイルを一覧表示するnavigatorを表示する。
  • 2ソースビュー。
  • 3サイドバー。
  • 4コード整形ボタン。

Chromeのデバッガーが他のブラウザーと比較して優れている点は、デバッグ機能が充実していることである。

Call Stackをさかのぼって、実行済みの呼び出し元をデバッグする機能

 まずはデバッグでブレイク(=停止)したときにスタックを逆回転できる機能だ。具体的には、停止したときにCall Stackグループには関数の呼び出し履歴が表示されているので、停止している関数よりも前の処理を右クリックして、表示されるコンテキストメニューから[Restart frame]をクリックする(次の画面を参照)。この手順により、呼び出し元にさかのぼってデバッグできる。

高度な条件付きブレイクポイント

 次に、ブレイクポイントについてはあえて説明は不要だと思うので、さらに高度な条件付きブレイクポイントの指定の仕方について、以下のスクリーンキャプチャ画像で説明しよう。

外部スタイルシートをbodyで読み込む

と言うよりスタイルシートは普通に<link>でbody内で読み込める。

elements3

~以下はどうしてもheadで読ませたい場合~

<body>
body内でCSSを外部リンクさせるには、自動実行スクリプトでhead内にappendChildさせる。
これだけでOK

<script>
window.onload=function(){
var css=document.createElement("link");
css.setAttribute("rel","stylesheet");
css.setAttribute("type","text/css");
css.setAttribute("href","http://xxxxx.mmm/theme/original.css");
document.getElementsByTagName("head")[0].appendChild(css);
}
</script>

サイト内検索 Google カスタム検索 と表示させない

カスタム検索エンジンの作成

まず「カスタム検索エンジンの作成」をして、カスタム検索を設置するサイト(自分のウェブサイト)の登録をします。

  1. Google の「カスタム検索エンジン」ページを開く。
    ログインしていない場合は、[カスタム検索エンジンにログイン]から、Googleアカウントでログイン。
    Googleカスタム検索エンジン
  2. 左メニューの[検索エンジンの編集]をクリック。
    [検索エンジンの編集]の下のグレーの枠は「すべて」(もしくは「All」)を選択。
    「検索エンジンの編集」ページで[Add]をクリック。
    Google カスタム検索
  3. [検索するサイト]にGoogleカスタム検索を設置するサイトのURLを入力。
    URLの入力の仕方は、[URL パターン]を参照のこと。
    私は今回「http://www.ultimai.com/」のサイト内の「kenchiku」フォルダ内を検索させたいため、「www.ultimai.com/kenchiku/*」と入力。
  4. [言語]を[日本語]に設定。
  5. 名前(検索エンジンの名前)を設定する。 [名前を変更]をクリックして任意の名前を入力。
    上記 1. の「検索エンジンの編集」ページでこの名前が表示されます。
  6. [作成]ボタンクリック。
    これでカスタム検索エンジンの作成が完了。

以下、自分のホームページにカスタム検索を設置する方法を説明します。

自分のホームページにカスタム検索を設置する

今回は、検索窓と検索結果ページを分ける方法で設置する仕方をご紹介します。

  1. まず、検索結果ページのレイアウトを設定する。
    左メニューの[検索エンジンの編集]をクリック。
    [検索エンジンの編集]の下の、グレーの枠の箇所は、今回設定した検索エンジンの名前を選択
    左メニューの[デザイン]をクリック。
    開いたページの上の方、[レイアウト]タブをクリック。
    レイアウト例がいくつか並んでいる中の、[2ページ]をクリックし、[保存]をクリック。

  2. 検索結果ページのURLを登録する。
    左メニューの[設定]をクリック。
    開いたページ中ほど、「詳細」の項目の[コードを取得]をクリック。

ページ読み込み時に実行したい処理がある場合

通常はjavascriptのonloadイベントを使用します。

BODY要素にonload属性を追加したり、
下記のようなjavascriptの指定を追加する方法がよく見られます。

1
2
3
window.onload = function(){
// ページ読み込み時に実行したい処理
}

次にCSSをヘッダー内で
input#gsc-i-id1{background: url('images/inputback.png')!important }

serch_google

WPの長いタイトルを文字数制限


get_posts で最近の投稿のタイトルを取得、多次元配列なので更に$post->post_titleでタイトルのみ取り出す
あとは mb_substr で文字数指定。

RecentPost

    post_title;
    if(mb_strlen($post_title)>15) {
    $post_title = mb_substr($post_title,0,18).'...';
    }
    ?>

スタイルシートを相対パスで書きだす

 <?php $dir = get_template_directory_uri() ; //テーマディレクトリ?>

<?php //wp関数とは同じ括りに入れられないらしい。syntaxErrになる
 $pos = strpos((string)$dir , '/' ,8 );
 $sdir= substr($dir, $pos, strlen($dir)-$pos);
?>

<link rel="stylesheet" href="<?=$sdir ?>/style.css" type="text/css" />
<!--ついでにこれも-->
 <link href="<?=$sdir ?>/favicon.gif" rel="shortcut icon">