ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

ぼくらXOOPSer & XOOPS Cuberコミュの【質問】warning〜がでて画面がみれなくなってしまいました><

  • mixiチェック
  • このエントリーをはてなブックマークに追加
うぇblog2 がリリースされたというので、
さっそくドリームウィーバーでアップロードをしてみましたところ
画面に
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /〜中略〜/modules/protector/class/protector.php on line 45
がでまして画面にこの文字のみが表示されたままになっています。
何か間違ったのかもしれないとすぐに、ftpからモジュールを削除したのですが、上記のwarning が消えず、依然画面が表示できません。(当方、mac で、safariを使用しています)

ちなみに、サイトurlは、http://cocokara-design.com です。
protecter.php 45行目をftpでみてみますと、そのあたりは、
// Preferences (for performance, I dare to use an irregular method)
$result = mysql_query( "SELECT conf_name,conf_value FROM ".XOOPS_DB_PREFIX."_config WHERE conf_title like '_MI_PROTECTOR%'" , $conn ) ;
if( mysql_num_rows( $result ) < 5 ) return false ;
$this->_conf = array() ;
while( list( $key , $val ) = mysql_fetch_row( $result ) ) {
$this->_conf[ $key ] = $val ;
}
とこう書かれていまして、何をどうしたらいいのかがわからず、
困っています。

ちなみに、protecter.phpの属性は、644となっています。


また、現在は、サイト管理画面にログインすることもできません。
権限が無いとでます。(You don't have the right to access this area )

どなたか、お分かりになる方がいらっしゃいましたら
是非、お力をお貸しください。よろしくお願いいたします。

コメント(9)

大抵の場合、queryが失敗しているのに、エラー処理が実装されてないことが原因です。正常終了したと決め打ちして値を参照しようとしているわけですね。
なので、mysql_queryの発行直後に、以下の処理を付け加えて本当のエラー内容を確認してみてください。
if ($result===FASLE||mysql_error($conn)) {
print("mysql:query:error(".mysql_errno($db)."):".mysql_error($conn)."<BR>\n");
exit();
}
# おおかた、テーブルが無いとか、カラムが無い ということだとは思いますが・・・その辺の確認はphpmyadminを使用し、ほんとーに内容であれば、モジュールのインストールに失敗してないか確認してみてください。
うぇいくさん
本当に、メールありがとうございました。

早速、下記のようにいれましたところ
// Preferences (for performance, I dare to use an irregular method)
$result = mysql_query if ($result===FASLE||mysql_error($conn)) {
print("mysql:query:error(".mysql_errno($db)."):".mysql_error($conn)."<BR>\n");
exit();
}
( "SELECT conf_name,conf_value FROM ".XOOPS_DB_PREFIX."_config WHERE conf_title like '_MI_PROTECTOR%'" , $conn ) ;
if( mysql_num_rows( $result ) < 5 ) return false ;
$this->_conf = array() ;
while( list( $key , $val ) = mysql_fetch_row( $result ) ) {
$this->_conf[ $key ] = $val ;
}

今度は、
Parse error: parse error, unexpected T_IF in /〜中略〜/modules/protector/class/protector.php on line 44

と表示されるようになりました。
これが、本当のエラーの意味なんですね。

phpmyadminを開いてみたのですが
すみません。どうしたらいいのかわからなくて・・・・。

また、parse error も検索して調べているのですが
いまだ、解決にいたりません。

また、admin.php に入ることもできていません。

次に何をしたらいいのか?
どなたかお知恵をお借りできませんでしょうか?

どうぞ、よろしくお願いいたします。
自己レスで経過報告します。

検索で、Parse error: parse error, unexpected T_IF in とは
if文の前の行の末尾に';'が抜けているのが原因で起こるエラーのようだ

とかかれていたので、
mysql_query ; の後に ; を入れて、下記のように試してみました。

// Preferences (for performance, I dare to use an irregular method)
$result = mysql_query ;if ($result===FASLE||mysql_error($conn)) {
print("mysql:query:error(".mysql_errno($db)."):".mysql_error($conn)."<BR>\n");
exit();
}

その結果、今度は、下記のようになりました。

Parse error: parse error, unexpected ',' in /〜中略〜/protector/class/protector.php on line 48


48行目あたりは
// Preferences (for performance, I dare to use an irregular method)
$result = mysql_query ;if ($result===FASLE||mysql_error($conn)) {
print("mysql:query:error(".mysql_errno($db)."):".mysql_error($conn)."<BR>\n");
exit();
}
( "SELECT conf_name,conf_value FROM ".XOOPS_DB_PREFIX."_config WHERE conf_title like '_MI_PROTECTOR%'" , $conn ) ;
if( mysql_num_rows( $result ) < 5 ) return false ;
$this->_conf = array() ;
while( list( $key , $val ) = mysql_fetch_row( $result ) ) {
$this->_conf[ $key ] = $val ;
}

if( ! empty( $this->_conf['global_disabled'] ) ) return true ;

のように書かれています。
徐々に解決しているのか、とっても不安になってきました・・・・凹


どなたかお分かりになる方がいらっしゃいましたら
よろしくお願いいたします。 m_ _m
具体的に記述すると、こうですね。

// Preferences (for performance, I dare to use an irregular method)
$result = mysql_query( "SELECT conf_name,conf_value FROM ".XOOPS_DB_PREFIX."_config WHERE conf_title like '_MI_PROTECTOR%'" , $conn );
if ($result===FASLE||mysql_error($conn)) {
print("mysql:query:error(".mysql_errno($db)."):".mysql_error($conn)."<BR>\n");
exit();
}
if( mysql_num_rows( $result ) < 5 ) return false ;
$this->_conf = array() ;
while( list( $key , $val ) = mysql_fetch_row( $result ) ) {
$this->_conf[ $key ] = $val ;
うぇいくさん

本当に、本当にメールありがとうございました。
せっかく教えて頂いたのに、わたしの知識不足で
入れ方が違っていたのですね。 ありがとうございました。

ようやく、うぇいくさんがおっしゃられた

# おおかた、テーブルが無いとか、カラムが無い ということだとは思いますが・・・その辺の確認はphpmyadminを使用し、ほんとーに内容であれば、モジュールのインストールに失敗してないか確認してみてください。

ということまで、たどりついたように思います。

現在、画面には、下記のように表示されています。

Warning: mysql_errno(): supplied argument is not a valid MySQL-Link resource in /home/〜中略〜/protector.php on line 46
mysql:query:error():Table '(ここには、IDが入っています).xoops_config' doesn't exist

ということは、xoops_config のTableがないということのように
思います。(My SQL4.1リファランスマニュアルを探しました)

まさに、うぇいくさんのおっしゃったとおりのようです。
そのため、
*その辺の確認はphpmyadminを使用し
とおっしゃっていただいたので、

その後、myadmiinへいってみますと、
protecter_access とprotecter_logがみつかりました。

(削除したweblogは、きちんと消えているようです。)

phpは、はじめてで、さわったことが未だないため、
どうしていいのか?本当に困ってしまいました。
(知識不足ですみません m_ _m)

いろいろ画面をみて考えたのですが、
怖くて、さわれずにいます。


まず、現状のIDをクリックしますと
xoopsにはいっていると思われる100のデータベースが表示されています。

その下に
現在のDBに新しいテーブルを作成する   と書かれているので、
(他のDBと同様のID)_xoops_config と入れるといいのでしょうか?
その下に、フィールドとあるのですが、この部分はどうしたらいいのでしょうか?

それとも、先に書きました
protecter_access や protecter_log を開いた先に
上記のように、新しいテーブルをつくるのでしょうか?

それとも、まずは、テーブルを復旧するとあるので、
これを実行した方がよろしいのでしょうか?

それとも、まったく違っていますでしょうか?


どうぞ、お力をお貸しいただけますと、本当に幸いです。m_ _m
自己レスで経過報告します。

phpMyAdmin で、データベースの中をよくみてみますと
(ここには、任意でつけた名前)_config のテーブルが
みつかりました。
その中のSQLというところを開いてみましたら
SELECT * FROM `(任意の名)_config` WHERE 1 と
書かれてありました。

と、いまのところの状況です。

protecter.phpをftpで上書きしても
テーブルがないこととはちがうだろうし・・・・
と、情報を探してさまよっております・・・・。(T_T)

おわかりになる方がいらっしゃいましたら
お力をお貸しいただけましたら幸いです。
エラー自体は、うぇぶろぐ2とはあまり関係なく、protectorというモジュールで出ているようです。protectorモジュール自身の設定だかを取得しようとして、テーブルが見つからない と。
xoopsをインストールした(サーバ側の)ディレクトリにある、mainfile.phpをダウンロードして、
XOOPS_DB_PREFIX
XOOPS_DB_NAME
が、ただしく、かつ、エラーメッセージで見えてしまっている値と等しいか確認してみてください。
なお、エラー画面を見ると、この2つの情報が見えてしまっていますので、エラーの表示をしないように戻しておいた方が良いかと思います。
うぇいくさん

本当に、本当に、メールありがとうございました。
わかりやすい言葉で、教えていただいたおかげで
サイト復活しました〜。^^/(一週間ぶりです)

XOOPS_DB_PREFIX  が、DBにある名前と違っていました。
この部分を変更しましたら、表示されました〜。
mainfile.phpをさわることで修正できるなんて
思ってもみませんでした。

本当に、本当に、ありがとうございました。(泣喜)

>なお、エラー画面を見ると、この2つの情報が見えてしまっていますので、エラーの表示をしないように戻しておいた方が良いかと思います。

さらに、上記のことまでアドバイスいただき本当にありがとうございました。Warningの表示が、外に出すべきではない情報なんだろうな〜と思いつつ、どうしようもできなくて不安であった部分でした。
本当に、感謝しています。

ただ、どのようにエラー表示をしないようにするのかが
わからないので、本とネット検索で早々に調べてから
設定しなおします。
(設定できましたら、またこのレスでご報告いたします)

本当に、本当にありがとうございました。m_ _m
(前回のつづき)
エラー表示をしないようにする方法は、
管理画面→一般設定のphpデバグをオフにするという方法で実行しました。

うぇいくさん。本当にありがとうございました。
この場をお借りして、お礼申し上げます。
本当に、感謝です。有り難うございました。  m_ _m

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

ぼくらXOOPSer & XOOPS Cuber 更新情報

ぼくらXOOPSer & XOOPS Cuberのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング