• 締切済み

PHP4.4.2→5.2.8 表示されません

こんにちは。PHP初心者です。 サーバ移行にともない、PHPのバージョンが4.4.2から5.2.8に変更になりました。 動作確認をしていたのですが、一部表示されていない箇所があります。 例えば、 ------------- http://www.URL/list.php?hen1=aaa ------------- というURLがあったとして、 list.phpの中に ------------- if($hen1 == "aaa") $title= 'タイトル'; ------------- という記述があります。 PHP4.4.2の時は該当の箇所に「タイトル」の文字列が表示されていましたが、現在は表示されていません。 このPHPは過去の担当者が作成したもので、前述の通り、私はPHPが全く分かりません。 もしお分かりの方がいらっしゃいましたら、ご教授いただけると助かります。 よろしくお願いいたします。

みんなの回答

回答No.3

どういうサーバ設定なのか分かりませんが、 例えばPHPの設定で、magic_quotes_gpcがonだったりすると、 特定の値はエスケープされます。 (5.2.8でそういう設定をしているとは思えないですが・・・) それを除去せずに比較しているのか、などと。 考えればキリがありません。 出ないということは、対象のif()または値の設定箇所、もしくは print、echoしている部分に問題があるから出ないわけなので、 その辺がサーバ移行によって正常に動作しているかを1つ1つ デバッグしながらなどして調査しましょう。 そもそも、それが仕様的にOKなのではないか? if()の直前にecho $hen1;exit;をしたらどう出力されるのか? $titleをechoまたはprintしてる前に$titleが書き換わっていないか? 結構、サーバ移行は、仮にレンタルサーバなどの移行だったとする場合、 環境が同一でないにも関わらず、ファイルをアップロードすれば 済むと思いがちですが、環境によって左右される部分もあるので、 設定回り、プログラム自体にアクセスできる人間が調べないと分かりません。 古い資産を動かそうとしてると、ソースがおかしくてそういうのに つまづいちゃって怖いですね。

全文を見る
すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

まさかとは思いますがphp.iniのregister_globalsをonにしていました? http://www.URL/list.php?hen1=aaa でアクセスされると、自動で変数$hen1が発生するイメージでしょうか? もしそうならセキュリティ的にありえない状態なので、適合部分の修正が必要です。 $hen1=isset($_GET["hen1"])?$_GET["hen1"]:""; のような解釈をいれてください。 社内向けのサービスなどセキュリティ的に甘くてかまわないなら 前述のとおりregister_globalsをonにするだけでいけるかもしれませんが 非常に危険だということを理解しておいたほうがよいでしょう。

全文を見る
すると、全ての回答が全文表示されます。
  • t_ohta
  • ベストアンサー率38% (5094/13314)
回答No.1

質問に書かれているif文自体には問題が無いと思いますので、その前で行っている処理か、最終的に出力を行っている処理の部分に問題があるのではないかと思います。 出力されたページのどこかか、サーバ上のログファイルにエラーメッセージが出ていると思いますので、エラー内容を確認しましょう。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 文字列の一致について

    URLのデータベースがあるとします。 例えば http://hogehoge.com/aaaa/ http://hogehoge.com/aaa/ http://hogehoge.com/bbb/ http://hogehoge.com/ccc/ URLにある文字列が含まれていたら、○○を表示すると言う処理をしたいと思っています。 例えばURLに「aaa」の文字列を含まれている時、「あああ」を表示しようとすると、最初に登録されている「http://hogehoge.com/aaaa/」に該当してしまいます。 「aaa」であれば、http://hogehoge.com/aaa/に該当して、「あああ」を表示させるようにできないでしょうか? 要するにURLに「aaa」が含まれていたら、「http://hogehoge.com/aaaa/」ではなく、「http://hogehoge.com/aaa/」に該当して、「あああ」を表示させる。 今は $url =~ /aaa/ のように「=~」を使用しています。 $url =~ /\/aaa\// のようにするしかないでしょうか。 アドバイスを御願いします。

    • ベストアンサー
    • Perl
  • PHPの記述につきまして

    PHPの記述につきまして <? echo $kansu; ?> と記載されている $kansu の値が 定型でaaa1,aaa2,aaa3といった aaaと数字で構成されています。 そこで echo で書きされる値から aaa を削除して、数字部分だけを echoで書き出したいのですがどのように記述すればよいでしょうか? シンプルな記述方法をご教授いただけましたら幸いでございます。

    • ベストアンサー
    • PHP
  • 簡単なPHPスクリプトを動的に生成したい

    PHPスクリプトを動的に生成することは可能でしょうか? たとえば [ index.php ] <html> <head></head> <body>  <?php   print file_get_contents('format.txt');  ?> </boy> </html> [ format.txt ] echo "aaa"; のようにスクリプトをformat.txtに記述しておき それをindex.phpを読み込んだときに展開するのです。 しかし、上記のスクリプトを実行するとecho "aaa";と表示され、 aaaとは表示してくれませんでした。 PHPでこういう動的にスクリプトを展開するようなことは出来ないのでしょうか?

    • ベストアンサー
    • PHP
  • PHPのif文について質問なのですが、

    PHPのif文について質問なのですが、 凡ミスなのか、完全に違ってるのか 自分ではもう分からなくて質問しました! $aaa=5; if(($aaa) != (1 or 2 or 3 or 4)){ print "違うよ"; } $aaaの値が1、2,3,4ではないときはとしたいのですが、 orがうまく効きません。 if(($aaa) != (1)){ print "違うよ"; } これはプリントが出ます。 orの書き方間違ってますか? よろしくお願いします!

    • ベストアンサー
    • PHP
  • PHPで?が消えない現象が起きます。

    PHPで?が消えない現象が起きます。 index.phpにheader.phpを <?php include(header.php); ?> のようにincludeすると header部分の記述が始まる直前に?が表示されます。 header部分がおかしいのかなと思って "aaa"とだけ記述してみても同じように"?aaa"と表示されてしまいます。 余分な?の文字も無いですし、文字コードも統一しています。 基本的なことを見落としているのかもしれません・・・。 どうかお助けくださいm(_ _)m

    • ベストアンサー
    • PHP
  • phpで24時間おきに任意のテキストを表示

    index.phpに、list.txtから一日ずつ異なる行を表示するにはどうしたらよいか教えてください。 index.php は<p>本日のおすすめは「○○○」</p> list.txtには1行目から順にメニューリスト からあげ弁当 りんごケーキ 焼き魚定食 ・・・・ index.phpの○○○の部分に記述するPHPを知りたいです。 例えば4/1にこのURLにアクセスすると、リストの1行目(からあげ弁当)が表示されており、 4/2にアクセスすると2行目(りんごケーキ)、 4/3は3行目…という感じです。 当方あまり詳しくないため、お分かりの方、どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • php→JavaScript間の変数受け渡し

    phpで文字列を入れた変数をJS側に渡して、アラートで表示させるために、下記のソースを作成しました。ボタンを押したらアラートが出ると想定して作成しました。 ※フレームワークにcakePHPを使用しています。 ------------------------------------------------------------------------ <?php $aaa = 'abc'; echo '<input type="button" onClick="xxx()">'; ?> function xxx() {  var bbb = <?php echo $aaa ?>;  alert(bbb); } ------------------------------------------------------------------------ しかし、上記の記述では正常にアラートが表示されません。 そこでいろいろ試してみた結果、 「$aaa = 'abc';」ではなく、 「$aaa = '111';」や「$aaa = 111;」だと正常にアラートが表示されました。 このことから、数字や数値だとうまくいくことがわかりましたが、今回は文字列の受け渡しを行ないたいと考えています。 何かご存知の方がいらっしゃいましたら、アドバイスを頂けると幸いです。 備考 当たり前なのかもしれませんが、 「var bbb = <?php echo $aaa ?>;」ではなく 「var bbb = 'abc';」とjs側で文字列を直接入力すると、アラートは正常に表示されました。 変数で文字列を渡す方法がわからず、半日ほど時間を使ってしまいました。 本当によろしくお願いします。

    • ベストアンサー
    • PHP
  • phpコードの戻り値をhtmlファイルに入れるには

    こんばんは。 質問は.htmlファイルからphp関数を直接呼べるか否か、 呼べないとしたら.cgiなどを利用すればよい? 引数なしのphp関数の戻り値を.htmlの一部に出力させるにはどうしたら よいかです。 phpで作成したfunction fnc_test(){return "aaa";}の値を aaa.html内に出力させたいのです。 aaa.phpファイルにだったらecho fnc_test();で表示されると思うのですが、 aaa.htmlに<body>fuc_test();</body>とやってももちろんphpが起動せず、表示されませんよね。 同じ事をさせたいときにaaa.htmlを新しく作成すれば(phpにて"aaa"と書いたaaa.htmlと言う名前のファイルを作成)できると思うのですが、 動的に一部だけ変更するためにはjavascriptを利用するとか、cgiを利用(cgiでラップする?)しなければやっぱり駄目なのでしょうか? .htmlファイルにサーバ上でphpの関数の戻り値(テキスト)を組み込むのにはどうしたらよいですか?できたらjavascriptは使いたくないのですが。 乱文すみません。ご回答宜しく御願いします。

    • 締切済み
    • PHP
  • リンク先から他のページへ飛ぶことはできないでしょうか。

    いつもお世話になります。 a.htmlの中でgetURL("#aaa");を含むswfファイルを表示します。 swfの該当箇所をクリックすることによりa.htmlのaaaへジャンプします。 しかし、このa.htmlが大きくなりすぎてa.htmlと、b.htmlに分けます。 リンク先aaaが、b.htmlになってしまったとき リンク先をgetURL("b.html#aaa");と書き直しswfをパブリッシュし直せばそれで済むことですが、a.htmlを書き直すだけでb.html#aaaへとばすことはできないものでしょうか。 jabascript、phpなど使用できます。 a.htmlに仮にリンク先aaaを設け、この箇所を工夫することでなんとかならないものかと考えてみましたがわかりません。 おわかりになる方見えましたらよろしくお願いいたします。

  • PHPで変数から1行目だけを取得したい

    変数に格納されたデータの1行目のaaaだけを取り出す方法を教えてください。 ※データはWEBサイトのURLリストで常に変動します。 複数行のデータ(\n区切り) 例) aaa   bbb   ccc 又は1行の半角カンマや半角スペースなどの文字で区切られたデータ 例) aaa, bbb,ccc,    aaa bbb ccc 上記のどちらかの形式で変数$dataに格納が可能です。 この$dataに格納されたaaaだけを取得するにはどうしたらいいのでしょうか? PHP初心者のためプログラムソースを書いていただけると助かります。

    • ベストアンサー
    • PHP