カテゴリー別アーカイブ: トラブル(XOOPS)

IE11でファイルが文字化けする。

IE11でダウンロード時に文字化けするという報告がありました。

IE11でのファイルが文字化けするという報告は、検索すればいっぱい出てきて、

IEのブラウザ側で互換表示をしてやると治るという解決方法を進めているサイトがたくさんあります。

しかし、今回は、「互換表示をするという方法を使わずにサイト側でなんとかできないか」というご依頼でした。

 

簡単に「METAタグに互換を仕込めばいっかー」と安請け合いしたのですが、そうはいかなかったです。

レイアウトが崩れる時などにIEの互換表示をサイト側(メタタグ)で制御する方法

そもそも、その環境はXOOPSのfckeditorを使ってファイルリンクを作っていて、transfer.phpを介してファイルダウンロードさせています。

そこでの文字コードの問題かな。だけど、IE11の互換モードを使ってたら、文字化けは解消されるし……

といろいろと調べておりましたが、

IE11でファイルをダウンロードすると文字化けが発生する

が近いのだと思います。

 

前に、XOOPSのSPAWエディターがらみでいろいろ調べていたときに(参照:SPAWエディターが表示しなくなったら)、そんな話があったなぁ。

/common/fckeditor/editor/filemanager/connectors/php/transfer.php を見ます。

L26あたりに

 
if( substr( $GLOBALS['xoopsConfig']['language'] , 0 , 2 ) == 'ja' && strstr( $ua , 'MSIE' ) && ! strstr( $ua , 'Opera' ) ) {
 

とあります。これを

 
if( substr( $GLOBALS['xoopsConfig']['language'] , 0 , 2 ) == 'ja' && (strstr( $ua , 'MSIE' ) || strstr( $ua , 'Trident' )) && ! strstr( $ua , 'Opera' ) ) {
 

に変更します。

これでうまく行きます。

SPAWエディターが表示しなくなったら

SPAWエディター使用のXOOPSはだいぶ昔のものだし、セキュリティ的に使っていること自体が問題かもしれませんが、でも、例外もありますので……。

SPAWエディターが、Googlechromeなどの新しいブラウザや、IEのバージョンアップで表示されなくなりまして、まぁ、そういうものかなと、利用する必要がある場合はIEの互換表示でごまかして利用していたのですが、なんかのきっかけでそれに関する記事を発見。

古いCMS環境を最新ブラウザで使うための改造

貴重な資料をありがとうございます。

ということで、ブラウザ判別がひっかかっていたらしいです。そうですね、SPAWの時代にGooglechromeはなかった……。IEのバージョンアップでエディターが表示されなくなったとき、バージョンの判別のスクリプトをいじったりしたことがあったので、それでピンとくるべきだったなぁ……。

ということで、

「class/util.class.php」の「function checkBrowser()」に//▼▼ここから追加▼▼から//▲▲ここまで▲▲を追加。

  function checkBrowser()
  {
    $browser = $_SERVER['HTTP_USER_AGENT'];
    // check if msie
    if (eregi("MSIE[^;]*",$browser,$msie))
    {
      // get version 
      if (eregi("[0-9]+\.[0-9]+",$msie[0],$version))
      {
        // check version
        if ((float)$version[0]>=5.5)
        {
          // finally check if it's not opera impersonating ie
          if (!eregi("opera",$browser))
          {
            return true;
          }
        }
      }
    }
    elseif (ereg("Gecko/([0-9]*)",$browser,$build))
    {
      // build date of version 1.3 is 20030312
      if ($build[1] > "20030312")
        return true;
      else
        return false;
    }
    //▼▼ここから追加▼▼
    elseif (ereg("Chrome",$browser))
	{
		return true;
	}
	elseif (ereg("Firefox",$browser))
	{
		return true;
	}
	elseif (ereg("Safari",$browser))
	{
		return true;
	}
	elseif (ereg("Trident",$browser))
	{
		return true;
	}
	//▲▲ここまで▲▲
    return false;
  }
 

まぁでもそもそもあんまり使わない方がいいとは思うんですが……。
久しぶりにXOOPS関係の記事を書きました。

XOOPSでFCKeditorからckeditorへ

InternetExproler10が世に出てから、お客様からよく「エディターが無くなりました」というお問い合わせをいただきました。
FCKEditorがIE10という「10」というのを想定して作られていなかったのと、跡継ぎエディターのCKEditorが出てきていたのとあって、対応されたものがなく、また、XOOPSで使用していたFCKEditorはXOOPS用にうまいこと動くように改造していただいていたものでした。

FCKEditorをIE10以降の環境でも使えるようにという技はいろいろとあったし、私もこのブログで紹介していたけれど、結局思ったような動きをせず、IEの互換モードを利用して、管理画面だけ強制的にIE8にすることで、この問題を避けてきました。

しかし、来年あたりに出るだろうIE12からは、この互換モードもなくなるだろうという噂を聞き、やはりFCKeditorからCKeditorにしなくてはならないかぁ……といろいろ調べていたところ、「CKEditor4」というXOOPS用に変更されたモジュールがあることを知り(ありがとうございます!)、サーバーブラウザにもXelfinderというものを提供していただいているということを知って(ありがとうございます)、ここ数日その変更をいろいろと試していたところです。

CKEditor4」は、リンク先のページによると動作確認されているXOOPSのバージョンが、XOOPS CUBE Legacy2.2.0からの方がよいみたい(1.7.2で試していたけど、うまくいかなかった)

ので、

1.XOOPS CUBE Legacy 2.2.0以上にバージョンアップする(どうせバージョンアップするならなるべく最新に)

2.CKEditor4をインストール

3.eXlfinderをインストール

という流れで。

まず、

1.XOOPS CUBE Legacy 2.2.0以上にバージョンアップする(どうせバージョンアップするならなるべく最新に)

以下のページを参考にアップデート

http://sourceforge.net/apps/mediawiki/xoopscube/index.php?title=Upgrade22;ja

なんで、このアップデート、今頃まで躊躇していたかというと、管理画面のデザインがかわるからだったりします。
普段操作に不慣れなお客様だと、ボタンの色一つ変わるだけで、「あれ?」と思う方もいらっしゃるので……。
なるべく管理画面とか変わってほしくないなぁ……なんて思ったりしますが、この際、デザインの変更点もちゃんと説明することにします。

2.CKEditor4をインストール

インストールするだけで、picoでエディターが動く的な説明をどこかで読みましたが、私の場合インストールするだけではだめでした。

テンプレートの「xx_main_content_form.html」より

<{$body_wysiwyg}>  を<{ck4dhtmltarea name=body value=$content.body editor=html}>  に変更します。

 3.eXlfinderをインストール

特に難しいことはありません。インストールすれば、ckeditor4のサーバブラウザとして使うことができます。

4.bulletinが2.04だったら2.2にアップしておく必要があります。

取りあえず以上……。

XOOPSのモジュールAltsysがインストールできない

XOOPS Cube Legacy 2.2をインストール後、Altsysやpicoをインストールしようとすると、「コールバック ‘xoops_module_install_altsys’ を実行することができませんでした」というエラーが出てインストールできない。

ちなみにサーバの環境は

PHPバージョン : 5.2.17
MySQLのバージョン : 5.5.28-log

以下の記事を参考にしました。

http://xoopscube.jp/forum/6771

しかし上記の記事の置換では、なぜかうまくいかなかったため、該当するモジュールのソースの

「 TYPE=MyISAM」を検索して、「ENGINE=MyISAM」に置換したファイルをアップして、インストール完了です。

【XOOPS】IE10でFCKeditorが動かない

随分前にも同じような投稿をしたかもしれませんが、「互換」を使いたくなくて、その方法は触れてなかったのですが、いよいよ面倒になったので「互換」に頼ることにしました。

テーマファイルのheaderに以下を入れます。


<{if $xoops_isadmin}>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
<{/if}>

XOOPSの引っ越しで文字化け

新しいサーバーに昔のバージョンのXOOPSをインストール。
(※新しいバージョンのXOOPSにしたほうがいいことはわかってますが、諸事情によりそのまま)
mysqlはujs_japaneseとかにしても、文字化けします。

XOOPS/MySQL5.0.xでの文字化け対策

を参考にさせていただきました。ありがとうございます。

class/database/mysqldatabase.phpというファイル

if($selectdb != false){
           if (!mysql_select_db(XOOPS_DB_NAME)) {
               $this->logger->addQuery('', $this->error(), $this->errno());
               return false;
           }
       }

のあとに

mysql_query("SET NAMES ujis", $this->conn);

XOOPSログイン後の「ログイン処理中です」が文字化け

「ログイン処理中です」とか「テンプレート更新中です」とか、管理画面処理をするときに一瞬出るあの画面が文字化けしていました。

対応は下記URLを参考にしました。

ツꀀXOOPSのログインログアウト時にだけ表示される文字化け画面を直す。(@パソコン手探り

modules/legacy/kernel/legacy_controller.class.php の 

function executeRedirect($url, $time = 1, $message = null, $addRedirect = true){
global $xoopsConfig, $xoopsRequestUri;

の下と

include/functions.php の

function redirect_header($url, $time = 3, $message = ”, $addredirect = true){
global $xoopsConfig, $xoopsRequestUri;

の下に

header("Content-Type: text/html; charset="._CHARSET);ツꀀツꀀ

を挿入です。

これで直りました。
ちなみにサーバは、ファーストサーバのエンタープライズ 昔の。
私的には何かといまひとつ。

XOOPSのmyalbumでGDによる画像縮小がうまくいかない(スマイルサーバ)

XOOPSのmyalbumのせいというよりは、PHPのGDのからみだとは思います。

サーバーのバージョンを新しくして、同じようにmyalbumの設定をしました。
強制GDモードをonにし、ファイルサイズを小さくするように設定しています。
このファイルサイズが小さいものは普通に登録されるのですが、ファイルサイズが設定よりも大きなもので、GDを経てサイズ変換がかかったものは、すべて×印となります。

サーバのほうにはファイルは生成されているのですが、すべて同じファイルサイズ(重さ)でなぜか属性が「600」。
直のURLを打つと、403エラーが出ます。

GDがうまく動いていないようでしたので、GDに関していろいろと調べてみることにしました。
参考:PHPでGDを使おう

ここに、php.iniの設定について書いてあります。

extension=php_gd2.dll

しかし、今回はこれは関係ありませんでした。

「imagejpeg」(GD)で作成した画像を保存できない(@教えて!Ziddyちゃん)を参考にして、画像の表示をさえてみるとうまく表示されます。しかし、画像の生成(new.jpg)となると、サーバにnew.jpgというのは生成されるのですが、やはりパーミッションが600で403アクセス不可エラー。これを、FTPソフトで644にして、キャッシュを削除して表示させるとうまく見えています。

GDを通して作った画像が、パーミッション600になるのが問題のようですけど・・・・・・スマイルサーバーに問い合わせを出しました。ちなみに、セーフモードはOFFです。

で、そのあと、「GD パーミッション 600」で調べたらドンピシャ(死語?方言?)な記事が!

続きを読む

XOOPSでHTTP 500内部サーバエラー

XOOPSで構築したサイトを引越し、DNS切り替え後に真っ白。
meinfile.phpのパスやなーと思って、心当たりを変更後、表示はしたけど、user.phpにアクセスしたら「HTTP 500内部サーバエラー」。
error.logをみたら、TRUST_PATHの問題だった。んで、protectorのファイルがちゃんと呼び出せてなかったのが原因でした。

HTTP500内部サーバーエラーがでたら、mainfile.phpのパス設定をまず見てみるとよいと思われます。

自分への備忘録。

IE6、IE7でログインできない

XOOPSでIE6やIE7でログインできないという報告があります。
なぜだ・・・・・・と思いつつ、いろいろ調べ中。お客様の力をお借りして、トライ&エラー。
まず、特定の端末のみってことですので、sessionテーブルが壊れたという可能性は除外。
Protectorの拒否IPを念のため確認。まぁ、「真っ白」という報告ではないので、違うかなと思いつつ。

ログインできない を参考にさせてもらってます。

sessionテーブルが壊れたかなと思いましたが、その端末だけということなのでその可能性は除外。
sessionテーブルが壊れた場合は、phpmyadminで、「REPAIR TABLE `xoops_session`」を発行。

とりあえず、お客様に以下を試していただく。

0.他のパソコンでログインが成功しているアカウントとパスワードで試してみてください。
  ※単純にそのアカウントに管理権限がないだけとかのオチ?かも?

1.ログインアドレスを間違えてないかご確認ください。
mainfile.phpに設定されているアドレスでないとログイン成功しても、ユーザーメニューがでない。
wwwつきでもつかないでも、閲覧はできるけど、ログインはmainfile.phpで設定してあるほうで!

2.一度、ブラウザのすべてのキャッシュとクッキーを消してから試してみてください。

3.ブラウザを複数立ち上げている場合は、更新用のブラウザ以外は閉じてみてください。

4.IE7の設定が、クッキーを受け入れる設定になっているかご確認いただけますか?
http://support.biglobe.ne.jp/settei/browser/win-ie7/fbsw7_005.html
上記アドレスを参考に、クッキーを受け入れる設定になっているか確認し、
受け入れない設定にしている場合は、クッキーを受け入れる設定にしてみてください。

5.ウィルスソフトを確認していただけますか?一度無効にして試していただけますか?

以上。5はセキュリティ的に駄目みたいですので、どこのウィルスソフトかを問い合わせ中。
しかし。なぜ。
あとは、IE8にしたり、Firefoxにしたりとか手はあるけど・・・。

続きを読む