【PHP】質問スレッドpart22【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/09/16 18:17:37ID:/HV017tY・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ等>>2-4
0167nobodyさん
04/09/19 00:09:59ID:s+sofMwN使いやすい。
0168nobodyさん
04/09/19 00:11:38ID:???0169nobodyさん
04/09/19 09:55:58ID:???php4でもOOPできるよって言われてはじめた者ですが
OOPってめちゃ面白いですね。
自分的に単なる作業に堕していたプログラミングが
物作りの輝きを取り戻した感じです。
0170nobodyさん
04/09/19 11:42:01ID:???0171nobodyさん
04/09/19 13:00:10ID:???0172158
04/09/19 13:12:11ID:iDnOmOi6アドバイスありがとうございます。
非常に参考になりました。
ライブラリの充実度等でPerlに一日の長があるみたいですね。
アドバイス頂いたことを参考に検討してみます。
0173nobodyさん
04/09/19 14:02:36ID:PuBS3YUf検索文字列が文字化けして困ってます。
プログラミングの知識は少ししかないのですが、
どのように修正すれば問題は解決するでしょうか?
0174nobodyさん
04/09/19 14:04:49ID:???文字コードが問題ではないのでしょうか。
0175nobodyさん
04/09/19 14:05:17ID:???まず文字化けの原因を探るべきでしょう。
それが終わってから、原因に応じた対処法を考え実装します。
使ってる人が多いものなら先人が修正してくれてる場合もあるけどね。
0176nobodyさん
04/09/19 15:34:18ID:tUr3B337function hoge(){
$a = func_get_arg(0);
$a++;
}
$a = 0;
hoge(&$a);
echo $a;
で結果は0でした。
またfunc_get_argの前に&を置いてみたりしたのですが
やはり変わらず…。
ということは可変長数の引数は参照渡しできないということでしょうか?
もし解決方法があれば教えてください。
0177nobodyさん
04/09/19 17:28:35ID:???FORMで送られたデータって他人が見えたりするんですか?
0178nobodyさん
04/09/19 17:36:30ID:???PC -> LAN -> ルータ -> ISP -> IX -> 鯖 etc.
どっかにスニファを仕込めば簡単に見えるね。
他にもプロキシとかあればそこでも仕込めるし。
曖昧な質問には曖昧な答えしか出てこないよ。
PHP言語に関係ないし。
0184nobodyさん
04/09/19 19:47:37ID:???自分で探せばすぐ見つかるのに、エサもらえるまで口開けてまってるのか。
http://www.zend.org/store/
Zend Studio : free evaluationてのがあるじゃん
0185104
04/09/19 20:21:10ID:???$fp = fsockopen ($host, $port) でソケット接続をオープン
それはストリームでファイルポインタを返す
あとは fputs($fp, $request) でリクエストを送る
POSTの場合は
POST /test.php HTTP/1.0
Content-Length: 渡したい文字列の長さ
(空行)
hoge=fuga&hoge2=fuga2&....
な感じですね。改行は\r\n
レスポンスはfgets($fp)で拾えばよろし
いやぁ、勉強になりました。学校の実験でサーバクライアントは作ったんですけどすっかり忘れてました
レスしてくださった皆さんありがとうございました
0186nobodyさん
04/09/19 21:08:13ID:???.NET Framework な PHP はありませんか?
0187176
04/09/19 22:11:00ID:tUr3B337ここを見ると、引数を充分な数増やすことで逃げられるようですが、
可変長参照渡しはやはり出来ないということでしょうか。
0190nobodyさん
04/09/19 23:43:36ID:???何故ドメイン名と言語名が同列で比較できるのか不明なのだが、比較観点はなに?
0191カポコン
04/09/20 01:01:19ID:???0192176
04/09/20 04:25:11ID:???配列を引数にすることで解決しました。
0193nobodyさん
04/09/20 07:49:43ID:ljpqr4Swwhile ( !feof($pp) ) {
echo fgets($pp) . "<br>";
echo $pp . "<br>";
}
pclose($pp);
↑をaaacafeで実行した結果が「<br>Resource id #3<br>」なのね
なんでファイル名が取れておらんのやろか
0194nobodyさん
04/09/20 08:26:15ID:???0195nobodyさん
04/09/20 08:29:59ID:???そんな心配をする必要なない。
0196nobodyさん
04/09/20 08:33:36ID:???0199nobodyさん
04/09/20 09:08:59ID:???IDとパスワードが一致すると入室させるのですが
管理ページも数ページに分かれていて
ページ移動するたびにIDとパスワードを入力させるのは面倒なのでどうしたらいいのでしょうか?
パスワードが一致するとAのページを表示させ
そこからBのページを表示させたい場合です。
0201nobodyさん
04/09/20 09:20:49ID:???0202nobodyさん
04/09/20 09:21:28ID:???そこまで考えてるなら、ちょい気張ればブリッと思いつくはずだ。
まあしかしこの際思いつかなくてもApacheのBasic認証使ってしまえばいいが。
0203199
04/09/20 09:26:31ID:???使わないでやれないでしょうか?
0204nobodyさん
04/09/20 09:29:48ID:???ここは丸投げスレでも199サポートセンターでもありませんよ
0205199
04/09/20 09:42:09ID:???ありがとうございました
0206nobodyさん
04/09/20 09:54:26ID:fqefKnLK自分なりに調べてみたんですがさっぱり解らなくて、それで、考え付いたのがセッションでして。。
ヒントだけでも頂けないでしょうか。。
0207nobodyさん
04/09/20 10:06:49ID:???始めの画面でIDとパスワード使ってログインしたら、
セッションに認証用のキーワードを指定してみるといい。
セッションにそのキーワードが無い場合は、「ログインしてください」みたいな
メッセージを出して中身を表示しないようにする。
キーワードは短い言葉だと危険なので、最低でも400文字以上がいいと思う。
俺は好きな曲の歌詞とかをキーワードにしてるよ。
0208nobodyさん
04/09/20 10:09:18ID:???http://pc5.2ch.net/test/read.cgi/php/1064399467/l50
0209nobodyさん
04/09/20 10:20:40ID:???なるほど!
そういう考え方があったんですね。
俺が煽られたわけじゃないけども、199と気持ちは同調してると思ってるんで、いろいろ言われて当然だと思いましたorz
>>208
一通り見ていたつもりなんですが、うまく脳みそに入ってなかったみたいです。
出なおしてきますorz
0211nobodyさん
04/09/20 10:51:28ID:???演歌がセキュアな気がする。
0212193
04/09/20 10:55:12ID:ljpqr4Swaaacafeはセ-フモ-ドではないみたいやけど
newdirしてもパ-ミッションが限定されておったりするから
なんやろ仕掛けられておるやもしらんよ
とりあえずpopenではエラ-もワ-ニングも出らんでよ
まぁのんびり調べてみるやぁねアリガトウやね
0213nobodyさん
04/09/20 10:56:07ID:???セキュリティを重視するなら512文字以内にした方がいい。
400文字というのはちょうど良いんじゃないかな。
0214nobodyさん
04/09/20 12:12:34ID:???too muchなんだよ。
以前、512文字設定で突破されたことがある。
メジャーな曲だったので反省している。
256文字程度でマイナーな曲に限る。
0215199
04/09/20 12:57:42ID:???0216nobodyさん
04/09/20 13:07:24ID:???認証される文字列が256辺りになると、
トラッキング側でノイズ起因のエラーが起こる為に
セキュアであると言えると思う。
0217nobodyさん
04/09/20 13:43:29ID:???そういえば、セッションIDって32文字だよね。
32文字だといつハイジャックされるか不安です。
セッションIDをせめて256文字にすることはできるんでしょうか。
0218199
04/09/20 13:55:50ID:???0219nobodyさん
04/09/20 14:04:49ID:???0220nobodyさん
04/09/20 14:21:00ID:???0221nobodyさん
04/09/20 14:36:32ID:???0222nobodyさん
04/09/20 15:45:39ID:???0223nobodyさん
04/09/20 15:51:58ID:???そこでSSLですよ。
もしくは、セッション開始時にランダムな256文字の文字列生成して、
クッキーとセッション変数両方に保存して、次回のアクセスでこの二つを比べる。
あと、リモートホストをセッション変数に入れとくとか。
0226nobodyさん
04/09/20 16:41:25ID:???キーワード400文字ってのはマジなのでしょうか?
初心者対象スレなんでネタならネタとわかるような書き方にして欲しい。。。
0228nobodyさん
04/09/20 16:46:43ID:???お前基準かよ
0229nobodyさん
04/09/20 16:55:07ID:???400文字は多すぎ。256文字以内。これ。
んで、認証時にはセッションから取り出した数式を
受け取り側であらかじめ持っていた数式と結合し、計算する。
ex. $_SESSION[key] = '256×12÷5×7000÷…(以下長いので割愛。256文字以内になるようにする事!)';
答えをあらかじめ設定しておき、
$int_a = 6548;
セッションの数式と受け取り側の数式を結合して計算した答えが$int_aになるようにしておく。
もちろんセッションの値はそのままではstrにすぎないので、×や÷で分割して数値をintに変換し、計算すること。
0230nobodyさん
04/09/20 16:55:58ID:???0231nobodyさん
04/09/20 16:57:38ID:???仮託するなよ乞食のくせに。
0233nobodyさん
04/09/20 17:03:19ID:???みんなセキュリティーに対して関心が高いんだね。
0234nobodyさん
04/09/20 17:09:55ID:???素で知らなかった…orz。
asp->Perl->PHP(先週)なのです。。ありです。。
ということは、>>229を改造して
$_SESSION[key] = '$int_key_a*$int_key_b+$int_key_c/$int_key_d-$int_key_e';
$int_a = 6578;
$int_key_a = 2;
$int_key_b = 500;
〜
if ($int_a <> eval($_SESSION[key])) {
echo '帰れ';
}
って事も出来たりするんですかね?w
今度から認証はこっちでやろうかな!w
0235nobodyさん
04/09/20 17:11:24ID:???0236nobodyさん
04/09/20 17:13:08ID:???半年ROMってろはちょくちょく見るけど。
>>230
はげ同。ドキュメントだっていくらでもあるのに・・・。
使い方“だけ”知ってる奴の異様な発想がこわい。
分からないことは誰かが教えてくれると思ってる奴は
phpじゃなくて自分自身がでかい穴になってることに
早く気づいて欲しい。
0238nobodyさん
04/09/20 17:14:50ID:???それは理解してますよー。"は変数を解釈してくれるんですよね?
ただこの場合は、一度文字列としてセッションに格納しなければいかんので
eval使わないとダメかなーと。
0239nobodyさん
04/09/20 17:16:21ID:???なんか下らねーことになってるからしばらく様子見たほうがよさそうだな、このスレ。
0240nobodyさん
04/09/20 17:17:35ID:???0241nobodyさん
04/09/20 17:18:18ID:???0242199
04/09/20 18:34:36ID:???0243nobodyさん
04/09/20 19:42:54ID:???0244nobodyさん
04/09/20 22:55:47ID:???0245nobodyさん
04/09/20 23:02:23ID:???PHP で掲示板を作っているのですが、
文章中に空行2つがでてきた場合、そこを境に違う記事として処理できるようにしたいと考えています。
そこで $mes = preg_split('/\n\n\n/', $_POST['mes1'], -1, PREG_SPLIT_NO_EMPTY); としたのですが、うまく動きません。
Unix と Mac と Win の改行文字の違いは聞いたことがあったので、この行の前に
$_POST['mes'] = preg_replace("/\r\n/", "\n", $_POST['mes']);
$_POST['mes'] = preg_replace("/\r/", "\n", $_POST['mes']);
を入れました。一応 Win では動作することに成功したのですが、力技になっているようで気が引けます。
皆さんはどうやって改行文字を処理しているのでしょうか?
0246nobodyさん
04/09/20 23:26:04ID:???explode()じゃないんだから、\n{3}|(\r\n){3}|\r{3} でいいんじゃないの?
空行2つってのはよく分からん仕様ですな。改行コードの問題も面倒だし。
あと本題と関係ないけど、質問するときに、この書き方するのは絶対止めてね。
>うまく動きません。
0248nobodyさん
04/09/20 23:29:10ID:???0249246
04/09/20 23:31:45ID:???保存時に \r\n{3}|\r{3} -> \n\n\n にしておいて、
内部的に explode() 使うほうが合理的か。
0250nobodyさん
04/09/20 23:33:28ID:???$msg = preg_replace('/(\r\n){3}|\r{3}/', "\n\n\n", $msg);
0252nobodyさん
04/09/20 23:37:29ID:???漏れも一瞬そう思ったが、どっちがいいかは分からんよ。
$_POSTを書き換えてるし、dat使うとは書かれてないからな。
0253245
04/09/20 23:50:19ID:???>>246
すみませんでした。Win で動作確認をしているのですが、この場合は空行2つが認識されず
$mes[0] に $_POST['mes'] がそのまま代入されていました。
(文中の $_POST['mes1'] は $_POST['mes'] の間違いです。重ねてすみません。)
データベースに放り込んでいるので、保存前に記事を分割して完全に違う記事として扱う仕様です。
>246さんの \n{3}|(\r\n){3}|\r{3} をそのまま使って
$mes = preg_split('/\n{3}|(\r\n){3}|\r{3}/', $_POST['mes1'], -1, PREG_SPLIT_NO_EMPTY);
で利用させていただきます。
>>246-252
ありがとうございました。
025453
04/09/21 00:28:49ID:???亀な自己解決ですが、
スクリプトの最初に、
ob_start():
スクリプトの最後に
while (ob_get_level() > 0) {
ob_end_flush();
}
がよさそうです。
http://jp2.php.net/manual/ja/function.ob-end-flush.php の投稿を
をぱくりました。
0255nobodyさん
04/09/21 08:17:03ID:RhfcLugKPerlのexists関数のようなものがあればいいのですが…
0256nobodyさん
04/09/21 08:19:41ID:???http://jp.php.net/array
0257255
04/09/21 08:27:04ID:???googleでかなり探したのですが…スンマソン
0258nobodyさん
04/09/21 08:42:24ID:???マニュアルサーチでもいいけどさ。
0259nobodyさん
04/09/21 09:08:53ID:???1)ログイン処理を行う
2)ログインに成功したら、ユニークなキーを発行してセッション変数に持たせる。
と同時にそのキーを元に一つのレコードに更新時間とIPを記録する。
3)ログインチェックでは、セッションに保持されたキーを元にDBを検索して更新時間と
IPをチェックする。チェックが通れば更新時間の更新を行う。
4)一定時間すぎたレコードはガベージコレクションする。
てな具合でいいと思われまする。
0260nobodyさん
04/09/21 09:15:48ID:???いやよくない。
0263nobodyさん
04/09/21 09:45:43ID:???0264nobodyさん
04/09/21 09:48:15ID:???0265nobodyさん
04/09/21 09:56:50ID:???正しいつもりで安心してるからだろか。俺は吐き気すんだけど変かな?
■ このスレッドは過去ログ倉庫に格納されています