マンガでよめる痔のこと・薬のこと

只今作業中で下記の現象がおき、大変困っております。(緊急を要しています)
ぜひお教えいただけると幸いに思います。

---------------
サーバを取り替えるにあたり、
移行前サーバで、正常に動作していたphpプログラムが、
移行後サーバにおいて、
Fatal error: Class strCITY not found in プログラムパス in 32
とエラーが出て、phpプログラムが正常に動作しなくなりました。

インターネットで調べた所、strCITYのところが、
phpのライブラリ(?)なら、パッケージ追加で解決した
記事を発見でしたのですが、
自分自身で生成したClassオブジェクトについて
このようなエラーの解消方法を調べることができませんでした。

移行前、後のサーバのOSはともに
Windows2003StandardEdition R2
です。
phpのバージョンは、確認方法がわからなかったので、
現時点で未確認です。
またphpプログラムは、apache、mysqlと連携しています。

どのような原因が考えられるのでしょうか?
移行前サーバで動作していたため、phpプログラム自体に
問題はないと予想しているのですが、
どこを調査すればよいか、困っています。

サーバ設定、ミドルソフト、およびphpの設定等、
ご教授いただきますようお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

スクリプトの内容が分からないのでなんともいえませんが、PHPのバージョンなどは同じですか?



<?php
phpinfo();
?>

というPHPファイルを作ってアップロードすればバージョンが確認できますよ。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2009/01/09 20:56

strCITY class が記述されたファイルをスクリプト外で読み込んでいた可能性があるかと思います。


移行前の httpd.conf や .htaccess や php.ini に変わった設定はありませんか?
たとえば
php_value auto_prepend_file "/path/to/initialize.php"
であれば、自動的にinitialize.phpが読み込まれるので
include なしに そこで定義してあるクラスを使うことができます。

移行前とスクリプトのパスが違うのなら、includeに失敗している可能性もありますが。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2009/01/09 20:54

追伸、strCITYクラスが見つからないと言ってますのでそのクラスへのパスが違うのかも。



参考URL:http://questionbox.jp.msn.com/qa4437913.html
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2009/01/09 20:55

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QParse error: syntax error, unexpected T_STRING in・・・118と出るのですが

Parse error: syntax error, unexpected T_STRING in 。。。 on line 118
とでるのですが対処はどうすればよろしいでしょうか?

Aベストアンサー

118行目をみてみてください。
ダブルクォーテーションのなかでダブルクォーテーションを使ったり
してませんか?
基本的な文法ミスなので、自己解決できないと今後きびしいですよ。

QFatal errorの解消法(windows7)

パソコン起動時にFatal error(no language file was found)の注記がでます。
OKをクリックすると正常に使用可能ですが目障りです。
原因はよくわかりませんが、ソフトウェアをアンインストールしたことに起因するかも?と考えております。
本表記の解消(削除)法が分かりません。
PCに詳しい方お教えいただければ幸いです。

Aベストアンサー

そのエラーが表示されている状態のままタスクマネージャを起動して
アプリケーションでタスク一覧を表示 エラー画面に該当するタスクがあるはずなので
マウス右クリックでプロセスの表示を行い
プロセス名が特定できたらマウス右クリックでプロパティ表示を行うと
実行モジュールの特定ができませんか?

あとは
それに我当するアプリケーションを 使ってないなら削除
遣ってるなら設定見直し・もしくは再セットアップ かな

詳細はそのアプリ作成者ではないのでわかりませんが日本語表示に必要なファイルがない
ってことでしょう(英語表記になったりするだけで動作としての問題は出ないと思います)
※ そのアプリが悪質なアプリだったらシステム動作に思いきり影響します

Qsyntax error, unexpected '}' というエラーの対処法

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" maxlength="3" />
<input type="sbumit" value=回答" />
</form>
<hr />
<?php
session_start();
if(is_null($_SESSION['answer'])){
mt_stand(microtime()*1000000);
$_SESSION['answer']=mt_rand(1,100);
$_SESSION['game_cnt']=0;
}
if($_POST['answer']!=""){
$_SESSION['game_cnt']++;
if($_session['answer']==$_POST['answer']){
print("おめでとうございます".
$_SESSION['game_cnt']."回で正解しました!");
session_destroy();
}else{
if($_SESSION['answer']>$_POST['answer']){
print("もう少し大きいです。");
}else
print("もう少し小さいです。");
}
}
}
?>
</body>
</html>
それとこの間違えたところをなおしたあとはいつもコンピュータを再起動しないと修正したところが適用されないのですがほかに方法はないですか?基本的な質問ですいません。

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" max...続きを読む

Aベストアンサー

print("もう少し大きいです。");
}else
print("もう少し小さいです。");
のelseの後に{がないようですが、大丈夫でしょうか?

QPCが起動できない

自作したPCが起動できなくなってしまいました。
スイッチを入れるとP5Bのロゴが出た後に
COMS Settings Wrong
Overclocking failed! Please enter Setup to re-configure your system.
Chassis intruded!
Fatal Error... System Halted.
この様な文章が表示されて、これ以上進みません。Deleteキーを押してもBIOS画面に入れません。
こうなる前からChassis intruded! Fatal Error... System Halted.のメッセージだけ現れることがあったのですが、この時は何度かリセットすると起動できていました。しかし、何度リセットしても起動できなくなってしまったので、自分なりに何とかしようと思いCMOSをリセットしてみました。すると最初に書いた文章が表示されるようになったしだいです。
PCの構成は
CPU:Core2Duo E6600
マザーボード:P5B
グラフィックボード:GeForce7950GT
他になにか書いたほうが良いでしょうか?
どうかよろしくお願いいたします。

自作したPCが起動できなくなってしまいました。
スイッチを入れるとP5Bのロゴが出た後に
COMS Settings Wrong
Overclocking failed! Please enter Setup to re-configure your system.
Chassis intruded!
Fatal Error... System Halted.
この様な文章が表示されて、これ以上進みません。Deleteキーを押してもBIOS画面に入れません。
こうなる前からChassis intruded! Fatal Error... System Halted.のメッセージだけ現れることがあったのですが、この時は何度かリセットすると起動できていました。しかし...続きを読む

Aベストアンサー

これかな。CHASSIS(ケース開閉検出コネクタ)
http://kakaku.aol.co.jp/aol/bbs.asp?PrdKey=05402012970&ParentID=6289071&Page=

違うマザーですが、同様にジャンパー設定を見直してみては?
http://kakaku.aol.co.jp/aol/bbs.asp?PrdKey=05402010283&ParentID=4279103

Qメールが宛先不明で戻ってきます

Outlook Expressを使っています。今まで、問題も無くメールを送れていたアドレスに送信したらThe following addresses had permanent fatal errors で戻ってきてしまいます。もちろん、相手はアドレスを変えていません。日を変えて送りなおしても同じです。どう対処したらよいのか教えてください。

Aベストアンサー

docomoでしたか。
携帯相手ならありがちですね。
http://shimax.cocolog-nifty.com/search/2005/03/550_unknown_use.html

QPHPでfatal errorが出ても無視して続行

PHPでfatal errorが出ても無視して続行する方法はありませんでしょうか?

PHPバージョン 5.3.3

@(アットマーク エラー制御演算子)を入れてやってみましたが、エラーは表示されなくなりますが、それ以降の構文が実行されません。

warningは元々次に進むので良いのですが、fatal errorの場合、そこで終了してしまいそれ以降が実行できません。

・標準出力へのエラーメッセージの表示はあってもなくてもどっちでもいい。
・parse errorに関しては今回は続行しなくてもいい。(続行しても良い。)


try{
 エラーになるコード;
}catch(Exception $e){

}
ですべてのエクセプションを拾って次へ行くという方法が有ることはわかっていますが、例外以外のエラーではそこで強制終了してしまっています。

何とかエラーの出る次の行へ進む方法は無いでしょうか?
よろしくお願いいたします。

Aベストアンサー

set_error_handler()などエラー処理をいれてみては?

http://www.php.net/manual/ja/book.errorfunc.php

たとえば、

<?PHP
print "x";
trigger_error("hoge", E_USER_ERROR);
print "y";
?>

を実行すると、xが表示された後Fortal errorが発生してyは表示されません。
こうすると、フォータルエラーをつかんで復帰します
エラーの種類によってcaseを分けて処理していけばよいでしょう。
(さすがにシンタックスエラーは回避できないとおもいますが)

<?php
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
switch ($errno) {
case E_USER_ERROR:
print "致命的なエラー つづく...<br>";
break;
default:
print "その他のエラー";
break;
}
return true;
}
$old_error_handler = set_error_handler("myErrorHandler");
print "x";
trigger_error("hoge", E_USER_ERROR);
print "y";
?>

set_error_handler()などエラー処理をいれてみては?

http://www.php.net/manual/ja/book.errorfunc.php

たとえば、

<?PHP
print "x";
trigger_error("hoge", E_USER_ERROR);
print "y";
?>

を実行すると、xが表示された後Fortal errorが発生してyは表示されません。
こうすると、フォータルエラーをつかんで復帰します
エラーの種類によってcaseを分けて処理していけばよいでしょう。
(さすがにシンタックスエラーは回避できないとおもいますが)

<?php
function myErrorHandler($errno, $errstr, $errfile...続きを読む

Qfatal error LNK1120: 外部参照 1 が未解決です

またわからないことが・・・
教えて下さい。
以下をVC++2005でコンパイルすると、

MSVCRTD.lib(crtexew.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。
C:\Documents and Settings\tomato\My Documents\Visual Studio 2005\Projects\a\Debug\a.exe : fatal error LNK1120: 外部参照 1 が未解決です。

と警告がでて通りません。
何のことでしょうか。

#include<stdio.h>
#include<process.h>

struct meibo{
  char name[20];
  char tel[20];
  char address[20];
};

void message( void );
void input( FILE *fp, int cnt , struct meibo *a, int *end );

void main( void )
{
  struct meibo a[20];
  FILE *fp;
  int cnt, end;

  if( (fp=fopen( "meibo.dat", "w" ) ) == NULL ){
    printf( "Can not open the meibo.dat.\n" );
    exit( 1 );
  }

  message();

  fprintf( fp, "番号, 名前, TEL, 住所\n" );
  fflush( fp );

  cnt = 0;
  end = 0;
  while( end == 0 ){
    input( fp, cnt, &a[cnt], &end );
    cnt++;
    fflush( fp );
    if( cnt == 20 ){
      printf( "人数が一杯です.終了します.\n" );
      end = 1;
    }
  }
  fclose( fp );
}

void message( void )
{
  printf( "名前, TEL, 住所, endを入力してください.\n" );
  printf( "継続の時はend=0," );
  printf( "中止の時は,end=1と入力してください.\n" );
}

void input( FILE *fp, int cnt, struct meibo *a, int *end )
{
  printf( "名前-->" );
  scanf( "%s", a->name );
  printf( "TEL -->" );
  scanf( "%s", a->tel );
  printf( "住所-->" );
  scanf( "%s", a->address );
  printf( "Exit? Continue:0 Exit:1 -->" );
  scanf( "%d", end );
  printf( "\n" );
  fprintf( fp, "%2d, %s, %s, %s\n",
    cnt+1, a->name, a->tel, a->address );
}

またわからないことが・・・
教えて下さい。
以下をVC++2005でコンパイルすると、

MSVCRTD.lib(crtexew.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。
C:\Documents and Settings\tomato\My Documents\Visual Studio 2005\Projects\a\Debug\a.exe : fatal error LNK1120: 外部参照 1 が未解決です。

と警告がでて通りません。
何のことでしょうか。

#include<stdio.h>
#include<process.h>

struct meibo{
  char name[20];
...続きを読む

Aベストアンサー

http://www.a.math.ryukoku.ac.jp/~hig/course/compsci2_2005/man/faq.html
にある現象と同じではないでしょうか、一度お試しください。

Qphpのエラーについてです

mysql上のデータをphpでブラウザに表示するコードを書いています。
下記のプログラムを実行した所
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampplite\htdocs\shop\index.php on line 18
というようなエラーが表示されます。
本の通りに進めているので間違っていないはずなんですが・・
どこが成立していないのでしょうか???

<?php
mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_select_db('mydb');
mysql_query('SET NAMES UTF8');

$recordSet = mysql_query('SELECT m.name, i.* FROM makers m, my_
items i WHERE m.id=i.maker_id ORDER BY id DESC');
?>

<table width="100%">
<tr>
<th scope="col">ID</th>
<th scope="col">メーカー</th>
<th scope="col">商品名</th>
<th scope="col">価格</th>
</tr>
<?php
while ($table = mysql_fetch_assoc($recordSet)) {
?>
<tr>
<td><?php print(htmlspecialchars($table['id'])); ?></tb>
<td><?php print(htmlspecialchars($table['name'])); ?></tb>
<td><?php print(htmlspecialchars($table['item'])); ?></tb>
<td><?php print(htmlspecialchars($table['price'])); ?></tb>
</tr>
<?php
}
?>
</table>

mysql上のデータをphpでブラウザに表示するコードを書いています。
下記のプログラムを実行した所
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampplite\htdocs\shop\index.php on line 18
というようなエラーが表示されます。
本の通りに進めているので間違っていないはずなんですが・・
どこが成立していないのでしょうか???

<?php
mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_select_db('mydb');
mysql_query('SET NAMES UTF8');

...続きを読む

Aベストアンサー

『C:\xampplite\htdocs\index.php の第18行に誤りがあります。』
『mysql_fetch_assoc() は、第1パラメータがリソースであるべき』のエラーです。

18行目がどこかわからないが
『while ($table = mysql_fetch_assoc($recordSet)) {』多分これかな?

『$recordSet』がSQLの結果になっていないためエラーになってます。
原因は、いろいろ
1.DBにデータがない、
2.DBのフィールドとSELECT文が一致していない
3.接続先のDBを間違えている。
4.そもそもPHPでMYSQLが使えない(PHP.iniでロードしてない)
などなど、
「mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_select_db('mydb');
mysql_query('SET NAMES UTF8');
$recordSet = mysql_query('SELECT m.name, i.* FROM makers m, my_

それぞれの関数の実行結果を確認するようにすれば、どこで原因があるのかわかると思います。
調べてみてください。

あと、「mysql_fetch_assoc() expects parameter 1 to be resource」で検索するとそれなりに情報がヒットしますよ
(英語も多いですが、そこは雰囲気で確認してみるべし)

『C:\xampplite\htdocs\index.php の第18行に誤りがあります。』
『mysql_fetch_assoc() は、第1パラメータがリソースであるべき』のエラーです。

18行目がどこかわからないが
『while ($table = mysql_fetch_assoc($recordSet)) {』多分これかな?

『$recordSet』がSQLの結果になっていないためエラーになってます。
原因は、いろいろ
1.DBにデータがない、
2.DBのフィールドとSELECT文が一致していない
3.接続先のDBを間違えている。
4.そもそもPHPでMYSQLが使えない(PHP.ini...続きを読む

Qなぜ、unexpected T_VARIABLEになるのでしょうか? 

WindowsXP機に、PHP5とPEARを入れています。
あるWebサイトに記述されている下記のサンプルスクリプトをコピペして(PEARは絶対パスに書き換えて)実行しましたが、次のエラーが出ます。全角スペースは入っていませんし、原因が分かりません。
なぜ、unexpected T_VARIABLEになるのでしょうか? どのようにすれば解決できるでしょうか?
エラー
Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in C:\Program Files\Apache Group\Apache2\htdocs\HQuickForm_test\QfrmSmpl.php on line 14

サンプルスクリプト一部抜粋:
<?php
require_once("C:\php\PEAR\HTML\QuickForm.php");
class QfrmSmpl{
var $_form;
function QfrmSmpl($sbmtAct){
$this -> _form = new HTML_QuickForm("frmSmpl","post",$sbmtAct); }
function setForm(){
$this -> _form -> addElement("text","txtName","名前(全角日本字):");
$this -> _form -> addElement("text","txtEname","名前(半角英字):");
$this -> _form -> addElement("text","txtEmail","E-mail:");
$this -> _form -> addElement("text","txtEmail2","E-mail(確認用):");
$this -> _form -> addElement("textarea","txtrComment","コメント:");
}
$this -> _form -> applyFilter(__ALL__,"trim");
$this -> _form -> addRule("txtName","名前を入力!","required", null, "client");
$this -> _form -> addRule("txtEname","半角英字で入力!","alphanumeric", null, "client");
$this -> _form -> addRule(array("txtEmail","txtEmail2"),"メールアドレス不一致!","compare", null, "client");
$this -> _form -> addRule("txtEmail","無効なメールアドレス!","email", null, "client");
$this -> _form -> addRule("txtrComment","コメントを入力!","required", null, "client");
$this -> _form -> setRequiredNote("<font color='red'>*</font>必須入力");
}
以下略

WindowsXP機に、PHP5とPEARを入れています。
あるWebサイトに記述されている下記のサンプルスクリプトをコピペして(PEARは絶対パスに書き換えて)実行しましたが、次のエラーが出ます。全角スペースは入っていませんし、原因が分かりません。
なぜ、unexpected T_VARIABLEになるのでしょうか? どのようにすれば解決できるでしょうか?
エラー
Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in C:\Program Files\Apache Group\Apache2\htdocs\HQuickForm_test\QfrmSmpl.php...続きを読む

Aベストアンサー

検索したら似たようなスクリプトがあったんですが
http://digit-01.com/ownpage/ownpage_quickform.html
これの
//フォーム入力チェックの定義(, null, "client")で、クライアント側でチェック function checForm(){
は function checForm(){ の前で改行が必要なようです

QボタンをクリックでPHP文を実行

ボタンをクリックしたときのみPHP文を実行したいのですが・・・

<input type="button" onClink="<?php~?>">
でいけるかと思ったのですが、
ページ表示時に<?php~?>が実行されてしまい、うまくいきませんでした。

onClink="window.open(test.php)"
という方法以外でお願いします。

Aベストアンサー

AjaxはもともとJavaScriptの機能である非同期通信をつかったもので。Ajaxという言語があるわけではありません

Ajaxを利用するのであれば、JavaScriptのXMLHttpRequestを使って非同期通信できるような実装をしなくてはなりません
簡単にサンプルコードで書けるほど単純なものでもありません

一般的なサーバーサイドスクリプトの動作として、
ボタンを押す->サーバーへリクエストする->サーバーが処理する->クライアントに何かしらの結果を返す(出力する)です
つまり、PHP等のサーバーサイドスクリプトは、遷移させることが大前提で動作します

ですから、ボタンを押してその場でJavaScriptと同じようにPHPが動くなんてことはありえません。
ボタンを押したらサーバーにリクエストする という動作ならば可能です。

つまり
質問で言われているような
onClink="window.open(test.php)"

<form name="f1" action="test.php" method="post">
<input type="submit" name="submit" value="submit" />
</form>
等のような形になります

こういった一般的な方法だと いちいち画面が切り替わったようになってしまうのを嫌って Ajaxでコレと同じことを、画面を切り替えずに行っているだけに過ぎません

AjaxはもともとJavaScriptの機能である非同期通信をつかったもので。Ajaxという言語があるわけではありません

Ajaxを利用するのであれば、JavaScriptのXMLHttpRequestを使って非同期通信できるような実装をしなくてはなりません
簡単にサンプルコードで書けるほど単純なものでもありません

一般的なサーバーサイドスクリプトの動作として、
ボタンを押す->サーバーへリクエストする->サーバーが処理する->クライアントに何かしらの結果を返す(出力する)です
つまり、PHP等のサーバーサイドスクリプトは、...続きを読む


人気Q&Aランキング