スポンサードリンク オープンされたファイルに書き込むには、fwrite()、fputs()関数を使います。 fwrite( ファイルハンドル , 出力データ , [ サイズ ] ) fputs( ファイルハンドル , 出力データ , [ サイズ ] )
セッションとは Webアプリケーションにおけるセッションとは、「ユーザーのアクセスに対してユーザー毎に変数を保持する」、「複数のページ間で、変数の共有を可能にする」とあります。Webサイトを訪れた訪問者が行う一連の行動や、その行動を通じてやり取りされる情報などがセッションにあたります。 PHPでは、セッションを理解することが重要なポイントになるので、ここではセッション管理の仕組みを分かりやすく解説していきます。 クッキーの章でも解説しましたが、Webデータのやり取りには、HTTPプロトコルというWebブラウザとWebサーバ間で交わされるインターネットプロトコルが使用されています。HTTPプロトコルには、状態を保持する機能がなく、ユーザー(ブラウザ)が連続的に複数回のアクセス(Webページの表示)をしても、サーバ側はそれを特定のユーザーの連続したアクセスと認識せず、複数のユーザーが複数回
MAMPでPHPの勉強をしようと思ったら、日本語が文字化けしてしまいました。 こちらの記事「MAMPの文字化けを治し日本語が表示されるようにする.MacビギナーPrograming」を参考にさせて頂き、無事文字化けが直りました。MAMPのバージョンによってファイルが入っている位置が少し変わっているようですのでそれも合わせてメモです。 私がインストールしているMAMPはデフォルトのPHPが Version 5.3.6 が入っているバージョンのものです。 手順 MAMPのデフォルトのエンコーティングがUTF-8ではないようなので、それを修正します。 Finderから、”アプリケーション” → ”MAMP” → “bin” → “php” → “php5.3.6” → ”conf” の順に開き、”conf” の中の”php.ini”のファイルをテキストエディタで開きます。 ”php.ini”のフ
PHP の振る舞いの変更APCu — APC User CacheComponereエラー処理 — エラー処理およびログ記録FFI — Foreign Function InterfaceOPcache出力制御 — 出力バッファリング制御PHP Options/Info — PHP オプションと情報phpdbg — 対話的な PHP デバッガrunkit7uopz — Zend に対するユーザー操作WinCache — PHP 用の Windows キャッシュXhprof — 階層型プロファイラYac音声フォーマットの操作OpenAL — OpenAL 音声バインディング認証サービスRadiusコマンドライン関連Readline — GNU Readline圧縮およびアーカイブBzip2LZFPharRar — Rar アーカイブZipZlib — Zlib 圧縮暗号Hash — HASH
htmlspecialchars ( ) でセキュリティ対策( ENT_QUOTES もね!) PHPのhtmlspecialcharsにはENT_QUOTESを付ける。 htmlspecialchars でXSS対策をしていたと思ったら、デフォルトでは シングルクオートをエスケープしてくれない(マニュアル参照) htmlspecialchars($str, ENT_QUOTES); ENT_QUOTES を指定することで、シングルクオートも ' にエスケープ出来ます。 ZAPAブロ〜グのZAPAさんの指摘するh関数を定義してフレームワークなどに組み込んでおくのがスマートなのかもしれませんね→htmlspecialchars関数を簡単にする 意外に知られていないかもしれないので、念をのため紹介しておきます。(知っている人はごめんなさい) その危険な例をしめしてみます。 例えば、h
特殊文字を HTML エンティティに変換してくれるhtmlspecialchars関数。 PHPでは基本中の基本である関数でありながら、名前の長さやオプションの設定などが面倒で困ったものです。「htmlspecialchars」は覚えられても、オプションの「ENT_QUOTES」まで覚えるのはなかなか大変だったりします。でも、ここで手を抜くと簡単に脆弱なアプリケーションができあがってしまう危険性があります。特にユーザーからの入力には、手軽にがっちり入力保険をかけておくべきです。 そんなわけで、htmlspecialcharsを簡単に扱えるようにする方法を考えてみました。 お知らせ:PHP5.4にて、htmlspecialchars()関数に互換性の問題が出てきましたので、当ページでも第三引数に文字コードを指定するコードに変更しました。以下、第三引数の"UTF-8"の部分は、利用中の文字コー
第 8 回は、POSTとGETという方法を使ったデータの受け取りについてお話します。 申込みフォームなど、Webページからデータを入力するページがありますよね? 今回はその仕組みについてお話いたします。 例えば、以下のような名前とブログ名を入れるフォームがあります。 入力して送信ボタンをクリックすると以下のように表示されます。 (○○や△△は入力した文字列です。) これらはどのように送信されているのでしょうか? ではまず、データ送信の方法についてお話します。 WebブラウザからPHPへのデータ送信方法のうち、代表的なものは以下の2種類です。 POST form要素(<form>タグ)のmethod属性がPOST GET form要素(<form>タグ)のmethod属性がGET PHPプログラムでデータを受け取る変数(配列)は以下の通りです。 $_POST $_POSTは、POST形式のH
去年の話ですが、海外でこんな記事が上がっていました。 20 Tips you need to learn to become a better PHP Programmer 記事の内容は、かなりレベルが低いです。 しかし、初心者のうちに知っておけば、より早く成長出来るでしょう。 初心者PHPerのために、この記事の翻訳を載せます。 20 Tips you need to learn to become a better PHP Programmer PHPは、同じオブジェクトの扱い方でも複数の書き方を持っている、とても気まぐれなプログラミング言語だ。 詳しくは、私の書いた”The Art of Programming“を読むと良い。 これから書くTipsは、過去のプロジェクトから私が学んだコードの可読性、メンテナンス性を上げ、あなたを素晴らしい、より進んだPHPプログラマーにするもの
こんにちはこんにちは!! Webプログラミングしてますか! よく「PHPはセキュリティがダメ」とか言われてるよね。 でもそれって、べつにPHPが悪いんじゃなくて、 たぶん、セキュリティとかが、まだよくわからない人が多いだけなんじゃないかな。 がんばって勉強しようと思っても、なんだか難しい理屈が並んでいたりするしね…。 なので今日は、セキュリティ対策について、 「これだけやっとけば、わりと安全になるよ」ってことを、初心者むけに、大雑把に書いてみます! 理屈がわからなくても、最初はコピペでも、 なにもやらないより、やったほうがきっとマシになる! 1. XSS対策 動的なものを表示するとき、全部エスケープすればokです! (NG) あなたの名前は <?= $name ?> ですね! ↓ (OK) あなたの名前は <?= htmlspecialchars($name, ENT_QUOTES) ?>
条件式を評価し、TRUEであれば式1、FALSEであれば式2を返します。 if..elseの構文ににていますが、if文とは異なり三項演算子は演算子の1つですので結果として式を返します。if文のように条件に応じた処理を記述するのではない点に注意して下さい。 実際には次のように記述します。
Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su
オプションの引数 min,max を省略してコールした場合、rand() は 0 と getrandmax() の間の擬似乱数(整数)を返します。 例えば、5 から 15 まで(両端を含む)の乱数を得たい場合、 rand(5, 15) とします。 警告 この関数が生成する値は、暗号学的にセキュアではありません。そのため、これを暗号や、戻り値を推測できないことが必須の値として使っては いけません。 暗号学的にセキュアな乱数が必要な場合は、Random\Randomizer を Random\Engine\Secure と一緒に使いましょう。簡単なユースケースの場合、random_int() と random_bytes() 関数が、オペレーティングシステムの CSPRNG を使った、 便利で安全な API を提供します。 注意: (Windows のような)いくつかのプラットフォームでは、g
現在の PHP の状態に関する、多くの情報を出力します。出力される情報には、 PHP コンパイルオプションと拡張モジュール、PHP のバージョン、 サーバー情報と環境(モジュールとしてコンパイルされた場合)、 PHP の環境、OS バージョン情報、パス、構成オプションのマスター およびローカルの値、HTTP ヘッダ、PHP License などがあります。 システムの設定はそれぞれ違うため、実行時設定 や 利用できる 定義済みの変数 を調べるために phpinfo() がよく使われます。 また、phpinfo() には EGPCS (Environment, GET, POST, Cookie, Server) の情報が含まれているため、デバッグツールとしても便利です。 パラメータ flags 以下にあるconstantsビット値をひとつまたは 複数個を加算して、オプションのflags引数
New CakePHP 5.0 Chiffon. Faster. Simple. Delicious. What's new in version The migration guide has a complete list of what's new in. We recommend you give that page a read when upgrading. A few highlights from 5.0 are: PHP 8.1 required. Improved typehints across the framework. CakePHP now leverages union types to formalize the types of many parameters across the framework. Upgraded to PHPUnit 10.x
phpで変数の値の有無について判別する場合、isset()やempty()やif文にそのまま変数だけ書いたりします。 この判別がゆるゆるで、例えば empty('0') は string が入ってるのに true で空っぽ扱いです。 確かにゼロですけどね。 柔軟で人間らしいという声もあるけど、シビアに判別したい時は、勘違いしてたら怖いので一々ドキュメントを確認しないとだったりします。 この柔軟性に加えて、タイトルにもあるとおり4種類の判別方法があって、人によって使うのが違ったりするのでちょいちょい混乱します。 実は判別方法は4種類じゃなくて2種類だった さっきも、ちょっと分からなくなってドキュメントを見てたんですが、いい加減把握しようとおもってよーく見てたら気がつきました。 <?php isset($foo) === !is_null($foo); ($foo) === !empty($f
否定の!、is_null()、isset()、empty() の細かな挙動の違いをすぐ忘れるのでメモ。 check() という関数を作り、「空文字」「文字列の0」「数値の0」「false」「null」「空の配列」で動作確認を行った。 動作確認で使用したコード <?php $empty_str = ''; $str0 = '0'; $int0 = 0; $false = false; $null = null; $empty_array = array(); check('empty_str', $empty_str); check('str0', $str0); check('int0', $int0); check('false', $false); check('null', $null); check('empty_array', $empty_array); function ch
知りませんでした。こういう使い方ができるんですね。 <?php $string = 'The quick brown fox jumped over the lazy dog.'; $patterns[0] = '/quick/'; $patterns[1] = '/brown/'; $patterns[2] = '/fox/'; $replacements[2] = 'bear'; $replacements[1] = 'black'; $replacements[0] = 'slow'; echo preg_replace($patterns, $replacements, $string); ?> 結果:The bear black slow jumped over the lazy dog. 普通にphpのマニュアルに載ってることなんですが、何かに使えそうな気がします。 http:
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く