PHPの挙動が訳分からない

yurikoさんにコメントいただき、XSS脆弱性なるものが生じていたので、アホになる電卓Ver,1.1は一応削除しました。
セキュリティの問題です。
指摘していただき、本当にありがとうございます ^^;

で、yurikoさんに指摘していただいたXSS脆弱性の問題と配列変数の初期化の問題を修正してみました。
コレで大丈夫かな?

ってか、タイトルどおりPHPの挙動が訳分からないんです。
とりあえず修正済みのソースと

アホになる電卓 Ver. 1.1.1

。。。

ソースコード↓

で、訳分からないのが、○の付く数の処理部分。

だとTRUEになるのに
いちいち関数を定義しないで

ってするとFALSEになるのはなぜ?
他の部分でも変数tsuku関係の部分が挙動がおかしい。。。
$_POSTに(int)つけると関数定義してもFALSEだったり。。。
全く分かりません。

誰か助言を・・・

モ(゚∀゚)━ウ( ゚∀)━( ゚)━( )━( )━ダ(Д )━メ(´Д)━ポ(;´Д)━━━!!!

更に訳の分からない事にうちのローカル環境(PHP5.2.6)で試したところどちらでもTRUEに・・・
ロリポ(PHP4.4.6)がわるいのか!?
仕様変更と言うよりはバグ?
っていうか、いい加減バージョンアップしようよ、ロリポさんよぉ。。。

“PHPの挙動が訳分からない” への4件の返信

  1. strpos(“$ans”, “$tsuku”); としてやれば大丈夫のはず

    自分もそうおもってやって見たのですが、ダメだった気が…。
    今度改めて試して見ます^^;

    アルゴリズム…効率の良いアルゴリズムを考えられるよう、精進します^^;
    PHPはWebに特化した言語だけにWeb上の情報も多いんで良いですよね。
    オンラインアニュアル、確かにあれだけでもかなり学べそうなので、ちょくちょく読んでました。
    完全読破に目指して頑張ります(笑)

    これからも、アドバイスいただけたら嬉しいです(^ω^)

    ところで…WordPressなのですが、Akismetでゆりこさん等の明らかに普通のコメントもスパム判定されたりされなかったりするのはなんなんでしょう…(汗)仕様ですかね?
    あと、新着コメントがあっても管理画面のコメントの所が0のままだったり…。

    あんまりコメントないんで(涙)アレですが、前はそんな事なかったような…。

  2. strposはinteger型は使えないのですね(汗)

    今回の場合、明示的に文字列に変換してやらないといけないでしょうね。strpos("$ans", "$tsuku"); としてやれば大丈夫のはずです。

    アルゴリズムの基礎が分かっていればプログラミングはすぐ上達しますよ。PHP はマニュアルが充実しているので、オンラインマニュアルを最初から最後まで読破してみることをおすすめします。

  3. またまた有難うございます。
    それは一応、分かっていたのですが…
    strposはinteger型は使えないのですね(汗)

    しかし、$tsukuがinteger型になったりstring型になったりするのがイマイチよく分かりません…。
    追記でも書いた通り、PHP4とPHP5でも挙動が違いましたし…。

    とりあえず、このプログラムはひとまず置いといて、基礎からちゃんと勉強したいと思います(^^ゞ
    早くyurikoさんのような一人前のプログラマに慣れるよう、日々精進いたします。

コメントを残す