PHP開発
PHPで多分初めてSQLiteを使おうと思ってます。 SQLiteドライバから直接クエリを投げてもいいんですが、PDO(PHP Data Object)というDBアクセスの抽象化レイヤがあるみたいで、これを使うとどのデータベースを使っているかを気にすることなく使え、DBを移行…
PHPでログイン画面を使って、ログインし後はセッションを使って認証状態を確認するような、いわゆる普通の会員向けのページを作ってます。 で、久しぶりのPHPでだいぶセッションやら認証やら忘れてました。 とりあえず、テンプレートエンジン Smarty を使っ…
PHPで配列の値をデバッグするときは、print_r関数を使うと思います。 しかし、普通に print_r(配列変数) だけでは結構見にくいです。 1次元配列なら、まだいいんですが、多次元配列になると何が何やら といった感じになってしまいます。(特にPHPはDBからのク…
PHPで配列に要素があるかどうかの存在チェックです。 今回はスーパーグローバル変数 $_POST に、'key' という要素があるかどうかのチェックをしたいと思ってます。 この場合、array_key_exists 関数を使うといいようです。 if (array_key_exists('key', $_PO…
現在作成中のPHPスクリプトを複数のレンタルサーバに配備する予定です。 テンプレートエンジンに、Smarty を使い、テンプレートファイル(HTML),PHPファイル共に文字コードは UTF-8 を使用予定で、その文字コードで記述しています。 で、とあるレンタルサーバ…
phpでベーシック認証 - bnoteを参考にし、PHPのheader関数を使って、Basic認証をするコーディングをしてたんですが、どうもうまくいきません。 WWW-Authenticate ヘッダ送信後に認証ダイアログが表示されるべきなのですが、そこをスルーし401のヘッダ送信部…
レンタルサーバのXServer上で動かしてるXOOPSが真っ白になっているということで調査開始しました。 まず、PHPエラーを調べるために、phpMyAdmin で MySQL の xoops_config テーブル conf_name列= debug_mode レコードの conf_value の値を1にします。 これで…
(PHP)携帯電話でGPS位置情報取得したいの続きです。 最終的にしたいことは、携帯から取得したGPS座標から任意の距離内にある施設(DBに登録)を探したいということです。 DBに置いておく施設情報には、位置情報が入っていないといけないため、緯度、経度を入れ…
携帯電話でのGPS位置情報の取得方法です。(ほとんど参考元リンクまんまですが。。) まず、Net_UserAgent_Mobile という PEAR クラスライブラリを使って、キャリア毎にGPS位置情報送信リンクを作成してやります。 今回は Docomo なら FOMA かつGPS機能付き携…
PHPでSmartyを使った携帯向けページを表示してたんですが、変数デバッグをしたいと思い、Smarty表示前に echo で変数をauの携帯で表示さすと、「リクエストされたページは表示できません」って怒られれます。 (PCでは普通に表示されます。) で、調べてみると、…
(PHP)携帯のキャリア振り分け方法で書いたように、PEARのNet_UserAgent_Mobileパッケージをレンタルサーバ上で使う予定です。 しかし、今回使用予定の共用レンタルサーバ(XServer)は PEAR が入っていません。 ということで、共用レンタルサーバへのPEARイン…
ユーザーエージェントを使って、各キャリアを判断したいと思ってます。 できれば、GPSのありなしや 3G かどうかなども知りたいと思ってます。(今回の要件が、位置情報取得用のリンクを張るというものなので。。) 手で書く方法もあるんですが、面倒なので Ne…
今回 PHP と Smarty でモバイル向けWEBサイト作ってるんですが、やはりセキュリティ対策は講じないといけません。 とりあえず、XSS,SQLインジェクション対策としてサニタイズをしようかと思います。 (まぁモバイル機上ではスクリプト動くことはあんまりない…
isset() と array_key_exists() とが使えるようです。 isset() の場合、キーがあっても値が null だと false が返るようなので、 array_key_exists() を使ったほうがいいようです。 詳しくは、参考先を。。。 参考: kotori::log 連想配列のキーチェック そふ…
(cakePHP)MySQL保存時に文字化けしないようにする。でも書いたんですが、MySQL接続時のクライアント文字コードをしていする SET NAMES クエリですが、これはSQLインジェクションにつながる可能性があるらしく、使わないほうがいいらしいです。 変わりに、5.2…
PHP側からDBで取得した値を2次元連想配列としてアサインしたときに、Smartyテンプレートにどう書くかです。 ドットで(.)で連想配列名(クォーテーションなし)でアクセスできるようです。 ●テンプレート側 {section name=iCnt loop=$inputAry} 1列目:{$inputAr…
ひさしびりのPHPです。 Smartyを使って簡単なモバイルサイトを作ることになりました。。 ということで、今まで何回もやったけど時間経つと忘れる Smarty のインストールメモです。 まず、Smarty公式サイトからダウロード。 そして、ダウンロードしたアーカイ…
新しい案件でオープンソース SNS で定番らしい OPEN PNE を使うかもしれないので、実行環境作ってみました。 まず、OpenPENダウンロードページからダウンロードします。 今回使ったのは安定版となっていた、 OpenPNE Ver.2.14.1 です。 解凍した中の setup/O…
(PHP)PHPでファイルをダンロード(アクセス制限付き)とかぶってる内容ありです。 現在下記のような感じでダウンロードページを構築していました。 ダウンロードボタン押下→サンクスページに遷移→ファイル保存ダイアログが開く。 ちょうど、ベクターのダウロー…
久しぶりにメンテのため CakePHP 触ったのですが、使い方ほとんど忘れかけてますorz とりあえず、DBの商品テーブルから取得した項目に対して価格順に並べ変えて欲しいという依頼だったので、調べたら、findAllの引数で指定できるんですね。 下記のように第三…
(cakePHP)コントローラからモデルにアクセスで、1.2RCへのバージョンアップメモを書くと書いたまま忘れてたので、いまさらですが、upしときます。 と、いっても当時(10か月前)の作業メモがちょっとしかなかったので、そこに書いてる範囲内のないようです。 …
(CakePHP)$form->textareaはサニタイジングしてくれない!?の追記で $this->data 全体をSanitize::cleanしてましたが、どうやらこれはバリデート使っている時はまずいみたいです。 たとえば、バリデートでメールのチェックを定義し、Sanitize::clean($this->d…
CakePHP1.2 CakePHPは基本的に $form->input 等でデータを入力するときは htmlspecialchars() でサニタイズしてくれます。 が、なぜかテキストエリアをする $from->textarea() だけはサニタイズしてくれません。 なので、容易にクロスサイトスクリプティング…
CakePHPのポケットリファレンス見てるとヘルパーのところでメソッドの引数に「$htmlAttributes=array() 要素の属性」とあるヘルパーが結構あります。 CakePHP ポケットリファレンス たとえば link ヘルパーの定義は下記のようになっていますが、やっぱり htmlA…
コントーラー側で findAll で複数のレコードを取得しそれをそのままビューに渡したときにビューでループ処理できないと不便ですよね。 また、これはあんまり好ましくないかもしれませんが、条件分岐もビューでできるようです。 下記のような感じになります。…
現在のURL(ドメインよりも下の)を取得する方法です。 下記の環境変数で行けるみたいです。 $_SERVER['REQUEST_URI'] /download.php みたいな値が帰ってきます。 ちなみに、PHPでURLを取得するによると、実行してるスクリプトのパスを取り出すためには、 $_SE…
通常のphpだと date("Y年 n月 j日" , $timestamp) というようにタイムスタンプの値をdate関数に渡してやれば指定したフォーマットの文字列が帰ってきます。 で、cakePHPでは日時は文字列で持っているので、 strtotime 関数で一旦日付をタイムスタンプ型に戻…
CakePHP1.2 $fomm->inputヘルパー で'type'=>'date' で日付を入力するコンボボックスを作れますが、デフォルトだと値が本日の日付となってしまいます。 これを選択されていないように空とするには下記のようにすればOKです。 echo $form->input('Member.mem_…
最近のauやソフトバンクならクッキーを使える(ゲートウェイでクッキーつけてるっぽい?)ので問題ないのですが、厄介なのはドコモです。 ドコモはクッキーも使えませんし、HTMLのほうも、CSSが全く利用できません。 つくづく、独自規格をいくキャリアですね。…
CakePHPで携帯向けのサイト作っていたのですが、データを登録してもページ更新しない限りは表示内容が更新されません。 調べるとやはり、キャッシュっぽいです。 ということで、携帯電話のキャッシュを無効にする方法です。 こちらを参考にさせてもらいまし…