diary/category/プログラミング

ID: 33 | 作成日: 2009/08/12 [Wed] 17:06:00 | 最終更新: 2012/09/12 [Wed] 16:07:55
FrontPage / diary / category / プログラミング

2013/05/08 [Wed]

ローカルOK、レンタルサーバNG

ここ数日、久しぶりに"PHP"でプログラミングをしていまして。

主だった作業はPHP5.5.0で非推奨となるもので、自作のスクリプトで使われているものの修正。
・・・で、修正したスクリプトをサーバにアップすると、その修正した部分とは別のところでエラーが発生するという。

なぜかローカルの開発環境では、そのエラーは発生せず、利用しているレンタルサーバでだけ発生するもんだから、これまた厄介。
何とか原因を突き止めて修正できたけど、こういうローカルでは問題なくてレンタルサーバにアップしたらってパターンはホント勘弁してほしい(泣)

2012/09/24 [Mon]

一年ぶりにHSP

ここ数日、約一年ぶりにHSPでプログラミング作業。

元々、深く使いこなしている言語ではないんだけど、久しぶりにさわった&普段よく使っている言語との違いで、スタートの立ち上がりにちょっと手間取ってしまった・・・

インタープリタ系の言語は、違うものでも大体似たような感じなんだけど、そうであるがゆえに他言語での書きクセが出てきたりで、変に迷ったりするんですよね。

最新HSP3.3プログラミング入門―Windows98/2000/Me/XP/Vista/7対応 [単行本] 最新HSP3.3プログラミング入門―Windows98/2000/Me/XP/Vista/7対応 [単行本]

2012/09/21 [Fri]

XAMPPでsendmail

先日書いたXAMPPでsendmailを利用するのに色々てこずった話ですが、せっかくなので解決できた設定を自分用のメモも兼ねて記事にしておこうかなぁと。

ネットで検索すると、これらの解説記事は出てきますが、XAMPPのバージョンによってsendmeilの設定の記述が変わるみたいですが、僕が現在利用しているXAMPPのバージョンは"1.7.3"です。

ちょっと古いバージョンですが、あんまり開発環境のPHPのバージョンが変わるのもというのもあるのでそうしています。
なので、以下の記事は前述の古めのXAMPPのバージョン下で行ったことであることを、予めご了承ください。

まずはPHPの設定から。
XAMPPインストールフォルダ内の"php\php.ini"を編集します。

[mail function]
; For Win32 only.
; http://php.net/smtp
;SMTP = localhost
; http://php.net/smtp-port
;smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = postmaster@localhost

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "\"XAMPPのパス\sendmail\sendmail.exe\" -t"

"[mail function]"項目の"SMTP = ○○○"・"smtp_port = ○○○"・"sendmail_from = ○○○"をコメントアウト(行頭に";(セミコロン)"を記述)して"sendmail_path = ○○○"の行頭の";"を削除します。

続いて"sendmail"の設定を編集。
同じくXAMPPインストールフォルダ内の"sendmail\sendmail.ini"の"Hotmail"用のアカウントの雛形をベースに以下のような感じに書き換えます。

# A freemail service example
account Hotmail
tls on
tls_certcheck off
host smtp.live.com
from 所有しているホットメールアドレス@hotmail.com
auth on
user 所有しているホットメールアドレス@hotmail.com
password 所有しているホットメールアドレスのパスワード

# Set a default account
account default : Hotmail

"from"と"user"の部分に所有しているHotmailのメールアドレス、"password"の部分にそのメールアドレスのパスワードを記述します。

そして、"account default"の項目を"account"で設定しているアカウント名"Hotmail"を記述します。

これで、XAMPP上で作成したPHP製メールフォーム等でsendmailを利用してメールの送信ができるようになりました。

大体、ネットで見かける解説は上記のようなやり方なのですが、このサイトに利用しているレンタルサーバ"ロリポップ!"で作ったメールではできなかったので、ロリポップ!側の設定とかでできないのかな。
それとも、何か別の方法があるんだろうか?

まぁ、sendmailを利用したメールフォーム等のプログラム開発ができればいいわけで、実際、XAMPPでロリポップ!で作成したメールアドレスが利用できなくても、ロリポップ!のサーバにアップした後はロリポップ!のメールアドレスでも問題ないわけですから、現状で問題ありません。

いきなりはじめるPHP~ワクワク・ドキドキの入門教室~ [大型本] いきなりはじめるPHP~ワクワク・ドキドキの入門教室~ [大型本]

2012/09/18 [Tue]

XAMPPのメール関連で手こずった

今日は、久しぶりにPHPでのプログラミング作業

ここ最近は、ゲームコンストラクションツールのスクリプト言語をいじってばかりだったので、微妙な書式の違いに作業出だしは悩んでしまった(苦笑)

で、WindowsのXAMPPでメールフォームを作っていて、ネットで検索したメール送信関連の解説をアレコレ試しても、どうにも上手くいかず悩まされたのですが、このサイトで利用している"ロリポップ"のメールアドレスを送信に使っていたので、試しに"Hotmail"に変えてみたら、問題なくあっさりできてしまったという・・・

俺の悩まされた数時間はなんだったんだろう(泣)

どうもロリポップ側の設定か何かで、たぶんレンタルサーバに設置したスクリプト以外から"sendmail"は利用できないようになっているのかもしれません。

とにかく、以前から作らないとなぁと思いつつ、あなんとなく後回しにしていたメールフォームを作ることができました。

PHPサイバーテロの技法―攻撃と防御の実際 [単行本] PHPサイバーテロの技法―攻撃と防御の実際 [単行本]

2012/05/07 [Mon]

CGIモードPHPの脆弱性問題

これはまた、やっかいな脆弱性ですね・・・
ApacheモジュールやCGIでも"FastCGI"の場合は問題ないようですが。

企業でWebサービスを提供しているようなサーバとかだと、わざわざCGIモードでは動かしていないだろうけど、レンタルサーバの場合、意外にCGIモードのところが結構あるんですよね。
うちのサイトで利用している"ロリポップ"はそうだし、"XREA"や"さくら"の料金プランによっては、たしかそうだったような?

今回の脆弱性の問題を受けて、ロリポップはとりあえずの対策がされていますが、これユーザー側でサーバの設定をあんまりいじれないサービスだと、やれることはあまりないんですよね。

体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践 体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践

2012/05/05 [Sat]

プログラミング言語の切り替えで戸惑った

ここ一ヶ月くらい、某ゲームコンストラクションツールを試していて、それで利用するスクリプトのプログラミングをしていたんだけど、先日久しぶりに別の言語でプログラミングの作業をしたら、微量な差異ながら、記述のやり方の違いで戸惑ってしまった・・・(苦笑)

2011/12/27 [Tue]

脆弱性過敏

ソフトウェアの脆弱性、特に"Perl"や"PHP"で作られたWebアプリケーションとかの脆弱性情報を見ると、自分自身サイト管理ツールを作っていることもあり、たまにどういうものなのかすごく気になることがあります。

ソースのどこに問題があり、外部からどのような操作をされるとNGなのかみたいなことは、セキュリティ上、広く攻撃方法を知られないために当然、公開されることはないし、されるべきじゃないんだけど、自分が似たようなアプリケーションを作っていると、同じような攻撃手段による脆弱性が自作のものにもあるんじゃないかと不安になるんですよね。

特に、開発暦が長く、コミュニケーションが現在でもそれなりに活発で、ユーザーが多そうなアプリケーションとかだと、そういうもので今になってでてくる脆弱性ということは、かなり特殊なものなのかなぁ・・・と考えちゃうからというのもあります。

PHPサイバーテロの技法―攻撃と防御の実際 PHPサイバーテロの技法―攻撃と防御の実際

2011/08/15 [Mon]

JavaScript+PHPで付箋プラグインを作ってみたい

"JavaScript"+"PHP"を使った付箋の掲示板

Webサービスとかでも、こういうのあるんだけど、最近、Wikiエンジンのプラグインだとか、"TiddlyWiki"のように、それ自体を簡単なサイト管理ツールとして使えるようなツールだとかで作れないかなぁ・・・と、思案中。

ただ単純に技術的興味や作ってみたいという欲求がメインなので、正直、Wikiエンジンにこういうプラグインがあったとして、実際に便利かどうかはわからないのですが。(苦笑)

jQueryで作る Ajaxアプリケーション jQueryで作る Ajaxアプリケーション

2011/02/28 [Mon]

プログラミングに集中

今年に入ってからPHP製ツールの開発を中心にやっていて、特にここ一週間ほどは熱心にプログラミング作業をしていたのですが、普段そういった作業内容はローカルPCのサーバ環境に入れた"PukiWiki Plus!"に記録しています。

・・・で最近、作業数が多くて、つい面倒になり記録をつけていなかったんだけど、いいかげん書き込まないといけないなぁということで、"Trac Lightning"のリポジトリブラウズでコミット内容を確認してみたら、今年分のコミット数が100を超えていた。

合間にゲームやったりDVD見たりとかもしていたんですけどね。(笑)

2011/02/01 [Tue]

"mb_convert_encoding"の"auto"は"mbstring.language=Japanese"が有効でないとうまく動かない

PHPで、「サーバにアップしたファイルを読み取り、圧縮ファイルの場合はダウンロードのリンク、画像の場合はIMGタグで表示、テキストファイルの場合は"textarea"で表示」という動作のスクリプトを組んだのですが、開発に使ったパソコンでの動作は問題なくも、サーバにアップするとエラーが・・・

で、調べてみると"mb_convert_encoding"変換前の文字エンコーディング名に"auto"を指定していて、PHPのマルチバイト関連の"mbstring.language=Japanese"が有効になっていないと、それがネックとなりエラーになるようです。

なので、ネットで見かけた情報を参考に、スクリプトの始めのほうに

mb_language("Japanese");

と記述したところ、エラーがなくなりました。

そういえば、XAMPPインストールした時に開発環境側は、その辺設定したなぁと。