phpMyAdminの初期設定ではセッション切れるのが早過ぎ!タイムアウトを長くしようぜ!

2015-10-28 12:58:39
ローカル環境でPHPでのシステム開発時にPHPMyAdminのセッションアウトが邪魔。 ローカルだからセキュリティーなんてどうでもいいということで、 セッションのタイムアウトを24時間にしてしまおう! PHPMyAdminのフォルダの直下にある「config.inc.php」に一行追加するだけ! ▼一般的な環境でのファイルの場所 htmlStart C:\xampp\phpMyAdmin\config.inc.php htmlEnd ▼追加する行 htmlStart $cfg['LoginCookieValidity'] = 86400; //24時間 htmlE...続きを見る

中小企業がポンコツシステム会社の餌食になってる件について

2015-10-22 18:37:17
PHPのシステムエラー復旧を承っちゃおうかな。ポンコツなシステム会社が多すぎるからさ。と思う今日このごろ。 34歳になってこの上から目線の発言は以下に自分がクソメンであるかを象徴してるねw 大手のポータルサイトではユーザー登録の際にエラーは全然起きないけど、 中小企業が運営するポータルサイトってエラーにちょくちょく出くわさない? 最近では、「セミナーズ」というサイトにセミナーの登録をしようとおもったら、 登録ボタンを押すと、ページが見つかりません…っておいおい。 せっかく苦労して入力したのにふざけんなっつーのと、怒り心頭。 「スクール検索サイト」でスクール情報を登録し...続きを見る
カテゴリ: PHP

正規表現 値を数値のみにする

2014-08-14 21:58:14
電話番号をデータベースに追加する時は、「-」(ハイフン)をなくしたほうが検索の際に使い勝手がよくなる。下記は変数を半角数値のみにするユーザー定義関数で、ついでに全角数字を半角にする処理もしている。 phpStart function numOnly($str){ if($str){ $str = mb_convert_kana(trim($str),'n','utf8'); //全角数字を半角数字に $num = preg_replace("/[^0-9]+/", "", $str); } return $num; } $str = '090-9999-99...続きを見る
カテゴリ: PHP

管理画面などにて画像が切り替わらない場合の対処法

2014-08-14 21:18:59
管理画面で画像を変更する処理をした際に、変更後の画面で画像がキャッシュのせいで古い状態のままになることがある。その場合の一番簡単な方法は、画像にランダムなパラメータを付け、新しい画像だとプラウザに認識させるといい。 phpStart $rand = rand(0,999999); echo ''; phpEnd これは管理画面での基本的なテクニックなので、必ず覚えておかないといけない。 ...続きを見る
カテゴリ: PHP

完全な空チェック ~ 確実な0(ゼロ)判定、null判定をする方法

2014-08-14 21:10:28
phpStart $num = 0; if($num){ 処理されない... } phpEnd 上記の分岐分は処理されないコードの一例。「0」はfalseと判定されるのがPHPの仕様である。 しかし、「0」はtureと判定し、変数が空の場合のみfalseと判定したい時が多々出てくる。 そこで、よく出てくるなら関数化をしておくのがオススメ。 phpStart function karaChk($str){ if(!is_null($str) && $str !== ""){ $flag = true; }else{ $flag = false; ...続きを見る

thickboxでパラメータ付き(GET送信)のPHPを読み込む方法

2013-09-26 00:01:54
いわゆるlightBox系のライブラリである「thickbox」。ファイルの少なさと設置の簡単さでそこそこ人気がありそうなライブラリ。 thickboxのインラインフレーム表示でパラメータ付きのフォームを表示しなければいけないケースに出くわし、普通に下記の通りにやってみると、 htmlStart 予約フォーム htmlEnd あれれGET値のidがPHPに渡らない… 「thickbox パラメータ」でググって調べてみると2つの解決法が出てて、何やらthickbox.jsを改造するコードが紹介されていたが、効果なし! 諦めずに「jquery parameter」でググっ...続きを見る
カテゴリ: Javascript

javascriptの足し算の演算は変数を数値型にしてから

2013-09-05 02:03:03
javascriptの演算子はPHPと扱いが違うようで、変数と変数を以下のように足し算すると、 htmlStart var a = 100 var b = 200 total = a + b; alert(total); //結果 100200 htmlEnd 結果は演算の値ではなく、変数と変数の結合の値が出てしまう。 PHPの変数の結合は「.」ピリオドだが、javascriptは「+」だからこうなってしまうのである。 なので、javascriptで演算する場合は、変数をparseInt関数で数値型にしなければいけない。 htmlStart var a = 100 va...続きを見る
カテゴリ: Javascript

ファイルやディレクトリのパーミッションを一括で変更する方法

2013-07-28 16:57:37
レンタルしていたサーバー屋が廃業するということで、サイトのお引越しをせざるを得なくなってしまった。 ポータルサイトの引越しの際、ユーザーが管理画面からアップロードしたデータを新しいサーバーに移動した際に、パーミッションが初期状態になってしまった。パーミッションを変更しなければ、管理画面から変更ができなくなってしまう。 ディレクトリは【755】から【777】へ ログファイルは【644】から【666】へ変更しなくてはいけない。 普通ならFTPソフトで変更すれば終わりの話なのだが、ディレクトリが1000ファイル以上あり、各ディレクトリには無数の画像ファイルが存在し、FTPでの手作...続きを見る
カテゴリ: その他

外部サイト(他ドメイン)のファイル存在確認

2013-05-05 00:42:00
画像ファイルがあるかないかを判断して、必要に応じてノーイメージ(now printing)を表示する時などに使用するファイル存在確認の代表的関数file_exists()。 phpStart $path = './log/item/12345.jpg'; if(file_exists($path)){ $img = $path; }else{ $img = '/img/noimage.jpg'; } phpEnd しかし、自サーバーならfile_exists関数でファイルがあるかないかを判断できるが、他ドメイン&他サーバーでは使用できないので、その場合はget_hea...続きを見る

jqueryでtable・liなどをドラッグ&ドロップで並び替え(ソート)する

2013-04-27 20:29:37
ドラッグ&ドロップで並び替える機能はほんの数行で実現できる。まずはjqueryとjquery-uiを下記にアクセスしてダウンロードする。jqueryは自サーバに置いたほうが読み速度が早いから直リンクはオススメしない。 htmlStart http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js http://code.jquery.com/ui/1.10.2/jquery-ui.js htmlEnd 次は、下記のようにjqueryを読み込んで、一行コードを書いてやります。#sortにドラッグ&ドロップソートを適応さ...続きを見る

SSIで上位ディレクトリを呼び出す場合にはちょっと注意

2012-12-26 19:55:50
さくらインターネットの共有サーバーではhtaccessのルールが特殊で、結構悩まされる。安いサーバーに難があるのは仕方がないけど…。 既に拡張子が「html」で作成されたサイトで、後からSSIやPHPを使いたいという状況。これWEBの仕事してるとそこそこ出てくるよね? URLを変えるのはSEO的にイヤだということで、拡張子はhtmlのままSSIやPHPを使用したいという時は、htaccessにちょいと書いてやるだけで実現します。 htmlStart ▼phpの場合 AddType application/x-httpd-php .htm .html ▼SSIの場合 Add...続きを見る

関数の引数(ひきすう)・戻り値(もどりち)について

2012-11-19 22:37:04
引数とは…戻り値とは…と言葉で書いてもパッとしなさそうなので、半角のカタカナを全角のカタカナに変換するmb_convert_kana関数を例として見てみよう。 phpStart $zenkaku = mb_convert_kana($hankaku, "KV"); //$hankaku が第一引数 //KV が第二引数 //$zenkaku が戻り値 phpEnd これで用語の意味は分かるかと思います。自分で関数を作る(ユーザー定義関数)時はこの引数と戻り値のことを理解しておかないと便利なものは作れない。 個人的にフレームワークの使い方を覚えるのが面倒なので、自作関数の...続きを見る

QRコードを手っ取り早く作る方法

2012-11-02 10:06:42
Google Chart APIを利用すればたった一行でQRコードが作れます。 htmlStart http://chart.apis.google.com/chart?chs=《サイズ》&cht=qr&chl=《URLやメールアドレスなど》 htmlEnd 画像タグに上記のコードを記載するだけ。 htmlStart htmlEnd パラメータの「chl」には日本語を使うこともできます。mailtoタグと同様で日本語を使う場合は文字化けの対処をしないといけないので、文字コードをパラメータの「choe」で指定しないといけない。 QRコードは携帯やスマホで読み取られるの...続きを見る
カテゴリ: PHP

現在のURLやファイル名の取得とリファラーの取得方法

2012-10-24 04:41:53
システムを構築中に今現在のURL(自身のURL)やファイル名を取得したいというケースがちょくちょく出てきます。サーバ環境変数に格納されているので取得は簡単です。 phpStart /* 現在のURLが以下だった場合 http://blog.pinkmonky.net/test.php?id=47&cate=5 */ echo $_SERVER['SERVER_NAME']; echo $_SERVER['REQUEST_URI']; echo $_SERVER['PHP_SELF']; echo $_SERVER["SCRIPT_NAME"]; //表示結果 bl...続きを見る
カテゴリ: PHP

メールアドレスの書式が正しいかチェックする正規表現

2012-10-18 09:59:04
メールアドレスの書式チェックの方法をネットで調べると、preg_match関数を使用した正規表現チェックのコードがいくつか出てくるのだが、どれも同じコードではない為、どれが一番正確なのかはよく分からない。そこで、信用できそうなコードをご紹介。 どうやら、docomoは「da.me..@docomo.ne.jp」といったRF2822非準拠の携帯メールアドレスが取得できるらしいので、docomoのせいでちょっとややこしいようだ。 ↓ドコモのメールアドレスの取得は以下が可能↓ ■ドットで始まる ■ドットが連続する ■@の前がドット あと、こんなメールアドレスも存在するらしい・...続きを見る

内容に日本語が含まれているかを調べる方法

2012-10-18 07:28:35
メールフォームならメールアドレスは見えないのでスパムは届きにくくなるが、最近内容が英語だけのスパムメールが届くようになった。簡単な処置として、内容に日本語が含まれているかを調べて、英語だけの場合は送信しないという分岐を追加することに。 どうやって全角の文字があるかどうか調べるかというと、文字数を数える『strlen関数』と『mb_strlen関数』を使用して、マルチバイトが含まれているかどうかを調べます。 phpStart if(strlen($body) == mb_strlen($body,'utf8')) { //全部英語(全てシングルバイト) }else{ //日本...続きを見る

phpMyAdminでインデックスの削除をする方法

2012-10-12 01:54:01
ローカルのxampp環境でphpMyAdmin3.1.3.1を使用しているのだが、プライマリー・ユニーク・インデックスのキー操作をしようとしたが、全然操作するメニューが見当たらなかった。 と、どうやらブラウザの問題だったようで、IEではそもそもメニューが表示されていなかった。mootools.jsを使用している画面なのでIEが対応していないみたいである。...続きを見る
カテゴリ: PHP

xampp環境でメールを送信できるようにする設定

2012-09-23 09:11:12
xampp環境の初期状態ではsendmail関数を使用してもメールが送信できません。ということで、メールを送れるように設定してみたものを見てもらいましょう。今回、送信用に使用するメールアドレスはフリーメールではないメアド(master@pinkmonky.net)で設定しました。フリーメールでも大丈夫だと思います。ちなみにこのメアドはさくらインターネットのサーバーで設定しているものです。 ↓このファイルを編集します。失敗してもいいようにコピーをしてバックアップしておきましょう。 C:\xampp\sendmail\sendmail.ini htmlStart //14行目辺り s...続きを見る
カテゴリ: PHP

携帯・スマホ版サイトの振り分けコード

2012-09-22 23:33:10
あくまで簡易的な携帯・スマホ版サイトの振り分けコードです。携帯版のページを絶対にPCで見せたくないという場合は、下記の方法では実現しません。PC版のインデックスファイルの先頭に下記のコードを追加すれば導入完了です。 phpStart // ユーザーエージェントの取得 $ua = $_SERVER["HTTP_USER_AGENT"]; if(preg_match("(UP\.Browser|KDDI|DoCoMo|J-PHONE|Vodafone|SoftBank|MOT-|L-mode|DDIPOCKET|WILLCOM|PDXGW|ASTEL)", $ua)){ ...続きを見る
カテゴリ: PHP

要素が空の場合はそのタグを削除する

2012-09-21 19:24:21
管理画面で入力がされていない空の項目がある場合、表のページで内容が空だったら非表示にしたいケースがちょくちょくあります。PHPで全ての項目に分岐文を加えるのは面倒だなと思い、他の方法を考えるてみると…。なんと、jqueryを使えば一行で実現できてしまいました。 htmlStart //リストの場合 $("ul#detail li:empty").remove(); //テーブルの場合 $("table#detail td:empty").parent('tr').remove(); htmlEnd このコードでのポイントはemptyでの空要素チェックとparentで親要素の指...続きを見る
カテゴリ: Javascript

cookie(クッキー)操作の便利なユーザー定義関数

2012-09-18 15:10:28
フォームやカートなどで重宝するcookie(クッキー)の操作を簡単にする定義関数。クッキーを配列で使用することでシンプルな組み方が実現されてます。この関数があればクッキー操作が格段にラクになるのでオススメです。 phpStart define(_TIME_OUT_,time() + 30 * 86400); //一ヶ月保持 function makeCookie($array,$cookie_name) { foreach ($array as $text => $value) { setcookie($cookie_name."[$text]",$value,_TIME_...続きを見る
カテゴリ: PHP

頻繁に使うシーンがある文字列操作群の関数

2012-08-23 12:29:08
文字列の一部分を取り出すsubstr関数は使用するシーンが多いです。長い文章の最初だけを表示する時や、URLから一部分を切り出す時などなど。 <substr()関数 - 最後の2文字を取り出す> phpStart $str = 'http://sample.jp/cate.php?id=06'; echo substr($str, -2); //結果「06」が出力されます。 phpEnd 第2引数にマイナス値を入れれば最後からの文字が取得できます。先頭から2文字を取得する場合は正数を書けばOK。文字列が日本語の場合はmb_substr()を使用しないとバグが起きます。 ...続きを見る
カテゴリ: PHP

文字列の出力

2012-08-20 04:02:27
「echo」(エコー)はブラウザにHTMLを出力します。文字列を出力する際に「”」「’」ダブルクォーテーションかシングルクォーテーションで文字列を囲まないといけません。そのルールを説明したいと思います。 <単純な文字列の出力> phpStart echo 123456; echo '123456'; echo "123456"; echo hello!; //←エラーがでます echo 'hello!'; echo "hello!"; echo あいうえお; //←エラーがでます echo 'あいうえお'; echo "あいうえお"; phpEnd 文字列はクォー...続きを見る
カテゴリ: PHP

セレクトフォームをPHPで自動生成する

2012-08-18 19:56:38
セレクトフォームはユーザー定義関数を作って要領よく生成しましょう。編集画面の際は$now_dataに現在のデータを代入しておけば、選択された状態になります。 phpStart //47都道府県の配列 $AREA = array('北海道','青森','岩手','宮城','秋田','山形','福島','茨城','栃木','群馬','埼玉','千葉','東京','神奈川','新潟','富山','石川','福井','山梨','長野','岐阜','静岡','愛知','三重','滋賀','京都','大阪','兵庫','奈良','和歌山','鳥取','島根','岡山','広島','山口','徳島',...続きを見る
カテゴリ: PHP

md5関数でパスワードなどを暗号化する

2012-08-16 17:43:57
md5関数に文字列を与えると、その文字に準じた32文字の英数字の文字列(ハッシュ値)を返してくれます。一文字でも違う値を与えれば、全く違う文字列になり、同じ文字列なら毎回同じ文字列が返ります。 <関数の使用例> phpStart echo md5('abcd'); phpEnd <結果> htmlStart e2fc714c4727ee9395f324cd2e7f331f htmlEnd 上記の文字列から元の文字列に戻す方法はありません。一度暗号化してしまうと、暗号化した本人しか答えが分からないのです。セキュリティーを重視するサイトではデータデースにそのままパスワ...続きを見る
カテゴリ: PHP

生年月日から年齢取得

2012-08-16 07:53:01
プロフィールを登録させる際に年齢の項目を設ける場合は、年齢を入力させるのではなく、生年月日を入力してもらうのが基本です。年齢を入力させてしまうと、データ上その人はずーっと同じ年齢のままになってしまうからです。 生年月日から年齢を求めるの方法はいくつかあるみたいですが、一番短いのが以下の計算方式です。 <計算方式> phpStart $birth = 19811007; $age = floor((date('Ymd') - $birth) / 10000); phpEnd 計算方式は「(今日の日付 - 生年月日) ÷ 10000」で求められるみたいです。floor()...続きを見る
カテゴリ: PHP

動的ページのカラクリ

2012-08-13 16:48:05
PHPをゼロから始める人はfor文やif文などの構文を一通り見たけど、「で、何をすればいいの?」と足ふみをしてしまう人が多いのではないでしょうか? そんな人にまず知ってほしいのは動的ページのカラクリ。これが分かればドドドっと次から次へと課題が出てくるので、勉強が進みます。 では早速簡単な動的ページを作ってみましょう。まずは商品データが入ったログファイルを作ります。下記の例ではカンマ区切りで「ID」「商品名」「値段」という構成で一商品一列でまとめています。 <ログファイル data.log> htmlStart 1,アップル,200, 2,オレンジ,100, 3,メロン...続きを見る
カテゴリ: PHP

アフィリエイトコードを隠す際にはjump.phpを使おう

2012-08-08 17:42:45
アフィリエイトのリンクがサイト内にたくさんある場合は、隠した方がSEO的に良しとされています。では、簡単なので早速コードを見てください。 <jump.php> phpStart $link[1] = 'http://sample1.jp?afid=9999'; $link[2] = 'http://sample2.jp?afid=9999'; $link[3] = 'http://sample3.jp?afid=9999'; $link[4] = 'http://sample4.jp?afid=9999'; $link[5] = 'http://sample5.jp?afid...続きを見る
カテゴリ: PHP

thickboxでダイアログを表示する

2012-08-08 13:00:08
Jqueryのプラグインであるthickboxを使ってダイアログを表示してみよう。まずはheadタグ内でjqueryを読み込んだ後にthickbox.jsを読み込む。順番が逆だと動きません。 htmlStart htmlEnd あとはテキストリンクにclass指定でthickboxを宣言し、リンクを貼るだけで設置完了です。リンクのパラメータにはheightとwidthを必ず指定しなければいけません。リンク先はHTMLや画像、PHPでさらに独自のパラーメーターを付け足すことも可能です。 <テキストリンク~ダイアログ表示> htmlStart サンプル htm...続きを見る
カテゴリ: Javascript

文字コードの変換

2012-08-04 17:01:42
UTF-8の文字をshift_jisに変換するコードです。携帯サイトを作る場合はdocomoとauがshift_jisで作らないといけないので、文字コードを変更することがあります。EUC-JPはperl時代の時によく使用されていましが、今はUTF-8とshift_jisのどちらかしか使わないですね。 phpStart //mb_convert_encoding(文字列,変換後,変換前); mb_convert_encoding($str,'SJIS','UTF8'); phpEnd あとPCサイトでもメーラーを立ち上げるmailtoのリンクで件名と内容も付属するときはshif...続きを見る
カテゴリ: PHP

マイページや管理画面のログイン機能はセッションで導入する

2012-08-04 12:13:02
PHPでログイン機能を導入する場合はsession(セッション)というものを使います。cookie(クッキー)と似ていますが少し違います。単純に説明すると、cookieはブラウザに保存、sessionはサーバーに保存といったところでしょうか。sessionはcookieよりもセキュリティーが固いのでログイン機能ではcookieは使いません。では早速、コードを見てみてください。 <login.php> phpStart session_start(); //*1 下記説明 if($_POST['pass'] == $PASS){ $_SESSION['user'] = sessi...続きを見る
カテゴリ: PHP