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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/04/11(金) 06:38:35ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは970が立ててください立たなかった場合は980よろ

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0222nobodyさん2008/04/17(木) 20:30:25ID:???
>>221さんありがとうございます
一行目に#!〜おまじないをいれてみましたができません

httpd.confにcgiとして設定しないとできないのでしょうか?
0223nobodyさん2008/04/17(木) 20:46:52ID:???
httpd.confをCGIが動くように設定したのか?してなかったら恥
0224nobodyさん2008/04/17(木) 21:23:22ID:???
てかid出せボケ
0225nobodyさん2008/04/17(木) 21:31:27ID:???
>>224
氏ね答えられない低脳
0226nobodyさん2008/04/17(木) 21:34:40ID:???
このスレはこの程度か!
どうもありがとうございました
0227nobodyさん2008/04/17(木) 21:35:07ID:???
いえいえおよび出ないですよ
0228nobodyさん2008/04/17(木) 21:39:06ID:???
>>225-227
無職乙
0229nobodyさん2008/04/17(木) 21:40:04ID:???
>>228
ニート乙
0230nobodyさん2008/04/17(木) 21:40:35ID:???
マジきめええwwww
答えられないならでてこなくていいからw
0231nobodyさん2008/04/17(木) 22:08:12ID:???
つうかもういい加減id出してない質問にレスするのやめようぜ
0232nobodyさん2008/04/17(木) 22:12:02ID:???
仕切り厨でましたね
0233nobodyさん2008/04/17(木) 22:46:48ID:???
仕切り厨でもなんでもいいがルールぐらい守れミジンコ共が
0234nobodyさん2008/04/17(木) 22:47:05ID:???
粘着妖精さんもスルー
0235nobodyさん2008/04/17(木) 22:56:16ID:???
>>220=225=226=230=232=234
http://pc11.2ch.net/test/read.cgi/php/1158647441/
ほれこっち池
0236nobodyさん2008/04/17(木) 22:57:36ID:???
phpで、携帯のサイトを作っているのですが、
セッション管理が必要なサイトで、
セッションIDの情報をURLに埋め込んでいます。

ただ、ユーザーの中にセッションIDが入ったURLをブックマークとして
公開する人がいて、セッションハイジャックが毎日行われています。

これって、仕様として客に説明しているのですが、
客が納得してくれず、携帯であるが故に技術的に不可能なことを説明しているのですが堂々巡りです。

こういう場合、どのような資料を提示して納得してもらえるのでしょうか?
宜しくお願いします。
0237236 2008/04/17(木) 22:58:55ID:8cCEOmJ0
すみません、下げていました。
0238nobodyさん2008/04/17(木) 23:00:47ID:???
有効期間つければ?
0239nobodyさん2008/04/17(木) 23:02:20ID:???
>>236
仕様って!!www
そんなサイトでセッションIDを生で埋め込むなよ
0240236 2008/04/17(木) 23:08:32ID:8cCEOmJ0
>>238
アドバイスありがとうございます。
有効期間はつけているのですが、
短いと、すぐにセッションが切れると苦情が来るし、
長いと、2chやブログでURLが貼られた場合に、セッションハイジャックが多発してしまします。
結局、有効期間ですと根本的には解決されないのではというのが結論です。

>>239
いや、携帯のサイトですから・・・
0241nobodyさん2008/04/17(木) 23:13:21ID:???
>>240
IPの範囲みたりとかしたら?
あとauはクッキー使えるし
0242nobodyさん2008/04/18(金) 00:07:02ID:???
IPアドレスや個体識別番号を持たせておけばいいだけじゃないの?
0243nobodyさん2008/04/18(金) 00:09:22ID:???
URL埋め込みのSIDだけで何とかしようと思うほうがどうかしてる
0244nobodyさん2008/04/18(金) 00:30:00ID:???
んむ クッキーがどうとか全く関係ないな
セッションハイジャックの対策をしていない事が問題なだけ
0245nobodyさん2008/04/18(金) 00:33:53ID:???
「セッションハイジャックが毎日行われています。」

「fscanfがおかしいです。」も好きだけど、これも気に入った。
0246nobodyさん2008/04/18(金) 00:40:53ID:???
無知なクライアントでよかったねぇ
うちの下請けが「これが仕様です」なんて言ってきたら二度と仕事回さないぞ
0247nobodyさん2008/04/18(金) 00:52:58ID:???
>>240
> いや、携帯のサイトですから・・・
携帯サイトやからセッションIDを生で埋め込まへんねんて
0248nobodyさん2008/04/18(金) 01:40:20ID:???
mixiとか大手はどうしてんだろ?
0249nobodyさん2008/04/18(金) 01:46:33ID:???
uidじゃね?
0250nobodyさん2008/04/18(金) 06:04:41ID:???
if (!isset($a))
$a = "hoge";

isset($a) ? $a : "hoge"
をもっと簡潔に(短く)書く方法はありますか?
0251nobodyさん2008/04/18(金) 06:40:54ID:???
あるけどそんな微々たるところの効率なんか工夫しようとすんな
0252nobodyさん2008/04/18(金) 13:48:09ID:VW/Du+vX
掲示板つくってます。
【日付,名前,本文,削除pass,IP】とデータをログファイルに残してます。
出力はこのログを頭から順にだしてます。

ここから返信機能つき掲示板に組み替えたいのですが、
ログファイルにどのようにデータを残し、
どのように出力するように動作させたらよろしいのでしょうか?
流れだけでもどうかご教授お願いいたします。

0253nobodyさん2008/04/18(金) 14:03:31ID:???
>>252
とりあえず全てのスレッドにユニークなIDをつける。

新しいテーブル(データベースの場合)、またはファイルを作成。

【ユニークID,本文】でデータを取る。

ユニークIDが新テーブルと一緒の物だけを表示。

(例) データベース使ってる場合のsql
>>252の作ってるテーブルのユニークID(55)を一覧する場合
select * from new_table where ユニークID = 55

こんな感じでいいのかな?
0254nobodyさん2008/04/18(金) 14:04:08ID:???
まずデータにIDが必要
0255nobodyさん2008/04/18(金) 14:14:18ID:VW/Du+vX
ありがとうございます、勉強になりました。
さっそく取り掛かります。
ありがとうございました。
0256nobodyさん2008/04/18(金) 14:48:16ID:???
正規表現にマッチした数を返してほしいのですがそんな関数はあるでしょうか?
以下だったら3を返してほしいです。
$preg = "12HOGE.;asd123HOGE.;52HOGE";
/(\d+)HOGE/
0257nobodyさん2008/04/18(金) 14:52:05ID:???
>>256
そのものずばりではないが
preg_match_all
0258nobodyさん2008/04/18(金) 14:54:12ID:???
返して欲しいんだからズバリなんじゃないの
0259nobodyさん2008/04/18(金) 16:06:53ID:???
>>257
なんでも正規表現で答えれば間違いないと思っている馬鹿って何なの?
それしか解決方法を知らないの?
0260nobodyさん2008/04/18(金) 16:07:57ID:???
正規表現嫌なら煽ってないでお前が答えてやれよ
0261nobodyさん2008/04/18(金) 16:21:37ID:???
ずばりそのものだろ?
02622562008/04/18(金) 16:36:42ID:???
自己解決しますた
ほんと使えねえカスばっかだな
0263nobodyさん2008/04/18(金) 16:53:22ID:???
fscanfがおかしいです
0264nobodyさん2008/04/18(金) 16:54:10ID:???
>>256

preg_match_all
返り値
パターンがマッチした総数を返します(ゼロとなる可能性もあります)。 または、エラーが発生した場合に FALSE を返します。

これより楽な方法はないよね
0265nobodyさん2008/04/18(金) 16:57:20ID:???
>>262
またオマエか
0266nobodyさん2008/04/18(金) 17:07:53ID:???
ID出さないやつにご丁寧に答えて議論してやってるお前らが微笑ましい
0267nobodyさん2008/04/18(金) 17:48:00ID:???
ID出す出さないに関係なく自分の糧になるのなら質問も回答もするのが俺様のセオリー
0268nobodyさん2008/04/18(金) 18:10:03ID:???
右乳首が痛いのですがどうすれば治りますか?
バージョンアップするしかないのでしょうか?
0269nobodyさん2008/04/18(金) 18:10:22ID:???
preg_match_allの第三引数で
変数にマッチした値を格納できますが、
$matched[0]にあたる値はいらないので変数に格納しないでほしいのです。

$matched[1]とかは(?:)でできるのは知っています。
$matched[0]はどのようにすればいいのでしょうか?


$str = "1234abs=2;1234abs=7;432abt=3;";
preg_match_all("/[\d]+abs/",$str,$matched);
0270nobodyさん2008/04/18(金) 18:10:35ID:???
正規表現がダメな理由は、その処理速度の遅さ。
forループ文の中に、正規表現で処理するロジックが入っていたら、それこそ最悪。
また、正規表現の処理のために仮想メモリーを浪費するため、異常なメモリーの食い方をする。

現実的に出来るかどうかを検証せずに、出来る出来ると主張しているところが青臭さを感じるといっただけ。
0271nobodyさん2008/04/18(金) 18:20:24ID:???
正規表現は神
0272nobodyさん2008/04/18(金) 19:09:30ID:???
否定するのは誰でもできます
解決方法をかけない奴はいくら言ってもダメ
0273nobodyさん2008/04/18(金) 19:32:15ID:???
特にお前とかな
0274nobodyさん2008/04/18(金) 19:40:42ID:???
>>270
現実的に出来るかどうかを検証してから、

ダメと主張してくださいねw
0275nobodyさん2008/04/18(金) 19:44:40ID:???
方法を提供もしないでこれはダメあれはダメなんて幼稚すぎる
0276nobodyさん2008/04/18(金) 20:22:29ID:???
>>270
そりゃ組み方が下手なだけだろ
0277nobodyさん2008/04/18(金) 20:27:33ID:???
その遅い正規表現は何秒かかるの?
それが問題になる処理じゃなければ使ってもいいだろ。
遅いってんならPHP使わないでCで組めや
0278nobodyさん2008/04/18(金) 20:38:41ID:???
>>270さん正規表現に変わる手法を教えてください
0279nobodyさん2008/04/18(金) 20:54:41ID:???
代案も出さずに批判するとは民主党もびっくりだわw
0280nobodyさん2008/04/18(金) 21:33:57ID:???
ここまで技術的な考察まで書いてやっているのに、
人に代替案まで求めるって、どこまでスィーツ脳なんだ?

技術者としての素質もなければプライドもないのかね?
0281nobodyさん2008/04/18(金) 21:34:58ID:???
スイーツ脳なんて特徴的な言葉使うのお前だけ
よく常駐して煽ってるいつもの馬鹿か
0282nobodyさん2008/04/18(金) 21:36:11ID:???
>>281
おまえもな
0283nobodyさん2008/04/18(金) 21:36:48ID:???
>ここまで技術的な考察まで書いてやっているのに

ぷっ

0284nobodyさん2008/04/18(金) 21:38:57ID:???
技術的(笑)
考察(笑)
0285nobodyさん2008/04/18(金) 21:47:56ID:???
(笑) (笑)
0286nobodyさん2008/04/18(金) 21:57:15ID:???
()笑
0287nobodyさん2008/04/18(金) 21:58:07ID:???
代替案が欲しいわけじゃないんだわ

お前さんが本当に代替案を考えられる技術があるのか
その方法が標準の正規表現関数と比べてどの程度早くなるのか
それが知りたいだけ
0288nobodyさん2008/04/18(金) 22:03:28ID:???
真性キティにマジレスカコワルイ
0289nobodyさん2008/04/18(金) 22:32:13ID:???
口だけだったみたいだからあんまりいじめないであげよ
0290nobodyさん2008/04/18(金) 23:54:36ID:???
>>289
他人のふりせずに素直にやめてくださいって言えよw
0291nobodyさん2008/04/19(土) 00:43:26ID:???
実力がある人って批判だけするとこみたことないねえ
かならず何らかの提案をもってきてくれる
0292nobodyさん2008/04/19(土) 01:14:59ID:???
批判だけする人って
勘違い君が多い
0293269 2008/04/19(土) 01:26:36ID:???
お願いします
0294nobodyさん2008/04/19(土) 01:36:11ID:???
だから、必死になって代替案出せって何よ?
本当は知りたいくせに、煽っているってるって、
好きなくせに女の髪の毛引っ張って気を引こうとしている中年男と一緒だろw
0295nobodyさん2008/04/19(土) 02:01:36ID:???
池沼うざい
0296nobodyさん2008/04/19(土) 02:08:33ID:???
本当に知りたいと思ってる人はいないよ。
PCREのパターン展開エンジンを*PHPで*自前実装したい人だけが
高度な技術的考察をしとけばいい。

/^\d+$/ → ctype_digit()
/^Mozilla/ → strpos(), strstr()
>>256のお題がこんな話に見える素質がなくてよかった。
0297nobodyさん2008/04/19(土) 02:27:54ID:???
>>293
>>11をちゃんと読んでから出直してこい
0298nobodyさん2008/04/19(土) 02:50:25ID:???
>>294
いや、批判するなら最初からレスしなくていいと思ってる
0299nobodyさん2008/04/19(土) 06:08:17ID:???
>いや、批判するなら最初からレスしなくていいと思ってる

馴れ合いキモ
0300nobodyさん2008/04/19(土) 06:14:31ID:???
>>293
第4にPREG_OFFSET_CAPTURE入れて
0をunsetしれ
0301nobodyさん2008/04/19(土) 10:19:29ID:???
>>296
CTYPEはそれとイコールじゃないよ。
俺も昔つっかかった
0302nobodyさん2008/04/19(土) 12:03:10ID:???

【迷言ランキング】
 1 : fscanfがおかしいです
 2 : ここまで技術的な考察まで書いてやっているのに

トップ揺るがず。


0303nobodyさん2008/04/19(土) 12:44:33ID:???
質問です。
<?php
$word = $_POST['text'];
$pointer=fopen("./log.dat", "a");
flock($pointer, LOCK_EX);
fputs($pointer, $word);
flock($pointer, LOCK_UN);
fclose($pointer);
?>
<form action="パス" method="post">
<input type="text name="text" size="30">
<input type="submit" value="送信">
</form>

こんな感じのを応用して簡単な掲示板を作ろうと思うのですが、
更新すると何個も同じものを送信してしまいます。
どうすればよろしいのでしょうか?
0304nobodyさん2008/04/19(土) 13:05:00ID:???
>>303
同じものであるか判定する処理

真だったら拒否,偽だったら書き込み
0305nobodyさん2008/04/19(土) 13:10:36ID:???
>>303-304
>>1
0306nobodyさん2008/04/19(土) 13:41:34ID:???
PDO+SQLite使えば楽なの何故いまだファイル使うかなぁ
03073032008/04/19(土) 14:27:57ID:EugqgBl5
>>304 その処理が分からないです…
>>306 サーバーがSQLite対応してないです
0308nobodyさん2008/04/19(土) 14:56:51ID:???
>>303
更新すると同じものを送信するのはブラウザ側の問題なので、サーバで二重投稿かデータチェックする。

ケース1)
ログファイルの最後に書き込まれたデータと比較して、同じならアウトにする。

ケース2)
フォームにセッションを使ってユニークIDをhiddenに埋め込む。
サーバにhiddenで送られてきたユニークIDを見て、セッションと同じ値でなければアウトにする。
0309nobodyさん2008/04/19(土) 15:46:00ID:nFas9Qcl
?

てst
0310nobodyさん2008/04/19(土) 15:49:34ID:nFas9Qcl
マックからフォームで〜を入力すると?(←2chではwinだとハテナに見えるかもしれません)となってしまいます。
これをログに記録すると、文字化けしてしまいます。

マックからの「〜」を文字化けしないでログに書き込むにはどのような方法がありますでしょうか?

0311nobodyさん2008/04/19(土) 16:06:28ID:???
文字コード統一汁(機種依存は論外)
0312nobodyさん2008/04/19(土) 16:06:31ID:???
>>310
外部、内部、それぞれの文字コードは何?
0313nobodyさん2008/04/19(土) 16:18:13ID:nFas9Qcl
文字コードはUTF-8で全て統一しております。
ただ、どうしてもマックからフォームに〜を入力すると、以下のサイトにかいてあるような現象になります。
http://oshiete1.goo.ne.jp/qa1937623.html?ans_count_asc=20

う〜ん、いままでwinしか使ったこがなくて、マック環境が無いので不安なんですが、
マックの「〜」はwinでは機種依存文字扱いとされるのでしょうか?

0314nobodyさん2008/04/19(土) 16:26:34ID:nFas9Qcl
自己解決しました。
ログを開くのに使用しているエディタの内部文字コードがsjisのために起こった現象です。
使用してたのはサクラエディタでえす。
お気に入りのエディタでしたが、この機会に別のエディタに乗り換えます。

引用:ttp://ja.forums.wordpress.org/topic.php?id=51
残念ながら、サクラエディタは、Shift_JIS なのに ISO-2022-JP と誤認した前科 (WPJ フォー
ラムのキャッシュ) があるので、今回は「紹介するべきではない」代物です。
単に「巨大なテキストを開けるエディター」として出すならいいんですが、
今回は文字コード変換に使うため、「文字コードを誤認するエディター」を選ぶのは、よろしくありません。
サクラエディタは内部文字コードが SJIS らしく、UTF-8 を扱うにはよいエディターとは
言えません (「波ダッシュ」が化けたりするらしい)。
そういう面ではマトモなのは EmEditor ぐらいしかなさそうです (TeraPad, K2Editor など、Windows のエディタの多くは内部コードが Shift_JIS)。

あと、質問者が Windows を使っているかどうか不明なので、「Windows ならば○○○」という限定を入れてほしかったです。Mac ユーザーだとすると「サクラエディタがおすすめ」と言われても困りますので。(Linux ユーザーは文字コード変換で悩むことはないでしょうが)
0315nobodyさん2008/04/19(土) 16:26:55ID:???
痴漢すればいいじゃん
0316nobodyさん2008/04/19(土) 16:27:55ID:???
       ヽ(・ω・)/   ズコー
      \(.\ ノ
0317nobodyさん2008/04/19(土) 16:38:11ID:???
Emediterも半角英数字だけのファイルを保存すると
ShiftJISで保存する糞エディタだな
0318nobodyさん2008/04/19(土) 16:47:53ID:???
terapad→サクラエディタと着たが俺も乗り換えるか・・・
0319nobodyさん2008/04/19(土) 17:37:31ID:???
>>317
ちょwww笑わすなwwww
BOM無しUTF-8とEUCとSJISの文字コードを判別する方法思いついたら教えてくれwwww
エディタ作ってやんよwwwwww
03203032008/04/19(土) 18:12:34ID:EugqgBl5
連続投稿は防げましたがタグを使われるとおかしくなります。
htmlspecialcharsで無効化しようと思ったのですが、
<font color="#ff0000">が<font color=\"#ff0000\">となります
なせでしょうか?
0321nobodyさん2008/04/19(土) 18:23:23ID:???
ポストされたデータをどっかでエスケープしてるんじゃないの?
覚えが無いならmagic_quotes_gpcを確認
■ このスレッドは過去ログ倉庫に格納されています