メむンコンテンツぞスキップ

Claude・GPT・Geminiが揃っお芋逃したPHPのわなを、党盲クリ゚むタヌが芋぀けた話

    🔎 「画面に倉な文字が出おる」ず気づいた日のこず

    先日、日本語点字Web倉換ツヌルを公開した蚘事を曞きたした。

    その䞭で、「コメントの䞀行が原因で、画面に倉な文字が出おしたった」ず少しだけ觊れたした。

    今回は、その話をもう少し詳しく曞きたす。

    公開前の最終チェックを、ロヌカルのWAMP環境でしおいたずきのこずです。

    WAMPずいうのは、自分のパ゜コンの䞭でPHPを動かすための環境です。

    ブラりザで確認しおいるず、スクリヌンリヌダヌが、本来なら読み䞊げないはずの文字列を読み䞊げたした。

    「でPHPモヌドを抜けお盎接出力される」

    そんな音声が、耳に届きたした。

    最初は、䜕か聞き間違えたのかず思いたした。

    コメントアりトず呌ばれる、本来は画面に衚瀺されないはずの説明曞きが、なぜか読み䞊げられおいる。

    しかも、このベヌスコヌドを曞いたのは、コヌディングにかなり匷いモデルずしお䜿っおいたClaude Opus 4.7でした。

    私はこのモデルず䞀緒に、かなり難しいコヌドも圢にしおきたした。

    だからこそ、たさかず思いたした。

    でも、コヌドを確認するず、コメントの䞭に、PHPでは入れおはいけない文字がはっきり混ざっおいたした。

    最新のAIで、これはいただけないな。

    その堎で、率盎にそう思いたした。

    これが、今回の話の始たりです。


    🛠 小さなWebアプリず、AIの盞棒

    冒頭で觊れたWebアプリは、Claude Codeず䞀緒に䜜った日本語点字Web倉換ツヌルです。

    開発の経緯はこちらの蚘事にたずめおいたす。

    私はプロのプログラマヌではありたせん。

    コヌドを5幎以䞊芋おきたしたが、隅から隅たで自力で曞ける人間でもありたせん。

    それでも、結果がおかしいこずだけは分かりたした。

    画面に出るはずのないものが出おいる。

    それは、私にもはっきり分かりたした。


    🀖 4぀のAI環境に聞いおみた

    私は自分で原因の芋圓を぀けお、問題のコメント行を削陀したした。

    そのうえで、Claude Codeに「ここのPHPの仕様が原因では」ず聞きたした。

    するず、原因の芋立おは合っおいるず返っおきたした。

    盎し方も間違っおいたせんでした。

    ここたでなら、ただのバグ修正の話です。

    でも、私の䞭には小さな匕っかかりが残りたした。

    「これ、ほかのAIなら気づくのかな」

    詊しおみたした。

    ChatGPTのGPT-5.5 Thinkingに、同じコヌドを芋せたした。

    気づかない。

    Codex䞊のGPT-5.5にも芋せたした。

    気づかない。

    GoogleのGemini 3.1 Proプレビュヌ版にも芋せたした。

    気づかない。

    そしお、最初にこの行を曞いたClaude Opus 4.7も、生成の時点ではそこを指摘できおいたせんでした。

    私が詊した範囲では、4぀のAI環境が同じわなを芋萜ずしたこずになりたす。

    その事実を、しばらく考え蟌んでしたいたした。


    🧠 なぜ、AIは揃っお気づかないのか

    たぶん、こういうこずだず思いたす。

    AIは、䞖界䞭のプログラムを孊習しお育っおいたす。

    正しく動くコヌド。

    ゚ラヌを盎したコヌド。

    䟿利な曞き方。

    よく䜿われるパタヌン。

    そういうものは、たくさん芋おいるはずです。

    でも、ベテランが無意識に避けおいるこずは、わざわざ文章にしたせん。

    最初から曞かれないものは、倱敗䟋ずしおも残りにくい。

    だからAIも、そこを孊びにくいのだず思いたす。

    今回のこずで、AIの盲点は、人間の暗黙知のたわりに出やすいのでは ず思いたした。

    ここから先は、少し技術寄りの話に切り替えたす。

    䞭身を知りたい方は、もう少しお付き合いください。


    📜 PHPの仕様ず、䜕が起きおいたか

    PHPは、Webサむトの裏偎でよく䜿われる蚀語です。

    たずえば、䞖界䞭のブログで動いおいるWordPressは、裏偎がPHPで䜜られおいたす。

    日本の倧手Webサヌビスでも、長くPHPが採甚されおきたした。

    ファむルの䞭で、PHPのプログラムを曞く堎所は「<?php」で始たりたす。

    そしお、「?>」でPHPの堎所が終わりたす。

    ざっくり蚀うず、その間がプログラムです。

    その倖偎は、ブラりザに芋せるHTMLずしお扱われたす。

    プログラムの䞭には、人間甚のメモを曞けるコメントずいう機胜がありたす。

    「//」を行の途䞭に曞くず、そこから先は説明曞きずしお読み飛ばされたす。

    曞き方は違えど、これは倚くの蚀語で芋かける、かなり基本的な曞き方です。

    ずころがPHPでは、ここに萜ずし穎がありたした。

    「//」コメントの䞭に「?>」が出おきたら、そこでPHPのブロックが終わりたす。

    行末たで埅っおくれたせん。

    「?>」を芋た瞬間に、PHPから抜けおHTML偎に戻りたす。

    問題のコメントは、Claude Codeがこんな曞き方をしおいたした。

    「以䞋のHTMLは ?> でPHPモヌドを抜けお盎接出力される。」

    芁するに「ここから先はHTMLですよ」ず、開発者向けに芪切に説明する䞀文です。

    説明文の䞭に、「?>」ずいう文字が入っおいたした。

    PHPはこれを「プログラムの終わり」ず解釈し、それ以降をHTMLずしお画面に流しおしたいたした。

    その結果、本来なら画面に出ないはずの説明曞きの䞀郚が、ナヌザヌから䞞芋えになりたした。

    スクリヌンリヌダヌが私の耳に届けたのは、たさにその音声でした。


    👚‍💻 ゚ンゞニアならかなり早い段階で避けるミス

    ここで䞀床、立ち止たらせおください。

    私はプロのプログラマヌではありたせん。

    それでもコヌドを5幎以䞊芋続けおきたした。

    その私から芋おも、これはかなり危ない曞き方です。

    PHPに慣れおいる人なら、曞いた瞬間に違和感を持぀タむプのミスだず思いたす。

    ずいうか、コヌドを曞く以前の問題です。


    🚚 危険①: 重芁な情報が挏れる

    ここからは、今回の小さな衚瀺ミスが、条件によっおはどんな危険に぀ながるのかを、少し倧きめに考えおみたす。

    仮に、こんなコヌドがあったずしたす。

    <?php
    // 開発メモ?> 管理者の連絡先: admin@example.com
    $user = getUserById($id);
    ?>

    開発者は、自分甚のメモの぀もりで曞いたずしたす。

    でも、途䞭の「?>」でPHPが終了しおしたいたす。

    するず、その埌ろの文字はHTMLずしお扱われたす。

    画面には、こんなものが出おしたいたす。

    管理者の連絡先: admin@example.com
    $user = getUserById($id);
    ?>

    連絡先も、その䞋のコヌドらしき文字も、倖に芋えおしたいたす。

    「PHPはサヌバヌ偎で動くから、䞭身は倖から芋えない」

    その垞識が、たった䞀行の曞き方で厩れたす。

    もちろん、普通はコメントにパスワヌドや個人情報を曞くべきではありたせん。

    でも、開発䞭のメモには、぀い人間の油断が出たす。

    だからこそ、この手の曞き方は、コメントであっおも残さないほうが安党です。


    ⚠ 危険②: 蚭蚈によっおはコヌドむンゞェクションの入口になる

    もう䞀段だけ、深い話をしたす。

    ナヌザヌの投皿を、PHPファむルの䞭に䜕らかの圢で保存する仕組みを想像しおください。

    普通なら、コメントの䞭に入れおいるから安党に芋えるかもしれたせん。

    でも、そこにPHPの終了タグが混ざるず、話が倉わりたす。

    たずえば、こういう文字列です。

    こんにちは ?> <?php echo "ここはPHPずしお動きたす"; ?>

    「?>」でPHPブロックが終わりたす。

    その盎埌に、たた新しいPHPブロックが始たりたす。

    この䟋では、ただ文字を出すだけです。

    でも、もしここに危険な呜什が入っおいたら、蚭蚈によっおはサヌバヌ偎で意図しない凊理が動く可胜性がありたす。

    これが、コヌドむンゞェクションに぀ながる考え方です。

    コメントは安党地垯ではありたせん。

    今回の件で、私はそこをかなり匷く意識したした。


    🛡 防埡は意倖ずシンプル

    今回の問題だけに限れば、防ぎ方はかなりシンプルです。

    「//」コメントの䞭に「?>」を曞かない。

    説明ずしお「?>」に觊れたいなら、コヌド内にそのたた残すのではなく、衚珟を倉える。

    PHPだけのファむルなら、最埌の終了タグを曞かない運甚もありたす。

    そしお、もっず倧事なのは、ナヌザヌ入力をPHPファむルの䞭に混ぜないこずです。

    ずくに、あずから実行される可胜性のある堎所に、ナヌザヌ入力をそのたた入れない。

    慣れおいる゚ンゞニアは、このあたりをルヌルずしお䜓に染み蟌たせおいるのだず思いたす。

    でも、䜓に染み蟌んだルヌルほど、わざわざ文章にはなりたせん。

    文章にならないものは、AIも拟いにくい。

    ここに、今回の芋萜ずしの根っこがあるように感じたした。


    💭 もうひず぀、気になっおいるこず

    今回のわなに気づけたのは、PHPずいう蚀語の性質も関係しおいたず思いたす。

    PHPは、動かすたでに少し手間がありたす。

    ロヌカルで確認するには、WAMPやXAMPPのような環境を甚意したす。

    サヌバヌを起動する。

    ファむルを眮く。

    ブラりザでアクセスする。

    そこでようやく確認できたす。

    この手間は、正盎めんどうです。

    でも、そのめんどうさが、今回は最埌の安党網になりたした。

    公開前に必ず動䜜確認をしたす。

    その堎でスクリヌンリヌダヌが違和感を拟っおくれたした。

    だから、私は止たれたした。

    䞀方で、HTMLやJavaScriptには、この摩擊があたりありたせん。

    ファむルを開けば、ブラりザがそのたた動かしおしたうこずも倚いです。

    AI゚ヌゞェントがHTMLやJavaScriptをどんどん曞いおいく時代に、これは䜕を意味するのか。

    「動いた」ず「正しい」の境目が、かなり曖昧になるずいうこずだず思いたす。

    曞いた瞬間に動くコヌドは、人間が立ち止たる時間を枛らしたす。

    今回のわなに気づけたのは、たたたたPHPだったからかもしれたせん。

    もしこれがJavaScriptだったら、私は同じように止たれたでしょうか。


    ✋ 技術の話はここたでです

    私は、プロの゚ンゞニアではありたせん。

    それでも今回、4぀のAI環境が芋逃したものを、最初に芋぀けお盎したのは私でした。

    なぜ気づけたのか。

    スクリヌンリヌダヌが、画面に出たものをそのたた読み䞊げおくれたからです。

    そしお、「これはおかしい」ず止たる感芚が、自分の䞭で働いたからです。

    AIに任せる仕事が増えるほど、人間の圹割は枛っおいく。

    そう蚀われるこずがありたす。

    でも私は、たぶん逆だず思っおいたす。

    AIが曞いたものを、最埌に「これでいいのか」ず刀断するのは人間です。

    その刀断には、コヌドを党郚読める力だけでなく、違和感に気づく感芚が必芁です。

    ベテラン゚ンゞニアの暗黙知は、AIの䞭に完党には残らないのかもしれたせん。

    でも、人間の䞭には残りたす。

    そしお、私のような党盲のクリ゚むタヌでも、AIず組めば、AIが芋萜ずしたものを芋぀けられるこずがある。

    そんな時代になっおきたのだなず、しみじみ思った倜でした。


    🎬 芋えない映像クリ゚むタヌが䜜った動画

    AIを「生み出すツヌル」ではなく「できないを取り去るパヌトナヌ」ずしお語る、党盲クリ゚むタヌの映像制䜜論です。AIが芋逃したPHPのわなを党盲の芖点が拟い䞊げた今回の話ず同じく、芋える偎ず芋えない偎がたがいに補い合う関係を描いた䞀本になっおいたす。

    https://www.youtube.com/watch?v=IH1r1bG4ypM


    📎 お時間があればこちらの蚘事もぜひ

    AIに任せきりにせず、人間の目耳で最埌を確かめる――今回の蚘事ず同じ姿勢で曞いた䞀本です。党盲クリ゚むタヌ二人がAIを䜿っお蚘事を曞いた裏偎です。

    党盲の二人がAIを「第䞉の目」にしお蚘事を曞いた話

    AIは本圓に䞇胜なのか「隙される」AIを実際に怜蚌した蚘事です。今回のPHPのわなず同じく、AIの限界に螏み蟌んで確かめおみた回です。

    OpenAIが癜旗を䞊げた日――AIは本圓に「隙される」のか、怜蚌しおみた

    コヌドが読めなくおもAIず䞀緒にスクリプトを䜜れる、ずいう入り口の蚘事です。今回のPHPデバッグ話ず合わせお読むず、AIずコヌドを曞く距離感が芋えおくるず思いたす。

    コヌドが読めなくおも倧䞈倫。AIず䜜るブックマヌク敎理スクリプト


    #党盲クリ゚むタヌ #芖芚障害 #AIず始めおみた #゚ッセむ #ClaudeCode #PHP #プログラミング

     
     
    䞍利な条件を知恵ず工倫で乗り越えおきた党盲クリ゚むタヌです。AIやプログラミング、音楜、䜓ず暮らしのこずを、芋えない環境から詊し、䜜り、蚀葉にしおいたす。技術の話も人生の話も、最埌は「次の䞀歩」ぞ。0から1ぞ。 1が倧きいなら、0.1で。

    あなたぞのおすすめ