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

【PHP】下らねぇ質問はID出して書き込みやがれ 82

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/03/09(月) 02:14:28ID:HyrthkeE
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 81
http://pc11.2ch.net/test/read.cgi/php/1234958956/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

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

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
0439nobodyさん2009/03/20(金) 04:22:45ID:???
>>438
この人前も誰かにつつかれてキレてたよなw
0440nobodyさん2009/03/20(金) 08:33:43ID:???
三行でまとめてくれ
0441nobodyさん2009/03/20(金) 08:38:37ID:???
お前と同じで内容もロクに読まずに転載してるだけですよ、と言ってあげたい
0442nobodyさん2009/03/20(金) 08:40:35ID:???
phpspotのアフィ厨がきもいのは確かだが、
「悪名高きda.me..@docomo.ne.jpを引っ掛ける一方で、dankogai+regexp@gmail.comを弾いてしまう」
ってのはどうなん?
ドキュモでda.me..@docomo.ne.jpが取得できる以上、
それをウェブアプリ側ではじくわけにはいかないじゃん
RFCを守るべきはdocomoであって、ウェブアプリは現実に準拠するしかない
0443nobodyさん2009/03/20(金) 08:45:13ID:???
phpspotの人は正規表現について語らないほうがいいのでは
http://labs.cybozu.co.jp/blog/akky/archives/2007/10/phpspot-bad-regex.html

このトラウマを刺激されたから過剰反応したんだなw
0444nobodyさん2009/03/20(金) 08:47:16ID:???
Diggのトップページやdel.icio.us/popularで表示されたページの概要を訳しているだけなんだから、
せめて自分で確かめてから紹介しようよw
>>phpspot
0445nobodyさん2009/03/20(金) 08:57:25ID:???
>442
dankogai+regexp@gmail.com はRFCに準拠している。
ドキュモを弾くかはか方針次第だが、このアドレスを弾いてはいけない。

元々phpspotの提示していたコードが役に立たないのは確か。
出力例が「正しいかもしれない」「間違ってるかもしれない」な事からも明らか。
こういうのは「絶対正しい」「間違ってるかも」、もしくは「正しいかも」「絶対間違ってる」のいずれかを返さなければ糞の役にも立たん。
0446nobodyさん2009/03/20(金) 09:47:11ID:???
準拠してようがおれはそんなメアドは通さねーぞwwwwwwwwwwwwwwwww
0447nobodyさん2009/03/20(金) 09:59:17ID:???
ttp://d.hatena.ne.jp/elf/20060809/1155100104
0448nobodyさん2009/03/20(金) 10:02:52ID:???
プロバイダのメールアドレスをなるべき通したい場合は別にそこまでこだわる必要なし
+\とか記号を入れるメアドなんて普通の人は持ってないだろ
0449nobodyさん2009/03/20(金) 10:23:25ID:???
>448
なんというか、ここにも馬鹿が多いな。
「食べやすい大きさに野菜を切るには」という記事に「カレーは野菜が大きいほうが美味しい」とか言ってるようなものだぞ、それ。
0450nobodyさん2009/03/20(金) 10:31:42ID:???
それ話が通ってるじゃん
0451nobodyさん2009/03/20(金) 10:49:03ID:???
RFCに準拠してさえすればいいってもんじゃない
0452nobodyさん2009/03/20(金) 10:50:52ID:???
>>449
プロバイダやgmailを除いたメジャーなアドレスで記号付きのメールアドレスを取得できる所教えてください
0453nobodyさん2009/03/20(金) 11:54:25ID:MICYHS4W
【OS名】debian etch
【PHPのバージョン】php5.2.0-8
PukiWiki Plus!で「ajaxtree.inc.php」プラグインを使おうとしたのですが
キャッシュファイルの作成が正常に行われず色々と調べてみていたところ
下記の部分でよくわからない動きをしていることがわかりました。 (ajaxtree.inc.php 198行目付近)

foreach ($pages as $page) {
if ($leaf[$page] === false) {
plugin_ajaxtree_update_cache($page);
}
echo $page . " " . $leaf[$page] . "<br>\n"; //debug
}

具体的には「plugin_ajaxtree_update_cache」関数が一度でも実行されると
その時点でループが終わってしまい配列の残りの要素が処理されなくなってしまうといった感じです。
(関数から戻ってきたあとのechoまでは処理されています)
ループ後の「$pages」の値には特に変化が無く、エラーも発生していませんでした。
なぜforeachが途中で止まってしまうのかわからずに困っています。
この場合、どういった原因が考えられるのでしょうか?
0454nobodyさん2009/03/20(金) 11:55:01ID:uQ1BNnXR
トラックバックやpingの受信機能を作っています。

fsockopenで送信されたPOSTやGETを受け取ると思うのですが、
連続送信防止の処理って入れられるのでしょうか?

WEBページのフォーム処理からだと、cookieで制御できると思うのですが
fsockopenは出来ないような気がしています。
0455nobodyさん2009/03/20(金) 12:00:40ID:???
>>453
display_errors
error_reporting
>>454
内容を比較すればいいのでは?
0456nobodyさん2009/03/20(金) 12:02:10ID:???
        ゴガギーン
             ドッカン
         m    ドッカン
  =====) ))         ☆
      ∧_∧ | |         /          / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     (   )| |_____    ∧_∧   <  おらっ!出てこい>>449
     「 ⌒ ̄ |   |    ||   (´Д` )    \___________
     |   /  ̄   |    |/    「    \
     |   | |    |    ||    ||   /\\
     |    | |    |    |  へ//|  |  | |
     |    | |    ロ|ロ   |/,へ \|  |  | |
     | ∧ | |    |    |/  \  / ( )
     | | | |〈    |    |     | |
     / / / / |  /  |    〈|     | |
    / /  / / |    |    ||      | |
   / / / / =-----=--------     | |
0457nobodyさん2009/03/20(金) 12:06:26ID:???
小飼の正規表現はda.me..@docomo.ne.jpを通せないだろ
RFCに準拠するばかりで現実で使えないんじゃ同じようにクソ
04584532009/03/20(金) 12:31:15ID:MICYHS4W
>>455
ありがとうございます。
該当するコードに特にエラーなどは発生していませんでしたが解決しました。
配列を関数の戻り値の参照として受け取っていたためおかしな挙動をしていたようでした。
$pages =& plugin_ajaxtree_get_pages();
失礼いたしました。
04594492009/03/20(金) 12:38:12ID:???
docomoの非準拠アドレスを通すかとか、gmailの無限アドレスを通すかとかは、メールアドレス正規表現とは別の問題だろ?
実装の問題じゃない。ビジネスロジックの問題だ。何をどこまで許容するかは技術の問題じゃない。
コーディングする奴が勝手に決めてはいけない問題だし、従って前提条件が提示されないと「正しい」コードなんぞ書けっこない。
何が「正しい」のか、仕様が決まってないんだから当たり前だな。

「正しい」メールアドレスを「RF2822準拠」と定めるなら、PHPSPOTや百式のコードは明白に間違っていて、小飼のコードは正しい。
docomoの非準拠アドレスを許容しなければいけない、とか、gmailの無限アドを拒否しないといけない、という条件下なら小飼のコードは間違っているだろう。

実際、小飼の出力メッセージはちゃんと「RFCに準拠しているか」で出るだろ。
あのコードが解こうとしている判定問題は「RFCに準拠しているか」であって、「一般社会で通用するメールアドレスか」じゃない。
それをてめえらは勝手に問題を取り替えてガタガタ抜かしてるだけなんだよ。これだからPHPerは馬鹿だとか言われるんだ。
RFCに準拠していないアドレスが通ったり、準拠しているアドがNGだったら文句を言うべきだが、それ以外は筋違いだ。
0460nobodyさん2009/03/20(金) 12:41:36ID:???
じゃなんで正規表現をblogに書いちゃいけないの?
0461nobodyさん2009/03/20(金) 12:47:51ID:???
>>459
RFCに準拠してる正規表現はブログに書いてもOK
RFCに準拠してない現実に即した正規表現はブログに書いたらNG
ってことですね、わかります
0462nobodyさん2009/03/20(金) 13:09:05ID:???
>>459ってブログの張本人だろ
0463nobodyさん2009/03/20(金) 16:03:22ID:???
>>459
自分ルールを持ち出したのは「PHPer」とか言って悦に入っている人だよな。
っていうか誰この人?
0464nobodyさん2009/03/20(金) 16:20:44ID:???
ほとんどの無料有料サービスの登録時にRFCに100%準拠されたメアドは使えない件
0465nobodyさん2009/03/20(金) 16:21:47ID:???
._-0-9a-zA-Zぐらいしかたいていのサービス登録では使えない件
何が言いたいかというとRFC必死だな(笑)
0466nobodyさん2009/03/20(金) 18:48:51ID:???
弾もPHPERも文末判定に$を使っているが
$は行末判定なので最後に改行コードが付いてても通ってしまう。
ちゃんと\zを使えよ
弾&phpspotともどもm9(^Д^)プギャー!
0467nobodyさん2009/03/20(金) 18:51:14ID:???
$が末尾の改行コードに一致するのってPHPだけじゃなくて?
0468nobodyさん2009/03/20(金) 18:56:31ID:???
preg_matchはperl互換だからそれはないだろ
0469nobodyさん2009/03/20(金) 19:01:48ID:???
perlが死滅した、といっても、
ある程度のシェアを取った言語なので、
perlの正規表現の文法は他の言語にも
そのまま受け継がれていくわけだな。

つまり勉強したことが無駄にならず
再利用できると。

シェアととると、こういう「いいこと」があるんだよな。
0470nobodyさん2009/03/20(金) 20:16:44ID:???
何年か前にperl厨が騒いでた
その上でどんなスクリプトでも走るエンジンみたいのどうなったんだよ
えーこら
0471nobodyさん2009/03/20(金) 22:34:03ID:oZ8fGjsV
javascriptがオンかオフかの情報を知りたいのですがどのような方法が妥当かわかりません
以下のような方法も考えたのですがページを移動するか更新しないとクッキーを読めないので困ってます
どなたかアドバイスお願いいたします


javascriptでクッキーを発行する

クッキーが読み込めたらjavascriptがオン・読み込めなければオフ
0472nobodyさん2009/03/20(金) 22:44:55ID:???
>471
処理の順序を考えれば分かるが、無理。
0473nobodyさん2009/03/20(金) 22:53:31ID:???
ajaxでやればできるでしょ
0474nobodyさん2009/03/20(金) 23:15:48ID:???
そもそも、ページを移動も更新もしてない状態で、サーバ側でJavascript有効かどうか判断しなきゃ
いけない状況って何だろう?
0475nobodyさん2009/03/20(金) 23:17:56ID:???
その状況を考えられないならこの業界で食えませんよ
0476nobodyさん2009/03/20(金) 23:23:33ID:???
ajaxでリクエスト飛んできたらon、飛んでこなかったらoff
0477nobodyさん2009/03/20(金) 23:42:53ID:???
>>475
なんで?
Ajax使う前提なら、こんなことで悩まんでしょ。
有効な時にメッセージ出したいなら、Javascriptで出せば良いし、使えない時にメッセージ出したいなら
NOSCRIPT使えばいいし。

トップページへのアクセスだけで、Javascriptを有効にしてるかどうかサーバ側に記録を取りたいとか、そんな感じ?

0478nobodyさん2009/03/20(金) 23:59:59ID:???
>477
だとしても、JavaScript経由で鯖にアクセスさせるだけだしな。
PHPではできない、というのは正しい。
まあ、質問が抽象的すぎるんでなんとも言えん。どうして質問掲示板の類の質問者は情報を出し惜しみするんだか。
0479nobodyさん2009/03/21(土) 00:11:32ID:???
>>478
それはいいがかり。
おまえだって18世紀にペストにかかったら
「ネズミが運んできた病原菌のせいで感染しました」
とは医者には報告しないはずだ
0480nobodyさん2009/03/21(土) 00:49:23ID:???
たとえのほうがわかりづらいってどういうことよ
0481nobodyさん2009/03/21(土) 02:16:36ID:???
www
0482nobodyさん2009/03/21(土) 02:24:45ID:???
そうか?非常に分かりやすい例えに感じたけど
0483nobodyさん2009/03/21(土) 02:34:45ID:???
479=482wwwww
0484nobodyさん2009/03/21(土) 19:33:45ID:Kz7V9K+/
掲示板を作るのですが共同で作る場合、どのようなシステムを導入するといいですか?
0485nobodyさん2009/03/21(土) 19:35:17ID:???
>>484
git
0486nobodyさん2009/03/21(土) 22:18:16ID:???
サーバサイドのプログラムが永久ループしたらどうやって止めるんですか?
そういうのがあると、レンタルサーバ屋に怒られるんですか?
0487nobodyさん2009/03/21(土) 22:29:13ID:???
コンセント抜けばおk
0488nobodyさん2009/03/21(土) 22:35:15ID:???
>>486
30秒で止まる。
0489nobodyさん2009/03/21(土) 22:39:17ID:???
設定次第だがデフォルトは30秒
0490nobodyさん2009/03/21(土) 22:46:46ID:???
止めるのは鯖屋の仕事だから好きなだけ無限ループさせておk
0491nobodyさん2009/03/21(土) 23:10:45ID:???
とっくに想定済みなんですね。
ありがとうございました。
0492nobodyさん2009/03/21(土) 23:18:28ID:???
まぁ鯖潰したら損害賠償だけどな
0493nobodyさん2009/03/21(土) 23:38:44ID:???
>>492
そんなヤワな鯖ねーよ
0494nobodyさん2009/03/21(土) 23:40:05ID:???
>>492
ちょっと中級者ぶりたい年頃だけど外してるの図
0495nobodyさん2009/03/22(日) 01:29:46ID:???
いきなり本番とかやらなければ普通起こさないと思うけど>無限ループ
0496nobodyさん2009/03/22(日) 01:34:00ID:???
よくCMSなんか見てると、全てのファイルの頭に

/**
*
* @package hogehoge
* @version $Id: index.php 0000 2010-01-01 14:00:00Z hogehoge$
* @copyright (c) 2010 fugafuga
* @license ttp://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

こんなの見かけるけど、これは手動で書いてるんですか?
まさかね?
04974962009/03/22(日) 01:35:02ID:???
ID
04984962009/03/22(日) 01:35:33ID:pWqW8Yq7
また間違えたorz
ごめんなさい
0499nobodyさん2009/03/22(日) 03:37:07ID:???
>>494-495
マジレスつまらん
0500nobodyさん2009/03/22(日) 05:17:23ID:???
すいません。CMSなどはHTMLファイルを生成するんですよね
メニューに一項目増えた場合 全部のHTMLページを
書き換える処理ってしてるんですか?
0501nobodyさん2009/03/22(日) 06:09:27ID:???
>>500
テンプレートにして動的にしてる場合が多い気がする。
スタティックなHTML吐くのはあまり見たことがない。
0502nobodyさん2009/03/22(日) 06:19:05ID:???
>>501
つまりmod rewriteってことですか?
素人ですいません。
0503nobodyさん2009/03/22(日) 06:19:37ID:???
mod_rewriteがどう関係あるんだ?
0504nobodyさん2009/03/22(日) 06:22:33ID:???
つまりHTMLじゃないけれど、HTMLとしてって方法ですか?
自分はプログラムで呼び出すか、SSIしか思い浮かばないです
0505nobodyさん2009/03/22(日) 06:23:55ID:???
プログラムで呼び出せば?
0506nobodyさん2009/03/22(日) 06:25:11ID:???
CMSってHTMLファイルを作っていくイメージがあったんです
すいません。ただ、require include で呼び出したページは
グーグルランクつきにくいです
SSIにしてみたところ、それよりはわずかにつきやすかったです
CMSがHTMLファイルなら、どうやって外部からメニューを
呼び出しているかわからなかったので
0507nobodyさん2009/03/22(日) 06:28:00ID:???
別に動的でもSEO考慮する方法はいくらでもあるべ?
0508nobodyさん2009/03/22(日) 06:30:30ID:???
>>507
具体的に教えて下さい お願いします
もっどりライトは厳しい感じがしました 結果が
0509nobodyさん2009/03/22(日) 06:31:26ID:???
結果がって?
0510nobodyさん2009/03/22(日) 06:32:34ID:???
>>509
グーグルランクのつきが明らかに悪いです(個人の弱小HP)
そしてSSIに変えたところ、3つほどつきました
現在SSIのほうがPHPによる外部ページ呼び出しよりランクがつきやすいです
内部は全く変えてないです
0511nobodyさん2009/03/22(日) 06:33:30ID:???
じゃSSIでいいじゃん
0512nobodyさん2009/03/22(日) 06:37:40ID:???
(;^Д^) そうですか
0513nobodyさん2009/03/22(日) 07:18:32ID:???
そう
0514nobodyさん2009/03/22(日) 09:24:55ID:???
ひどい自演を見た><
0515nobodyさん2009/03/22(日) 09:59:58ID:???
>>492=499
自分はマジレスじゃなかったことにしようとして外してるの図
0516nobodyさん2009/03/22(日) 10:04:27ID:???
>>492がマジレスなわけないだろ。初心者は半年ROMれよ
0517nobodyさん2009/03/22(日) 10:06:20ID:???
またその話かよ
A型はひつこいな
0518nobodyさん2009/03/22(日) 10:11:46ID:???
ホントに鯖潰したら、普通に損害賠償だけどな。
0519nobodyさん2009/03/22(日) 10:11:46ID:???
初心者(笑)は半年ROMれ(笑)よ
0520nobodyさん2009/03/22(日) 10:24:48ID:???
普通は損害賠償とか面倒なことに発展する前に、凍結されたり追い出されたりする

Nucleusでアクセス解析いれたら劇重になって、翌日、鯖停止->強制解約になったよ。オレ
0521nobodyさん2009/03/22(日) 10:24:54ID:???
>>515
図星で逆ギレの図
0522nobodyさん2009/03/22(日) 10:56:19ID:???
>>492=499=521
m9
0523nobodyさん2009/03/22(日) 11:33:37ID:???
粘着すぎる いつもむかむかしてるのかな
0524nobodyさん2009/03/22(日) 11:39:35ID:???
邪魔なんだよね〜
これ以上やるなら専用スレ立ててやるからそっちで共食いしてくれ
0525nobodyさん2009/03/22(日) 11:46:58ID:???
>>484
バージョン管理システムを導入するといいです

>>496
いくつかのIDEでは/**と入れて改行すると自動で作ってくれます
EclipseのPHPプラグインあたりだと
最初に関数を定義してからその上に/**を入れて改行すると
下の関数を見て引数があったら@param
返り値があったら@returnを生成してくれます
その他については必要であったら自分で記述するか
デフォルトの値として設定可能なものなら設定するしかありません
0526nobodyさん2009/03/22(日) 11:49:05ID:dhNIUg3n
多次元配列へのアクセスを動的にやりたいのですが、
どうすればいいですか?

get_multi_array($array,array('hoge','fuga','poge'))
→$array['hoge']['fuga']['poge']を取得

こういう動作をさせたいのです
0527nobodyさん2009/03/22(日) 12:30:00ID:???
>>492=499=521=523=524
立場が悪くなって第三者のフリをしようとしてるけど外してるの図
0528nobodyさん2009/03/22(日) 12:43:51ID:???
>>527
邪魔なんだよね〜
これ以上やるなら専用スレ立ててやるからそっちで共食いしてくれ
0529nobodyさん2009/03/22(日) 12:56:54ID:???
>>528
無視できない時点で同類だって教わらなかったの?
というより自演バレバレだよ初級者君(笑)
0530nobodyさん2009/03/22(日) 12:57:11ID:???
おまえらケンカしろ byひきこもり塾っぽいの

いいんだよ byスレ回り先生

自作自演する若者はためが無い by湯浅誠

自作自演格差社会 〜492のレス能力格差がスレッドを引き裂く

>>528は、新自由主義者
何でも排除して、格差を作ろうとする
0531nobodyさん2009/03/22(日) 13:10:43ID:???
>>529
邪魔なんだよね〜
これ以上やるなら専用スレ立ててやるからそっちで共食いしてくれ
0532nobodyさん2009/03/22(日) 14:07:27ID:ofSdd/CM
モバイルからなのでID固定できませんが質問です
"<a href='".$value."'>"などとしたときに
htmlspecialcharsだけでは変数にscript:〜が含まれていた場合に回避できませんが
変数の前に"http://sample.com/"とURLがあれば問題ないのでしょうか
実際Firefox,safariなどでは普通にnot foundになります
0533nobodyさん2009/03/22(日) 14:09:38ID:???
>>526
こんなのどう?連想配列でも多分問題ないと思う。

<?php
function get_multi_array(array $a, array $keys) {
$tmp = &$a;

foreach ($keys as $key) {
if (! is_array($tmp) || ! array_key_exists($key, $tmp)) return null;
$tmp = &$tmp[$key];
}

return $tmp;
}

// 以下テスト
$array =array(
array(
array(1,2,3), array(4,5,6),
),
array(
array(7,8,9), array(11,12,13), array(14,15,16)
)
);

var_dump(get_multi_array($array, array(0, 1, 2)));
0534nobodyさん2009/03/22(日) 14:32:22ID:???
>>529は見えない敵と戦ってるとみた
0535nobodyさん2009/03/22(日) 14:33:52ID:???
こんな過疎板で煽り合って自分が上にしたい奴ってうつ病だろな
0536nobodyさん2009/03/22(日) 15:07:18ID:???
>>535
よくぞ見抜いた・・

社会不適合者な俺万歳
0537nobodyさん2009/03/22(日) 17:29:33ID:XWTxCtFo
test
0538nobodyさん2009/03/22(日) 17:35:05ID:XWTxCtFo
<form action="log/200902.htm" method="POST">
<input type="text" name="title" value=""><br>
<textarea cols="80" rows="7" name="text"></textarea>
<input type="submit" value="send">
</form>
<?php
$title="<h2>".$_POST["title"]."</h2>";
$text='<div class="text">'.$_POST['text'].'</div>';
if ( get_magic_quotes_gpc()) {
$title = stripslashes($title);
$text=stripslashes($text);}
$text = nl2br($text);
$log = 'log/200902.htm';
$lock = 'lock.txt';
$lock_fp = fopen($lock,"w");
flock($lock_fp,LOCK_EX);
$old_log = file_get_contents($log);
$fp = fopen($log,"w");
fwrite($fp,$title);
fwrite($fp,$text);
fwrite($fp, $old_log);
fclose($fp);
flock($lock_fp,LOCK_UN);
fclose($lock_fp);
?>
これ、とあるサイトから引用してきたスクリプトなんですけど、どうやっても$_POSTの値を取得できずにlog/200902.htmの内容が<h2></h2><div class="text"></div>と内容が空になってしまいます。
POSTの値を取得するにはどうしたらいいんでしょう?どなたか知識のある方、ご教授下さい。
■ このスレッドは過去ログ倉庫に格納されています