2016年11月10日木曜日
PHP の `headers already sent` エラー
PHP の `headers already sent` エラー
(参考)
http://ja.stackoverflow.com/questions/5453/php-%E3%81%AE-headers-already-sent-%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AF%E3%81%A9%E3%81%86%E7%9B%B4%E3%81%97%E3%81%9F%E3%82%89%E3%81%84%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B
● header()の前に、出力文字(空白他)が含まれていてはいけない。
● 例)includeするhead.php に<head>が含まれていた場合。includeの前に header()をセットする。
--エラー----------------
<?php
session_start();
$title ="duf20page:Contact";
include 'head.php';
?>
<?php
header("Content-type: text/html; charset=utf-8");
header('X-FRAME-OPTIONS: SAMEORIGIN');
?>
--エラー----------------
<?php
session_start();
$title ="duf20page:Contact";
?>
<?php
header("Content-type: text/html; charset=utf-8");
header('X-FRAME-OPTIONS: SAMEORIGIN');
include 'head.php';
?>
--エラー----------------
<?php
session_start();
$title ="duf20page:Contact";
include 'head.php';
header("Content-type: text/html; charset=utf-8");
header('X-FRAME-OPTIONS: SAMEORIGIN');
echo sha1(session_id());
?>
解決した(1)
● head.php に<head>が含まれている。includeの前に、header()をセットする。
● header()の前に、出力文字(空白他)が含まれていてはいけない。
--OK----------------
<?php
session_start();
$title ="duf20page:Contact";
header("Content-type: text/html; charset=utf-8");
header('X-FRAME-OPTIONS: SAMEORIGIN');
include 'head.php';
?>
解決した(2)
● head.phpで既にchersetしてあるので、header("Content-type: text/html; charset=utf-8");を省いた。
--OKOK----------------
<?php
session_start();
$title ="duf20page:Contact";
header('X-FRAME-OPTIONS: SAMEORIGIN');
include 'head.php';
?>
-----------------------
2016年11月8日火曜日
CSRF (Cross site request forgeries) クロス サイト リクエスト フォージェリ
CSRF対策 メモ(php)
参考)ドットインストール
http://dotinstall.com/lessons/bbs_php_v2/24508
http://dotinstall.com/lessons/bbs_php_v2/24509
1) フォームをポストするファイルにトークンを仕込む。
1.トークンを作る
例) $token=sha1(uniqid(mt_rand(),true))
2.サーバ上に記録。
(1) session_start() で、セッションを使えるようにして、
(2) 変数 $_SESSION['token'] にトークンをセット。
3.トークンをデータとともに送信する
formからPOSTで、データとトークンを送り出す
2) データ受取りの処理をするファイルで、
---------------
◆ session_start エラー
エラーメッセージがでた :
Warning: session_start() [function.session-start]: Cannot send session cookie....
session_start() は、必ず、先頭に記述すること。
http://www.phppro.jp/phpmanual/php/ref.session.html
http://www.phppro.jp/phpmanual/php/function.session-start.html
---------------
◆_CSRF対策のトークンをワンタイムにしたら意図に反して脆弱になった実装例
徳丸浩の日記 2011年01月27日
http://www.tokumaru.org/d/20110127.html
(本文より)> トークン生成は安全な乱数を用いるべきであり、安全な疑似乱数生成器がない場合は、セッションIDそのものを使う方法が妥当
(コメントより)> 時刻を種にしても安全性はたいして向上しない
---------------
◆CSRF対策の実際
2011年3月4日 23:17
http://www.phppro.jp/qa/3140
answerer:ockeghem 3月7日 09:20
・トークンの要件は、「第三者に推定されないこと」
・セッションID(session_id)は推定されない(ように対策されている)という前提をおくことができます
・トークンとして推測の困難なものを使っている場合、それに加えてハッシュ関数を通す必要はありません
参考)ドットインストール
http://dotinstall.com/lessons/bbs_php_v2/24508
http://dotinstall.com/lessons/bbs_php_v2/24509
1) フォームをポストするファイルにトークンを仕込む。
1.トークンを作る
例) $token=sha1(uniqid(mt_rand(),true))
2.サーバ上に記録。
(1) session_start() で、セッションを使えるようにして、
(2) 変数 $_SESSION['token'] にトークンをセット。
3.トークンをデータとともに送信する
formからPOSTで、データとトークンを送り出す
2) データ受取りの処理をするファイルで、
サーバ上の記録と、POSTで受け取ったトークンを比較する。
サーバ上に記録がなかったり、値が異なっている場合は、異常。
if ( empty($_SESSION['token']) || ($_SESSION['token'] != $_POST['token']) )
if ( empty($_SESSION['token']) || ($_SESSION['token'] != $_POST['token']) )
---------------
◆ session_start エラー
エラーメッセージがでた :
Warning: session_start() [function.session-start]: Cannot send session cookie....
session_start() は、必ず、先頭に記述すること。
http://www.phppro.jp/phpmanual/php/ref.session.html
http://www.phppro.jp/phpmanual/php/function.session-start.html
---------------
◆_CSRF対策のトークンをワンタイムにしたら意図に反して脆弱になった実装例
徳丸浩の日記 2011年01月27日
http://www.tokumaru.org/d/20110127.html
(本文より)> トークン生成は安全な乱数を用いるべきであり、安全な疑似乱数生成器がない場合は、セッションIDそのものを使う方法が妥当
(コメントより)> 時刻を種にしても安全性はたいして向上しない
---------------
◆CSRF対策の実際
2011年3月4日 23:17
http://www.phppro.jp/qa/3140
answerer:ockeghem 3月7日 09:20
・トークンの要件は、「第三者に推定されないこと」
・セッションID(session_id)は推定されない(ように対策されている)という前提をおくことができます
・トークンとして推測の困難なものを使っている場合、それに加えてハッシュ関数を通す必要はありません
---------------
2016年10月27日木曜日
bracket メモ (ライブプレビューの設定)
◆ライブプレビューの設定
[ファイル]-[プロジェクト設定]
例えば、http://localhost/フォルダ名/ と設定しておけば、
PHPもそのまま、ライブプレヴューできる。
2016年10月21日金曜日
Chrome デベロパーツールのパネルの表示場所
Chrome デベロパーツールのパネルの表示場所
画面下・画面右横・フロート、と選ぶことができます。
デベロパーツールの、設定アイコン(2016年10月時点で、縦に点が3つ並んでいる形)をクリックして、選びます。
2016年10月19日水曜日
blogger 設定のリンク (随時メモ)
ブログ一覧:
https://www.blogger.com/home
ユーザー設定を編集:
https://www.blogger.com/user-settings.g
◆全般
ユーザー プロフィール
Blogger
Google+
Blogger Draft を使用する
◆メール通知
機能のお知らせ
プロフィールを編集:
https://www.blogger.com/edit-profile.g
画像を削除:
https://picasaweb.google.com/home
◆picasaから。
詳しい説明はここを参考に。
http://www.memorou.com/2013/12/bloggerpicasa.html
https://www.blogger.com/home
ユーザー設定を編集:
https://www.blogger.com/user-settings.g
◆全般
ユーザー プロフィール
Blogger
Google+
Blogger Draft を使用する
◆メール通知
機能のお知らせ
プロフィールを編集:
https://www.blogger.com/edit-profile.g
画像を削除:
https://picasaweb.google.com/home
◆picasaから。
詳しい説明はここを参考に。
http://www.memorou.com/2013/12/bloggerpicasa.html
2016年10月12日水曜日
イラストレータで角丸長方形
イラストレータで角丸長方形を描く
編集しやすい描き方
1. 長方形ツールを使う(角丸長方形ツールは使わない)
2. 効果-スタイライズ-角を丸くする
3. 編集するときは、アピアランスで編集(「角を丸くする」で、fxをクリック)
編集しやすい描き方
1. 長方形ツールを使う(角丸長方形ツールは使わない)
2. 効果-スタイライズ-角を丸くする
3. 編集するときは、アピアランスで編集(「角を丸くする」で、fxをクリック)
2016年9月28日水曜日
photoshopを使って、gifアニメを小さくする方法
photoshopを使って、gifアニメの表示サイズを小さくする方法
例えば、400*400pxを、200*200pxにしたいときの方法です。
【1】準備
- gifファイルをphotoshopで開く
2016年9月2日金曜日
ロイヤリティフリー リンク集 (随時更新予定) ☆2016-10-15追記
著作権フリー(*1)素材の探し方。以下、簡単に説明。
1)使用料金:著作権フリー素材には、 有料のものと無料のものがあります。
2)使用条件:著作権フリーとあっても、 必ず使用条件を確認してください。
・商用(非営利目的)利用...可/不可
・編集(改変)...可/不可/程度によって可
・作者やサイトを明記すれば、使用可、など
※ 一番安全なのは、Creative Commons のゼロ (CC0)
・商用(非営利目的)利用...可
・編集(改変)...可
のものです。
3) ネット上での見つけ方
1)使用料金:著作権フリー素材には、
2)使用条件:著作権フリーとあっても、
・商用(非営利目的)利用...可/不可
・編集(改変)...可/不可/程度によって可
・作者やサイトを明記すれば、使用可、など
※ 一番安全なのは、Creative Commons のゼロ (CC0)
・商用(非営利目的)利用...可
・編集(改変)...可
のものです。
3) ネット上での見つけ方
2016年5月29日日曜日
MS-officeのマニュアルを英語で読みたい時
MS-officeのマニュアルを英語で読みたい時
ほとんど日本語で問題ないのですが、時々英語にしたくなるので。
メモ。
https://msdn.microsoft.com/ja-jp/library/office/ee861523.aspx
「ja-jp」を、「en-us」 に書き換える
逆もまたOK。翻訳がある場合に有効。
2016年5月4日水曜日
エクセルにフォームをつける Part II (01)- vbaプログラミング:[次行][前行]をつける、変数を使う
フォームの機能を増やす(その1) [次行][前行]をつける、変数を使う。
※前回の内容は→ Part I (04)です。前回終了時点のサンプルファイルはここにあります→ 右クリックでここからダウンロードできます(ファイル名sample04.xlms)
PartIの、VBAの規則(文法)は2つでした。
◆ プログラムは、Subで始まりEnd Subで終わるプロシージャの中にまとめて書く。
◆ セルやフォーム上のオブジェクトの書き方は
・シート上のセルは、WorkSheet("シート名").Cells(行,列)で表す。
・フォーム上のオブジェクトは、オブジェクト名をつけて使う。
PartIIでは、プログラム特有の『変数』『ループ構文』『コメント』などを使って、作りこんでいきます。
今回(Part2の第1回)は、「次へ」「前へ」ボタンをつけて、行を移動できるようにします。
このときに『変数』という考え方を使います。
2016年4月20日水曜日
Excel VBA : 数値をゼロ埋めして文字列にする
Excel VBA : 数値をゼロ埋めして文字列にする
超★手抜きの方法です。
例)数値 12 を、3桁の文字列 012 にする
dim i as integer
dim s as string
i = 12
s = Mid( LTrim(Str(1000 + i)), 2, 3)
1. 数字を 「12」2. 数字を4桁にするために、1000を加える → 「1012」
3. str関数で文字列にする → 文字列「 1012」 になる
4. str関数は一番左に符号用のスペースが入るので、LTrimでとる → 文字列「1012」
5. Mid関数で、2文字目から3桁切り出す → 文字列「012」
5桁の0埋めにしたければ、100000を加えて、2文字目から5桁切り出せばOKです。
登録:
投稿 (Atom)
BloomというAI
オープンソースのAI「BLOOM」が出ました。 日本語も使えるというので、早速サンプルページで遊びました。 白い文字が私。ピンクの文字がAI。 ↑AIとやりとり できたのが、これ。AIとの合作超短編童話😆 『 傘をさして公園を歩いていたら、小さなリスが足...

-
オープンソースのAI「BLOOM」が出ました。 日本語も使えるというので、早速サンプルページで遊びました。 白い文字が私。ピンクの文字がAI。 ↑AIとやりとり できたのが、これ。AIとの合作超短編童話😆 『 傘をさして公園を歩いていたら、小さなリスが足...
-
単純化しよう。 現状:ファイルが1つある。(test.txt) 操作:編集して保存して閉じる。 目的:編集する前に戻りたい。過去にタイムリープすること。 ...