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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/11/23(木) 00:27:02ID:???
PHPに関するくだらねぇ質問用スレです。ここならお前の下らない質問に回答があるかも知れません。

まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc8.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc8.2ch.net/db/subback.html
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
 しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
0412sage2006/11/28(火) 22:41:38ID:TqHCzfuA
PATH_INFOのことで悩んでおり質問させていただきます。

変数を受け渡す際にPATH_INFOを使用してスラッシュ区切りで渡しているのですが、
変数を何も渡さない時に

Notice: Undefined index: PATH_INFO

というエラーが出てしまいます。
URLが
http://localhost/index.php
の場合にエラーとなり
http://localhost/index.php/
のように、最後にスラッシュをつけるとエラーが出ません。

お知恵を拝借できればと思います。よろしくお願いします。
0413nobodyさん2006/11/28(火) 22:47:26ID:???
【セキュリティ上の注意】

php の セッションIDは、マイクロ秒単位の現在時刻 + ユーザーのリモートアドレス + combined-LCG(線形合同法自体は、疑似乱数生成方法としてはセキュアな方法ではない。) が種となっている。
セキュリティの専門家の高木浩光氏も 「phpらしい駄目っぷりだ。」 と批判している。

Unix 系 の OS ならば php.ini などで /dev/urandom を乱数の種に使うように設定しよう。

次のように記述すれば良い。
| session.entropy_file = /dev/urandom
| session.entropy_length = 16

/dev/urandom では、周囲で発生するノイズ等の攻撃者に推測されない値をデバイスドライバや他の情報源から収集して、乱数の種として使用する。
これは、特殊なハードウェアが無い普通のPCでも使えて大変便利。
HDDの回転数、CPUの温度、ハードウェアの温度、マウスの動き、HDDの寿命、ハードウェアのエラーセクタ、HDDのSMART情報、周囲のノイズによる
ハードウェア内部エラーなど、PCにはセキュアな擬似乱数としての使用に耐える攻撃者に推測されない値がいっぱいそなわっているのだ。

参考:
http://tdiary.ishinao.net/20061120.html#p01
http://www.linux.or.jp/JF/JFdocs/Secure-Programs-HOWTO/random-numbers.html
0414nobodyさん2006/11/28(火) 22:59:18ID:???
>>411
391は見る気しないけどURLからドメインを抜く関数ってありますよ

>>412
issetで調べてね

>>413
前から知ってたけど作るもののレベルによるのではないかと限りなく唯一無二なら問題なし
0415nobodyさん2006/11/28(火) 23:24:20ID:???
最近winアプリの開発してて3年ぶりくらいにwebの仕事に戻ってきたんだけど
ブラウザにキャッシュさせたくない時に
cache-control, pragma, expire
のヘッダ発行したら出来たと思うのですが・・・・。
IE6とFirefoxで動作確認したところキャッシュされまくりでした!!
IE6で何か変ったんでしょうか?IE6でもキャッシュ無効出来てる人いますか?
0416nobodyさん2006/11/28(火) 23:26:47ID:???
過去のが入ってるだけで、毎回ちゃんとアクセスしてるならいいじゃないか。
それともキャッシュされちゃ困るほどセキュアな情報なの?

Webアプリ屋も少しはHTTPを勉強して欲しい。
0417nobodyさん2006/11/28(火) 23:29:21ID:QkZ3aa/D
XREAのサーバーを利用しています
MySQL(MySQL - 5.1.11-beta) の文字セットがUTF-8 Unicode (utf8) ということで
データベースに入れたものをEUC-JPで表示しようとすると文字化けしてしまうようです。

他のサーバーでEUC-JPにて構築したサイトでして
これからUTF-8に移行するには非常に手間がかかります
どうにか簡単に解決する方法はありませんでしょうか?
よろしくお願いいたします
0418nobodyさん2006/11/28(火) 23:33:39ID:???
設計ミスなら諦めて1から書き直すしかないんじゃない?
0419nobodyさん2006/11/28(火) 23:35:03ID:???
>>417
データベースに入ってるのがUTF-8で、表示するときEUC-JPにしたいなら
表示するときに変換すればいいのでは?

そのサーバーのPHPスクリプトの表示する部分だけちょちょいと書き換えればOK。
0420nobodyさん2006/11/28(火) 23:43:19ID:QkZ3aa/D
>>419
了解しましたー
どうでもです。

しかし、mb関数が使えないとかなるとおそらく面倒なんでしょうかね?
0421nobodyさん2006/11/29(水) 00:29:55ID:???
>>420
はい。泣いてください。
胸は貸しませんが。
0422nobodyさん2006/11/29(水) 00:58:36ID:???
PEARのソースを参考にソースの書き方とか勉強しようと思うのですが、
PEARのソースって綺麗ですか?
適当なものをダウンロードしてソースを見たら、
思っていたのとだいぶ違っていました。
見た感じ手続き型でしたし、
文法的にも動作的にも問題はないですがちょっと違和感がある、
書き方をしている箇所があったりと。(自分本位の視点なので自分がおかしいのかも)
とりあえずPEARのソースは参考になると思いますか?
それとも国産フレームワークのソースでも見たほうがいいでしょうか?
0423nobodyさん2006/11/29(水) 01:27:35ID:???
>>420
iconv

使えないか。
0424nobodyさん2006/11/29(水) 01:28:32ID:???
>>416

HTTPを勉強しないWebアプリ屋っているの?
0425nobodyさん2006/11/29(水) 01:51:50ID:???
いっぱいいるよ。特にPHPしか出来ないWebアプリ屋は。
PHP以外の言語だったら>>387のような問題が発生することは無い。
0426nobodyさん2006/11/29(水) 01:52:49ID:???
スマン。HTTPの勉強ってなんだ?
HTTPの意味はわかるが、何を勉強すればいいんだ?
0427nobodyさん2006/11/29(水) 01:57:53ID:???
>>425
>PHP以外の言語だったら>>387のような問題が発生することは無い。

んなことねぇよボケ。
Cやっててネットワークの知識がないヤツだってたくさんいる。
0428nobodyさん2006/11/29(水) 02:02:11ID:???
>>413
そんなことを気にしてるほうがダメ人間だと思う。
PHPのセッションID生成方法について、ヲタ的には乱数がどうのこうので
ケチをつけたくなるのかもしれんが、現実的には十分に推測不可能だろ、それで。
0429nobodyさん2006/11/29(水) 02:22:55ID:???
簡易掲示板を作っているんですけど、
ログの読み取り方について質問です。
file()でログを読み込んで、
それをリクエストがあるたびに毎回読み込んでhtmlに反映してるのですが、
当然ログが長くなるとレスポンスが悪くなりますよね?
そこでログに変更があった後、
htmlを更新し出力しなおすみたいなことをしたいのですが、
技術的に難しいでしょうか?
04304292006/11/29(水) 02:38:45ID:???
ごめんなさい。
言ってることがよくわかりませんね。
自分でもわからなくなってしまいましたorz
色々と試行錯誤してみることにします。
お騒がせしてすみません。
0431nobodyさん2006/11/29(水) 03:41:49ID:???
>>427
そりゃそうなんだけどCでやる事になった場合は
content-type出力して\r\n\r\nを出力してと一連の流れを把握するでしょ。
PHP使ってるとheader関数やcookie関数のおかげで内部で何やってるか
分からない奴がいっぱいいる。
0432nobodyさん2006/11/29(水) 03:57:11ID:???
>>431
C じゃなくても Perl でもprint "Content-Type: text/html\n\n"; とかは普通やるよね。
use CGI; すると重くなるし。
0433nobodyさん2006/11/29(水) 04:07:10ID:???
>>429>>430
よくあるのは、書き込まれた時に、HTMLファイルを作っちゃう方法。
つまりその(PHPの)掲示板に最初にアクセスした時の画面と同じ見た目のHTMLを作っておくわけだ。
訪問者は、そのHTMLにアクセスする(最初の画面だけ)。
0434nobodyさん2006/11/29(水) 04:43:05ID:???
$a = "50"; //String
$b = $a + 50; //String + Integer
echo $b; //100

このソースに関して質問なんですが、
$b = $a + 50;の$aの部分は、
自動的にintにキャストされてるということなのでしょうか?
0435nobodyさん2006/11/29(水) 04:46:09ID:???
http://jp2.php.net/manual/ja/language.types.type-juggling.php
> PHP の自動型変換の例の一つは、加算演算子 '+' です。 オペランドのどれかが float の
> 場合、全てのオペランドは float として評価され、結果は float になります。
> その他の場合、オペランドは整数として解釈され、結果も整数になります。
0436nobodyさん2006/11/29(水) 04:56:34ID:???
なるほどー
オペレーターとオペランドをみて型が自動変換されるんですね。
結構ややこしいなぁ。
お答えどうもありがとうございました。
0437nobodyさん2006/11/29(水) 05:11:36ID:???
>>428
本当にそうだろうか。

例えば、俺がサイトAを作ってサイトBに対してセッションハイジャック攻撃を仕掛けるとしよう。

俺のサイトAからサイトBへリンクを貼り、被害者Cがそれをクリックする。
そうすると、俺はそのユーザのIPアドレス と クリック日時 を取得できるよね。

クリックしてから実際にブラウザがサイトBにリクエストを出すまでのラグがあるから、
取得した日時には 100ミリ秒の誤差があるとするかな。

ここで、php が combined-LCG を種として使っていないなら、100,000回 サイトBにリクエストを送るだけで
セッションハイジャックが成功することになる。ちなみに、10万アクセスは30分もあれば余裕で可能だ。(相手が標準的なスペックの鯖の場合)

php が使っている combined-LCG は、線形合同法と呼ばれる。
http://ja.wikipedia.org/wiki/%E7%B7%9A%E5%BD%A2%E5%90%88%E5%90%8C%E6%B3%95

つまり、被害者Cのアクセス前に自分も大量にアクセスして生産されたセッションIDを取得すればいい。
例えば、被害者Cが攻撃用のリンクをクリックした時点で、攻撃者がサイトBに大量にアクセスしてセッションIDを取得しまくる。
必要量の取得がおわったら、被害者Cに対してサイトBに対するリダイレクトを行わせる。

そして、その後、セッションの有効期限が切れるまでの間に、攻撃者が取得した大量のセッションIDをもとに、
逆関数を利用して combined-LCG によって生産された乱数をもとめ、さらに線形合同法の周期性を利用して
被害者Cがアクセスしたときに、combined-LCG によって発生された乱数を求める。

それと IPアドレスと日時を組み合わせた回数のリクエストをセッションの有効期限が終わる前におくれば、セッションハイジャック成功だ。

0438nobodyさん2006/11/29(水) 05:23:34ID:???
>>436
要するに . を使えば文字として扱われるし、+ を使えば数として扱われますよということ。
数として扱えない場合は 0 扱い。
0439nobodyさん2006/11/29(水) 05:26:57ID:???
>>437
なんかますますセキュアに見えてくるな
0440nobodyさん2006/11/29(水) 05:40:07ID:jv+ZvP9Y
卓上の理論なんていらないんだよ。
実験したものを見せろ
0441nobodyさん2006/11/29(水) 06:01:58ID:???
>>440
個人が実験してセッションハイジャックが成功するレベルなわけないじゃん
これは共通鍵・公開鍵方式の暗号で、個人のPCでは解読に1000年かかっても、
日本一のスパコン(東工大のスパコン)を使って1ヶ月で解読できるなら、脆弱な暗号方式って呼ばれる。

じゃあ、実際にハイジャックを成功させることを考えようか。

まず、相手のサーバがボルトネックになってくるよね。
だから、相手のサーバは日本一、いや、世界一の性能を持つスパコンということにしなくては。

あと、php のセッション維持期間はデフォルトでは 24分 だけど短時間で解読するのはむずかしいから
とりあえずセッション有効期間は 1年ぐらいにしよう。
session.cookie_lifetime 31536000 っと。
あと、インターネット網はラグがあるから、LANでスパコンと直結だな。
ついでに暗号の解読の演算用に世界一のサーバ・・・、はもうないから、世界二のサーバを用意。

あとは、暗号解読に秀でている研究者を10人ぐらいやとって半年ぐらいかけて解析用プログラムを作ってもらって実行。

そうすりゃ、たぶんセッションハイジャックが成功すると思うけどなー。
0442nobodyさん2006/11/29(水) 06:07:02ID:???
先生、すごそうな話でついていけません。
0443nobodyさん2006/11/29(水) 06:15:58ID:???
なんで、セッションハイジャックするときにsession_idを解析しようとする?
通信自体が盗み取れたときが問題なんでしょ?

それよりも、session_idをリジェネレートしたときに、
改めてCOOKIEを送りなおすのは止めれないのか?
2回同じ値のCOOKIEがhttpヘッダに書かれているのは気持ち悪いんだが。
0444nobodyさん2006/11/29(水) 06:16:44ID:???
漏れの php の設定みてみたら既に

session.entropy_file = /dev/urandom
session.entropy_length = 16

になってたよ

と思ったら↓に沿って設定したらそうなるのか(´・ω・`)
http://wiki.ohgaki.net/index.php?PHP%2Ftips%2F%BF%E4%BE%A9php.ini%C0%DF%C4%EA

0445nobodyさん2006/11/29(水) 06:18:24ID:???
session.entropy_length は 16 じゃなくて 32 でした。
0446nobodyさん2006/11/29(水) 06:53:13ID:???
>>441
>>428をもう一度読んでみよう(゚∀゚)













>現実的には十分に推測不可能だろ
0447nobodyさん2006/11/29(水) 08:50:09ID:???
>>446
>>441をもう一度読んでみよう(゚∀゚)
0448nobodyさん2006/11/29(水) 10:09:18ID:???
なんでセキュアな話をしたがるやつは、SSL使わないんだよw
0449nobodyさん2006/11/29(水) 11:04:23ID:???
>>448
SSLとは関係無いセッションハイジャックの話をしているわけだが
もっと分かりやすく言えば、SSLを使うことは大前提で、それより高度なセキュリティ確保の話をしているわけだ
0450nobodyさん2006/11/29(水) 11:27:38ID:???
>>437と>>441は別人だと仮定してレスする。

>>437よ、君の仮定には大きな誤算がある。
それは、「被害者Cが君の計算通りに行動する確率はものすごく低い」ということだ。
時間の誤差とか何とか、それらとの掛け算で、君の仮定が成功する確率は現実的には極めて低い。

>>441は、そんなアホな>>437に向けた皮肉だと俺は読んだ。
要するに「現実的じゃないぜ」ってことを遠まわしに皮肉ってるんでしょ?w > >>441
0451nobodyさん2006/11/29(水) 11:50:20ID:???
こだわるなら独自で作れば良いだけだろ、シリアライズあるし滅茶苦茶簡単なのに
何で他人が作った物を批判したがるかな。そういう奴に限って決まって能力ないからな。
0452nobodyさん2006/11/29(水) 12:10:39ID:1l/WuAMq
質問です。
.qmailを使用し、メール受信と同時にPHPスクリプトを起動しようと思っているのですが
うまくいきません。

.qmail-***には以下の様に記述いたしました。

| /usr/local/bin/php /path/to/script.php

で、実際に動作テストをしてみるとスクリプトが動いていない模様なので
メールログを見てみると

Nov 29 11:58:50 IICL002 qmail: delivery 39: deferral: /usr/local/bin/php:_error_while_loading_shared_libraries:_libmysqlclient.so.14:_cannot_open_shared_object_file:_No_such_file_or_directory/

上記のエラーが出ています。

/usr/local/bin/php /path/to/script.php
上記コマンドをコマンドライン上から入力するとプログラムは実行出来ます。

念のためlddで確認してみると
ldd /usr/local/bin/php

libmysqlclient.so.14 => /usr/local/mysql//lib/mysql/libmysqlclient.so.14

/2個が気になりますが一応セットされています。

パーミッションかな?と思いましたが違うようです。
どなたかご教授宜しくお願いいたします。
0453nobodyさん2006/11/29(水) 12:14:54ID:???
>>437
>俺のサイトAからサイトBへリンクを貼り、被害者Cがそれをクリックする。
フィッシングサイトに引っかかるやつの面倒まで見なくてもいいだろ
0454nobodyさん2006/11/29(水) 12:16:58ID:???
もういいよPHPは危ないみたいだからJavaに移行します
04554522006/11/29(水) 12:36:03ID:???
自己解決しました。
/usr/local/mysqlのパーミッションが足りなくファイルまで到達できなかったようです。

お手数おかけ致しました。
0456nobodyさん2006/11/29(水) 12:38:31ID:???
qmailではよくあること
0457Mrセキュア2006/11/29(水) 12:40:55ID:???

お 外 に で る と 事 故 に あ う か も し れ な い の で 怖 く て 出 れ ま せ ん (笑)
0458nobodyさん2006/11/29(水) 12:58:01ID:???
>>452
適当なところで改行しろよ!!横スクロールバーがでたじゃないか!!
この低脳所得者市ねボンクラ!
0459nobodyさん2006/11/29(水) 13:03:47ID:uckTTJrX
-> と :: の違いって何ですか?
0460nobodyさん2006/11/29(水) 13:05:56ID:???
->インスタンス化してないと使えないメソッド
::インスタンス化してなくても使えるメソッド
0461nobodyさん2006/11/29(水) 13:09:57ID:???
ダブルコロンは先祖のプロパティを呼ぶのにもつかうな
0462nobodyさん2006/11/29(水) 13:36:17ID:???
>>460-461
なるほど、ありがとうございました。
0463nobodyさん2006/11/29(水) 14:02:32ID:+Stuj4pW
PHPでWebサービス作り方が載ってるサイト教えて。
0464nobodyさん2006/11/29(水) 14:06:26ID:???
>>463
http://pc8.2ch.net/php/
0465nobodyさん2006/11/29(水) 15:40:27ID:???
気になることがあるので意見のある方いらっしゃいましたらお願いします。

GDライブラリで写真ギャラリーのサムネイルを自動で作るのを作ってみたのですが
これって結構負荷高いのでしょうか?

作った画像を保存するようにして、まずファイルがあるか調べ、
ない時だけ作るようにすれば、作るのは一回だけなのでたいしたことないと思いますが、
サムネイルにとる場所をランダムでちょっと動かすようにしてみたのですが
そのためには、保存しないで、毎回作らないとだめじゃないですか?

具体的には
mt_rand ( 0, 1);
で乱数発生させて、0か1かで座標に代入する数を変えて
imagecopyresampled
で画像を作り
imagejpeg($thumb,null, 100);
で表示させてます。

例えば、サムネイルが100枚くらいあるページで、毎日1000〜2000くらいPVがあるとしたら
結構やばめでしょうか?

CPUとかメモリとかにもよるんでしょうけど、
スペックは管理先に問い合わせないとはっきり分かりません。
専用サーバーで、業務用に借りていて結構お金出してるはずなんで、
そんなにしょぼくはないはずです。多分…。

ちょっと微妙な質問かもしれませんが、たいしたことないよ〜とか、あれは結構重いよ〜とか
意見があればお願いします。
0466nobodyさん2006/11/29(水) 15:40:32ID:gqW8eidG
フォームで番号入力させて
それをもとにHTMLファイル作成して
そこに飛ぶようにしたいんですけど
作成したHTMLページにはどうやればとばすことできますか?


0467nobodyさん2006/11/29(水) 15:45:57ID:???
>>465
意味不明

>>466
header()でリダイレクトする
0468nobodyさん2006/11/29(水) 15:56:16ID:???
相手のPCの特定のポートが開いてるかを調べる関数みたいのあります?
0469nobodyさん2006/11/29(水) 16:04:11ID:???
>>468
関数はないけどtcpでアクセスしてみれば簡単に分かるよ
0470nobodyさん2006/11/29(水) 16:13:00ID:???
>>465
専用サーバなら負荷が高かろうが気にする必要はないのではアルマイト
0471nobodyさん2006/11/29(水) 16:16:43ID:???
>>468
順番にポートをスキャンしていけばいいジャン
04724662006/11/29(水) 16:34:07ID:gqW8eidG
>467
ごめんなさい、よくやり方がわからないです。
今はフォームのactionでhtmlファイル作成するページに飛ばして
るんです。そこでまた作成したページに飛ぶ感じにしようと思ったんですけど
かなり無駄なことしてますよね・・
なにかいい方法は?
04734682006/11/29(水) 16:40:40ID:???
>>469
ないんですかー
どうもありがとうございます。
tcpの知識がないので勉強してきます。

>>471
80番が開いてたら書き込み不可能とかにするつもりなので、
そういったことはしたくないのです。
0474nobodyさん2006/11/29(水) 16:49:05ID:???
80番あいてるからってプロキシとか限らないだろ低脳
0475nobodyさん2006/11/29(水) 16:51:54ID:???
串のポート番号は自由だからね
04764682006/11/29(水) 16:52:44ID:???
>>474
深読みしすぎですよ。そういう意図じゃないんですよね。
プロキシ弾くだけならおとなしくライブラリ入れますし。
書き込んだ人のIPを表示しているので、
アクセスされる可能性を視野にいれた措置です。
0477nobodyさん2006/11/29(水) 17:00:36ID:???
TCPを勉強っつーか
接続を試行して成功したらポートが開いてる、失敗したら閉じてる
ただそれだけだ がんばれ
0478nobodyさん2006/11/29(水) 17:24:06ID:???
ポート番号80で調べるということは、自宅鯖持ちのやつを全部弾くつもりか

まぁいいや、レッツPHPからソース盗んで改造しろ
0479nobodyさん2006/11/29(水) 17:25:52ID:???
>>466
何がわからんのかいまいち理解できないが。

1.フォームを表示
2.番号を入力させてサブミット
3.サブミットした値を元にHTML作成
4.結果を表示(作ったHTMLへ飛ぶってこういうことか?)

なら、HTMLの基本中の基本だろ?
で、3の部分でPHPを使いたいわけだ。

んで何が分からないの?
04804662006/11/29(水) 17:32:34ID:gqW8eidG
3のところでphpつかって作成して
で4で作ったHTMLに飛びたいんです
その4の部分がわからなくて・・
アホでごめんなさい
04814682006/11/29(水) 17:39:43ID:???
>>477
なるほど。HTTP系の関数の何かが使えそうですね。
もう少し色々と調べてやってみます。

>>478
>ポート番号80で調べるということは、自宅鯖持ちのやつを全部弾くつもりか
そうですね。
ただ、コメントを禁止するだけで、閲覧はできるようにします。
2chのような掲示板ではないですし、所詮個人サイトなので、
用件があればメールも用意してるし大丈夫だと勝手に判断しました。
それよりも鯖を運営してるIPで、ネットサーフは危険じゃないですかね。
0482nobodyさん2006/11/29(水) 17:40:25ID:???
>>480
いやだからさ、2のサブミット先をphpファイルにすれば、
そこで出力した結果がブラウザに表示されるだろ?
それが4なんじゃないのか?
04834662006/11/29(水) 17:49:05ID:gqW8eidG
いや、その時点ではまだHTMLファイル作成されてなんです
2で、飛んだPHPファイルでhtmlファイルを作って
4でさらにそのhtmlファイルに飛ぶかんじです

やり方がおかしいですかね?
やりたいこととしては、フォームで番号入力させて
その番号のhtmlファイルを作って、そこに飛ばす
って感じです
0484nobodyさん2006/11/29(水) 18:03:40ID:???
1.フォームを表示(前からあるhtmlファイル)
2.番号を入力させてサブミット(ここも前からあるhtmlファイル)
3.サブミットした値を元にHTML作成 (hoge.phpの処理)
4.作成したHTMLへリダイレクト(ここもhoge.phpの処理)
5.作成したHTMLが表示(さっき出来たhtmlファイル)

======hoge.phpここから======

・前からあるhtmlから来たPOSTを受け取ってファイル作成の処理
・作成したファイルへリダイレクトの処理

======hoge.phpここまで======

つまりhoge.phpはブラウザに何かを表示する処理はないのよん
0485nobodyさん2006/11/29(水) 18:05:31ID:???
やり方がおかしいw
0486nobodyさん2006/11/29(水) 18:11:08ID:???
session_startが実行されているかどうか調べる関数ってあるんでしたっけ?
今は$_SESSIONを調べているのですが気になった
0487nobodyさん2006/11/29(水) 18:47:24ID:J9ZOlswS
tuika.php ソース
<html><head><body><?
echo "<table border='1'><tr><td>";
echo "<form action='tuika.php method='post'>";
echo "<input type='text' name='data_1'><br>";
echo "<input type='text' name='data_2'><br>";
echo "<input type='submit'value='データの追加'>";
echo "</form></td></tr></table>";
?></body><html>

kakunin.phpソース
<html><head><body><?
echo $_POST['data_1'];
echo $_POST['data_2'];
?></body><html>

上のような感じで、tuika.phpで文字を打ち込んで、それがdata_1、
data_2としてkakunin.phpにポストされて、kakunin.phpでその内容が
表示されるというプログラムを作ったんですけど、kakunin.phpのソースを

<html><head><body><?
$p = 1;
$q = 2;
echo $_POST['data_$p'];
echo $_POST['data_$q'];
?></body><html>

という風に、data_以下の数字の部分を変更すると、ポストされた内容が
表示されなくなってしまいます。data_以下の数字の部分を記号で表すように
したいのですが、一体どうすればいいでしょうか。誰か教えてください。
04884872006/11/29(水) 18:50:57ID:J9ZOlswS
あ、すみません、tuika.phpの4行目は正しくは
echo "<form action='kakunin.php method='post'>";
でした。
0489nobodyさん2006/11/29(水) 19:03:23ID:???
>>483
だから>>467で回答してあるんだからマニュアルでheader()関数ぐらい調べろよ
http://jp.php.net/header
の「2番目の特別なヘッダは、」あたりに書いてあるだろ
やりかたわからないです
とかいう前にわかろうと努力すらしない
おまえはいつまでたっても進歩しないだめ人間だ
プログラミングとか向いてないからさっさとやめたほうがいいよ
0490nobodyさん2006/11/29(水) 19:31:43ID:OZta3BjG
>>487
シングルクオートの中では変数は展開されない。

echo $_POST['data_'.$p];
echo $_POST['data_'.$q];

とか

echo $_POST["data_{$p}"];
echo $_POST["data_{$q}"];

とか書くべし。

あと4行目、>>488でもおかしくない?kakunin.phpの後ろにシングルクオート要るでしょ。
04914662006/11/29(水) 19:34:15ID:gqW8eidG
ごめんなさい、まじでいそいでて。
header("Location:$text.'.html'"); で飛ばないんですがなぜ?
0492nobodyさん2006/11/29(水) 19:43:30ID:???
491がスルーされますように。。。
04934872006/11/29(水) 19:55:47ID:J9ZOlswS
>>490
できました! ありがとうございます!
0494nobodyさん2006/11/29(水) 20:02:17ID:???
例えば変数内に”test.gif”などとファイル名があったら
表示(echo時)に自動的に<img src="test.gif">のように
することってできるのでしょうか?
0495nobodyさん2006/11/29(水) 20:09:27ID:???
意味不
0496nobodyさん2006/11/29(水) 20:16:14ID:???
>>491
今日はまだ4時間もある。
とりあえずマニュアルを読んできなさい。
0497nobodyさん2006/11/29(水) 20:23:41ID:???
>>494
っ 正規表現で置換
04984152006/11/29(水) 20:41:58ID:???
>>416
多分、直近レスのせいでキャッシュリミッタに固定観念が入っちまったんだとは思うが、俺が聞いてるのはブラウザの挙動の話
ヘッダ情報は正しく送られているのは確認済で挙動が昔と違うわけな
ずっとwebやってた奴なら何か変化があったか情報を持ってるか?聞いた方が早いと思うわけ
ヘッダ情報を処理するのはあくまでブラウザだからな、ブラウザの実装によって動きが変って当然なのな、分かる?
結局、vmに残ってたwin98のie5と比較したら、やっぱり挙動が変ってたな
0499nobodyさん2006/11/29(水) 20:51:03ID:???
>>441
何か難しそうな事言ってるつもりみたいだけど演算なんて必要ないよw
0500nobodyさん2006/11/29(水) 21:00:05ID:Ob2oQ/dq
PHPの開発にeclipseを使いたいのですが、これはEUCに文字コードを設定すると
「ー」が文字化けするとかなんかあるんですけど、ファイルの文字コードはEUCですよね?
0501nobodyさん2006/11/29(水) 21:10:06ID:???
>>441 ぷっ。よくこんな幼稚なこと平気で書けるな。
>>494
$text = 'screenshot.gif';
$ext_pattern = 'jpg|gif';
$text = preg_replace('/(([a-zA-Z0-9-_]+)\.(?:'.$ext_pattern.'))/', '<img src="$1" alt="$2" />', $text);
echo $text;
0502軟式PHP2006/11/29(水) 21:14:32ID:???
久々にきたら凄い奴が登場してるなwww
0503nobodyさん2006/11/29(水) 21:22:36ID:???
貴様らにはセキュアという言葉の意味がわからないようですね^^;
0504nobodyさん2006/11/29(水) 21:47:07ID:???
PHP5ってどうなの?
0505nobodyさん2006/11/29(水) 21:48:06ID:???
>>503
それを気にするなら、まずネットから切断するべきですよ
0506nobodyさん2006/11/29(水) 22:04:54ID:???
>>504
速い
0507nobodyさん2006/11/29(水) 22:07:20ID:???
>>494
>例えば変数内に”test.gif”などとファイル名があったら
>表示(echo時)に自動的に<img src="test.gif">のように
if (strpos($a, "test.gif") !== false) { echo "<img src=\"test.gif\">; }

0508nobodyさん2006/11/29(水) 22:19:23ID:Ob2oQ/dq
apachebenchってguiで動かせませんか?
0509nobodyさん2006/11/29(水) 22:19:40ID:???
>>507
そんなんでいいの!?いくらなんでもしょぼすぎる気が...
05104942006/11/29(水) 22:21:14ID:???
>>501
まさにこれです!ソースまでいただき、ありがとうございました。
0511nobodyさん2006/11/29(水) 22:29:13ID:???
>>507
でも>>497の文章だとそれも正解ではある。
■ このスレッドは過去ログ倉庫に格納されています