くだすれPHP(超初心者用)3
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/10/25(木) 16:04:31ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。
PHP Home Page
http://www.php.net/
http://jp.php.net/
---前スレのテンプレここまで---
前スレ: くだすれPHP(超初心者用)2
http://pc11.2ch.net/test/read.cgi/php/1164617202/
適当に関連スレ(マルチはだめぽ)
【PHP】下らねぇ質問はここに書き込みやがれ 57
http://pc11.2ch.net/test/read.cgi/php/1193062236/
△▲ WebProg 初心者の質問 Part16 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1187729623/
完走したら、雑談スレで待機でどうでしょう
【総合】 Webprog板質問雑談スレッド 1
http://pc11.2ch.net/test/read.cgi/php/1131016915/
0238nobodyさん
2008/01/11(金) 04:17:35ID:???http://hogehoge.jp/~hoge/index.php
上で、
http://hogehoge.jp/~hoge/
という文字列を取得してくる関数か何かは無いでしょうか?
$_SERVER変数の中にはそれらしいものがなかったので・・・
0239nobodyさん
2008/01/11(金) 04:22:37ID:???0240nobodyさん
2008/01/11(金) 04:59:28ID:???それがなかったんですよ。
$_SERVER['PHP_SELF']だと "/index.php"
$_SERVER['SERVER_NAME']だと "hogehoge.jp"
$_SERVER['DOCUMENT_ROOT']だと "/public_html/index.php"
ほかは何か違うし・・・
"http://"はともかく、"hogehoge.jp/~hoge"は取ってきたいんです。
0241nobodyさん
2008/01/11(金) 06:12:58ID:???http://jp.php.net/manual/ja/function.dirname.php
http://jp.php.net/manual/ja/function.parse-url.php
0242238
2008/01/11(金) 11:30:21ID:???いや、だから、絶対URLを取得したいんですよ。
いまテストしているサーバから別のサーバに移植する予定なので、
動的にとってこさせるようにすればわざわざURL部分を書き直さなくても
済むだろうと思いまして。
何をしたいかと言えば、特定のディレクトリに置かれているファイルを、
階層の違う別々のディレクトリから参照したい、と思いまして。
ttp://hogehoge.jp/~hoge/movie/movie.flv
を、
ttp://hogehoge.jp/~hoge/aaa/pagea.php
ttp://hogehoge.jp/~hoge/aaa/bbb/pageb.php
ttp://hogehoge.jp/~hoge/aaa/bbb/ccc/pagec.php
など、どの階層に置いても同じ記述で/movie下の任意をファイルを参照する、という。
movie.flvをどこに置くかは決まっているので、hogehoge.jp/~hoge/さえ取得できれば
参照させられるんです。
相対パスだと、ひょっと別のディレクトリに置くと、パスを書き直さなきゃならないんで
移植が面倒になるな、と。
あえて言うなら、parse_urlに渡すURL(そのPHPファイルの絶対URL)を動的に取得したい
ということです。URLを解析したいわけではないんです。
0243nobodyさん
2008/01/11(金) 12:08:38ID:???0244nobodyさん
2008/01/11(金) 18:17:35ID:mLMFZoBjPOSTでデータを送って暗号化などしてデータベースパスが一致したらログイン。
このソースで大丈夫なのかどうか不安です。
a.html→(ここ)→b.php
(ここ)でデータを盗むことができたりするのでしょうか?
これでいいならSSLの必要性がイマイチわかりません。
a.html
<html>
<head>
<title>test</title>
</head>
<body>
<form action="hogehoge.php" method="POST">
<input type="text" name="id">
<input type="password" name="pass">
<input type="submit" value="送信">
</form>
</body>
</html>
b.php
<?php
$pass = $_POST['pass'];
$pass = strip_tags($pass);
$pass = htmlspecialchars($pass, ENT_QUOTES);
$pass = md5($pass);
$pass = substr($pass,0,10);
-------データベースからmd5で暗号化されたデータを引き出して認証-------------
?>
0245nobodyさん
2008/01/11(金) 18:21:23ID:???0246nobodyさん
2008/01/11(金) 18:21:32ID:mLMFZoBjhttp://www.soumu.go.jp/joho_tsusin/security/kiso/k01_ssl.htm
> 通信途中でデータを傍受されると、情報が第三者に漏れてしまう可能性があります。
a.html→(ここ)→b.php
(ここ)でデータが取れるとこのサイトでは言ってるわけですよね?
では、パスワード漏洩しないには具体的にどのようにすればいいのでしょうか?
よろしくお願いします。
0247nobodyさん
2008/01/11(金) 18:23:32ID:???0248nobodyさん
2008/01/11(金) 18:29:13ID:mLMFZoBj漏洩したくないなら金をそこで使うのは当然なのはわかります。
しかし、実際sslを使用していない認証はたくさんあると思います。
そのようなサイトは漏洩する可能性が高いと見て良いのでしょうか?
例 (mixi)
http://mixi.jp/home.pl
0250nobodyさん
2008/01/11(金) 18:35:41ID:mLMFZoBj見落としてた…orz
え、じゃあ今までhttpsでやってなかった俺のパスワード&アドレスは
漏洩してる可能性あるってこと?
なんでデフォルトがhttpsじゃないんだよ(´・ω・`)
0251nobodyさん
2008/01/11(金) 19:01:52ID:???PHPは参考書読む程度なんですが
開発現場ってどんな感じで作業進めるのでしょうか?
0252nobodyさん
2008/01/11(金) 19:48:43ID:???0254nobodyさん
2008/01/11(金) 21:04:07ID:mLMFZoBjなるほど
<input type="text" name="pass1">
<input type="hidden" name="pass2">
document.pass2.value = md5された文字
色々省略してますがこんな感じで飛ばせばOKということですね?
これでセキュリティに問題ないならやってみようと思います。
0255nobodyさん
2008/01/11(金) 22:37:14ID:???ていうか、質問者もそのレベルならセキュリティ意識する必要ないし(しても対処できないのが落ち)
、回答者もひどすぎる。
とにかくSSLにすればいい。証明書を第三者機関に発行してもらうのはウェブページの信頼性を保障してもらうため。
別に俺のことは俺が保障するっていうなら俺俺証明書でOKなわけ。
それじゃ普通は駄目だから金払う。
0256nobodyさん
2008/01/11(金) 23:07:26ID:???JavaScript切ってたら、mixiでいう「SSL(https)はこちら」を
選択しないのとそう変わらんだろうに
暗号化して送信するかしないかをユーザに任せるという意味ではね
SSLだって人によっては切ってるかも知れんぞw
0257nobodyさん
2008/01/11(金) 23:32:11ID:???その例、なんとなく勘違いしてそうだが、
入力されたパスワードをsubmit時にJavaScript側で
md5にしてからPOST送信すんの
分からんかったら調べるなりJavaScriptスレへ
0258238
2008/01/12(土) 00:10:38ID:???hogehoge.jp/~hoge/が取得できましたorz
何を見てたんだ俺は・・・
どうもご迷惑おかけしました。
0259238
2008/01/12(土) 00:17:48ID:???どうもたびたび申し訳なく・・・
0260nobodyさん
2008/01/12(土) 00:28:49ID:???REQUEST_URI はやめといた方がいいんじゃね
素直に
substr($_SERVER['REQUEST_URI'], 0, strrpos($_SERVER['REQUEST_URI'], '/'))
とかじゃダメなん?
0261nobodyさん
2008/01/12(土) 00:29:36ID:???0262238
2008/01/12(土) 01:23:53ID:???SCRIPT_URIは確かサーバの環境依存じゃなかったですか?
移植先はレンタルサーバなので、Apacheの設定を弄らせてもらえるか
微妙なんです。未だにどこに移植するか決まってないという。
自鯖にすれば設定し放題ですが、さすがに管理が・・・
/~hoge/句がつくかどうかも微妙ですし。
最悪、DBに絶対URLを格納しておいてそれを使うようにすると言う手を考えつきました。
まあとりあえずREQUEST_URIでやってみます。問題が起きたらDB方式に。
文字列エンコードすればXSSも何とか回避できるでしょうし。
ありがとうございました。
0263nobodyさん
2008/01/12(土) 01:45:55ID:???GDが読み込まれません。
php.iniの設定箇所のコメントを外す以外に何か設定が必要でしょうか?
0264nobodyさん
2008/01/12(土) 06:37:20ID:???0265263
2008/01/12(土) 17:40:18ID:???ApacheはもちろんWindowsも再起動してみましたが反映されません。。。
php.ini以外にさわる箇所あるのでしょうか?
0266nobodyさん
2008/01/12(土) 18:50:14ID:???extension_dirの指定が間違ってるとか、GDの共有ライブラリが入ってないとか
0267nobodyさん
2008/01/12(土) 19:22:51ID:???php.ini はどこを変更したの?
0268263
2008/01/13(日) 06:15:16ID:???>>266
extension_dirの指定はmbstringの設定が有効なので良いと思うのですが。
ライブラリはphp_gd2.dllですよね?それなら入っています…
>>267
反映についてはphpinfoにgdの項目が出てこなく、関数も使えないのでそう判断しています。
php.iniはextension_dirのコメントを外しました。
0269nobodyさん
2008/01/13(日) 10:02:45ID:???phpinfo()でどこのphp.iniを使っているか表示されるけど、それは一致してる?
0270nobodyさん
2008/01/13(日) 10:42:53ID:???0272263
2008/01/13(日) 23:05:13ID:???ビンゴでした。
なぜかiniファイルの読込先がC:\windowsに。。。
ここは変更できるのでしょうか?
一応、この場所にiniファイルを置きましたところ、GDの読み込みには成功いたしました。
ありがとうございました。
0273nobodyさん
2008/01/14(月) 02:36:12ID:???0274nobodyさん
2008/01/14(月) 07:49:03ID:???0275nobodyさん
2008/01/15(火) 04:28:15ID:???100Mくらいのファイルを取り込むのに、時間が40分くらいかかって
メモリーも2Gくらいを、PHP.iniに書かないと途中でとまるんですが、
PHPってスピードとか、メモリー使用量ってこんなもんでしょうか?
0276nobodyさん
2008/01/15(火) 04:31:00ID:???0278nobodyさん
2008/01/15(火) 09:57:33ID:???時間がかかっているのは激しくスワッピングしてるからだと思われ
普通はデータ量が大きいときは漸次処理して負荷を減らすもの
0279nobodyさん
2008/01/15(火) 12:28:56ID:???のように数字に「,」が入ってるときに、数字のみを取り出すにはどうすればいいですか?
0280nobodyさん
2008/01/15(火) 13:14:35ID:???0281nobodyさん
2008/01/16(水) 11:56:16ID:sJoxzvRtたまにttp://example.com?aaaと言うようなURLを見るのですが
クエリ情報を受けとるファイルでは$_GET[?]で受けとっているのか教えて下さい
0282nobodyさん
2008/01/16(水) 13:16:39ID:???mod_rewrite 使ってることもありえる
0285nobodyさん
2008/01/17(木) 11:15:01ID:???0286nobodyさん
2008/01/17(木) 12:05:56ID:???0287281
2008/01/17(木) 13:56:22ID:???>>282さんの
index.phpに空の$_GET[aaa]をおくと言うのを
試してみたのですが意味がわかっていないせいか何も変わりませんでした
もう少し詳しく説明お願いしていいですか?
お手数かけてすいません
0289nobodyさん
2008/01/17(木) 15:15:36ID:???リクエストされた場合、ファイル名がないのでウェルカムファイルがリクエストされたと
判断される。 /でリクエストすると/index.phpが読まれるのと同じ理屈で/?aaaの場合は
処理を行うスクリプトはindex.phpで、クエリとしてaaaが渡されると思う。
で、クエリは本来/?aaa=valueというようにフィールドとその値になってるけど、この
場合は値がないので、変数名は$_GET[’aaa’]となりデータは空の文字列
ということになるとめでたくね?データは空だから何も受け取ったことにはならないけど
連想配列のキーの有無で違いが出るので、!isset($_GET['aaa'])としてやると
/?aaaなのか/?bbbなのかは区別できるような木がする
0290nobodyさん
2008/01/17(木) 15:27:11ID:???0291nobodyさん
2008/01/17(木) 23:00:15ID:AXahQPv7クエリ情報を受けとるファイルでは$_GET[?]
ttp://example.com?aaa
は
ttp://example.com?bbb=aaa
で通常は$_GET['bbb']で受け取ります
そのサーバでどこかに$_GET['bbb']を受け取るファイルがあるのです
0292nobodyさん
2008/01/19(土) 12:56:29ID:???どこからbbbが出てくるんだよw
?aaaは$_GET['aaa']として入ってくる
データ内容は確かnullのはず
issetでチェックはできるけどな
0293nobodyさん
2008/01/19(土) 13:00:52ID:???もちろんbbbかどうかは知らないけど
0294nobodyさん
2008/01/19(土) 13:09:31ID:???/aaa/とかにすると思うが
0295nobodyさん
2008/01/19(土) 13:14:21ID:???何が問題なんだ?
0296nobodyさん
2008/01/20(日) 17:11:47ID:???($mode ? 'OK' : 'NO')
という分岐?が出てきたのですが
この方法の名前は何というのでしょうか?
調べようにも名前が判らず困ってます
0297nobodyさん
2008/01/20(日) 17:19:56ID:???0298nobodyさん
2008/01/20(日) 17:21:32ID:???http://jp.php.net/manual/ja/language.operators.comparison.php#language.operators.comparison.ternary
0299nobodyさん
2008/01/20(日) 21:00:02ID:???結構サポートしてる言語あるぞえ
0300nobodyさん
2008/01/21(月) 00:37:42ID:???スケジューラー作ってます。
最近利用している人から、見ていたらお前のログイン状態が出てきたぞと
言われ、キャプチャされた内容が送られてきました。
セッションは
session_start()
ではじめて
$_SESSION[id]
$_SESSION[pwd]
にデータを入れてます。セッションはブッキングすることがないと
聞いていたのですが、たった4人の利用でブッキングがあったため、
もしかすると
iクラスタでは、クラスタリング環境となっており、
セッションの使用、またflock, fcntl 等のロックは機能しません。
symlink, mkdir 等での代用いただくようお願いします。
とレンタルサーバーにはかかれていましたが、クラスタリング環境で
flock,fcntlが使えないことでこういう事が起きているのでしょうか?
ここがはっきりしないと、別のサーバーに切り替えてもらえないし、
自分が選んだサーバーでもプランでもないので板挟みで状態で困ってます。
0301nobodyさん
2008/01/21(月) 00:44:27ID:???0304244
2008/01/21(月) 19:22:48ID:5H6OPrCr>>253でmd5にして認証を行ったはいいが
HTTPヘッダ見たら暗号化した文が表示されてた。
これってこの文盗聴されてそのまま打たれたら結局意味ないじゃんって結果に。
参考にしたページ: ttp://jsgt.org/mt/archives/01/000301.html
Digest認証でここはやってますが
どうも不完全なまま終わってるようで続きが見当たりません。
実際にSSLを使わないで認証してる方はいないでしょうか?
自分しか使わないのでSSLの証明はいらないんですが、、、
0305nobodyさん
2008/01/21(月) 20:16:56ID:5H6OPrCr結構大きなネトゲのサイトでburp suiteでHTTPヘッダを見てみた。
IDとパスがそのまま表示された…。
これってこの部分盗聴されたらログインされるはずだよな…?と思って
mixiのhttpsでログインしてみた。
こちらは何も表示されなかった。
そのネトゲのスレ行ってみたらセキュアなしかよって散々叩かれてた。
こんなのもあるんですね。
一応報告まで。
0308nobodyさん
2008/01/22(火) 00:42:56ID:Qziki4SAすごく初心者なので、書き方おかしかったらすみません。
・os
windows vista
・希望
apache_2.2.6-win32-x86-no_sslをインストールしたい
・困ってる事
「このインストール パッケージを開くことができませんでした。
パッケージが存在し、アクセスできることを確認してください。
またはアプリケーション ベンダに問い合わせ、この Windows インストーラ パッケージが有効かどうかを確認してください。」
が出てインストールできない。
・やった対策
vistaだと通常とは違うという事で色々と調べて「コマンドプロンプト」というやつを管理者の権限で開いてインストーラーを実行させました。
そうすると何回やっても上記のエラーメッセージが出ます。
なので「windows install cleanup」をダウンロードして開いてみましたが該当するものはなし。
無知なりに考えた原因は、何度も違うバージョンのapacheをインストール→アンインストールしたせいでインストーラが狂ったのかと…。
どうにかインストールしたいです。「ベンダ」に問い合わせる他に何かまだ出来る事があれば教えてほしいです。
0309nobodyさん
2008/01/22(火) 01:33:19ID:???このあたりが関係しているのかも。
http://www.apachefriends.org/jp/xampp-windows.html
> Windows VistaではC:\Programfilesのフォルダのパーミッションが限定されております。
> その為、通常のインストールではインストールが成功しない場合があります。
> xampp用のフォルダをCドライブの直下か、C:\userの下にxamppというディレクトリを
> 作成してご利用いただくことをお勧めします。
XAMPPだと、インストーラを使うタイプと使わないタイプがあるから、こっちで
試してみたらどうかな。全部がセットになってるから便利だし。
0310nobodyさん
2008/01/22(火) 07:54:00ID:???0311nobodyさん
2008/01/22(火) 11:52:06ID:???ワンタイムパスワードを考えてみました。
データベースにpass1とpass2のあるテーブルを作る。
pass1はユーザーが決めたパスワードをmd5した物。
ログインページにアクセスした時点で
ランダムな文字列を発行。(例 ZztMHpWSD)
全てのユーザーのpass2を更新する(pass1 + ZztMHpWSD)
<input type="text" name="pass">
<input type="hidden" name="rand_pass" value="(ランダムな文字列)">
submit押すと
md5_func(document.formname.pass.value)+document.formname.rand_pass.value;
これでpass1+ランダムな文字列が渡されました。
これで送られてきた物をpass2で一致すればOK。
この処理はできました。
----続く----
0312nobodyさん
2008/01/22(火) 11:56:30ID:q9syKBOVAさんがログイン画面にアクセスしてログインの情報を入力してる最中に
Bさんがアクセスしてきました。
その場合また新しいランダムな文字列が発行され
データベースのpass2が更新されてAさんの hidden に入ってる物が違ってきます。
現在この状況でつまっております。
何か助言を頂けないでしょうか?
0313nobodyさん
2008/01/22(火) 12:03:57ID:???すべてのユーザーのを更新する理由は何?
ログインとかログアウトする時に一人のユーザーのみを
更新してはいけないの?
0314nobodyさん
2008/01/22(火) 12:12:27ID:q9syKBOV> すべてのユーザーのを更新する理由は何?
アクセスしてるユーザーがどのユーザーかわからないためです。
ログアウトした時に一人のユーザーを更新する場合
ログアウトする時にpass1+ランダムな文字列で更新
再ログインするためにランダムな文字列発行するわけにもいかないし、
ログアウトの時クッキーにランダムな文字列書き込んだ場合
他のパソコンでログインできなくなる。
一応こんな風に考えてます。
0315nobodyさん
2008/01/22(火) 12:28:18ID:q9syKBOV・ SSLをできれば使いたくない(証明とかいらない&節約)
・ HTTPヘッダを見るとパスワード丸見え(盗聴怖い)
・ md5で暗号化しても暗号化した物を盗聴されて打たれたら意味ない
・ ワンタイムパスワードを作って毎回パスワードを変更するが他のユーザー接続で失敗
こんなところです。
0316nobodyさん
2008/01/22(火) 14:19:06ID:???金属探知機を設置せずに、拳銃の持込を完全に防止したいみたいな意味だ。
0317nobodyさん
2008/01/22(火) 14:40:45ID:q9syKBOV私がしたいのは独自で作成した金属探知機を使用したいのです。
金をかければ有名ブランドの金属探知機で安心、安全でしょう。
私がほしいのは安全だけなのです。
未熟なので能力が伴うかどうかは別として。
0318nobodyさん
2008/01/22(火) 14:42:26ID:???可能か不可能かって話なら可能だろ
0319308
2008/01/22(火) 16:03:11ID:???ありがとうございます!
今職場なので、帰宅したら試してみます。
>>310
避けたい気持ちでいっぱいです。
一応使えている人がいる様なのでもう少しいじり倒してみます。
0320nobodyさん
2008/01/22(火) 17:21:38ID:q9syKBOVどうやらこのスレにいるレベルでは無理そうな感じがしてきました。
>>318
ユーザーに負担はやはりかけたくないですね…。
PGPをざっと見てどのような物かがわかったのですが
できればユーザーにはシンプルにログインさせてあげたいです。
(ID & PASS ぐらい)
とは言っても数人で使う程度の予定で、
一度ログインしたら自動ログインできるように設定したいので、
ログイン画面は
ID入力画面→(データベース内容変更)→pass入力画面→ログイン
この流れでいこうと思います。
これだったら全ユーザーのパスワードを変更しなくていいですし。
これでどうしても証明やユーザーの手間を削減する必要がでてきたら、SSL導入を考えます。
ありがとうございました。
0321nobodyさん
2008/01/22(火) 17:46:58ID:???0322nobodyさん
2008/01/22(火) 17:52:25ID:???自動ログインは別の処理だろ?
>>320
素直にSSL入れておけ。
何に使うかよくわからんがSSLに慣れておく事も重要
0323nobodyさん
2008/01/24(木) 12:32:36ID:NF7q/+V1別サーバにあるファイルの更新時間を表示させるには
どうしたらいいのでしょうか?
0324nobodyさん
2008/01/24(木) 13:50:13ID:???ttp://always-pg.com/php/std_rd/ftp/ftp_rawlist.html
ファイルの中身だけであれば、httpで
$file = file("http://......../data.csv");
見たいな感じでいけるけれど。
0325nobodyさん
2008/01/24(木) 15:19:32ID:???get_headers("http://www.hoge.jp/hoge.html");
とやって、last-modifiedの値を見る
phpファイルなら、そのファイル自身にfilemtime(__FILE__)とかで更新時を出力させればいいと思う
0326323
2008/01/24(木) 15:32:15ID:NF7q/+V1試してみます。
いろいろ探してみたところ下のように”HTTPヘッダーから拾う”という方法を見つけました。
これで「Wed, 23 Jan 2008 00:00:00 GMT」と表示されるのを、
JSTにして、「6:15 1/24 Thu 」と表示したいのですが、整形の方法がわかりません。
どなたかご教授ください。よろしくお願いいたします。
0327323
2008/01/24(木) 15:32:38ID:NF7q/+V1$URL="http://対象ファイル";
$purl=parse_url($URL);
if(!$purl["port"]) $purl["port"]=80;
//開く
$fp=fsockopen($purl["host"],$purl["port"]);
//リクエストを送る
if($purl["query"]){
fputs($fp,"GET ".$purl["path"]."?".$purl["query"]." HTTP/1.0\n");
}else{
fputs($fp,"GET ".$purl["path"]." HTTP/1.0\n");
}
fputs($fp,"Host: ".$purl["host"]."\n");
if($purl["user"]) fputs($fp,"Authorization: Basic ".base64_encode($purl["user"].":".$purl["pass"])."\n");
fputs($fp,"\n");
//HTTPステータスラインを取得
$buf=fgets($fp,1024);
if(!strstr($buf," 200 ")) return(FALSE);
//HTTPヘッダを取得
//$finfo["HTTPヘッダ名"] に内容が格納される
while(!feof($fp)) {
$buf=chop(fgets($fp,1024));
if(!$buf) break;
ereg("^([^:]*): *(.*)$",$buf,$sbuf);
$finfo[$sbuf[1]]=trim($sbuf[2]);
}
echo $finfo["Last-Modified"];
?>
0328nobodyさん
2008/01/24(木) 15:46:09ID:???echo date('G:i n/j D',strtotime('Wed, 23 Jan 2008 00:00:00 GMT'));
こんな感じで。下記参照。
http://jp.php.net/manual/ja/function.date.php
0329323
2008/01/24(木) 16:57:23ID:NF7q/+V1echo date('G:i n/j D',strtotime($finfo["Last-Modified"]));
としたら望みどおりの結果になりました!!!
ありがとうございました。
0330nobodyさん
2008/01/26(土) 03:19:27ID:???0331nobodyさん
2008/01/27(日) 19:58:32ID:???YahooAPIを用いて画像検索を行い、検索された画像をクリックする事でその画像の類似画像を新たに検索して
Webページに表示させるPHPを作成しているのですが、クリックされた画像の色情報を取得する方法がわかりません。
画像のRGB値を求めて、その値に近い画像を表示させるつもりで現在考えています。
色の取得自体は一応できてるのですが下に処理を書きます
$im = imagecreatefromjpeg($content);
$img_w = imagesx( $im );
$img_h = imagesy( $im );
$cnt = $img_w * $img_h;
$r = array();
$g = array();
$b = array();
for( $i = 0 ; $i < $img_w ; $i ++ ){
for( $j = 0 ; $j < $img_h ; $j ++ ){
$rgb = imagecolorat($im, $i , $j );
$r[] = ($rgb >> 16) & 0xFF;
$g[] = ($rgb >> 8) & 0xFF;
$b[] = $rgb & 0xFF;
}
}
$index_r = intval( array_sum( $r ) / $cnt);
$index_g = intval( array_sum( $g ) / $cnt);
$index_b = intval( array_sum( $b ) / $cnt);
クリックされた画像に対してこの処理を行う方法がいまいちわかりません。
わからない事だらけなのですが何か助言を頂ければお願いします。
OS:WindowsXP
PHP: Version 5.2.5
ApacheVersion:1.3.26
0332nobodyさん
2008/01/27(日) 21:02:47ID:???検索結果表示時に画像リンクを
img.php?src=hogehoge.jpg
こんな風にimg.phpを経由させれば
img.php内で画像のソース取得などできるけど
こういう風に出来ない場合は
javascriptとかで画像に対してクリックイベント設定して
そこから処理させるとかかな・・・・
0333331
2008/01/28(月) 11:07:03ID:???遅くなりましたがレスありがとうございます。
事情があってjavascriptは使わずに処理をさせたいのですが
上の方法で少し考えてみます。
img.phpという別のphpを新たに作成してそこで処理をさせるみたいな感じでいいのでしょうか?
0334nobodyさん
2008/01/28(月) 11:31:46ID:???やり易いようになっているけれど、やはり、大規模な開発には
向かないとかいわれています。javaの方が良いと。
この理由は何処にあるのでしょうか。他のプログラムとの連携や
モジュール関連なのでしょうか。
0335332
2008/01/28(月) 11:46:04ID:???あーごめんちょっとぼけてた
<a href="hoge,php?src=hogehoge.jpg"><img src="hogehoge.jpg" /></a>
こういう風なリンクにしちゃえば
hogehoge.php内でどの画像がクリックされたとか解ると思うんだけどどうかな?
このhoge.phpにsrc=hogehoge.jpgを渡してやることによって
hoge.phpにはどの画像がクリックされたかわかるし
どの画像がクリックされたか解ればあとは上のコードでなんとかなると思うけど
0336331
2008/01/28(月) 11:54:21ID:???レスありがとうございます。
PHPだけでしたいのは他にも理由はあるのですがjavascriptはまだ全然勉強してないので・・・
でもPHPと連動させて作成するものが多いようなのでこれから勉強していきます
>>335
レスありがとうございます。
hoge.phpでそんなことができたのですね。一度やってみます
親切に教えてくれてありがとうございます
■ このスレッドは過去ログ倉庫に格納されています