締切済み PHP3からPHP5にVerUpすると動作しない 2006/09/07 15:55 PHP3からPHP5へバージョンアップするとプログラムが正常動作しなくなりました。 includeファイル内に記述している関数が全く動作しなくなりました。 修復する方法をご存じの方、教えてください。 みんなの回答 (2) 専門家の回答 みんなの回答 k1-nishi ベストアンサー率100% (1/1) 2006/09/16 01:16 回答No.2 詳細がわからないのでピントを外しているかもしれませんが、PHP4のバージョンいくつだったか忘れましたが、 ソース中で、$hogeなどのような形で、フォームからわたってきた変数を直接参照できなくなりました。 もしフォームから送信された変数の内容を$_REQUEST['hoge']などのような正式な形ではなく、$hogeのような形で参照するようになっていたら、確実に動かなくなります。 php.iniで register_globals = On とすれば、$hogeのような形式での値の参照が可能になりますので、確認をなさったほうがいいかと思います。 質問者 お礼 2006/09/22 14:02 回答ありがとうございます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 galluda ベストアンサー率35% (440/1242) 2006/09/07 17:33 回答No.1 がると申します。 んっと…多分色々とあるのですが。 例えば http://www.php.net/manual/ja/migration4.php http://www.php.net/manual/ja/migration4.empty.php http://www.php.net/manual/ja/migration4.missing.php http://www.php.net/manual/ja/migration4.variables.php あたりをご覧頂くと少し見えてくる部分もあるかと。 ただいずれにしても「移行ツールとか使って右から左に」というわけには行かないと思います…が、PHP3は現状、なんぼなんでも…なので。 お早めの移行を強くお勧めいたします。 質問者 お礼 2006/09/22 14:01 回答ありがとうございます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発PHP 関連するQ&A ssiをhtmlで動作させる為、htaccess内に以下のような記述を ssiをhtmlで動作させる為、htaccess内に以下のような記述をしました。 AddHandler server-parsed .html これでhtmlのままSSIは正常に読みこまれました。 しかしながら、これによりSSIを読み込んでいる同じファイル内にphpを以下のようにインクルードしているのですが、これが正常に読み込まれなくなりました。 <?php include"../../../php/123123.php" ?> SSIを読み込ませつつ、上記phpを正常に動作させる方法はないでしょうか。 ちなみにサーバーはロリポップです。 宜しくお願いします。 system関数でphpが動作しない phpプログラムからphpプログラムをバックグラウンドで動作させようと下記のようにsystem関数を使いましたが、phpが動作しませんでした。 system("/usr/local/bin/php /home/user/www/test.php > /dev/null &"); 「動作しない」様子が、異常でして、コマンドラインからtopで調べてみると、phpのプロセスIDが何度も立ち上がり、上記関数があるプログラムをサーバーから消さないと、その状態が続きます。しかし、プロセスは立ち上がっても、phpプログラムは正常に動作していなようです。 さくらインターネット(スタンダード)の共用サーバーを使っています。サーバーのOSは、FreeBSD 4.10です。 よろしくお願い致します。 PHP includeについて 今、下記のようなサーバサイドのプログラムを作成しており、 解決できずに困っております。 【環境】 CentOS5 [PHP5] sakuraインターネット レンタルサーバ スタンダートプランです。 参考:http://www.sakura.ne.jp/rentalserver/matrix.html 【概要】 cronよりinclude関数を含むPHPファイルを実行、 そのPHPファイル内から他dirに保管されているテキストを参照し、 外部ASPへ文字列を送信する、という内容です。 理想としては、 cron1よりphp1を実行し、 php1に記載されている下記、 include 'phpA'; include 'phpB'; これら2行を完結させる事です。 しかしphpAは正常動作するのですが、 phpBは正常に動作せず、理想と異なる結果になります。 テストとして、下記を実行しました。 ★test1 php1のinclude関数を入れ替える。 include 'phpB'; include 'phpA'; 結果:phpBは正常動作、phpAにエラー。 ★test2 cron1よりphpAのみを実行 cron2を追加しphpBを実行 結果:phpA&B共に正常動作。 ★test3 test1と同じ構造でphp1を次のように変更。 include 'phpA'; sleep(30); session_unset(); $_SESSION = array(); session_destroy(); session_start(); include 'phpB'; 結果:phpAのみ正常動作。 上記の通り、cronを2種作成すれば理想の結果が返るのですが、 仕様上それは採用できず、あくまでphp1のみをcronより実行する 必要があります。 セッション・変数をリセットする必要があるのかと test3を試しましたが結果は同じでした。 尚、私はPGを専業としておらず質問に不適切な記載があるかと存じます。 お知恵をお借りできますと幸いです。 よろしくお願い致します。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム php動作環境について phpサンプルプログラムでphp4.3.7で動作確認と書いてありました。サーバーはphp4.4.7なのですが動くのでしょうか? 一応サーバーにアップしたのですが、うまく動きません。プログラムが間違っているのか、サーバーが合わないのか、設定方法が間違っているのかがわかりません。初心者ですいませんがご回答お願いいたします。 PHPのバージョン PHPのバージョンについて教えてください。 レンタルサーバー会社から、PHP5へのバージョンをアップするとの メールが来ました。 私の理解では、バージョンがアップすると追加された関数と 使えなくなった関数があるくらいで、基本的には問題なく動作するくらいの理解ですがどうでしょうか? 問題点、変更点など教えてください。 htmlファイルにPHPとCGIを埋め込む ロリポップサーバーをレンタルしてサイトを開設しています。 現在.htaccessファイルに下記のコードを記述して.htmlファイルにPHPのコードを埋め込んで実行させています。 「AddType application/x-httpd-php .htm .html」 これは問題なく動いているのですが、別に.htmlファイルにCGIのコードを記述し動作させたいと思っているのですが、これは可能でしょうか? .htmlファイルのまま、PHPとCGIのコードを一緒に記述し動作させたいです。 .htaccessで上記のコードの下に「AddType application/x-httpd-cgi .htm .html」というコードを記述してみましたが、動作はしませんでした。 埋め込みは下記のようにしました。 「<!--#include file="cgiファイルまでのパス" -->」 ご存知の方いらっしゃいましたらご教示ください。 よろしくお願いします。 PHPの includeについて? 現在、レッツPHPさんの新着ブロガーを設置しようと試みています。 -------------------- rss/new/index.html /PEAR.php /rssup.php /XML/Parser.php /XML/RSS.php ------------------------ 上記のようなファイル構造で、index.html内に<?php include("rssup.php"); ?>を記述しているのですが、何も起きません。 ※rssup.phpは、正常に動いていてRSS情報の取得は出来ています。 設置方法通りに<?php include("rssup.php"); ?>を記述するだけでは、駄目なのですか? どなたかご教授いただけないでしょうか? PHPの慣習的な書き方・組み方について PHPの面白さが分かってきて、コツコツ演習しているのですが、気になることが いくつかあるので質問しました。 問1 PHPは変数宣言をしなくていい、ということで驚いています。 でも、PHPプログラマーの方って、慣習的にどんな変数にしていますか? 接頭辞のようなものを付けているのでしょうか? たとえば、name とするよりも strName のほうが、なんとなく分かりやすいような気がします。 このあたりは、どうなのでしょうか? 問2 a.php b.php c.php という3つのファイル内では、同じ関数を使っているとします。こんなとき、それぞれのファイルに 同じ関数を書き込むよりも、ひとまとめにしたほうがいいと思います。 たとえば、function.php なんてファイルを作って、a.php、b.php、c.php の各ファイルの冒頭で、 include して、関数を使うたびに呼び出したほうが、読みやすくなると思いました。 なんでもかんでも、ひとつのファイルに書いてしまうと、メインの処理がどうなっているのか、分から なくなるので、このあたりは、慣習的にどんな書き方をしているのかなと思って質問しました。 問3 問2とややかぶりますが、入力チェックなども関数化して、別ファイルにまとめて記述するものでしょう か? そして、必要になったら呼び出してチェックする。このあたりは、どんな書き方をしていますか? 問4 自作の関数、ファイルの名付け方について。 自分で作った関数を命名する際に、f_ とか fun ではじまる接頭辞を付けるものでしょうか? 他者の書いたプログラムを参考にしていると、突然、知らない関数が出てきて、自作の関数だと気付く ことがあります(接頭辞が付いていれば、もっと早く気付いたと思います)。 また、php_editor なる便利なツールがあったので、使い始めたのですが、プロジェクト名やphpファイル、 関数ファイルのファイル名には、なんらかの規則性をもたせていますか? たとえば、プロジェクト名なら、pro と接頭辞をつけたりしますか? という質問です。 組み方が我流になる前に、実際に仕事で使っている方は、慣習的にどんな書き方をしているのか知りたいの ですが…。 よろしくおねがいします。 Apacheが正常動作するVistaPCへのphpインストール タイトルの通りApache2.2をVsitaOS搭載のPCにインストールして正常に動作しました。 そこへphp5をサイトの指示通りに設定し、手動インストールしました。 しかし、試しにテスト用に「<? phpinfo(); ?>」だけを記述したtest.phpファイルを作成、htdocsフォルダに設置し、 http://localhost/test.phpにアクセスしてみたのですが、 正常動作を示す画面がでず、なぜかtest.phpファイルをダウンロードすることになってしまいました。 以前にXPOSのPCでインストールしたときには成功したので、不思議で仕方ありません。 どなたか解決方法をご存知の方はいないでしょうか? 以下のサイトを参考にし、両方試してみましたが同じ結果でした。 http://tech.kimihiko.jp/article/4536555.html http://allabout.co.jp/internet/database/closeup/CU20040928A/ phpで扱えるファイルサイズ お世話になります。 以下の環境で2GBを越えるファイルを対象にfile_exists()やis_file()関数を使うと正常に判定してくれません(ファイルが存在していてもFalseが返る)。コンパイルのオプションやPHPのバージョンアップで解消できるでしょうか?また、他に影響がありそうな関数がありましたら示して頂けると助かります。 <環境> FedoraCore4 (kernel 2.6) php 5.0.4 PHPをhtmlで読み込ませるには? index.htmlファイルのbodyのなかに 共通のファイルとして メニューのphpファイルをインクルードさせたいのですが、 拡張子がhtmlだとphpが動作しなくて、 拡張子をphpにすると動作します。 拡張子をhtmlのままメニューのphpファイルを動作させるにはどうすれば良いのでしょうか? かなり初歩的な質問ですが、ご返答をよろしくお願いいたします。 PHP3で作ったプログラムをPHP4、PHP5で動作させる事は可能ですか PHP3で作ったプログラムをPHP4、PHP5で動かすことは可能でしょうか?例えばあるサイトがPHP3を未だに使用していたとします。もしPHP4,5でPHP3時に書いたプログラムが動けばいいのですが、動作はするでしょうか?もし動かなければ少しずつチューニングしていくより、一気に4,5で書き直した方がはやいでしょうか? AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム require Auth.php require 'Auth/Auth.php'; の動作について教えてください。 サンプルソース a.php に、 「require 'Auth/Auth.php';」と冒頭に記述してありました。 PEARだと思うのですが、結局この記述は、 a.phpに、 (1)Auth.phpの内容を取り込む? (2)Auth.phpの内容を継承する? どちらの解釈の方が正しいのでしょうか? 今までrequire だと、指定したphpの内容を取り込む((1)番だと)だと認識していました。 以下ソースのように動作してると思っています。Auth.phpも同じ動作と思っていいものなのでしょうか。 ・test.php <?php echo "start!!\n"; include("include.php"); echo "end!!\n"; ?> ・include.php <?php echo "include start!!\n" ?> ●実行結果 start!! include start!! end!! PHP4にて別のサーバーにあるファイルのサイズを取得する 同じサーバーにあるファイルの場合 filesize(...)関数でファイルのサイズを取得できますが、 サイズを知りたいファイルが別のサーバーにある場合は どのように取得すればよいのでしょうか? PHP5ならばget_headers(...)関数が使用できるようですが、 PHP4ではこの関数は使用することができないようなので、 どうすればいいものか困っています・・・。 ちなみに、下記URLの参考では取得できませんでした。 (ローカル環境のPHP5では正常に動作しますが・・) http://ml.php.gr.jp/pipermail/php-users/2006-December/031391.html 方法をご存じの方がいらっしゃいましたら、 宜しくお願いします phpの記述につきまして phpの記述につきまして データベースから <? echo $file_name; ?> で $file_name に ****.php の値が呼び出されるのですが include の記述で <?php include("<? echo $file_name; ?>"); ?> と言う風に 利用表示するとエラーになってしまします。 include("ここにDBからのPHPファイル名を呼び出したい!") とするには どのように記述すれば宜しいでしょうか? ご教授いただければ幸いに存じます。 php3からphpを呼び出し、POSTデータを渡す方法 何時もお世話になります。 今回質問させて頂きたいことは php3のスクリプトからphpスクリプトを呼び出し、さらに phpスクリプトはPOSTデータを渡す方法は無いか教えて頂きたいです。 環境は FreeBSD4 apache_1.3.33 php-3.0.18-i18n-ja-3 php-4.3.7 です。 仮に呼び出し元のphp3のファイルをexample.php3 呼び出し先のphpのファイルをhoge.php として解説します。 example.php3から include、require等の関数で hoge.phpを呼び出した場合、hoge.phpは php3として実行される様なのでこの方法は×。 example.php3でvirtual()関数を使い、hoge.phpを呼び出せば 解決かと思ったのですがPOSTデータをhoge.phpに 渡す方法が無いためこの方法も×。 php3ではSESSIONが使えないため、SESSION + virtual()関数という 方法も×。 ということでちょっと手詰まりの状態です。どなたか解決方法をご存知の 方ご教示頂ければと思います。 PHPの中にPHP? 例えば <?php $all_array = array( "1", "2", "3", "4", "5", "6", "7", "8", "9", ・ ・ ・ という記述をした時に、"1"、"2"に他で作ったphpファイルを呼び出して表示させることは出来ないのでしょうか? 今までは単純に<? include("○○.php"); ?>で呼び出していたのですが、これは使えませんよね? よろしくお願いします。 PHP4からPHP5の移行対応の調べ方について php初心者なので文章が変かもしれませんがご了承ください。 自社HPが入っているサーバーの会社からメールがきました。 「php4が提供終了します。php4のみに対応したプログラムをご利用のお客様は影響があります。php5に対応したプログラムにしてください」 自社HPの管理者がいない状態になっているので、できることをやってみました。 1,自社のHPをサーバーからGETした。 2,HPを全部見たらPHPという記述とファイルがあること(お問い合わせのページ)がわかった。 困っていること その1、まずこの記述がバージョン何(php4とかphp5)で書かれているかがわからない google で「php バージョン 調べ方」などをやってみたが書かれていることが理解できません。 その2、php4からphp5の対応で確認することの説明が理解できません。 説明の中に、たとえば「array_merge」と書かれていれば、それがあるかないかはわかる。 でも「オブジェクトの渡し方が参照渡しに変更」などの記述は理解できない。 質問 phpのコーディングを見て(開いて)バージョンを判別する方法知りたい のと 初心者でも対応できる方法など書いてあるサイトなどを知りたい (ググったけど今のところ理解できるページが見つからない) 文章が変かもしれませんがよろしくお願いします。 PHPが動作しません DebianにApache2とPHP5をインストールしました。 初期設定のまま何も設定していない状態です。 w3m http://localhost にてテストページが表示されることは確認できました。 しかし、index.htmlと同じ場所に入れたテストファイル(hello.php)が うまく表示されず、ファイルのダウンロードになってしまいます。 コマンドは w3m http://localhost/hello.php です。 Linuxは初心者で、右も左もわかりません。 (今回も勉強のためです) 設定を確認しようにも、どこをチェックしたらよいのかもわからず、 他のホームページを見てもPHPはデフォルトで動作するように記載があります。 hello.phpの内容です。 <html> <head> <title>PHP Test</title> </head> <body> <?php echo '<p>Hello World</p>'; ?> </body> </html> 少し気になるところは、apach2-mpm-workerというものが、aptitude searchで pになっています。 PHPをインストールする際にiになっていないといけないような記載をみつけたのですが、 PHPと競合してしまい、両方をインストールすることができません。 これが関係しているのでしょうか・・・? ちなみに、それぞれの細かいバージョンは確認の方法がわかりませんので、 「バージョンがわからなけれ答えようがない!」ということであれば、確認方法を お教えください。 PHPのフレームワークについて くだらない質問かも知れませんがどうかお付き合いください。 宜しくお願いします。 10年前にPHPでプログラムを書いた事があり、急遽PHPで開発をしなくてはいけなくなりました。 そこでフレームワーク(CakePHP等)を使用した方がいいのかを調査していますが・・・ お恥ずかしい話なんですがよくわかりませんでした。 私が作成していた時はインクルードファイル(変数や関数等)を作成して、それをPHPファイル内で呼びだしてプログラムを作成していました。 今回、フレームワークをネットで閲覧しても「簡単にできる」みたいな記事を目にしたりします。 ちょっといじってみましたが難しいというか、面倒くさい感じがしました。 わたしだけでしょうか。 些細な事でも何でも構いませんのでアドバイスいただけませんでしょうか。 宜しくお願いします。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
回答ありがとうございます。