トップページphp
1001コメント331KB

【PHP】下らねぇ質問はここに書き込みやがれ 45

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/05/12(土) 16:42:48ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1177635762/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0182nobodyさん2007/05/29(火) 20:54:25ID:???
>>177
ローカルに環境を構築してください。
最低でもPHPはインストール。
ちゃんとした動作を検証したいのならApacheも入れてください。
DBを使って開発するのであればDBも入れてください。
XAMPPでぐぐると幸せになれるかも。
0183nobodyさん2007/05/29(火) 20:55:41ID:queQBOHY
>>182
ありがとう!

今までC言語とC#しかしたことがないので
これから大変お世話になりますのでよろしくお願いします。
0184nobodyさん2007/05/29(火) 21:50:25ID:HenTyugE
最近連日のようにリロード攻撃を受けて、
DBサーバーがダウン(コネクションオーバー)するのですが、
php側で防ぐ方法で、有効な方法を教えて頂けますか?
ちなみに、レンタルサーバーです。かなり困っています。
0185nobodyさん2007/05/29(火) 21:52:56ID:???
>>184
アプリケーションレベルでは下手に対応しない方が寧ろいい。
DoSアタックの対応はもっと下位のレイヤでやるべき。
0186nobodyさん2007/05/29(火) 21:56:19ID:???
DBでどういう処理してるかによるけど、
html化しても問題のないようなものなら、
html化すればいいと思うけど。
0187nobodyさん2007/05/29(火) 21:59:36ID:KHJlG38T
$somarray = array(
"abc"=>array("123"=>"456"),
"cde"=>"789",
"fgh"=>("hij"=>array("xyz"=>"10",array("foo"=>"bar"))
);

のような任意の連想配列で、fooを検索キーにして、
foo->hij->fghの並びを取得できる関数で適切なものはありますでしょうか?。
foreachを使うにしてもそれを補助的に支える関数を探しているのですが。
0188nobodyさん2007/05/29(火) 22:01:22ID:HenTyugE
>>185-186
早速の回答ありがとうございます。

>>185
レンタルサーバー(xrea)のため、なかなかそこが対応できないんです。
できれば、アプリケーションレベルで対応できればと思うのですが。
専用サーバーならいいのかもしれないのですが、運用経験がないので逆に危険かと思いまして。

>>186
動的に生成しないとホームページとして成り立たないものなので、
それも難しいのが現状です。すみません。
0189nobodyさん2007/05/29(火) 22:04:16ID:???
>>188
どうせ串経由なんでしょ?だったらBBQとかではじけばいいんじゃないの?
0190nobodyさん2007/05/29(火) 22:11:57ID:HenTyugE
>>189
いやぁ、それが串でもないんです。
串は、リストを作って独自プログラムで弾いているのですが、
普通のプロバイダーのIPからやられます。
日によって違うプロバイダーなので、違う人からなのかも。

政治とか教育とか意見が対立する掲示板を運営しているので、
論破された奴が荒らしているのかと。
リロード攻撃されると、暫く接続エラーになってサービスがとまって、
そのたびにサービスがとまっていると苦情のメールが。ほとほと疲れます。
0191nobodyさん2007/05/29(火) 22:17:25ID:???
ふむ。
じゃあsessionつかって、同一IPからある一定時間内($range_time)に複数回($reload_count)以上の
reloadがあった場合は、<なんかする>、みたいな感じでいいんじゃないの?
DBアクセスがボトルネックなんだったら、<なんかする>=キャッシュだけを送信する、とか。
結局、実装は、運営policyによるでしょ。
0192nobodyさん2007/05/29(火) 22:29:53ID:???
>>190
サーバまわりを強化しJava+Oracleで書き直す。

というのは冗談だけど、
そのコンテンツじゃPV多そうだし共有鯖だとかなり負担かけてるんじゃない?
ユーザより先にレンタル先に捨てられないように気をつけておくんなまし。
0193nobodyさん2007/05/29(火) 22:57:20ID:???
>>188
アプリケーションレベルでの対応は逆効果なんだよ。
XREAに通報したら何らかの対応はしてくれるんじゃないか?無料なら知らんが。
0194nobodyさん2007/05/29(火) 23:36:58ID:???
XREAスレ見てるのかな
最近200番台後半の鯖で中国からのアタックがあったよ
上位回線レベルで対策したそうだ
0195miu2007/05/30(水) 00:51:31ID:EHTzgQl2
iframeの中を(srcを)httpsのページにしています。
この中でセッション変数を使いたいのですが、
うまく値を引継げません。
session_id()を確認すると、ページごとに異なる値が
返ってきています。

なにか、セッション変数を使うための方法・設定というのはあるのでしょうか?

よろしくお願い致します。
0196nobodyさん2007/05/30(水) 01:34:43ID:???
TEMPORARYテーブルとか業務で使ったりする人います?
0197nobodyさん2007/05/30(水) 03:26:34ID:???
DDoSて古典的な方法の癖に未だにPGを悩ませがちだよね。
さくらの専用鯖みたいな安い専用借りてiptableで弾くとかはどうだろ。
XREAは過負荷になってもちょっと生暖かい目で見ててくれるけど他のユーザはその間しわ寄せ受けてる希ガス。
0198nobodyさん2007/05/30(水) 03:55:42ID:U6fy+t+P
質問です
同じ結果なら、
実行速度が遅い・重いプログラムより、速い・軽いやつがいいとは聞きますし、私もそう思いますが、
実行速度を数値化したりするなどして確認する手段はありますか?
0199nobodyさん2007/05/30(水) 04:27:45ID:???
>>184
テキトーだけど、こんな感じで軽減できない? 行詰めているので見にくいがすまん
<?php
function sessCtrl(){
session_start();
$lastvtime = $_SESSION["lastvtime"];
if($lastvtime){
$timediff = time() - $lastvtime;
if($timediff <3){
//ここでさよなら
die("<html><head></head><body>3秒以内リロード禁止<hr/><pre> 前回アクセス:"
.date("Y-m-d H:i:s",$lastvtime)."/只今"
.date("Y-m-d H:i:s",time())."</pre><hr/></body></html>");
//もしくは強制10秒待たせる
//sleep(10);
}
}
$_SESSION["lastvtime"]=time();
return $lastvtime;
}
$lastvtime = sessCtrl();
?>
<html><head></head><body> ここはOK也 <hr/>
<?php echo " 前回アクセス:".date("Y-m-d H:i:s",$lastvtime)
."/只今".date("Y-m-d H:i:s",time())."<br/>";
var_dump($_SESSION); ?>
<hr/></body></html>
0200nobodyさん2007/05/30(水) 07:03:10ID:???
>>198
前スレらへんで誰かが開始時刻と終了時刻を取れば良いって言ってたよ
0201nobodyさん2007/05/30(水) 09:09:58ID:Hm83KMHn
質問をふたつほどよろしいでしょうか。

アクセスしてくる者全員が共有できるような変数って作れますか?
Aさんが1を代入したらBさんにも1になるような。
テキストファイルを使わないとだめなのかな。

それから、サーバ上のファイルを自由に編集する画面があるのですが
ひとりがそのページを開いている間は
次に来た人には、ただいま混みいっています、のような画面を表示させたいのですけど
スマートなやりかたってないですか?
0202nobodyさん2007/05/30(水) 09:38:06ID:???
ふたつともセッション使え
0203nobodyさん2007/05/30(水) 09:41:15ID:???
アクセスカウンターCGI探して中身見てみれば>201
0204nobodyさん2007/05/30(水) 10:08:21ID:???
>>201
まるでwikiみたいだな。
ただあのソースを読めというのはちょっと酷か・・・
02052012007/05/30(水) 10:11:34ID:Hm83KMHn
>>202
セッション変数って、ひとりの人間が複数のページで共通に使える変数じゃないのですか?
>>203
うーむ、なんとかPHPだけでできないかなぁ。

すみません初心者で・・・
0206nobodyさん2007/05/30(水) 10:15:34ID:vB5BZnM8
ヘルプミーです。
フォーム送信で、textareaに入力したテキストで、クオート(')・ダブルクオート(")が
自動的にエスケープ(\)されるんだけど、これってphp.iniの設定が関係ありますか?
(POSTの値が自動的にエスケープされるなんてことはあるの?)
0207nobodyさん2007/05/30(水) 10:26:29ID:???
>>206
>php.iniの設定が関係ありますか?
YES
http://jp.php.net/manual/ja/ref.info.php#ini.magic-quotes-gpc
0208nobodyさん2007/05/30(水) 10:39:50ID:vB5BZnM8
>>207
早速のレスポンスTHX!! あいしてるぜー
0209nobodyさん2007/05/30(水) 11:59:49ID:???
>>205
>セッション変数って、ひとりの人間が複数のページで共通に使える変数じゃないのですか?
ちがう。マニュアルよめ。
0210nobodyさん2007/05/30(水) 12:09:56ID:???
>>201
共有メモリ関数
http://jp.php.net/manual/ja/ref.shmop.php
セマフォ・共有メモリおよび IPC 関数
http://jp.php.net/manual/ja/ref.sem.php
0211nobodyさん2007/05/30(水) 13:56:24ID:QPYqKYGN
textarea内にユーザからの入力を表示する場合、タグは無効になりますよね。
それでもhtmlspecialcharsは必要ですか?javascriptなんて実行されないっすよね危険はないですよね。
0212nobodyさん2007/05/30(水) 13:58:06ID:???
ある
0213nobodyさん2007/05/30(水) 13:59:49ID:???
>>211
</textarea>って入力されてたらどーすんのよ
0214nobodyさん2007/05/30(水) 14:05:44ID:UUvKwXeJ
すみません、昨日の基地外です

>>178-181
ありがとうございます。
これは毎回 接続→テーブル表示→閉じる 方式ですね。
やっぱりこの方法が妥当なんでしょうか?
0215nobodyさん2007/05/30(水) 14:11:12ID:???
>>213
それです!ありがとうございました
0216nobodyさん2007/05/30(水) 14:18:20ID:???
>>214
用途によるとしか言えない。
ただテーブルを表示するだけならその方法でいいんじゃない?
0217nobodyさん2007/05/30(水) 14:39:32ID:UUvKwXeJ
>>216
確かにそうですね。
やろうとしてることはそれだけなので、この方法でいきます。
ありがとうございました
0218nobodyさん2007/05/30(水) 14:43:51ID:QPYqKYGN
ある文字列を2進数にして、また文字列に戻すというのはできますでしょうか?
0219nobodyさん2007/05/30(水) 14:47:47ID:???
できまsんよ
0220nobodyさん2007/05/30(水) 14:52:37ID:???
>>218
文字列を2進数に、を具体的に説明してくれ
文字列"hoge"は何に変えればいいんだ
0221虚弱PHP2007/05/30(水) 14:53:32ID:???
>>214
ひとまずPHPというよりHTTPの勉強はしておいた方がいいと思う。
1リクエスト1レスポンスが基本。
もちろん応用はあるけど、基本からどうぞ。
0222nobodyさん2007/05/30(水) 14:57:23ID:QPYqKYGN
文字列を0111010101みたいに変換したいのですが、それは関数を使って実現しました。
ただ、2進数を文字列に変換するというのが何の関数を使えばいいのかわからないです。
やっぱり>>219さんの言うとおりできないんですか?
0223nobodyさん2007/05/30(水) 15:16:08ID:l02pgwI/
1行テキストエリアと送信ボタンとリセットボタンがあります。
テキストエリアの値を消せるように、リセットボタンを押すとクリア
できるようにしたいです。

1回目はリセットできるのですが、送信ボタンを押して自分(test.php)に飛んだ後に、
リセットを押すと、値が消えてくれません。
(テキストボックスに値を入れて飛んだときに保持しているため?)

それで、javascriptで消そうと思ったのですが、phpの中での使い方が良く分かりません。
分かる方お願いします。
↓ソ〜ス
<form method=\"post\" action=\"test.php\" name=\"form\">
<input type=\"text\" name=\"url\" size=\"80\" value='$url'>
<input type=\"submit\" name=\"b1\" value=\"取得\">
<input type=\"reset\" name=\"reset\" value=\"リセット\">
</p></form>
0224nobodyさん2007/05/30(水) 15:24:19ID:???
日本語でおk。ついでにソースそれなに?
0225nobodyさん2007/05/30(水) 15:27:00ID:???
phpとまったく関係ない件について
0226nobodyさん2007/05/30(水) 15:32:51ID:???
unset
0227nobodyさん2007/05/30(水) 15:36:00ID:6H++tvOC
みなさん、PEARやフレームワークの使い方ってどうやって勉強しました?
俺はこうした、普通はこうするぞ、という意見をお教えください

自分の作りたいソースは何とか書けるけど、PEARのようなものはまったく使ったことがないレベルです。
0228nobodyさん2007/05/30(水) 15:39:16ID:???
2ちゃんで罵倒されながら勉強してきました
0229nobodyさん2007/05/30(水) 15:46:35ID:???
ちんたらしてないでさっさと答えろクズドモ
0230nobodyさん2007/05/30(水) 15:50:21ID:s13+ZS2Y
>>228
うーん、なるべくなら人の迷惑にならない方法が好ましいですよねw
もう十分におかけしてしまった気がしますが・・・
0231nobodyさん2007/05/30(水) 16:10:54ID:???
どうやって勉強しましたって・・・
中学生でもできるようなスクリプト言語だぞ・・・

ぶっちゃけ
PHP勉強しても意味ねーぞ
ちょっとマニュアル読んだら簡単に何でも作れるようになるし
JAVA勉強したほうが100倍いい
0232nobodyさん2007/05/30(水) 16:13:03ID:???
C#やれC#
0233nobodyさん2007/05/30(水) 16:13:20ID:???
Rubyがいいと思います
0234nobodyさん2007/05/30(水) 16:16:31ID:???
信者わいてきたなw
0235nobodyさん2007/05/30(水) 16:18:15ID:s13+ZS2Y
>>231
そう言われると厳しいですが・・・何とかPHPでお願いします

>>232-233
PHPでおねが(ry
0236nobodyさん2007/05/30(水) 16:22:38ID:???
じゃあ何をやりたいかを先に言ったほうがいいな。
その関連のPEARライブラリを愛でる様にソース見ながら使っていくというのが
地道でいいんじゃないの?
0237nobodyさん2007/05/30(水) 16:23:19ID:???
誰かに背中を押してもらう事で安心し、責任を放棄するタイプだよ彼は
0238nobodyさん2007/05/30(水) 16:25:30ID:s13+ZS2Y
>>236
うーん、やっぱりそれしかないんでしょうか
それが王道なのはわかってます 近道はないのかなぁ

>じゃあ何をやりたいかを先に言ったほうがいいな。

何が出来るかもわかっていない状態なので、やっぱりちゃんとソース読んでみますね


>>237
言い過ぎっすよwww
0239nobodyさん2007/05/30(水) 16:28:10ID:???
>ちょっとマニュアル読んだら簡単に何でも作れるようになるし
これは悪いことなのか
02401902007/05/30(水) 16:37:07ID:m2uLNJ+I
>>192>>193>>194>>197>>199
返事が遅くなってすみません。
教えて頂いたセッションで弾く方法でやったところ、
うまくいきました。
確かに、この方法だとデータベースの接続前で弾くので非常に有効ですね。
又、今まではログをみてアクセス拒否していたのですが、
リアルタイムで悪さしているIPを拒否できるので非常に助かります。

>>199さんのソースを参考に、悪さをしているIPには、ネットで仕入れたグロ画像を
デカデカと表示させて、怖くて二度と来させないように心理的作戦も実装しました。

今まで、毎日毎日アクセスログとにらめっこする手間が無くなって助かりました。
xreaに有料で利用しているのですが、サポートがイマイチなのでそこまで対応してくれないので、
いずれは、専用サーバーで運用できるようにがんばります。

色々とアドバイスどうもありがとうございました。
02412372007/05/30(水) 16:50:14ID:???
ごめんwwwいいすぎました
0242nobodyさん2007/05/30(水) 16:55:55ID:???
>>222
つまり、その文字列の二進バイナリ文字列表現を元の文字列型に変換したいってことかね。
バイトのバイナリ表現つってもいろいろあるぜ。
もともとのパック方法が分からんことにはエスパー降臨まで待つしかない。
0243nobodyさん2007/05/30(水) 17:31:40ID:???
>>240
>ネットで仕入れたグロ画像をデカデカと表示させて、
xreaにみつかったら怒られますよ^^;;
0244nobodyさん2007/05/30(水) 18:13:39ID:???
いつのまにかこっちがくだ質のメインなのな
0245nobodyさん2007/05/30(水) 18:37:59ID:???
>>238
まぁ、エロだな。
ただ、組み方間違えると、相手に非常に迷惑掛けるので諸刃の剣だが。
0246nobodyさん2007/05/30(水) 18:45:17ID:???
>>238
それが一番の近道です.なのでがんばれ
0247nobodyさん2007/05/30(水) 19:28:10ID:???
>>205
マニュアル嫁といいたいとこだが、
初心者にマニュアルは厳しいと分かっているので特別にヒントをやろう。
二つ目の問いに関していえば、
アクセスした時にセッションになんらかの固有の値を入れる。
アクセスが終わったら、消す。
セッションにその固有の値がなかった場合はアクセスさせる。
0248nobodyさん2007/05/30(水) 20:28:08ID:???
fopenでcsvファイルを開いて、fgetcsvで読み込んで、print_rで表示させる、
ということをやっているのですが、各フィールドの先頭の文字がおかしくなります。
「学校」→「w校」みたいな感じで。どうなっているんでしょう。
ちなみにスクリプトはutf-8で書いており、csvファイルはShiftJISのはずです。
おわかりの方、教えてください。お願いします。
0249nobodyさん2007/05/30(水) 20:44:02ID:???
> ちなみにスクリプトはutf-8で書いており、csvファイルはShiftJISのはずです。

釣りか?
0250nobodyさん2007/05/30(水) 20:45:00ID:???
>>249
いえ、そのつもりはないんですが。なにかとんでもない勘違いを
していますでしょうか。
02512502007/05/30(水) 20:51:58ID:???
21時までにおねがいします。次にすすまないので
02522502007/05/30(水) 20:53:48ID:???
>>251は私の発言ではありません。全然急ぎません。
0253nobodyさん2007/05/30(水) 20:59:23ID:???
>>248
fgetcsvは文字コードの変換処理をしない
かつSJISに対応してないよん。
0254nobodyさん2007/05/30(水) 21:02:02ID:???
>>253
そうなんですか!調べて修正してみますね。ありがとうございます。
02552502007/05/30(水) 21:05:54ID:???
すみません、急ぎはしないのですが、できれば今日中に片付くと嬉しかったりはします。
02562502007/05/30(水) 21:20:56ID:???
さっきから変な人がいますが、>>255も私ではありません。
また分からなかったら聞きに来ますのでお願いします。
0257nobodyさん2007/05/30(水) 21:26:44ID:???
夜は偽者だるいから消えていいよ。
やるなら昼間やってくれ。
あと質問者もID出せ。こういう馬鹿が沸くから。
0258nobodyさん2007/05/30(水) 21:44:26ID:???
>>241
いえいえ、結果的にはそんな感じになったので、あなたのおっしゃるとおりでしたよwww

>>246
さっそくソース読んでました
まさかそんな嬉しい言葉を言ってもらえるなんて思ってもいなかったので、感激です!!


みなさん本当にありがとうございました
02592502007/05/30(水) 21:53:17ID:QPYqKYGN
>>257
ガタガタうるせーなっ!!!
指図するなっ!!!!!
ヘボ回答者のくせに何様だ!?コノヤロウ!!
ID出してやったから回答即よろ
0260nobodyさん2007/05/30(水) 21:57:02ID:???
>>259
ha?
質問している分際で、何言っているの?
2chに何期待しているわけ?自分で調べれば?
0261nobodyさん2007/05/30(水) 21:57:50ID:QPYqKYGN
ここは質問スレなんだけどっ!!!
答えたくないならくんなヘボ回答者!!
02622602007/05/30(水) 21:58:49ID:???
>>261
釣りにマジスレ
ワロタw
0263nobodyさん2007/05/30(水) 21:59:40ID:???
>>260
>2chに何期待しているわけ?自分で調べれば?

その通り
質問者は自分の置かれている状況をわきまえろ
0264nobodyさん2007/05/30(水) 22:01:17ID:QPYqKYGN
答えられもしないくせにえらそうにwwww
昨日も今日も明日もおまえらだって質問してんだろ?wwwwwww
なにを回答者ぶってんの?wwwwww
ちょうしこいてんじゃねーよ、わらっちゃうねwwwwwwwwwwww
0265nobodyさん2007/05/30(水) 22:01:24ID:???
このスレほど強制ID表示になったら面白そうなものは無いな
0266nobodyさん2007/05/30(水) 22:10:53ID:???
わざとID出して釣る奴もいるからな
0267nobodyさん2007/05/30(水) 22:15:00ID:???
ルータいじればコロコロIPかわるから、
あまり効果はなさそうだけどな。
0268nobodyさん2007/05/30(水) 22:22:11ID:???
DOSコマンドから、
ipconfig /renew
と打てば、DHCPサーバーからのIPアドレスがリフレッシュされて新しいIPアドレスが割り振られるよ。
そうすれば、IDも変わると思うけど。
0269nobodyさん2007/05/30(水) 22:33:57ID:???
arrayってなんだよ
とっとと教えろカス共
0270nobodyさん2007/05/30(水) 22:37:08ID:???
>>269
>>1
0271nobodyさん2007/05/30(水) 22:39:19ID:???
>>269は、私ではありません。
宜しくお願いします。
0272nobodyさん2007/05/30(水) 22:40:31ID:???
>>272は私ではありません。
こちらこそ宜しくお願いします。
0273nobodyさん2007/05/30(水) 22:48:58ID:???
誘導
http://pc11.2ch.net/test/read.cgi/php/1158647441
0274nobodyさん2007/05/30(水) 22:57:02ID:???
arrayもわからないカスはPHPやらなくていいです。
0275nobodyさん2007/05/30(水) 23:20:46ID:???
PHP以前の問題だろww
0276nobodyさん2007/05/31(木) 00:02:30ID:???
PHP以前の問題でもない。
プログラム言語を始めてやる人間にはarrayも始めて。
PHPがはじめてのプログラムだった場合その人間にはarrayも始めて。
ただarrayとか基本型は教科書でいう2.3ページに書いてる事項なので、
ここでそれが何?とか聞くやつはマニュアルも読めない阿呆。
0277nobodyさん2007/05/31(木) 00:27:35ID:???
まあ、arrayだな
0278nobodyさん2007/05/31(木) 00:43:15ID:???
おあとがよろしいようで
0279nobodyさん2007/05/31(木) 00:56:51ID:???
PHPスクリプトの中でerror_reportingやdisplay_errorを
弄れた気がするんだけど、php.iniじゃないと無理かな?

昔できた気がするんだけど、今やり方が分からない。

気のせいだったかも・・・
0280nobodyさん2007/05/31(木) 01:01:24ID:???
鉄array
0281nobodyさん2007/05/31(木) 01:02:39ID:???
>>279
error_reporting(E_ALL);

error_reporting(0);

とか、つうか

ttp://php.mirror.camelnetwork.com/manual/ja/ref.errorfunc.php
■ このスレッドは過去ログ倉庫に格納されています