2022年5月26日(木) 10:10 JST
いくつかのサイトをマッシュアップしたページを作るために、jQueryのajaxを使ってpostするコードを書いていたら、”Access to restricted URI denied” ってエラーがでるんですね。
1.3から1.4にバージョンアップしてからなにか変わったのかと悩んでました。実際、dataTypeとかに "json"を指定しないと動かなくなってましたし。
でも理由はちゃんとあって、jQueryでは他サイトへpostできないんですね。そりゃまぁセキュリティ考えたら妥当な仕様ですね。
しょうがないので自分のサイトへ ajax接続して 他サイトへpostするところはphpでコーディング。まぁ、これでもユーザ側から見たら考えてた通りの挙動になりますのでヨシでしょう。
SQL Serverってたまにしか使わないので、よく忘れる・・・・
SQL Server にハングル文字を登録しようとして思いっきり躓きました。知っていればどうといったこともないことなんでしょうが。最近のMicrosoft製品は、(Microsoftに限らず世の中ほとんどそうかもしれませんが) Unicode対応されています。なので問題なくハングル文字とて登録できるものと思ってました。
ハングル文字を登録するINSERT文をファイルに書き込んでSQL ServerのManagement Studioで動かしてみる。と、なぜかハングル文字が「?」に化けます。しょうがないので、Visual Studioの Web Developerで C#のコードを書いて 先ほどのINSERT文のファイルを読み込み実行、、、、うまくいかない!
さっぱりわからなくて数日悩んでしまいました。(他の事に時間とられてたのもあるけど)
原因は SQLでハングル文字を表記するのに単純にシングルクオテーションで囲っただけだったからです。Unicode対応させるにはシングルクオテーションの前に「N」をつけなければなりません。「VALUES ( N'ハングル' ) 」みたいに。なんだよこれ、って正直思いました。普通に「VALUES ( 'ハングル' )」でいいやんけ!と思うんだけど、わざわざNをつけなきゃいけないという意味がわからんです。デフォルトUnicodeちゃうのん??
あと、ファイルのコードも、UTF8Nではダメで、UTF-16LE-BOMならC#で通りました。Management Studioのほうでは、UTF8Nでも通りましたけどね。UTF-16LE-BOMでしか通らないんだから、ますますNが必要な意味がわからんです。
慣れてる人ならこんなの常識なんでしょうけれどねぇ。
CakePHPのSecurityコンポーネントって扱いづらいですよね。でもやっぱりセキュリティには気をつけておきたいし・・・・ デフォルトでは使用して、局所的に適用を外す・・・ということができたらいいな、と思ってました。でもやり方がわかんなかったんですね。
日本語化したドキュメントには、$disabledFieldsに無視するフィールドを入れると評価対象にならないという記述があります。これ使うと、Javascriptで値を変えたりする項目があった時には便利ですが、それでも data['_Token']は発行されています。
他のアクションではSecurityコンポーネントを使っていても、あるアクションだけはSecurityコンポーネントを外したい、そういった使い方は日本語化したドキュメント読んでてもわかんなかったのですが、ソースみて気がつきました。
$this->Security->enabled = false;
これです! これでSecurityコンポーネントを止めることができます。単純だったんですね。
じつはWebシステムではなかったりするのですが・・・・
とあるWebシステムで使っている複数のDBからいろいろ集計するために毎日定時にバッチ処理を走らせようとするもの。これを「ちいたん」使ってやってみることに。
ビューは使わず、action()内にやりたいことを記述してけば、コマンドラインのスクリプトと同等に動きます。
ところが、あるDBのテーブルから値を取得して別のDBのテーブルへ値を書き込むことはできたのですが、日本語の文字列が文字化けしています。
自宅サーバでの数値&まだ5月も途中だというのに甚だ恐縮ではございますが、
ここ三ヶ月のウチのサイト訪問者のブラウザシェア(IEのみをPick Up)です。
[2009年3月]
Msie 8.0 1.1 %
Msie 7.0 38.9 %
Msie 6.0 45.3 %
[2009年4月]
Msie 8.0 1 %
Msie 7.0 43.2 %
Msie 6.0 43.3 %
[2009年5月]
Msie 8.0 6.5 %
Msie 7.0 46.8 %
Msie 6.0 35.1 %
ゴールデンウィーク中にアップデートした方が多いのでしょうか、
とうとうIE7が首位に躍り出ました。
秋のゴールデンウィークにはIE8が急追するんでしょうかね???
[image1]
FlashDevelopをインストールし直しました。
前やった手順を忘れていたので、メモっておきます。
java.args=-Xmx384m -Dsun.io.useCanonCaches=false -Duser.language=en -Duser.region=JP とする。
※ココ、いじらないほうがいいのかもしれないけれど。
ここにActiveX版およびスタンドアローン版のFlash Playerがはいっています。
もしくは、http://www.adobe.com/support/flashplayer/downloads.htmlからダウンロードして、ここに入れる。
trace()を有効にするためには、デバッガバージョンのFlash Playerが必須。
FlashDevelopからExternalでPlayerを呼び出すならば、スタンドアロン版があればよいが、tab内でPlayerを実行するには、ActiveX版が必要。
Tools > Program Settings > Main/FlashDevelop > Default CodePage が UTF8なのを確認
Tools > Program Settings > Plugins/AS3Context > Flex SDK Location に flex_sdk_3のパスを指定
IE7を使っているんですが、ポップアップブロック時に通常だと出る「一時的に許可する」とか「常に許可する」みたいな選択肢がでなくなってしまいました。
出るのは、「詳細情報」だけ。
いろいろ設定をいじってみましたが、だめです。まったく先へ進めなくなってしまいました。
実は、IE Collectionを入れてみていて、IE CollectionのIE7やIE8βを起動するとそのような状況になってしまうようです。IE7を入れ直してみるとちゃんと許可するメニューも出てくるようになりました。
IE Collection、旧バージョンにてチェックするにはいいですが、現行バージョン以上はインストールをしないほうが賢明ですね。
CakePHPで DB設定を動的に切り替えるには、Model->setDataSource($useDbConfig)で切り替えられるようにみえた。
確かにこれで切り替わるのは切り替わるのだけど、hasManyとかで設定した関連づけが引き継げないようだ。
せっかくCakeを使うんだから、丸ごと関連したデータまで引っ張ってくれると楽だ。
bindModel()してみたりといろいろ試してみたけれども、結局うまくいきませんでした。
お手上げして、独自にSQL投げる関数をモデル中に用意しました。
ちょいとばかしActionScriptを書く用があるんですが、Adobeが出しているFlashだとかFlexとかの製品版を買う金もないので、オープンソースなFlashDevelopをインストールしてみました。
FlashDevelopは、.NETで動くFlashの統合開発環境です。Flex SDKは別途必要なんですけどね。
ちょこちょことActionScriptを書いて、「Test Movie」を選ぶと別タブが開いて書いたFlashが実行されます。これいいかんじ。
いくつかのサイトを見ていると、mm.cfgというファイルを書かないと trace()ができないみたいなことが書かれていますが、べつにmm.cfg置かなくても trace()の出力が開発環境内に表示されましたよ。ブレークポイントの設定の仕方がまだわからないのだけど、trace()ができるだけでも開発できそうな感じ。ちょっとこれで頑張ってみます。
PEAR::Net_POP3でも pop3sは可能。
ポート番号に、995を指定。(これは当たり前か)
サーバ名の指定を "ssl://mail.server.net" のようにしてやるとOK。