【PHP】下らねぇ質問はID出して書き込みやがれ 105
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/03/17(木) 04:00:34.11ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 104
http://hibari.2ch.net/test/read.cgi/php/1297669559/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0532nobodyさん
2011/04/08(金) 17:56:37.59ID:???引数をもう一度調べたところ、どうやら間違っていたようです。
find('all'...の使い方を碌に調べずにやっていたせいですね。
どうもありがとうございました!
0533nobodyさん
2011/04/08(金) 18:26:27.14ID:???配列の要素を参照渡しすると勝手に定義されてしまう謎の副作用のせい
http://ideone.com/w9p4u
0534nobodyさん
2011/04/08(金) 18:56:46.86ID:gZ3pjAdfPHPから.htaccessを書いて、アクセスしてみるしかない?
0535nobodyさん
2011/04/08(金) 19:01:27.20ID:???これのどれかでできなきゃ無理なんじゃね
0536nobodyさん
2011/04/08(金) 21:33:10.16ID:6kx7EUS0ありがとうございます。直しておきました。。
undefined indexは気にしなくていいんですね
0537nobodyさん
2011/04/08(金) 22:42:44.15ID:TULfamPXCakePHPもダウンロードしてみましたが、掲示板を
カスタマイズしている程度の私には不要な気がしました。
皆さんは、どんなソフトを使ってPHPを書いていますか?
0540nobodyさん
2011/04/08(金) 22:49:53.20ID:???0541nobodyさん
2011/04/08(金) 23:00:01.73ID:???0545nobodyさん
2011/04/08(金) 23:54:47.66ID:zTYaWkKEを防ぎたいと思っています。
ログイン時間をDBなどに保存してチェックをする方法以外に
何か良い方法はないでしょうか?
0546nobodyさん
2011/04/08(金) 23:57:20.79ID:???恥ずかしいとかwwww
馬鹿じゃないのかなぁ?
恥ずかしいって何?
能率が悪いコーディングしてるなって思われる事?ww
そんな事を言う事が恥ずかしいわww
0548nobodyさん
2011/04/09(土) 00:04:18.80ID:???UAとは?UserAccount?
>>DBなどに保存してチェックする方法以外に
日本語読めますか?意味わかります?
クッキーwwwwwwwwwwwwwww
0550nobodyさん
2011/04/09(土) 00:32:07.21ID:???「同じアカウント」での多重ログインを防ぐってことは、ログインIDやパスワードが存在するわけで、
つまりアカウントをDB等で管理してるわけだよね。
他のブラウザからの同一アカウントでのログインを防ぐためには、
現在ログイン中のブラウザにログイン中のフラグを持たせるためにクッキーを食わせておけばいい。
他のブラウザでアクセスしようとしたら、ログイン中フラグを持つクッキーが存在しないので
一度強制ログアウトさせてログイン画面へ誘導する。
その際に最初にログインしたブラウザに保存させたクッキーはシステム側で無効にしておく。
ってのが普通の多重ログイン防止処理なんだけど、やっぱりDB等での管理は要るでしょ。
>>547じゃないけど、>>547がクッキーって書いてるのは別におかしくはない。
0551nobodyさん
2011/04/09(土) 00:36:09.40ID:???0552545
2011/04/09(土) 00:39:16.34ID:lDu5zS4y詳しくありがとうございます。
クッキーを食わせるのは想像が付くのですが、
例えば、ログアウトせずにブラウザを閉じた
ユーザーの場合はどうなるのでしょうか?
ログインの時はセッションで管理してるので
セッション+クッキー(まぁ、同じですが・・・)が正しい場合は続行で、
クッキーしかない場合は強制ログアウトとかでしょうか?
少し設計のイメージが沸きません・・・
0553nobodyさん
2011/04/09(土) 00:50:02.87ID:???>>552
あくまで一例だけど、DB使っていいなら、ユーザーマスターに日時項目を持たせて、
ログイン中はIFRAMEのREFRESHでもJavaScriptの非同期通信でもいいから
3分毎にその日時を現在日時に更新
ログイン時に、その日時+3分以上経過していなかったらはじく
0554545
2011/04/09(土) 00:56:51.13ID:lDu5zS4yなるほど。そう言う手もあるんですね。
今はログイン時にログイン時間をDBに記録し、
別ブラウザからログインしようとした場合、
ログイン時間から30分経過してない場合はログインできないようにしてるんです。
ただ、この場合「うっかりブラウザを閉じてしまった」場合でも
30分待たなくてはいけないわけで、ユーザーからクレームが来ないかと心配です。
ログイン時の時間を記録するのではなく、ログインしている間の時間を
定期的に記録するという仕様は良いですね。ぜひ参考にさせていただきます。
0555nobodyさん
2011/04/09(土) 01:09:43.98ID:9CNXe0e9>>545=>>552ではないが。
>>他のブラウザでアクセスしようとしたら、ログイン中フラグを持つクッキーが存在しないので
>>一度強制ログアウトさせてログイン画面へ誘導する。
@ あるユーザーがいます
A あるサイトがあり、あるサイトの管理画面を利用するにはログインが必要です。
B InternetExplorer でログインして管理画面で糞入力項目が多いところを”必死に入力”します。
C 誤ってFirefoxを立ち上げたら初期画面がそのサイトの管理画面でした。
D InternetExplorer側が強制ログアウトww
E ログアウトを知らないユーザーはFirefoxを「間違えた、邪魔」といって閉じます。
F InternetExplorerでサブミットクリック!!え!!必死になって入力したのに!!
>>552
時間しかないじゃん。
0556nobodyさん
2011/04/09(土) 01:10:52.08ID:???すでにその仕様でのクレームを心配すべきでしょ。
多重ログイン禁止ってのは、お前よりあとにログインしたブラウザがあるからお前強制ログアウトなって
処理するのもある。 目的はなに?
0557548 555
2011/04/09(土) 01:12:49.48ID:9CNXe0e9進めど茨の道しかない。
0558nobodyさん
2011/04/09(土) 01:15:18.42ID:???0559nobodyさん
2011/04/09(土) 01:17:34.81ID:???結局DBを使ってよいならググればいくらでも解説は見つかると思うが。
多重ログイン セッション あたりの単語でどうぞ。
基本的には後半に書いてあるとおりでよい。
別のブラウザから同じアカウントでアクセスがあった場合は最初のブラウザのセッションを削除して
新たなセッションを開始すればいい。
注意するのは、最初のブラウザがログイン中は他のブラウザからのログインを不可にすることも可能ではあるが、
そうすると最初のブラウザが強制終了した場合など、ログインタイムアウトが過ぎるまで再起動したブラウザや他のブラウザから
一切ログインできなくなってしまうので不便なシステムとなってしまう。
0560545
2011/04/09(土) 04:54:23.39ID:lDu5zS4y全く上手く行きません・・。他のブラウザで多重ログインできます。
ログイン用のプログラムは↓です。
// セッションを削除
if (isset($_COOKIE['PHPSESSID'])) {
setcookie('PHPSESSID', '', time() - 86400, '/');
}
//セッションを再構築
session_start();
setcookie('PHPSESSID', session_id(), time() + 86400, '/');
// 会員情報をセッションに入れると仮定
$_SESSION['MEMBER'] = $member;
// マイページへ
header('Location:mypage.php');
こんな感じで「最初のブラウザのセッションを削除」して
新たなセッションを開始すると思ったのですが、多重ログイン出来てしまいます。
なにか考え方が悪いんですかね?「PHP 多重ログイン セッション」などで
ググってもこれと言った説明ページが見つかりませんし・・・
0561nobodyさん
2011/04/09(土) 07:31:00.98ID:???session_id() で意図する値が得られていますか?
0562nobodyさん
2011/04/09(土) 07:41:13.29ID:???君、>>554でDB使うことにしたんじゃないの?
>>559の本意は知らないけど、「最初(のユーザー)のセッションを削除する」ってのは、
後からログインしたユーザーを優先するって意味になるかと思うけど、まずその仕様でいいの?
んで、セッション情報ってサーバー上にファイルとして保存されてるのはわかってるかな?
本気でDB使わずセッションだけでやるなら、サーバー上のセッション情報を検索して
削除とかトリッキーなことになるけど、本気の本気?
0563nobodyさん
2011/04/09(土) 08:56:47.01ID:???変数交換とか付け足して最後に返すやつとか
$tmp = $a[0];
$a[0] = $a[1];
$a[1] = $tmp;
$buf = "";
foreach ($a as $value) {
$buf.=$value;
}
$buf.="hoge";
return $buf;
みたいな感じで$tmpとか$bufとか使ってるけど
もっと一般的なもんない?
0564nobodyさん
2011/04/09(土) 10:04:06.45ID:???交換なら$swap?
付け足しなら$cat?
0565nobodyさん
2011/04/09(土) 11:48:01.59ID:???$ichiji
$tenporari
$tesuto
あたりかな
0566nobodyさん
2011/04/09(土) 11:51:30.52ID:???質問ならば >>1 を読み返して出直すと良いと思う。
0572nobodyさん
2011/04/09(土) 18:06:43.41ID:LAXo4B+J今、例外発生したらエラーコントローラに投げて例外情報に従った処理をするプログラムを書いています
そこで、throw new Exception();で指定できるexceptionの引数って、配列は無理なんでしょうか?
エラー発生時の状況を知らせたいので以下のようにやりたかったのですがエラーになりました
$errMsg = array(
'errType'=>'token_error',
'uId'=>$uId,
'uType'=>$uType,
'file'=>__FILE__,
'line'=>__LINE__
);
throw new Exception($errMsg);
マニュアルやエラーメッセージを見るとException([string $exception [, long $code ]])て書いてあるので
無理なのはわかるんですが、上記のようなエラーの詳細情報を投げたい時はセッションに情報を入れて
エラー処理(エラーコントローラのスクリプト)でセッションを拾って解析&実行するしかないですか?
皆さんどうやっていますか?
ご意見お願いします
0573nobodyさん
2011/04/09(土) 18:09:12.18ID:???0576nobodyさん
2011/04/09(土) 20:03:16.76ID:???○どうやればいいんでしょうか?
0577nobodyさん
2011/04/09(土) 20:22:47.86ID:???0578nobodyさん
2011/04/09(土) 20:32:48.96ID:???0579nobodyさん
2011/04/09(土) 20:33:07.06ID:???○継承
0580nobodyさん
2011/04/09(土) 20:34:56.50ID:???0581572
2011/04/09(土) 20:38:30.66ID:LAXo4B+J0584nobodyさん
2011/04/10(日) 03:42:37.21ID:???公式読んでおけばアホの相手をしなくて済むんだ
http://www.php.net/manual/ja/language.exceptions.extending.php
0585nobodyさん
2011/04/10(日) 10:06:16.88ID:vY8CJ6sh空の配列変数に値を入れたいのです
$ary = array(1 => "a" , 2 => "", 8 => "" , 9 => "b" , 10 => "")
があるとして、
繰り返し一回目で$ary[2]に代入、二回目で$ary[8]に代入…
という感じにしたいのです
毎回頭から空かどうか検索するのも効率悪そうですし、
なにかシンプルな方法があればご教授お願いします。
0586nobodyさん
2011/04/10(日) 10:37:17.11ID:???}
0587nobodyさん
2011/04/10(日) 10:37:56.27ID:???0588nobodyさん
2011/04/10(日) 10:50:55.33ID:He2iWruv$xml->name
↑これだとnameタグの部分しか出ませんが、
$xmlに入ってる生データをそのままごっそり出したいんです。
file_get_contentsとかでそのままとってきて吐き出すのはだめです。
xmlオブジェクトを何回か読んであるところまでスキップしてから吐き出したいもので。
お願いします。
0590nobodyさん
2011/04/10(日) 11:10:57.39ID:???毎回頭から検索じゃなくて前回見つかったインデックス番号を変数に保存しておいて、
そのインデックス+1から空を検索するようにすればいい
てか、そもそもforeachで$aryを検索するなら、勝手にポインタ保存されてるっしょ
0591nobodyさん
2011/04/10(日) 11:12:43.46ID:He2iWruvありがとうございます。やってみます
0592nobodyさん
2011/04/10(日) 11:35:41.27ID:???0593nobodyさん
2011/04/10(日) 11:40:26.75ID:???0594nobodyさん
2011/04/10(日) 11:49:39.04ID:???Win環境で自動アップデートできるなら欲しい
0595nobodyさん
2011/04/10(日) 11:59:44.13ID:???そういう意味での自動アップデートなら、既にyumがあるじゃん
windowsならインストーラがあるだろ
定期的にチェックして勝手にアップデートしてくれる機能だったら、馬に食わせるくらいしか役に立たない
0596nobodyさん
2011/04/10(日) 12:00:02.32ID:???0597nobodyさん
2011/04/10(日) 12:01:25.39ID:???0599nobodyさん
2011/04/10(日) 12:19:06.89ID:???0601nobodyさん
2011/04/10(日) 12:28:58.06ID:???荒れるから次の質問どうぞ。
0602nobodyさん
2011/04/10(日) 12:38:21.30ID:???0604nobodyさん
2011/04/10(日) 14:45:18.92ID:???0605nobodyさん
2011/04/10(日) 15:31:36.36ID:???0606nobodyさん
2011/04/10(日) 16:14:16.40ID:???0607nobodyさん
2011/04/10(日) 16:14:38.89ID:???0608nobodyさん
2011/04/10(日) 16:42:41.88ID:???0609nobodyさん
2011/04/10(日) 20:31:24.18ID:7H7FFmtv20KBくらいの画像が100KB越えになってしまい、古い携帯だと容量越えになってしまいます
容量小さくする方法ありますでしょうか?
それか、他に軽く文字を上に乗せる方法などありましたらご教授ください。
宜しくお願いします。
0610nobodyさん
2011/04/10(日) 20:59:41.47ID:???0611nobodyさん
2011/04/10(日) 21:01:43.61ID:???回答有難う御座います。
画像のサイズを20KBから10KBに落としたら90KBくらいになりました
処理だけで+80KBくらい上乗せされちゃうのは仕方ないのでしょうか?
0612nobodyさん
2011/04/10(日) 21:10:35.93ID:???http://php.net/manual/ja/function.imagejpeg.php
第三引数にqualityってのあるでしょ
それを見直しな
0613nobodyさん
2011/04/10(日) 21:19:04.00ID:???ありがとうございます。意味を穿き違えてました。
そのqualityを下げる処理をするために、
header('Content-Type: image/png');
imagepng($im);
を
header('Content-Type: image/jpeg');
imagejpeg($im);
として吐き出すようにしたら
それだけで90KBから14KBまで縮んでしまいました
png自体がそもそもの原因だったんでしょうか
0614nobodyさん
2011/04/10(日) 21:27:50.92ID:???0615nobodyさん
2011/04/10(日) 21:32:59.66ID:???imagepngの圧縮レベルのデフォルトがあまり高くないんじゃね?
マニュアルには
> 圧縮レベル。0 (圧縮しない) から 9 までの値です。
としか書いてないけど
imagejpegのほうは
> quality はオプションであり、0(品質は最低 ですが、ファイルはより小さい)から100(品質は最高ですが、
> ファイルは 最大)の範囲で指定します。デフォルトは IJG 品質値(75)です。
と書いてるからデフォルトである程度圧縮されてる
header('Content-Type: image/png');
imagepng($im, null, 9);
とかにしたらだいぶ小さくなるんじゃね?
0616nobodyさん
2011/04/10(日) 22:11:01.27ID:2E3V6CALコンソール画面でPHPを実行(またはcron)し、エラーが返って来た時のみ、特定のメールアドレスにメッセージを送るにはどのような処理を書けばよいのでしょうか?
例えば、次のコマンドをコンソール画面で叩いた場合
# /usr/local/bin/php /path/hogehoge.php
XML_Parser: Invalid character at XML input line 15
と返って来た場合、そのエラー内容をhogehoge@example.comにメールを送ります。
0617nobodyさん
2011/04/10(日) 22:22:25.53ID:???全部標準関数です
0618nobodyさん
2011/04/10(日) 23:45:40.01ID:???http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1159440211
0619nobodyさん
2011/04/11(月) 02:39:55.53ID:???>>616はPHPスクリプトの外でエラーを取得してメールを送りたいんじゃないの?
もっとも、そのPHPスクリプトの中でエラーハンドラを設定すれば済むだろうけど
0623nobodyさん
2011/04/11(月) 11:35:26.41ID:???>XML_Parser: Invalid character at XML input line 15
0624nobodyさん
2011/04/11(月) 12:46:19.04ID:???0625nobodyさん
2011/04/11(月) 12:52:57.75ID:???0626nobodyさん
2011/04/11(月) 13:12:31.34ID:???0627nobodyさん
2011/04/11(月) 13:17:55.00ID:???>2011/01/28
http://hibari.2ch.net/test/read.cgi/prog/1291518728/
>1 :amachang撲滅振興協議会:2010/12/05(日) 12:12:08
> amachangが憎い・・・・amachangが許せない・・・・
> ククク・・・・クククククク・・・・・
> クックックックックックックッ・・・・・
> クー、クー、クー、クー、クー、クー・・・・・
>
> もう許せない。
> もはや沸き上がる滅意を抑えることが出来ない!!!
0628nobodyさん
2011/04/11(月) 14:00:48.95ID:???0629nobodyさん
2011/04/11(月) 14:16:22.95ID:???0631nobodyさん
2011/04/11(月) 16:58:26.84ID:???俺答え知ってるぜーって自慢したいの?
■ このスレッドは過去ログ倉庫に格納されています