MySQLのテーブル定義とデータをそのままコピーする方法です。

 テスト用のテーブルが欲しかったり、
 一時的なバックアップなど利用したいときに便利です。


 1.テーブルを作成します。 

CREATE TABLE コピー先のテーブル名 LIKE コピー元のテーブル名; 


 2.データをコピーします。

 INSERT INTO コピー先のテーブル名 SELECT * FROM コピー元のテーブル名; 


 この2つのSQLで、コピーのテーブルを作成できます。


CSSのコメント

| コメント(0) | トラックバック(0)
ちょっとハマったので黙示録

CSSの中でコメントを書く場合は「/*」「*/」で囲む。

PHPだと、「//」でも行けるんだけどCSSではコメントにならずに、

次の行の要素が効かなくなる。

えらいハマった。



コマンドプロンプトでプロキシ設定を変更する方法です。

■プロキシ設定を有効にするコマンド

「LANにプロキシサーバを使用する」に、チェックを入れる(有効にする)コマンド

reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyEnable" /t REG_DWORD /d "1" /f


「アドレス」「ポート」を設定するコマンド

reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyServer" /t REG_SZ /d "XXX.XXX.XXX.XXX:8080" /f



■プロキシ設定を無効にするコマンド

「LANにプロキシサーバを使用する」に、チェックを外す(無効にする)コマンド

eg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyEnable" /f


「アドレス」「ポート」を設定を初期化するコマンド

eg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyServer" /f




これら設定を行った後は、ブラウザの再起動が必要です。

HTTPの応答ヘッダーのPHPバージョンを隠す方法


セキュリティ対策のためにはHTTPの応答ヘッダーに含まれる
PHPバージョンを隠す必要があります。

バージョンがわかってしまうと、脆弱性が良く発見されるPHPだと攻撃対象になりかねないし、そもそもPHPを利用しているということも隠した方がいいよね。

例えばこんな感じ

キャプチャ.PNG

X-Powered-By: PHP/5.3.3 と表示されています。

(Apacheのバージョンまで出ているし...)


PHPのバージョンを隠すには、php.iniの修正を行います。

修正前
expose_php = On

修正後
expose_php = Off


これでPHPのバージョンが表示されなくなります。



uniqid関数 13桁

uniqid();

結果:5ae16fcf17348



引数指定 23桁

echo uniqid("", true);

結果:5ae170054f5b84.50541340




uniqid関数+rand関数 28桁

uniqid(rand(), true);

結果:299415ae170628fcf84.12524708



uniqid関数+rand関数+md5関数 32桁

md5(uniqid(rand(), true));

結果:c5c5879ee6fa75e85614b19d095c0220


uniqid関数+rand関数+sha1関数 40桁

sha1(uniqid(rand(), true));


結果:f4bf2d7595eecf269bd8effc14b130e10bbbab35

Windows環境でPHPをzipから展開して動かすと、
pgsqlが動かなくて大ハマリしたのでメモ


PHPの設定は、どこにでも書いてある通り、
php.ini のextensionを有効にする。

;extension=php_pgsql.dll
extension=php_pgsql.dll


本来はこれだけで apacheの再起動でpgsqlが使えるはずだけど、
使えない。。。

phpinfo()で確認しても「pgsql」が無い。。。



PDO drivers には、mysql, odbc は表示されている。

なんで???



いろいろ調べて見たら、
php_pgsql.dll を c:\windows へコピーするとか
C:\WINDOWS\system32 へコピーするとか、
libpq.dll を c:\windows へコピーするとか
C:\WINDOWS\system32 へコピーするとか書いてあったけど
そんな訳ないと思っていろいろやってみたら。



なんと、環境変数に「Path」にPHPのディレクトリを
書いてあげることで解決。

なんでpgsqlだけが動かないかは置いておいて
とりあえず解決したのでメモしておきます。


ZendFrameworkで環境変数やクッキーなどを取得する方法(PHPとの比較)

■環境変数を取得する方法

 ・PHPで取得するとき

$_SERVER['SERVER_NAME'];


 ・ZendFrameworkで取得するとき

$this->_request->getServer('SERVER_NAME');
$this->getRequest->getServer('SERVER_NAME');



■環クッキーを取得する方法

 ・PHPで取得するとき

$_COOKIE['SID'];


 ・ZendFrameworkで取得するとき

$this->_request->getCookie('SID');
$this->getRequest->getCookie('SID');

ZendFrameworkでGETやPOSTなどを取得する方法(PHPとの比較)

■GETパラメータを取得する方法

 ・PHPで取得するとき

$_GET['test'];


 ・ZendFrameworkで取得するとき

$this->_request->getQuery('test');
$this->getRequest->getQuery('test');



■POSTパラメータを取得する場合

 ・PHPで取得するとき

$_POST['test'];


 ・ZendFrameworkで取得するとき

$this->_request->getPost('test');
$this->getRequest->getPost('test');


■HTTPメソッドの判定

 ・GET
$this->_request->isGet();

 ・POST
$this->_request->isPost();

 ・PUT
$this->_request->isPut();

 ・DELTETE
$this->_request->isDelete();

 ・HEAD
$this->_request->isHead();

 ・OPTION
$this->_request->isOptions();

hostsを書き換えたんだけれども、反映されない場合のメモ

WindowsのDNSのキャッシュをクリアする。


コマンドプロンプトで以下のコマンドを実行して、DNSのキャッシュをクリアする。

C:\>ipconfig /flushdns

Windows IP 構成

DNS リゾルバー キャッシュは正常にフラッシュされました。



再起動すれば反映されるけど、
再起動したくない場合などは特に重宝します。



確認は以下のコマンドで。

C:\>ipconfig /displaydns

Postgres DB 操作メモ

| コメント(0) | トラックバック(0)
PostgreSqlにて、今あるDBを元に新しいDBを作成するときの手順。

ほんと毎回忘れるのでメモ^^;


DB作成
createdb -U postgres -E UNICODE [新DB名]

データを入れる
pg_dump -U postgres [元DB名] | psql -d [新DB名] -U postgres





DBをバックアップする時はこちら

createdb -U postgres -T  [バックアップ元DB名]  [バックアップDB名]