5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

2 :nobodyさん:2007/12/19(水) 03:33:53 ID:???
【簡易FAQ】 (1/3)
1.文字コードは何を使えばいいの?
 →1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
 → http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
 → Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
 → 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
  「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
 → {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
 → cronかタスクスケジューラを使え。
7.extractって危険なの?
 →変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
 → URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
 → .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
 → 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
  Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり

3 :nobodyさん:2007/12/19(水) 03:33:54 ID:???
【簡易FAQ】 (2/3)
11. SQLの質問はどこで?
 → データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
 → ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
 → 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
 → よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
  http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
15. クッキーの情報をユーザから隠したい
 → セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
 → strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
 → まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
 → C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
  参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
 → fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
  必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
 →19.を参照

4 :nobodyさん:2007/12/19(水) 03:33:54 ID:???
【簡易FAQ】 (3/3)
21. 画像処理一般 or GDの限界
 → ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
 → 好きにしてください

5 :nobodyさん:2007/12/19(水) 03:33:55 ID:???
関連リンク
■本家マニュアル   http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル  http://pear.php.net/manual/ja/
■メーリングリスト   http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル    http://framework.zend.com/manual/ja/

(以下英語)
■Smarty       http://smarty.php.net/
■Zend本家      http://www.zend.com/
■Zend Framework  http://framework.zend.com/
■php | architect   http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/

6 :nobodyさん:2007/12/19(水) 03:33:56 ID:???
■過去ログ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/
【PHP】下らねぇ質問はここに書き込みやがれ 59
http://pc11.2ch.net/test/read.cgi/php/1195204145/
【PHP】下らねぇ質問はここに書き込みやがれ 58
http://pc11.2ch.net/test/read.cgi/php/1194084457/
【PHP】下らねぇ質問はここに書き込みやがれ 57
http://pc11.2ch.net/test/read.cgi/php/1193062236/
【PHP】下らねぇ質問はここに書き込みやがれ 56
http://pc11.2ch.net/test/read.cgi/php/1192092941/
【PHP】下らねぇ質問はここに書き込みやがれ 55
http://pc11.2ch.net/test/read.cgi/php/1191058556/
【PHP】下らねぇ質問はここに書き込みやがれ 54
http://pc11.2ch.net/test/read.cgi/php/1189309377/
【PHP】下らねぇ質問はここに書き込みやがれ 53
http://pc11.2ch.net/test/read.cgi/php/1188047468/
【PHP】下らねぇ質問はここに書き込みやがれ 52
http://pc11.2ch.net/test/read.cgi/php/1186794483/
【PHP】下らねぇ質問はここに書き込みやがれ 51
http://pc11.2ch.net/test/read.cgi/php/1185521566/
【PHP】下らねぇ質問はここに書き込みやがれ 50
http://pc11.2ch.net/test/read.cgi/php/1184143801/

7 :nobodyさん:2007/12/19(水) 04:40:48 ID:???
httpsのソースを取得したいです。
php5でwindowsです。
いろいろ探しましたが、
http_clientとか
--with-openssl でコンパイルするとか
php4ts.dllを差し替えるとか
どれもphp5でwindowsだと無理?と思われました。
本当に無理なのでしょうか?

8 :nobodyさん:2007/12/19(水) 08:48:39 ID:???
phpではhttpsは無理
rubyなら簡単に取得できる

9 :nobodyさん:2007/12/19(水) 08:51:35 ID:???
>>8
いや別に無理じゃないが…
面倒くさいけど。

10 :nobodyさん:2007/12/19(水) 10:21:11 ID:???
最短一致が2つあると思うように機能しません。

preg_match("/<p.*?NGWORD.*?<\/p>/", "<p id=A><p id=B><a >NGWORD</a></p></p>", $r);

結果:<p id=A><p id=B><a >NGWORD</a></p>

id=Aは余分です。こういうものなのでしょうか?
さくらで試したのでphp4だと思います。


11 :nobodyさん:2007/12/19(水) 11:28:20 ID:???
>>10
その正規表現だと当然のような
あとは正規表現スレで頑張ってね

12 :nobodyさん:2007/12/19(水) 12:20:31 ID:F1MTppUB
POSTしたデータを取得したいんですが、TEXTBOXに「'\'」(シングルコーテーション+\サイン+シングルコーテーション)
を入力してSUBMITすると、受け取ったPHPでは"\\'\\\\\\'"と入っています。
エンコードされないデータを取得するにはphp://inputを使うしかないんでしょうか?

13 :nobodyさん:2007/12/19(水) 12:23:25 ID:???
magic_quote_gpcをoffにすれ

14 :nobodyさん:2007/12/19(水) 12:28:34 ID:???
magic_quotes_gpcがonなんじゃないの?
http://jp.php.net/manual/ja/function.get-magic-quotes-gpc.php
ここみながら確認しる
onならoffへ変更してあげてね

15 :nobodyさん:2007/12/19(水) 12:31:22 ID:???
1000 名前:nobodyさん[sage] 投稿日:2007/12/19(水) 09:15:15 ID:???
1000だったら、php全滅

@一昔前はPerlの達人と恐れられたが、Rubyのクラスが分けわからず時代に乗り遅れた化石Perler
AJAVAの思想は素晴らしいのに周りに理解者が少なく、コストの問題でクライアントがPHPを指定してきて嫌々やらされているJAVAer
B周りはネット全盛なのに、未だにSoketプログラムが理解できずネットの海に出られない鎖国状態のVisualStudioer
CwebデザイナーはPHPぐらいできないとゴミと言われて、いつの間にかPGにさせられてしまった自称webデザイナー
Dプログラマーという職業に憧れているけど、PG的思考ができずに指をくわえて見ていることしかできないゲーマー

さあレッツ プロファイリング!

16 :nobodyさん:2007/12/19(水) 12:36:47 ID:???
設定変えると影響範囲がでかいから、自分は stripslashes 使ってる。 

17 :nobodyさん:2007/12/19(水) 12:40:16 ID:???
>>13-14
正にその通りでした。ありがとうございます!

18 :nobodyさん:2007/12/19(水) 12:40:30 ID:???
>>12
ところで、php://input って何?

19 :nobodyさん:2007/12/19(水) 12:40:41 ID:F1MTppUB
すいません。>>17=12です。

20 :12:2007/12/19(水) 12:44:48 ID:???
>>18
以下、ttp://phpspot.net/php/man/php/wrappers.php.htmlからの抜粋ですが、

php://input は、POST の生データの読み込みを 許可します。
これは $HTTP_RAW_POST_DATA に比べて メモリ消費量が少なく、特別な php.ini ディレクティブを設定する 必要がありません。
php://input は、 enctype="multipart/form-data" に対しては 使用できません。

21 :nobodyさん:2007/12/19(水) 12:57:14 ID:???
>>20
ありがとう。勉強になった。

22 :教えて下さい:2007/12/19(水) 17:15:38 ID:n596SeRo
ttp://www.phpweb.jp/dlrank/dlrank.php?id=lineboard
ここで配布されているファイルをUTF-8にソースコードを変えたんですが、

148行目ぐらいの
// 投稿処理
function send() {
$data = file("./lineboard/log.txt");
$newtime = time();

この投稿処理の項目がshift-jisでエラーコードが返されるのでUTF-8でエラー表示をかえしたいんですが
どこをいじってあげればいいのかアドバイスくれないでしょうか。
sjisコードをutf-8で置き換えたんですが、エラーの時の投稿処理される
メッセージが長すぎますなどがsift-jisで返されるので文字化けしていまいます。

23 :nobodyさん:2007/12/19(水) 17:43:52 ID:???
print "<html>\n";
print "<head>\n";
print "<meta name=\"robots\" content=\"index,follow\">\n";
print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n";
print "<meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />\n";
print "<meta http-equiv=\"content-script-type\" content=\"text/javascript\" />\n";
print "</head>\n";

これでいけました
解決

24 :nobodyさん:2007/12/19(水) 18:53:57 ID:E60FAw4D
すみません。PHP4の本を読んでサンプル改変してるのですが、PHP4の本はレジスターグローバルをonにしてあるため
ちょっと迷っています。ちなみに可変変数を使っているので私にはむずかしく、、助言をお願いしたいしだいです。

原文は
$data = "FIELD_$j";
$data = $$data;
という2文です。ちなみにforループの中で$jをカウント変数で使っています。
FIELD_$jというのは、WEBページのテキストボックスに上からFIELD_0,FIELD_1...と
つけた名前です(<input type="text" name="FILED_0">という感じで)。

レジスターグローバルをオフにしているため、
$_POST['FIELD_$j']としなくてはならないのですが、そうするためには
$data = "_POST['FIELD_$j']";
$data = $$data;
で文法的に正解でしょうか?よろしくお願いします。


25 :nobodyさん:2007/12/19(水) 20:30:00 ID:???
なんて本だ?そんな糞コードのっけてる本捨てちまえ。

26 :nobodyさん:2007/12/19(水) 21:30:31 ID:???
>>24
捨てろ

27 :nobodyさん:2007/12/19(水) 21:36:30 ID:???
簡単なプログラムでもDBを導入したほうが効率が良いのでしょうか?

アクセスカウンタを例にしますと、
テキストのログファイルを読み込ませるほうがよいのでしょうか?
この程度でもDBと連携させたほうが効率が良いのでしょうか?
簡単なものはテキスト、中規模以上はDBって感じでしょうか?
小さくてもアクセス頻度が高い場合はDBのほうが安全なのでしょうか?

速度、鯖の負荷、その他ありましたら教えてください
よろしくおねがいします

28 :nobodyさん:2007/12/19(水) 21:37:44 ID:???
>>27
DB板で聞け

29 :nobodyさん:2007/12/19(水) 21:42:39 ID:???
>>24

$data = "_POST['FIELD_$j']";
$data = $$data;



$data = $_POST["FIELD_$j"];
この一行でOKでは

なんて本、それ

30 :nobodyさん:2007/12/19(水) 22:08:24 ID:???
>>27
好みの問題。好きにしろとしか言えない。
後々の拡張性とか考えるとDBのほうが楽ではあるが。

31 :nobodyさん:2007/12/19(水) 22:14:57 ID:???
>>27
>>30
http://pc11.2ch.net/db/


32 :nobodyさん:2007/12/19(水) 22:29:41 ID:???
>>30
知ったかはヤメロ。
アクセスログをDBなんかでやったら、
通常のレン鯖で1時間3000PVでコネクションオーバーでエラーが出る。

33 :nobodyさん:2007/12/19(水) 23:51:11 ID:???
>>32
カウンターの話をしてるのにおまいは何を言ってるんだ

34 :nobodyさん:2007/12/19(水) 23:52:23 ID:???
自分でCで作ったサーバにPHPからデータを渡したいんですが,良い方法ありますか?
今はとりあえずストリームソケット用いてやっています・・・

35 :nobodyさん:2007/12/19(水) 23:56:55 ID:???
>>32
>通常のレン鯖で1時間3000PVでコネクションオーバーでエラーが出る。
出ないし。
ていうか、DBより1時間に3000PVとか転送量のほうが問題だ。

36 :nobodyさん:2007/12/20(木) 00:01:22 ID:???
レベルひっくwww

37 :nobodyさん:2007/12/20(木) 00:09:19 ID:???
エサを与えないでください

38 :nobodyさん:2007/12/20(木) 00:28:55 ID:???
んでどれが正しいの?

39 :nobodyさん:2007/12/20(木) 01:39:32 ID:???
規模を考えるより使いやすいほうでやればいいんでないの?
簡単なものでテキストで処理したほうが楽だと思うならそうすればいいし
普段からDB使ってるしDBのほうが楽だと思うならそうすればいい

40 :nobodyさん:2007/12/20(木) 02:17:17 ID:???
1時間に3000PVって全然少なくないか?

41 :nobodyさん:2007/12/20(木) 02:32:58 ID:???
>>40
確かに少なすぎだね。俺のサイトで3000PVって言ったら1分で、それくらい行くから。

42 :nobodyさん:2007/12/20(木) 02:36:41 ID:???
個人サイトでは多い方だとは思うけど、そういうサイトは山ほどあるよな。
レンタルサーバだからといって、多少負荷がかかるにしろ、
その程度のリクエストでDBがパンクしてたらDBなんて許可しないし、
そんな簡単にダウンするほど信頼性の低いもんじゃない。
Googleなんて分散してるとはいえ、1台あたり1秒にどんだけこなしてると思ってるんだ?

43 :nobodyさん:2007/12/20(木) 04:35:22 ID:???
ぐぐるさんのDBは独自拡張だから比較対照にはならんな

44 :nobodyさん:2007/12/20(木) 04:45:08 ID:???
年賀状3枚入り買ったんだけど出す相手が一人しかいないので、2枚余りました。
年賀状欲しい人は、住所と名前を書いてもらえば出します。

45 :nobodyさん:2007/12/20(木) 06:10:17 ID:8BakDrsf
前スレのセッション談義見て不安になったんですが、
http://pc11.2ch.net/test/read.cgi/php/1196511516/814
今作ってる会員システムでは
1)ログインID,ログインPassを使って登録済み情報からユーザ名とidを抜き出す
2)それぞれセッションに入れて 
 ユーザ名は「○○さんの管理ページ」の表記に使う
 idはいろんな情報を登録・更新するときのキーに使う
という風にしています。これはまずいんでしょうか?

また、会員エリア内でフォーム記入→確認ページ という流れで、
修正時に記入ページに戻るときにもフォームに値を入れるためにセッション使ってます
これもまずいとすればこの部分はどうしたらいいんでしょうか?

46 :nobodyさん:2007/12/20(木) 06:17:36 ID:???
>>45
Webアプリのセキュリティについて調べろ

47 :nobodyさん:2007/12/20(木) 08:21:04 ID:???
分かんないひとはレスしないでください(>_<)

48 :nobodyさん:2007/12/20(木) 09:07:38 ID:???
まずい、ってのはどういう意味?

http://pc11.2ch.net/test/read.cgi/php/1196511516/814

これには「セッションなんてログインしたときだけ値を持たせる 」
とは書いてあるけど、

49 :nobodyさん:2007/12/20(木) 09:10:35 ID:???
セッション使わないでHIDDENで持ち回すほうがよっぽど…

50 :45:2007/12/20(木) 09:26:29 ID:8BakDrsf
>>46
どうもです あれこれサイト見て勉強します
>>48
どうもです まずい というのは上記の程度のセッションの利用でも、それをきっかけに
のっとりとかされてしまうのかなぁと、、
「修正シーン」に記入値をセッション引用して入れるのも、「ログインしたときだけ値を持たせる」の
ルールからすればダメなのかな、など気になります(別のやり方が思いつかない)

>>49さんの言うとおりhiddenでまわす方法があるのも調べてわかりましたが、
そしたら全部のリンクがpostになる?わけで、デザイン的にいやだしと、、

気が向いたときに回答いただけたら十分なのでよろしくお願いします
自分でも引き続き調べてみますので

51 :nobodyさん:2007/12/20(木) 12:01:24 ID:???
だれがログインしてるかって言う情報はサーバが管理すべきものだから、
セッションで管理すべきもの。

今画面に何を表示しているかについては、議論なり判断があって良いと思うけど、
これについては、個人的には hidden 推奨。


52 :nobodyさん:2007/12/20(木) 12:04:00 ID:???
同意。formタグ内で統一できて分かりやすいし、楽。

53 :nobodyさん:2007/12/20(木) 12:11:34 ID:???
こういう時はsessionだろ

54 :nobodyさん:2007/12/20(木) 12:53:32 ID:???
さあまた盛り上がってまいりました

55 :45:2007/12/20(木) 14:09:16 ID:8BakDrsf
>>51-52
え? つまりフォームの記入(修正)ページに入れる値は、hiddenですか?
てことは確認ページで
<input type="hidden" name="namae" />などしてキープして、
戻るボタンにjavascriptかなんかで修正ページに向けてsubmitするの?
ちょっと本屋で見てこよう、、

56 :nobodyさん:2007/12/20(木) 14:12:30 ID:???
ポカーン・・・

57 :51:2007/12/20(木) 14:43:41 ID:???
>>55
JavaScript使用可の前提で書くけど、どっちにするかといえば、Hiddenにする。

自分が作るなら、確認用ページはJavascriptで生成するようにする。
確認ページ表示に、サーバに問い合わせる情報が必要であればAjax的な方法で取得する。

携帯みたいな通信コストが無視できない場合は、セッションでの管理も考えるけど。


58 :nobodyさん:2007/12/20(木) 14:49:48 ID:???
会員の情報をサーバーに問い合わせるのにAjaxて怖くない?
サーバーサイドで完結してたほうがいいような気がするが。

59 :nobodyさん:2007/12/20(木) 14:54:08 ID:???
>>58
何で?
Ajaxでもセッション管理は出来るし、不要な情報はブラウザに返さなければ良いし。

60 :45:2007/12/20(木) 21:21:17 ID:???
>>57
なるほど 携帯とPCで使い分けするんですね、考えたこともありませんでした
あの、最後にひとつだけ聞きたいんですが
<input type=text name=namae>ってのが記入ページにあったとき、
確認ページは
<form action=kanryou.php>
<input type="hidden" name="namae" value="<? echo $_POST['namae']; ?>">
<input type="submit" value="完了ページへ">
</form>
ていう完了ページに飛ぶ用のフォームと
<form action="kinyu.php">
<input type="hidden" name="namae" value="<? echo $_POST['namae']; ?>">
<input type="submit" value="戻って修正">
</form>
という修正ページに飛ぶ用のフォーム2つを用意するんでしょうか?
フォームは一個で、クリックされたサブミットボタンに応じてactionの値を切り替えるの?
いい加減しつこいとは思うので、本当に暇な人、答えてくれれば結構です。sageます

61 :nobodyさん:2007/12/20(木) 21:39:52 ID:???
いくらなんでもスレ違い過ぎ…

62 :nobodyさん:2007/12/21(金) 00:43:35 ID:???
>>60
<input type="submit" name="action" value="確認">
<input type="submit" name="action" value="修正">
っていう風にすれば、$_POST["action"]を取得することでどの画面をだせば
いいかは分かるんで、確認画面にフォーム二つもいらない。
書き込みも確認も書き込み完了も、どの画面も全部同じひとつのPHPで扱うけどね。
わざわざ三つとかに分けたりしない。

フォーム入力値の受け渡しはセッションでやった方が楽だけど、既出の
通りブラウザ複製などの場合値が書き換わっちゃうのでやらない。
携帯ならこの問題がないけど、セッション使えないのもあるのでやっぱ
hidden使うかなあ。
セッション使うって言ってる人はこの問題にどう対応してるのか不思議。

63 :nobodyさん:2007/12/21(金) 00:59:28 ID:9upg4HjC
セッションというのは諸刃の刃だよ。
セッションを使うことによってセキュリティーは向上するけど、
多用しすぎることで、パフォーマンスが劣化し、結果的にセキュリティーが劣化するというジレンマ。

例えて言えば、医学が進歩して寿命が延びることで、不労人口が増えて、
結果的に人類が滅びるというジレンマだよ。

つまり、目先の良さにばかりいくと、長期的には全く逆の結果になるということ。

64 :nobodyさん:2007/12/21(金) 01:03:49 ID:???
セッション多用でセキュリティが低下ってのはわからんなー
セッション多用してメモリがいっぱいいっぱいになる可能性があるってーなら解るが

65 :nobodyさん:2007/12/21(金) 01:04:23 ID:???
>>63
意味不明
医学が発展することが人類が滅びることとどう結びつくんだよw

66 :nobodyさん:2007/12/21(金) 01:12:13 ID:9upg4HjC
>>65
想像力働かせろよ。
プログラマー脳の典型だよ、まぁ設計には一生なれないな、お前は。

200歳まで生きられる医術・薬品が開発される

生殖機能を持たない、エネルギーだけを消費する不労生体が増える

1人の若者が100人の老体を面倒見る。仕事している暇がない。

国家財政破綻、国力ゼロ、防衛能力ゼロ

発展途上国の台頭、テロリストの台頭

国際経済破綻、無政府状態

67 :nobodyさん:2007/12/21(金) 01:15:58 ID:???
>パフォーマンスが劣化し、結果的にセキュリティーが劣化する
何故に?

68 :nobodyさん:2007/12/21(金) 01:17:05 ID:???
>>66
君は朝鮮人並の誇大妄想脳だねww

69 :nobodyさん:2007/12/21(金) 01:17:13 ID:???
>>66 は無視して良い話だろうけど、メモリを消費しすぎて落ちやすくなれば ISMSで言うところの
可用性が低下するので、広義のセキュリティが低下したと言えなくも無い。


70 :nobodyさん:2007/12/21(金) 01:19:51 ID:???
>>66
65では無いがお前の方が想像力なく見えるぞ


71 :nobodyさん:2007/12/21(金) 01:26:24 ID:9upg4HjC
お前らw
人を批判する前に、原因と結果の繋がりを細かく検証しろよ。

セッション多用

メモリー消費、オーバーフロー

HDDへのスワップが多発

システムが不安定

HDDの中身が画面に表示される

セキュリティー劣化

72 :nobodyさん:2007/12/21(金) 01:28:42 ID:1HbS1x3e
PHPって配列を関数に渡すと、内容がコピーされるけど、このコストって意識すべき?
参照渡しすると、値が書き換えられて帰ってくることを期待してるようなソースに見えるのが嫌。

例えば、実は値を変更するまではマジックコピー的に処理してるとかだと気がラクになるんだけど。

73 :nobodyさん:2007/12/21(金) 01:30:19 ID:???
それはどちらかというとメモリの使用量とかをしてないのが問題なんだろ
多用してるのが解ってるならだいたいピーク時にどれぐらい消費してるとか
そういうのをチェックしてない時点でダメなんだろ

74 :nobodyさん:2007/12/21(金) 01:31:37 ID:???
>>72
基本的に参照渡しもそのまま渡すのも
関数内で変更しない限り内部的に一緒

75 :nobodyさん:2007/12/21(金) 01:35:41 ID:1HbS1x3e
>>74
ありがとう。気がラクになった。
面倒でなければ、情報ソースかヒントだけでも教えてくれるとありがたい。

76 :nobodyさん:2007/12/21(金) 01:51:45 ID:???
>>75
記事自体は凄く古いが
http://www.sound-uz.jp/php/test/first2.html
ここだったと思う

まぁphpのサイトにもパフォーマンスのためだけに使うなって書いてるし
http://www.php.net/manual/ja/language.references.return.php

それでも気になるならmemory_get_usageとか使って
メモリの消費量をチェックしてみるといいかもね

77 :45:2007/12/21(金) 02:41:08 ID:???
>>62
本当にありがとうございます、感動しました
頑張ります

78 :nobodyさん:2007/12/21(金) 04:34:35 ID:???
>>62
>既出の通りブラウザ複製などの場合値が書き換わっちゃうのでやらない。
これなんか問題あんの?



79 :nobodyさん:2007/12/21(金) 05:02:52 ID:k3WWlkOg
質問です。
指定した数の乱数順列を生成する関数とかってありますか?
例えば10を指定した場合、
4,3,2,9,8,7,10,1,6,5
3,6,4,2,1,9,7,10,8,5
のような並びで配列とかに格納してくれるような感じで。
もし知っている方いましたら教えてください。
お願いします。

80 :nobodyさん:2007/12/21(金) 06:01:09 ID:???
>>79
shuffle()

81 :nobodyさん:2007/12/21(金) 06:18:03 ID:???
>>80
ありがとうございました。

82 :nobodyさん:2007/12/21(金) 10:14:56 ID:O7QmdYOi
質問です。
ローカルテストのためWindowsXPにApache/2.0.61(Win32) PHP/5.25をインストーラーでインストールしたのですが、
パスを指定してアクセスすると.phpのファイルだけHTTP500内部サーバーエラーが出て表示してくれません。
.htmlは表示されますし、.pqpとか適当な拡張子をつけたファイルも表示はしてくれました。

Apache MonitorではPHPのバージョン表記もされていて、
インストールは完了しているようなのですが、何か原因が分かればお願いします。

83 :nobodyさん:2007/12/21(金) 11:07:39 ID:???
>>76
なるほど。PHPよく出来てるな。
どうもありがとう。

84 :nobodyさん:2007/12/21(金) 11:18:19 ID:???
phpの開発に携わるには、どうしたらいいのかな?
こんな中で開発に携わっている人いる?

いや、一つのメソッドでもいいので実装したら、
それだけで経歴書に「phpの開発メンバー」とかって書けるかなぁ、って。
出来たら、自分が作ったメソッドに自分の名前の一部で使えたら最高なんだけど。

85 :nobodyさん:2007/12/21(金) 11:19:19 ID:???
>>82
自分は詳しくないけど、まずはApacheのエラーログ見たら?

86 :nobodyさん:2007/12/21(金) 11:54:40 ID:???
phpで500エラーってcgiとして動かそうとしてるのか?

87 :nobodyさん:2007/12/21(金) 11:55:36 ID:???
って、5.2.4以降はエラーをブラウザに返さないで500出すようになったのか

88 :nobodyさん:2007/12/21(金) 11:59:36 ID:???
マッピングされてないだけだったりして

89 :nobodyさん:2007/12/21(金) 12:04:23 ID:???
>>84
単にPHP自体の開発が出来るということを示したいだけなら、
野良モジュールをpeclにでも登録すれば?

あるいはメインストリームなモジュールのバグ一覧を見て、
未解決のバグのパッチを辛抱強く投げつづけるか。

そうでなければ、本家MLに参加して議論とパッチの応酬を繰り返すとか。


しかし経験からいわせてもらうと、PHPの開発がホイホイ出来る奴は
PHP言語を使う仕事にはなかなかつかせてもらえない罠


90 :nobodyさん:2007/12/21(金) 12:10:20 ID:???
ちと質問なんですが、
『排他ロック中には他のプロセスが割り込めないので
ロックは1つかければ十分』…と聞いたんですが
例えば…


$lock_fp = fopen("lock.txt","w");
flock($lock_fp,LOCK_EX);

$fl = fopen("data.dat","w");
if($fl){
 fwrite($fl,$write_data);
 fclose($fl);
}

fclose($lock_fp);


こうしておけば、data.datの方もlock.textがロック解除されるまでは
書き込んだりできないんでしょうか?

91 :nobodyさん:2007/12/21(金) 12:29:26 ID:???
>>89
なるほど、参考になるわ。ありがとう。もしかして、開発メンバー?
>しかし経験からいわせてもらうと、PHPの開発がホイホイ出来る奴は
>PHP言語を使う仕事にはなかなかつかせてもらえない罠
これは、どうして?
PHPを開発した人は守秘義務とかに縛られて、
PHPを使った開発はできないとか?

>>90
これ、ちょうど俺が実装したかったロジックだ。なんというタイミング。
俺が実装したいメソッドは、一つのメソッドで面倒なロックをやってくれるもの。

boolean write_data_with_safety_lock($file_name, $data)
ファイル名と書き込みデータを引数で渡せば、
ロック機構を実装したこのメソッドが安全に書き込めるというメソッド。

このメソッド作ったら、絶対php6.0とかに採用されると思っているんけど。ニーズも絶対あるし。

92 :nobodyさん:2007/12/21(金) 12:47:28 ID:???
phpはオープンソースです

93 :nobodyさん:2007/12/21(金) 13:02:05 ID:S3fUHMf0
pearだったかのコーディング規約で、PHPだけのファイルの場合、
<?php だけで、最後の ?> は付けないってのがあったと思うんだけど
これって個人的にはすごく気持ち悪いんですが、こんなもんなんでしょうか?

94 :93:2007/12/21(金) 13:03:54 ID:???
>>93
ああ、ZendFrameworkのコーディング規約でした。

95 :nobodyさん:2007/12/21(金) 13:10:57 ID:???
最後に?>を付ける事によって?>以降に書かれた文字列が表示される
表示される事による見つけにくーいバグを回避する事ができる

と俺は勝手に解釈
まぁ画像をphpで出力されてたりとか
携帯向けにHTML出力する時にこういうので苦労した事あったから
俺はつけないけど

96 :nobodyさん:2007/12/21(金) 13:13:40 ID:???
>>91
>>PHP言語を使う仕事にはなかなかつかせてもらえない罠
>これは、どうして?

単なる元野良モジュール作者だけど、
単純にCでマルチプラットフォームな開発が出来る奴ぁそれを仕事にした方がぶっちゃけ収入が良いのです。


97 :93:2007/12/21(金) 13:52:16 ID:???
>>95
ああ、なるほど。
改行コードとか目に見えにくい文字列もありますね。
ありがとでした、納得しました。

98 :nobodyさん:2007/12/21(金) 14:35:20 ID:J4pqu08c
童貞先輩が新人女子OLにアタックしてるwww何とかしてくれwww

99 :nobodyさん:2007/12/21(金) 15:20:15 ID:???
くだらねえwww

100 :nobodyさん:2007/12/21(金) 15:46:33 ID:???
おい上原ぁ!!お前が何とかしろ!

101 :nobodyさん:2007/12/21(金) 15:53:53 ID:???
""を含むhtmlタグ入り文章をechoやprintで表示、
変数に格納するにはどうしたらいいんでしょうか。
初心者質問スマソ。

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

103 :nobodyさん:2007/12/21(金) 16:03:59 ID:???
>>101
http://www.php.net/manual/ja/language.types.string.php

104 :101:2007/12/21(金) 16:04:34 ID:???
自己解決しました

<a href="index.html">2ちゃんねる</a>だったら

echo "<a href=\"index.html\">2ちゃんねる</a>";とするか
echo '<a href="index.html">2ちゃんねる</a>';とすることで解決しました。

君たちみたいなバカに聞いたのが間違いでした、ニートどもは黙って職安いきなさいクズ

105 :nobodyさん:2007/12/21(金) 16:11:34 ID:Bll92Vnt
Ethnaでのトランザクション処理について、
DB更新を処理ごとに複数の関数で作成する場合は
エラー時にロールバックするためにそれぞれの関数の頭に
 $db = $this->backend->getDB();
 $db->db->autocommit(false);
 $db->begin();
これを書く必要がありますか?
それとも
 $db = $this->backend->getDB();
だけでOKですか?

106 :nobodyさん:2007/12/21(金) 16:13:00 ID:???
最近>>1読まないやつ多いな

>・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ

107 :nobodyさん:2007/12/21(金) 16:23:19 ID:???
$db = $this->backend->getDB();
$db->begin();
のみでOK

108 :101:2007/12/21(金) 16:40:25 ID:???
>>103-104
ありがとう。専ブラなんでsageチェック外すの忘れてました。
>>104さん、他人を騙ってる割にはいい人ですね感謝。

109 :90:2007/12/21(金) 16:57:32 ID:mXpbsFrG
あれま、レスが無いと思いきや、同じくsageてました。失敬。

あらかじめロックファイルの方で排他ロックを制御できれば
処理が簡単でいいなぁ、と思ったんですが、>>90のやり方で
data.datに対しての同時書き込みは防げますでしょうか?

110 :nobodyさん:2007/12/21(金) 17:00:05 ID:mCAqxYSI
音楽(asxファイル)の再生数をカウントするスクリプトを作りたいのですが
PHPをどこにはさんでよいのかがわかりません。

一覧ページで再生する曲をチェックし、フォームで取得しています。

form actionで指定したページに

<OBJECT ID='Player' width='300' height='48'
CLASSID='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6'>
<PARAM name='autoStart' value='true'>
<PARAM name='URL' value='file_name.asx'>
<embed src='file_name.asx' autostart='true' width=300 height=48></embed>
</OBJECT>
を記述しています。

PHP5.2.4 APACHE2

よろしくお願いいたします。

111 :nobodyさん:2007/12/21(金) 17:00:17 ID:bUxsI4En
ログイン画面から入る会員領域のトップページを作ってるんですが、
入力されたID・パスが違うときはエラー画面に飛ばす処理が上手くいきません

session_start();
/* ログイン情報問い合わせ-----------------------------------------*/
require_once 'config.inc.php';//DB接続関連の設定ファイルの読み込み
require_once 'adodb/adodb.inc.php';//ADOdbモジュール読み込み
$DB = NewADOConnection(_DB_TYPE);//接続の設定
$DB -> pconnect(_DB_HOST, _DB_USER, _DB_PASS, _DB_NAME);
if(!$DB){//接続エラー時
  header("Location: /system/index.html?ec=1");?//エラーページへ
  exit;
}
php部分は上記の記述だけですが、表示すらされません。リダイレクトもされません
//if文の中のheader;とexit;をコメントアウトすれば、省略されてる
<html>タグ以下のページデザイン部分が表示されます
headerはすべての出力よりも先に書くというルールは知ってるんですが
何も出力してないはずでわけがわかりません
低レベルですみません、教えてください

112 :nobodyさん:2007/12/21(金) 17:01:30 ID:bUxsI4En
すみません、間違えました
×入力されたID・パスが違うとき
○接続エラーのとき

113 :nobodyさん:2007/12/21(金) 17:01:36 ID:???
>>106
テンプレのスレなんてねーぞコラ

114 :nobodyさん:2007/12/21(金) 17:02:43 ID:???
自分で立てろカス

115 :nobodyさん:2007/12/21(金) 17:15:35 ID:???
>>113
あるだろボケ
http://pc11.2ch.net/test/read.cgi/php/1186096518/

116 :105:2007/12/21(金) 17:35:04 ID:Bll92Vnt
>>107
ありがとうございます。助かりました。

>>106
すいませんでした。Ethna固有の機能ではなかったので「Ethnaの環境でやってます」という意識でした。

117 :nobodyさん:2007/12/21(金) 18:01:23 ID:???
>>110
音楽ファイルを読み込む前か後ろにカウント処理

118 :nobodyさん:2007/12/21(金) 18:02:09 ID:???
>>111
headerの使い方をもう一度確認

119 :110:2007/12/21(金) 18:42:10 ID:mCAqxYSI
>>117
やってみたのですが、やっぱりページカウンターになってしまいました。
if(isset($_POST['maker'])) {
$db = new mysqli("*","*","*","*");
$stt = $db->prepare("select * from music_lank where url=?");
$stt->bind_param("s",$_POST['maker']);
$stt->execute();
if($stt->fetch()!==TRUE) {
$sql="insert into music_lank(url,count) values(?,1)";
}
else {
$sql="update music_lank set count=count+1 where url=?";
}
$stt->close();
$stt2 = $db->prepare($sql);
$stt2->bind_param("s",$_POST['maker']);
$stt2->execute();
$db->close();
print("
<OBJECT ID='Player' width='300' height='48'
CLASSID='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6'>
<PARAM name='autoStart' value='true'>
<PARAM name='URL' value='ASX/{$_POST['maker']}.asx'>
<embed src='ASX/{$_POST['maker']}.asx' autostart='true' width=300 height=48></embed>
</OBJECT>
<br>
");
}
冒頭の「isset」が原因なのはわかるんですが
埋め込みのメディアプレーヤーの再生ボタンを
押した瞬間にPHPを発動できれば解決なんですが・・・。

120 :nobodyさん:2007/12/21(金) 19:39:49 ID:???
そりゃそんなところに仕込めばページカウンターになるw

121 :110:2007/12/21(金) 19:49:36 ID:mCAqxYSI
どこに仕込めばよいのかがわからないです・・。

122 :nobodyさん:2007/12/21(金) 19:55:42 ID:???
>>119
>埋め込みのメディアプレーヤーの再生ボタンを
>押した瞬間にPHPを発動できれば解決なんですが・・・。

むり。どうしてもやりたいならAjaxとかFlashつかえ

123 :nobodyさん:2007/12/21(金) 19:57:20 ID:???
1.再生ボタンを素材で用意して、そこを押すと再生ページに移動
2.FlashでActionScriptで組み込む

124 :110:2007/12/21(金) 20:00:51 ID:mCAqxYSI
>>122
無理でしたか。それが分かっただけで一歩進めました。

ありがとうございました。

>>123
ありがとうございます。

125 :nobodyさん:2007/12/22(土) 00:11:25 ID:???
windows, xammp な環境で
ttp://localhost/rawurlencode(UTF8なファイル名).html
のようにアクセスすると、ローカル上の
UTF8なファイル名.html
ではなく
SJISなファイル名.html
にアクセスしにいくんですが、これってどういう理屈かご存知の方いませんか?
firefox, ie7 共になります。
これって windows じゃなくて linux サーバ上だと
EUCなファイル名.html
を見にいったりすることになるんですかね?厄介。

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

127 :nobodyさん:2007/12/22(土) 00:15:38 ID:YFLFW+ip
echo <<<EOF
〜〜
EOF
ってのがよくあるけど、この〜〜の部分で関数を実行できないの?
echo <<<EOF
<td>$hoge->gethoge(1);</td>
EOF
って感じ。関数でなく、変数を書いてその値を表示ならできたんだけど。。

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

129 :nobodyさん:2007/12/22(土) 00:45:03 ID:VmEGw74T
教えて下さい。
よく、以下の表示を見るのですが、これはどのように制御しているのでしょうか?
セッション数を取得して閾値を越えたら、この表示を出すといった処理なのでしょうか?
私も作りたいとは考えているのですが、何を基準にしていいいのか分かりません。宜しくお願いします。

現在アクセスが集中しています。
現在アクセスが集中しており表示しにくい状態となっております。
申し訳ございませんが、しばらく時間を置いてからアクセスするようお願いいたします。

130 :nobodyさん:2007/12/22(土) 00:49:58 ID:???
>>129
httpのステータスコード見て判別すれ

131 :nobodyさん:2007/12/22(土) 01:39:24 ID:???
>>127
できるよ。ある関数を使うけどね

132 :nobodyさん:2007/12/22(土) 01:40:47 ID:???
>>129
考えられる方法
1.apacheの設定


セッション使うのはもったいないからapacheの設定だな

133 :133:2007/12/22(土) 03:51:34 ID:PQDDH9MU
レン鯖やヤフーメイルで仮登録
→メールが送られてきて、リンクをクリックすると本登録
→サーバスペースやメールboxが作られる

この一連の動作を自分のサイトで実現しようと思ったら何を勉強すればいいだろうか。
phpとDB系を組み合わせればできる?

134 :nobodyさん:2007/12/22(土) 04:03:34 ID:???
>>129
DB関連でエラー出たらそれ出してるんだと思ってた。。
セッションやApacheへの接続数より、DBがボトルネックになることが
多い気がするし、「現在アクセスが集中しています。」の表示が出るまで
ちょっと時間かかるサイトが多いし。

ただしDB接続エラーでこれ出すだけでもDBに負荷かかるんで、132の言う
通りApacheでやるのが一番いいかなあ。
Apacheの設定、PHPでセッション数、DBの接続エラー全部でそういう処理
入れといて、DBの接続エラー出る前にApacheの接続数の上限に達する
ようにうまく調整するのが一番よさそう。

135 :nobodyさん:2007/12/22(土) 04:21:23 ID:???
>>133
メールサーバとサーバOSもかな。Webサーバもね。

・仮登録メールを受信してPHPを実行する仕組みが必要。これはメールサーバ。
 本登録用のメールはPHPがメーラーの役割を果たして、メールサーバ利用して
 返信する。
・サーバスペースは物理的にHDDにフォルダ作ることになるから、PHPからシェル
 コマンド叩くとかの処理がいる。手動であらかじめ作っといて、空きがないなら
 登録拒否とかでもいいかもだけど。。
・メールボックス作成はやったことないんでよくわからん。
 コマンドラインでそういう処理ができるメールサーバはありそうだから、やっぱり
 PHPから実行することになるかな。これも手動であらかじめ、ってできるかもだけど。
・Webサーバの知識はWebアプリ作る以上当たり前。


その機能を実装するだけなら通り一遍の知識でも動くと思うけど、
サーバスペース貸与サービスってレンタルサーバでできるのかな?
できないなら自分でサーバたてて運用することになるんで結構大変。
特にメールサーバは下手に立てるとWebサーバ以上に迷惑をかけることになるので。

知り合いがそういうサービス個人でやってたけど、自宅にサーバ
置いてたしなあ。

136 :127:2007/12/22(土) 05:00:56 ID:???
自己解決しました
一旦外で実行してから読み込めばいいんですね どうもお騒がせしました

137 :nobodyさん:2007/12/22(土) 05:57:17 ID:???
>>133
分かりにくい質問だけどメールサーバ関係ないんだろ?
セッションやmd5でユニークな値を持つチケットを発行すれば済む話

138 :133:2007/12/22(土) 06:35:51 ID:???
>>135 レスありがとうございます。
実は趣味で自宅鯖立てて、最近スペース貸出を考えているのですよ。
それでそんなプログラムできればいいかな、と。

PHPって結構いろんなことできるんですね。PHPを習得するとともに、まずメル鯖立てるために固定IPゲットせねばw
135さんのレスをもとに勉強の方針立てて頑張りたいと思います。

ところでこんな時間にレス、て何者?w

139 :nobodyさん:2007/12/22(土) 09:36:10 ID:???
今日は休日だからな。
自鯖立てるのは結構だが、質問内容からするとかなり不安なので、
最初は審査はさんで手動登録にするとして、鯖管としての勉強をするのが第一。
踏み台になって周りに迷惑かけないようにね。

140 :133:2007/12/22(土) 11:10:17 ID:???
>>139
余計なお世話です。

141 :nobodyさん:2007/12/22(土) 11:21:56 ID:JyLvDbSd
classが存在するか調べる方法はありませんか?

PEARでDB.phpが読み込まれているかチェックするために
クラスチェック("DB")のようにしたいのです

142 :nobodyさん:2007/12/22(土) 11:24:26 ID:JyLvDbSd
class_existsで解決しました

143 :nobodyさん:2007/12/22(土) 13:21:02 ID:iV97cpSO
$str = "1+2+3"; というようになっているstring があったとして、
これを数式だと解釈して 1+2+3 (= 6) を返すような関数て
ありましたかね?

144 :nobodyさん:2007/12/22(土) 13:21:36 ID:???
>>143
eval

145 :nobodyさん:2007/12/22(土) 13:36:39 ID:iV97cpSO
>>144 ありがとう。

$str = "1+2";
echo $str. "\n";
eval("\$str2 = $str ;");
echo $str2. "\n";

解決した。

146 :138:2007/12/22(土) 13:46:19 ID:???
>>133
まあ鯖管やるといろいろと勉強になるし、がんばってくれ。
ただ139と同意見でもあるので、いっぺんにいろいろやろうとせずに
PHPならPHPだけって感じでやっていったほうがいいと思う。
メールサーバは半日放置すればすぐ踏み台にされるし、他のメール
サーバの管理者から文句が来たり、ISPその他から警告来ることがあるよ。

147 :nobodyさん:2007/12/22(土) 15:17:14 ID:JyLvDbSd
PEARのmimeDecodeで
$structure = Mail_mimeDecode::decode($params);
をしたときに、メールの件名・本文の文字コードを取得したいのですが、
本文はcontent-typeにありますけど、件名がありません。
どこで取得すればよいのでしょうか?

148 :nobodyさん:2007/12/22(土) 15:29:17 ID:XDbomIjm
本でもWebでもいいんですが、PHPの長い良質なソースコードないですか?

勉強したいので。。独学ですが、普通の本のソースじゃものたりなくなりました。。

よろしくお願いします。

149 :nobodyさん:2007/12/22(土) 15:35:26 ID:???
>>148
pear
zend framework
あたりかな

150 :148:2007/12/22(土) 15:40:37 ID:XDbomIjm
>>149
どうもありがとうございます。その2つをとりあえず見てみます。あと、思いついたんですが
洋書でいいのないですかね?あっちの方が本格的な気がして。。洋書でいいのを知っている方
教えてください。よろしくお願いします。

151 :nobodyさん:2007/12/22(土) 15:49:04 ID:???
シェル形式(perl形式)のコメント#って廃止予定とかあったりする?
あまり使われてないようだけど、#がスクリプトに混ざってたりしたら気持ちわるかったりするのかな

#昔書いたスクリプトで、いたるところにコメントで/* */を使ってあるのをメンテしてて、
#/* */使って問題箇所を切り分けようとしたら酷い目にあった

152 :nobodyさん:2007/12/22(土) 15:50:38 ID:???
>>150
「気がする」程度なら必要ない
それよりまず日本語ドキュメントを完全マスターすべし

153 :nobodyさん:2007/12/22(土) 15:54:32 ID:???
>>148
PHP5でクラス使ってるのが所望なら、mediaWIKIおすすめ
俺はめまいがして静かにエディタを閉じたけどw


154 :nobodyさん:2007/12/22(土) 15:54:49 ID:???
ユーザーが入力した式を
evalで実行してます。
(計算機のようなものです)

でもこうすると、ユーザーがたとえばファイル読み書きなんかの
命令を入れたら実行されてしまいます。

なんかいい方法はありますか?
ちなみに単純な計算機ではなく、関数など複雑な
式を入力することが出来きることが条件です。

155 :nobodyさん:2007/12/22(土) 15:55:21 ID:???
pearなんてあんま良質とは思えないのも多々ある訳だが
動物本でも読んだら?

156 :nobodyさん:2007/12/22(土) 16:00:36 ID:???
pearといえばNET_IP_V4←うろおぼえ
で、どんなIPアドレスでもネットワーク内ある(trueになる)という、
物凄いバグありバージョンがあったな
設置だけして使ってはいなかったけど

157 :nobodyさん:2007/12/22(土) 16:13:35 ID:???
>>154
なんのためにそんなの作ってんの?

158 :nobodyさん:2007/12/22(土) 16:23:32 ID:???
>>154
自分も式を扱うプログラム書いてるけど、色々処理が必要なので真面目にパースしてる。

簡単に済ませるなら、正規表現で計算式以外の要素が無い事を確認するのが良いんじゃないかと思う。
正規表現では対応しにくいようなら、Tokenizer使って分解してチェックじゃないかな。
http://jp2.php.net/tokenizer

159 :nobodyさん:2007/12/22(土) 17:20:10 ID:???
>>157
複雑な検索条件入力 ですが?

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

161 :148:2007/12/22(土) 19:01:21 ID:???
>>152 日本語ドキュメントもしっかり読んでみます。ありがとうございました。
しかし、ソースを打ちたい。。

>>153 MediaWikiをググって見てみました。今のところどういうものかわかりませんが
時間ができたらよく調べてみようとおもいます。どうも有用な情報ありがとうございました。

お二方、お礼が遅くなりすみませんでした。ありがとうございました。

162 :nobodyさん:2007/12/22(土) 20:40:17 ID:???
>>150
Advanced PHP Programming
がいいよ(洋書)。

163 :nobodyさん:2007/12/22(土) 23:19:52 ID:???
>>162
すごい、きになる。
やっぱ洋書がいいのかなあ

164 :nobodyさん:2007/12/23(日) 01:20:47 ID:???
別に変わらんと思うが

165 :nobodyさん:2007/12/23(日) 01:28:41 ID:???
そりゃまぁ、書いてある事は同じだろ。
というか違う事が書いてあったら困る。

166 :nobodyさん:2007/12/23(日) 02:11:39 ID:???
>>163
もう少しで新しいバージョンのが出るらしい。
今気付いたけど、Amazon見ても目次もないから買おうか迷ってる人が判断できないな。
もったいない。

この本には、中括弧の置き方くらいの事に関しても、BSD style, GNU style,
K&R style のそれぞれの説明とかがある。

あと、Extensionの説明だけでなく、「Writing SAPIs and Extending the Zend Engine」
なんて章があって、SAPIで使ってる構造体から説明してる。

データベースマッピングの複数のデザインパターンの説明もあって、
The Active Record Pattern とかいろいろ書いてある。

もちろんその他には、エラーハンドリング、テンプレートシステム、テスト、
キャッシング、セッション、認証、RPC、プロファイリングとかの説明もある。

なんて言うか、本格的。
なんで日本語訳されてないんだろう。

167 :nobodyさん:2007/12/23(日) 03:32:32 ID:KIQSv7/M
[a.php]
<?
$hoge = 'a';
〜インクルードここまで
$hoge = 'b';
?>

[include.php]
<?
include 'a.php';
echo $hoge;
?>

$hoge = a にしたい場合、ifで制御する方法はありませんか?
include_break();みたいな

168 :167:2007/12/23(日) 03:33:34 ID:KIQSv7/M
ifで制御 → if以外で制御

169 :nobodyさん:2007/12/23(日) 04:06:10 ID:???
ファイル分ければ?

170 :nobodyさん:2007/12/23(日) 04:16:30 ID:???
>>167
わざわざ難しく考えないで、今できる知識で組めよ。
コードを今の10倍の量を書いたとき、新しい技法を覚えるってことよ

171 :nobodyさん:2007/12/23(日) 04:57:03 ID:???
phpに関する初歩的な質問です。書いたコードは下に示します。
htmlquickformでメールフォームを作りたいのですが、その過程でprocess関数を使うところでつまづいてしまいました。
process('test',false)としてfunction test($values)と受け取るのですが、
具体的にvaluesが何の値を受け取っているのかがよく分からないのです。

下のコードでいうと
function mail($values)
{
mb_send_mail(??????????????);
}
のところで、「valuesって一体何?」と思うわけです。
直感的にmb_send_mail(:::@:::,$subject,$body);としてもダメなようですし、、、混乱してます。(C→phpとやってきたからかな、、、

172 :nobodyさん:2007/12/23(日) 04:57:57 ID:???
ryaku
$form->addElement('header',NULL,'お問い合わせ');
$form->addElement('text','name','名前');
$form->addElement('text','mail','メールアドレス');
$form->addElement('text','subject','件名');
$form->addElement('text','body','本文');
$form->addElement('submit','sbm','送信');

$form->addRule('name','名前を入力してください。','required','client');
$form->addRule('mail','メールアドレスを入力してください。','required','client');
$form->addRule('mail','メールアドレスを正しく入力してください。','email','client');
$form->addRule('body','本文を入力してください。','required','client');

$form->setRequiredNote('<font color="Red">*</font> 必須項目です。');
$form->setJsWarnings('入力ミスによりエラーが発生しました。','エラーをご確認の上、再度[送信]ボタンをクリックしてください。');

if($form->validate())
{
$form->process('mail',FALSE);
}
else
{
$form->display();
}

function mail($values)
{
mb_send_mail(??????????????);
}

?>

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


174 :nobodyさん:2007/12/23(日) 06:07:25 ID:???
SimpleXMLElementで、

<data>
aaa
<p>bbb</p>
ddd
</data>

てなXMLの"aaa"とか"ddd"のようなTextノードにはどうやって
アクセスしたらいいでしょう??
asXML()すると復元できるんだよなぁ

175 :nobodyさん:2007/12/23(日) 06:23:36 ID:/N04QiDA
sageてしまった……すいませんorz

SimpleXMLElementで、

<data>
aaa
<p>bbb</p>
ddd
</data>

てなXMLの"aaa"とか"ddd"のようなTextノードにはどうやって
アクセスしたらいいでしょう??
asXML()すると復元できるんだよなぁ


1つ思いついたのは、
$dom = dom_import_simplexml($xml);
$dom->firstChild->nodeValue = 'zzz';
$sXml = simplexml_import_dom($dom);
とやる。
ってこれじゃーSimpleXMLの意味がない

176 :nobodyさん:2007/12/23(日) 07:02:39 ID:???
XMLはあまり得意じゃないんで補足を待ちたいが、"aaa"とか"ddd"ってそれぞれ
単独のテキストノードなの?
aaa〜dddまでひとつのノードじゃないかって気がするんだけど。
<data></data>しかないじゃん。

さらにそのサンプルは<data>zzz</data>にしてる気がするんだけど、
"aaa"や"ddd"へのアクセスってのとの関連がよくわからん。

177 :nobodyさん:2007/12/23(日) 07:13:23 ID:???
んでいちお意図を汲み取ると
<?xml version='1.0' standalone='yes'?>
<data>
<content>aaa</content>
<content><p>bbb</p></content>
<content>ddd</content>
</data>
ってことになるのかな。
$dom->content[0]で"aaa"、$dom->content[2]で"ddd"が取得できる。

後半意味が分からんのは変わらんので、
http://jp2.php.net/manual/ja/ref.simplexml.php
ここの例の部分よく読んで意図がちゃんと分かるように書き込みやがれこのキャベツ野郎。

あ、書いたXMLが正しいかどうかはとりあえずメモ帳当たりにコピペしてXMLで
保存してIEあたりで開けば分かるよ。

178 :nobodyさん:2007/12/23(日) 07:19:03 ID:???
>$dom->content[0]で"aaa"、$dom->content[2]で"ddd"が取得できる。

ここ紛らわしいかな。
$xml = new SimpleXMLElement($xmlstr); //$xmlstrには177のXML文字列が入る
$content0 = $xml->content[0]; // aaa
$content2 = $xml->content[2]; // ddd
ってことね。

179 :175:2007/12/23(日) 07:45:21 ID:/N04QiDA
<data>
aaa
<p>bbb</p>
ddd
</data>

この状態でXMLとして正しくてDOMで厳密にいうと、
Elementノードdataの最初の子はTextノードで、"\naaa\n"となる。
2番目の子は、Elementノードpで最後の子がTextノードの"\nddd\n"。

んで、SimpleXMLElementから、"\naaa"などのTextノードにアクセスしたい。

$sXML = new SimpleXMLElement($xml);
$dom = dom_import_simplexml($sXml);
$dom->firstChild->nodeValue = 'zzz';
$sXml = simplexml_import_dom($dom);
ってやると、結果は
<data>zzz<p>bbb</p>
ddd
</data>
となる。

'zzz'の部分を"\nzzz\n"とすれば、
<data>
zzz
<p>bbb</p>
ddd
</data>
こうなる。




180 :175:2007/12/23(日) 07:49:19 ID:/N04QiDA
あっしまった。s/sXML/sXml/です。

ちゃんと書くとこう。
<?
$xml = <<<XML
<data>
aaa
<p>bbb</p>
ddd
</data>
XML;

$sXml = new SimpleXMLElement($xml);

$dom = dom_import_simplexml($sXml);
$dom->firstChild->nodeValue = 'zzz';
$sXml = simplexml_import_dom($dom);

echo $sXml->asXML();
?>

181 :nobodyさん:2007/12/23(日) 10:36:41 ID:???
すみません質問です。 ヒアドキュメントの中で、プルダウンを動的に生成できません
というか、ヒアドキュメント外で実行した関数の値(プルダウン表示)を中に
持ち込めない状況です
$address1_PD = $callData->makeKenPd("address1",$address1,1);
(↑の関数は、<option val=n>nName</option>を40回ほどループしてprintします)
echo <<<DOC
<select name="address1">
$address1_PD;
</select>
DOC;
とやってもうまくいきません $address1_PD = print($callData〜 なども
試したんですがダメでした
お手数をおかけしますが、回答お願いします php5 apache2 winxpです

182 :nobodyさん:2007/12/23(日) 10:37:51 ID:6DPIzhWO
すみません 上の181書き込みe-mail欄を消去しそこねました
アドバイスよろしくお願いします

183 :nobodyさん:2007/12/23(日) 11:22:06 ID:???
おっぱいカッコ

184 :nobodyさん:2007/12/23(日) 11:42:34 ID:MvcJEZMN
fgetcsvについて質問です。
A,B,C,D,E
F,G,H,I,J
K,L,M,N,O
という内容のテキストファイルcount.txtから

$handle = fopen("count.txt", "r");
$data = fgetcsv($handle);
for ($c=0; $c < 5; $c++) {
echo $data[$c];
}
fclose($handle);

というコードを用いてファイル内容を表示させようとしてるのですが
一行目までのABCDEまでしか値を取得出来ません。
二行目を抜き出すにはどんな条件を設定すればいいのでしょうか。
PHPManualを見ても、どの条件が該当するのか分からなかったので
よろしくお願いします。

185 :nobodyさん:2007/12/23(日) 11:53:45 ID:???
>>184
http://jp2.php.net/manual/ja/function.fgetcsv.php
例をよく見ろ

186 :nobodyさん:2007/12/23(日) 12:12:21 ID:MvcJEZMN
>>185
すみません、質問が悪かったですね。

Manualでは表示のためにwhileでfor文を繰り返してることは分かるのですが
!== FALSEがファイルの終端での全処理終了条件であることを除けば
単純にfor文を繰り返してるだけに見えるんです。
ABCDEABCDE...とループを繰り返さないための条件が何処に該当するのか、
ご教授お願いします。

187 :nobodyさん:2007/12/23(日) 12:41:31 ID:???
>>186
fgetcsv()すればファイルポインタが1行進む。
しまくればいずれEOFに到達して終わる。

188 :nobodyさん:2007/12/23(日) 13:01:34 ID:MvcJEZMN
>>187
whileの継続条件で用いられているfgetcsvが、
同時にポインタを進める役割も果たしてたということですか。
ポインタについてあまり学んでいないので気づきませんでした。
回答ありがとうございました。

189 :nobodyさん:2007/12/23(日) 13:06:40 ID:Dd+txFZ/
質問です。
変換するコマンド、をexecさせたいのですが、
どうしても引数を受け取る関数が必要なのでしょうか?
例えば、
exec("convert $hoge $huga);
$hogeが引数のファイル
$hugaがconvertした後のファイル
としたいのですが、失敗してしまいます。

190 :nobodyさん:2007/12/23(日) 13:25:53 ID:???
上の文を訳しなさい。【30点】

191 :nobodyさん:2007/12/23(日) 13:37:38 ID:???
質問です。
FATをNTFSに変換するコマンドconvertをPHPのexec関数で実行させたいのですが
どうしても出力を受け取る第二引数が必要なのでしょうか?
例えば、
exec("convert $hoge $huga);
$hogeが変換するファイル名
$hugaが変換後のファイル名
としたいのですが、失敗してしまいます。

192 :nobodyさん:2007/12/23(日) 13:39:07 ID:j7tEfXX4
質問があります。
PHP+PostgresqlまたはPHP+mysqlでシステム
を作ろうと思うのですが、PHP5が認識をしてくれません。
PHP info();でその部分がでてきません。
なんのパッケージをインストールしたらいいのでしょうか?
OSはFedora core4です。
板違いかもしれませんが、よろしくお願いします。


193 :nobodyさん:2007/12/23(日) 13:42:43 ID:???
>>192
何をしたけど認識をしてくれないの?

194 :nobodyさん:2007/12/23(日) 13:48:06 ID:???
SQLを、じゃない?

195 :194:2007/12/23(日) 13:48:45 ID:???
誤爆

196 :nobodyさん:2007/12/23(日) 14:46:06 ID:???
>>192
板違いです
「fedora core4 php mysql インストール」とかでググレカス

197 :nobodyさん:2007/12/23(日) 14:55:33 ID:???
板違いだが教えよう。
普通はyumでいれればパッケージ全部はいるはずだが、あとはphp-mysqlを入れればよいはず。php関連に限っていえばね

198 :176:2007/12/23(日) 15:49:32 ID:???
>>175
そのXMLであってるのか。。
DOM的には確かにノードの扱いはそうなると思うけど、XML的には
\naaa\n<p>bbb</p>\nddd\n がひとつのノードになるのは確かだと思う。
なので、
・DOM使ってXML的にもノードがばらけるように変換する。
・XML文字列を適当に文字列変換する。

くらいしかやっぱりないような気がするけどなあ。

199 :nobodyさん:2007/12/23(日) 16:13:53 ID:???
>>175>>176
\naaa\nはTextNode
<data></data>、<p></p>はElementNode
firstChildNode、SiblingNodeとNodeTypeとかでとれる気もするけどXMLってそういう使い方はしない気がする。
そしてSimpleXMLElementにそれがあるかどうかは知らない。

200 :nobodyさん:2007/12/23(日) 17:04:49 ID:4Xlz9Mde
複数の変数をいっきにチェックしたいのですが効率的な書き方ありませんか?

if (empty($var1) && empty($var2) && empty($var3))

今こんな風になってます。

201 :nobodyさん:2007/12/23(日) 17:13:25 ID:???
自分で関数を作る

202 :nobodyさん:2007/12/23(日) 17:52:07 ID:???
emptyて !$hoge と同義じゃなかたけ?


203 :nobodyさん:2007/12/23(日) 17:56:22 ID:???
>>200
別にその書き方でいいと思うんだけど。

204 :175:2007/12/23(日) 18:08:04 ID:/N04QiDA
>>175
XPathでもXQueryでもSAXとかも全部別々にあつかうし
XMLでも、それぞれ別にあつかうよ

>>198
それについては、>>179-180

結論としては、やっぱ無理っぽい
SimpleXMLElementって名前な時点で、Elementノードしか
無理じゃないかな〜て気はしてたんだ

それでもやるなら、SimpleXMLElement派生させるなりHelper関数用意するしかないっぽい


205 :175:2007/12/23(日) 18:11:12 ID:/N04QiDA
どんべえ食いながらレスしてたら、レス番号ずれまくり……orz
>>204において

>>175>>198
>>198>>199

です。

206 :nobodyさん:2007/12/23(日) 18:11:19 ID:???
>>202
変数限定(返り値や即値は使えない)ってことと
UndefinedVariableエラーにならないってとこらが違うかな。

207 :nobodyさん:2007/12/23(日) 19:35:35 ID:???
>>200
in_array

208 :nobodyさん:2007/12/23(日) 19:56:37 ID:Lt3D3rib
PHP4 から PHP5に移行して
サンプル集を買ってきたんですが

$select = "select * from hoge where name = $hage";
$query = mysql_query($select);
$result = mysql_result($query,0,0);

などと書いてた事が

$db = new mysqli(-------);
$aa = $db->prepare("select * from hoge where name = ?");
$aa->bind_param("s",$jakld);

みたいな文に変わってるのですが、結局どっちでもいいのでしょうか?
かなり戸惑ってまして一から勉強しないと全く分からない状態で・・。


209 :nobodyさん:2007/12/23(日) 19:57:23 ID:???
>>200
1つのメソッドにする。
by 「リファクタリング」

210 :nobodyさん:2007/12/23(日) 20:04:09 ID:???
>>208
mysql関数を使うスタイルとmysqliを使うのは
好き好きでいい(でもPHP5以降ならmysqli使った方がスタイルが入り混じらないので良い)
けど、後者のサンプルにあるプリペアードクエリの発行の仕方は反映した方が良いよ。

211 :nobodyさん:2007/12/23(日) 20:23:13 ID:???
>>208
練習したり、ちょっとした使い捨てでないなら、どっちもよくない
PDOでもadodbなりPEARのライブラリなり、何でもよいが、
なんらかのインターフェイスでラップするべき
お薦めは、PDOだ。

212 :nobodyさん:2007/12/23(日) 20:24:33 ID:2UmaE0fQ
pdoってなんですか?

213 :208:2007/12/23(日) 20:38:27 ID:Lt3D3rib
>>210
ありがとうございます。
prepareはたしか、パフォーマンスの向上と自動的にエスケープ
されるんでしたよね。

>>211
参考になります。ありがとうございました。

>>212
PHP Data Objects (PDO)
俺が説明するより検索したほうが確かな情報が得られると思うので。

214 :208:2007/12/23(日) 20:51:51 ID:Lt3D3rib
あ。。。
mysql4.1移行はmysqliを使わないとだめなんですね。。
サーバーが4.1以降だからmysqli使わないと・・・。

勉強しなおしか・・・。

215 :nobodyさん:2007/12/23(日) 21:04:06 ID:???
別にmysqlでも書けるけど

216 :208:2007/12/23(日) 21:34:13 ID:Lt3D3rib
>>215
え?
試してみましたがエラーになってしまいます・・。

217 :nobodyさん:2007/12/23(日) 21:38:57 ID:???
エラーになったと言われても
エラーを晒さないと解らないな

・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。


218 :208:2007/12/23(日) 21:44:48 ID:Lt3D3rib
>>217
大変失礼しました。。。
平凡なエラーなんですが
Call to undefined function mysql_connect
です。

なんか凡ミスしてるっぽいなぁ・・・。

219 :nobodyさん:2007/12/23(日) 21:56:53 ID:???
ぉぃぉぃ…

220 :nobodyさん:2007/12/23(日) 22:15:35 ID:???
>>218
エスパーなので、Windowsだということも判るし
php_mysqli.dllが読み込まれてるのに
php_mysql.dllは読みこまれてないということも判る。

221 :208:2007/12/23(日) 22:18:13 ID:Lt3D3rib
!!
あなたの言うとおり!

ありがと。

222 :nobodyさん:2007/12/23(日) 22:20:25 ID:???
すげえw

223 :nobodyさん:2007/12/23(日) 23:00:41 ID:???
以上、自演でお送りしました

224 :nobodyさん:2007/12/24(月) 00:05:58 ID:???
ID:Lt3D3ribが楽しそうでなによりだ。

225 :nobodyさん:2007/12/24(月) 00:48:15 ID:sRF6QhUm
192です。
fedora core4 php mysql インストールで
ググッてみたんですが、でてきません。
また、今後はどこの板で聞けばいいでしょうか?
後postgresqlも認識してくれないのですが。
php-mysqlと同じでいいのでしょうか。
すいませんが、よろしくお願いします。
このことに関するサイトがあれば教えてください。



226 :221:2007/12/24(月) 00:59:41 ID:PecBMOMk
>>225
ここじゃだめかしら?

http://www.fedoraz.com/

227 :nobodyさん:2007/12/24(月) 01:37:31 ID:???
>>225
それで検索すると>>226が出てくるわけで、それで分かんなきゃあきらめたほうがいい

228 :nobodyさん:2007/12/24(月) 02:52:04 ID:???
あるサイトに昨日アクセスした際にスクリプトエラーが出て、
その内容が画面に出た際、xxx.incの何行目のエラーとか出た。
試しに、xxx.incのURLで指定したら、そのソースが丸見えwwで、
その中にDBの接続のためのパラメータ(ID、PWDまで)まで書かれている。

こんな馬鹿な作りをしているサイトに天誅を下そうと思うのだが、
面白い天誅の食らわし方ない?

知っている人も結構多い、大きめのサイトなんだが。

229 :nobodyさん:2007/12/24(月) 03:11:37 ID:???
>>228
は?直ちに管理者にその旨を連絡するべきなのに、悪用しようなんてお前が逆にリアル天誅を食らうだけだから

一応言っておくと、明示的に公開されていないものに対してのアクセスで逮捕された前例もある

230 :192です。:2007/12/24(月) 03:19:58 ID:sRF6QhUm
226さん、227さんありがとうございます。
postgresqlも使いたいのですが、yumでphp側のインストール
はなにをすればよいでしょうか?
サイトがあれば、サイトはありがたくブックマークしました。


231 :208:2007/12/24(月) 05:28:08 ID:PecBMOMk
>>229
「リアル天誅」ウケたwwwww

>>230
ごめんよ。fedora core4 とか初耳だし
OS違うとそんなにインストの方法が変わるなんて
知らないし、教えてあげられんよ。。。

232 :nobodyさん:2007/12/24(月) 05:48:42 ID:???
>>230
検索ぐらいしようぜ
yum postgre phpとかで検索すれば直ぐ出てくるだろ


233 :nobodyさん:2007/12/24(月) 08:41:55 ID:???
>>229
じゃ、リアル天誅を食らわないように、日本の捜査権が及ばないクラッキング集団のサイトとかないの?
そこで、IDとPWDさらせば問題ないってことだよね?

234 :nobodyさん:2007/12/24(月) 09:30:50 ID:P1UMzL+u
phpMyAdminでCSVデータをインポートする時に、
CSVのフィールド囲み記号は「"」で指定すると、
データの数値で「"」で囲まれていない部分があると読み込んでくれません。
(「フィールド数が合わない」とエラーが出ます。)

もともとこういう仕様なのでしょうか・・・?
それだと、ダウンロードしてきたデータが読み込めなくて大変です
(基本的に「"」で囲まれているのは文字列だけなので)

235 :nobodyさん:2007/12/24(月) 09:49:55 ID:???
>>233
やー、考え浅いぞ
そういう奴らそもそも裏取るまで行動起こさないし、まずそういう情報投げた奴を洗うし叩くし。要はここと大差ねえな
そういう厨房っぽい所存でいくなら、ハッカーになりたがってるご同類の
サイトの掲示板にでも書き込んだ方がいいんじゃねえの。
無論揉め事になったら煽動で関わった事になるけどな

忠告はした
alt.2600あたりでぐぐってあとはお好きなように。類似のアレなのも色々芋蔓で引っかかるでしょう
一応先に自衛でtorやらのなんとかする品物でも入れとけよ

236 :nobodyさん:2007/12/24(月) 10:14:28 ID:???
>>235
詳しくサンクス。参考になった。

最近多いんだよな。素人のくせに自鯖立てて踏み台にされて迷惑掛けているやつとか、
簡単に会員の個人情報がわかるようなサイトとか、
こういうのは天誅を下さないとダメだろうなぁ。

こういう奴に限って、過失を認めず、過失を認めても誤って終わりとか。
警察や役所やプロバイダーやクレジット会社から個人情報が流出しても、損害賠償なんてしないし、天誅しかないな。

237 :nobodyさん:2007/12/24(月) 10:17:04 ID:???
ちなみに、俺はクレジット会社から個人情報が流出されて、
一時期毎日のようにサラ金業者から電話に掛かってきた。
テレビで報道されているのを知って、苦情言っても、
謝っても、それは私たちから漏れている情報ではないかの一点張り。理不尽な世の中に天誅を。

238 :nobodyさん:2007/12/24(月) 10:34:27 ID:???
世知辛い大義名分だなあ
もっと理性的な説諭の手段がありそうなもんだが。
ま、ただの感想だ。流してくれや

239 :192:2007/12/24(月) 11:13:48 ID:sRF6QhUm
http://shikabo.ddo.jp/?cat=85
これがみつかった。
ほかにないかな?

240 :192:2007/12/24(月) 11:14:47 ID:sRF6QhUm
連続すいません。
上記のがみつかったのですが、
ほかにもっと詳しく書いてあるサイトはないかな?
知っている人よろしくです。


241 :nobodyさん:2007/12/24(月) 11:23:36 ID:???
もっと詳しいのが必要ってことは、そこの手順と対処方法で躓いたんだよね?
どこで躓いたのか明記しないと誰も有益な情報返せないんじゃないかな
只でさえfcな人がどんだけ見てるのか判らんのだし。

linux板とか当たってみるのもありかも

242 :nobodyさん:2007/12/24(月) 12:32:11 ID:???
なんとか苦労してApache2.0とPHP5をインストール完了。
ブラウザはFireFoxを使ってるんだけどアドレスバーから「http://localhost/abc.php」と打つと
問題なくページが表示されるんだけどフォルダからダブルクリックで「abc.php」を開くと
ブラクラみたいにタブが無限に開いていってしまう (; ´Д`)

どうしたらいいんですか・・・・?

243 :nobodyさん:2007/12/24(月) 13:19:28 ID:???
>>242
abc.phpのどっかが無限ループになってるんでしょ。
winならxamppという便利なものがあんのに。

244 :nobodyさん:2007/12/24(月) 15:48:25 ID:tHEPo1ls
<form>
<input type="text" name="text">
<input type="submit" value="test1" name="test1">
<input type="submit" value="test2" name="test2">
</form>

こんな感じでformの中にinput-submitのボタンが複数あって、
押したボタンによってPHP側で"text"の処理分けしたいんですが、
valueの値で判定するしかないんでしょうか。
valueだとボタンの名前として表示されるため他の方法を探しています。

245 :nobodyさん:2007/12/24(月) 16:15:56 ID:???
>>244
var_export($_GET); したものをtest1、test2のクリック時に見比べてみ

246 :nobodyさん:2007/12/24(月) 16:27:38 ID:???
isset()

247 :244:2007/12/24(月) 17:11:12 ID:tHEPo1ls
>>245
valueの値だけは違いがありますね。

input-submitじゃなくて
button-submitを使いボタン名をvalueとは別に設定することで解決しました。
レスありがとうございました。

248 :nobodyさん:2007/12/24(月) 17:19:57 ID:???
どうみても押したボタンのnameとvalueのセットだけが送信されます。
本当にありg(ry

249 :244:2007/12/24(月) 17:29:41 ID:tHEPo1ls
別の処理でうまくいった気がしたので過信してました。
本当にありがとうございました…。

250 :244:2007/12/24(月) 17:54:23 ID:tHEPo1ls
あまりに下らないので、スレ汚し続けたくはないのですが間違いがあったので訂正だけ。
<button type="submit" value="test" name="test1">内容</button>
だとvalueに設定されているtestは送信されなくて、内容が送信されるようですね。
手元のHTML本ではvalueが送信値となってますが、仕様変更でもあったのか。

>>248さんのご指摘とは違い他フォームの内容もちゃんと送信される模様です。

251 :nobodyさん:2007/12/24(月) 18:18:44 ID:???
>>250
嘘だろうと思って動作確認したらIE7では確かにそう動いた。
ちなみにFireFox2 Opera9 ではvalue値が送信されてる。(IE7と動作が異なる)

PHPの話題じゃないけど、RFC的にはどうなんだろ。

<html>
<head><title>test</title>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
</head>
<body>
<?php print_r($_GET); ?>
<hr/>
<form action="test.php" method="get">
<button type="submit" value="test" name="test1">内容</button>
</form></body></html>


252 :245,248:2007/12/24(月) 19:02:38 ID:???
RFCというよりHTML4の仕様なんだけど、IE6,7はそれに従っていない。
以下のコードで、
・name1 name2 のいずれかをクリックした時に、3,4は送信されるべきでは無い
・name3 name4 のいずれかをクリックした時に、value3またはvalue4が送信されるべき

DOMの扱い時にも同様の支障がでてくる。
なので、buttonを使うより、input type=button を使う方が良い。(buttonに比べて表示の自由度は落ちる)

検証用コード
<html><body><form>
<input type="submit" name="name1" value="value1"></input>
<input type="submit" name="name2" value="value2"></input>
<button type="submit" name="name3" value="value3">3</button>
<button type="submit" name="name4" value="value4">4</button>
</form><p>
<?php
var_export($_GET);
?>
</p></body></html>

253 :nobodyさん:2007/12/24(月) 22:47:49 ID:???
まじで?
IE7でも相変わらず腐ってるんだな・・

254 :nobodyさん:2007/12/25(火) 08:19:17 ID:???
imap_open とかでサーバ側のエラーメッセージ(たとえば、LoginError)を
取得したいのですが、基本的に不可能でしょうか?
ZendFrameworkのZend_Mail使ってみたんですが、
オブジェクト指向を完全に理解していないオイラには
かなりつらい部分があったので、imap関数に移ろうとしてるのでつが。

255 :255:2007/12/25(火) 09:05:15 ID:Coxwnlyh
linux環境でphpを勉強し始めて5日の者です。phpのサンプル集を買って勉強しているんですが、
その中のメールフォームサンプルを自分のサイトの隅っこに置いて、apacheを起動させて動作確認してみたところ、
フォームに文字入れて確認画面に進み、送信を押すと 本当は「送信成功しました。or失敗しました。」と表示されるはずが、何も
表示されず、メールも送られていません。php.iniはデフォのままなんで、そこがダメなんじゃないかと思うのですが、
どうなんでしょう。書籍には何も書いてないです。

256 :nobodyさん:2007/12/25(火) 10:39:57 ID:???
エラーのときどうする、って話が書いてない本はダメだね。
そういう本(書いてない本)多いけど

257 :nobodyさん:2007/12/25(火) 11:11:07 ID:???
zend_extensionとextensionの違いってなんでしょう?
何時もphp.iniに書く時に迷う・・・

258 :nobodyさん:2007/12/25(火) 11:15:16 ID:M0LvCdnx
>>255
送信しましたor失敗しました あたりのソースうp


質問ですが、SQLインジェクション対策ってどうしてます?
自分はMySQLを使っていたので、mysql_real_escape_strngを使っていたのですが、
他のデータベースでも書き換えなくていいように、全てのデータベースで活用できるような
インジェクション対策などありませんでしょうか?

259 :nobodyさん:2007/12/25(火) 11:53:41 ID:???
>>258
PDOを使うのが定石かなぁ。

260 :nobodyさん:2007/12/25(火) 12:06:36 ID:???
pdo丸投げで一切自前では対策してないけど、それでいいのか不安w

261 :nobodyさん:2007/12/25(火) 13:18:29 ID:???
test.iniってファイルを
parse_ini_file("test.ini",true);
で読み込むとshift_jisで読み込まれちゃうんですが、ファイル読み込みのエンコーディングをUTF-8にしたいんです。
iniや表示するphpファイルは全てUTF-8になっています。
php.iniでファイル読み込みのエンコードとかでしょうか?

iniの中身は
------------------
[友達]
"佐藤" = "コスプレ"
"伊藤" = "女装"
------------------

262 :nobodyさん:2007/12/25(火) 13:20:42 ID:???
>>261
>>1

263 :nobodyさん:2007/12/25(火) 13:31:06 ID:Kk9QHm5I
すいません、下げ忘れていました

test.iniってファイルを
parse_ini_file("test.ini",true);
で読み込むとshift_jisで読み込まれちゃうんですが、ファイル読み込みのエンコーディングをUTF-8にしたいんです。
iniや表示するphpファイルは全てUTF-8になっています。
php.iniでファイル読み込みのエンコードとかでしょうか?

iniの中身は
------------------
[友達]
"佐藤" = "コスプレ"
"伊藤" = "女装"
------------------

PHP Version 5.2.4

264 :nobodyさん:2007/12/25(火) 14:32:50 ID:???
>>263
とりあえずキーはダブルクォート出来ません。

265 :nobodyさん:2007/12/25(火) 14:41:28 ID:Kk9QHm5I
>>264
そうなんですか、それでも文字コードの問題は残るので解決方法があればお願いします。
ひとまずキーにダブルクォートで動いてはいます。

266 :nobodyさん:2007/12/25(火) 14:45:46 ID:???
キーを英語にし、ダブルクォートでも文字化けは変わりませんでした。
一応ご報告を

267 :nobodyさん:2007/12/25(火) 14:47:22 ID:V7kmAO2b
非常に下らないかもしれませんが、EOSでの質問です。

$bbb[0]['abc']="表示テスト";
$a=<<<EOS
<table>
 <tr>
  <td>$bbb[0]['abc']</td>
 </tr>
</table>
EOS;
print $a;

EOS内で連想配列の変数を簡単に吐き出す方法はありますか?
そのままだと Array['abc'] となってしまいます・・。
変数に入れ直せば良いのですが種類が多いと大変で・・

皆さんはどうやってますでしょうか。

268 :nobodyさん:2007/12/25(火) 14:51:23 ID:ek1/aJk1
PHPの質問と言っていいのか悩んだんですが、PHPファイルに限って起きるので質問させてください。

WEBサーバーでSSLを設定してそこにPHPファイルを配置したところ、httpでのアクセスだとPHPは正常
に動くんですが、httpsだと何故か404になってしまいます。
他の形式(aspx、txtや画像)はhttpでもhttpsでも問題無く動くのでアクセスしているフォルダが違うとかは
考えられず、httpだとPHPは動くのでPHP自体がおかしいってことも考えられず…。
通常のSSLの設定は終えていますが、PHPをSSLに配置する際は他に何か設定等必要なんでしょうか?

環境ですが、
Windows2000ServerSP4 + IIS5.0 + PHP5.2.5 (+ VisualStudio2003)
です。

よろしくです。

269 :nobodyさん:2007/12/25(火) 14:52:26 ID:???
>>267
変数を挿入するときは
{$bbb[0]['abc']}
のように括りましょう。

270 :nobodyさん:2007/12/25(火) 14:57:18 ID:V7kmAO2b
>>269
即答ありがとうございます!それだけで良かったんですね

基本的な方法が分からずにいろんな遠回り処理した上で
えーーそんな簡単にできたの・・みたいな事がよくあります

有難うございました。

271 :nobodyさん:2007/12/25(火) 15:32:13 ID:???
>>268
404時のエラーログに出るフルパスは同じもの?

272 :268:2007/12/25(火) 15:51:19 ID:???
>>271
IISのログには相対パスのみ出てまして、httpとhttpsとで別サイトとして登録してますので
パスは別物です。

273 :nobodyさん:2007/12/25(火) 16:12:23 ID:???
>>263
自己解決しました。
凡ミスだったので気にしないでください・・。 ;-;

274 :nobodyさん:2007/12/25(火) 16:32:12 ID:???
PHPのメジャーな統合開発環境って何ですか?
フリーので。

275 :nobodyさん:2007/12/25(火) 16:35:17 ID:???
>>273
       ヽ(・ω・)/   ズコー
      \(.\ ノ

276 :nobodyさん:2007/12/25(火) 16:41:01 ID:Kk9QHm5I
>>275
すいません ><
ID出し忘れたので偽者と思われないようにも返信しときます・・

277 :nobodyさん:2007/12/25(火) 16:44:26 ID:???
>>274
       ヽ(・ω・)/   ドボン
      \(.\ ノ

278 :nobodyさん:2007/12/25(火) 17:37:59 ID:???
>>274
EmEditor→phpエディタ→phpeclipse→zend
と使ってきたけど俺はphpeclipseが一番使いやすかった

279 :nobodyさん:2007/12/25(火) 19:39:53 ID:YdyXWQpG
Yahooのニュース記事の表示が、馬鹿丸出しなんだけどwwwwwwww

http://headlines.yahoo.co.jp/hl?a=20071225-00000912-san-soci

 <futoji>元福岡地検検事正で公証人の絹川信博さんの話</futoji> 「鑑定結果が今後、民事訴訟の証拠として採用される可能性は十分ある。
民事分野でも、ポリグラフの活用範囲が広がる可能性がある」

280 :nobodyさん:2007/12/25(火) 20:31:12 ID:qdKsQYMA
質問です。

array("aaa" => "bbb", "ccc" => "ddd" "???" => "fff")

この配列から「三個目の要素」であること、又は「値がfff」であることから、
不明なキー名である???のみを抜き出したいのですがどのような方法があるでしょうか。
よろしくお願いします。

281 :nobodyさん:2007/12/25(火) 20:43:37 ID:???
>>280
http://www.php.net/manual/ja/function.array-search.php

282 :nobodyさん:2007/12/25(火) 21:14:34 ID:qdKsQYMA
>>281
普通に定義されてるんですね。回答ありです。

283 :nobodyさん:2007/12/25(火) 22:37:15 ID:???
>>281
ゴクリ・・・

284 :nobodyさん:2007/12/26(水) 00:37:13 ID:???
>>283
やめとけ、その釣り針に味わいどころがあるようには思えない。

285 :nobodyさん:2007/12/26(水) 00:57:00 ID:???
 下記 ※※※ の部分にconvertコマンドで画像を少し加工したいのですが、

×imagejpeg ($image_new , $uploadfile , $quality);
○imagejpeg ($image_new , $image_temp , $quality);
 にして、

 /usr/bin/convert オプション $image_temp $uploadfile;
にすると、

PHP Parse error: syntax error, unexpected '/'
in /home/webmaster/blog/nucleus/plugins/NP_ImageLimitSize.php on line 65,
referer: http://******/nucleus/plugins/mediatocu/media.php

 と、出ました、フルパスで書けば問題無いと思ったのですが、どのようにコマンドを挿入すればいいでしょうか?

function event_PreMediaUpload(&$data) {

$collection = $data['collection'];
$uploadfile = $data['uploadfile'];
$filename = $data['filename'];

// evaluate the filetype from the filename
$filetype = strtolower(substr($filename, strpos($filename, ".")+1));



286 :285:2007/12/26(水) 00:57:53 ID:???
// filetype is jpeg
if ($filetype=='jpg' || $filetype=='jpeg') {

$size=getimagesize($data['uploadfile']);

// size[0] is the image width
if ($size[0]>$this->getOption('maxwidth')) {

$newheight = $this->getOption('maxwidth') * $size[1]/$size[0];
$image_orig = imagecreatefromjpeg($uploadfile);
$image_new = imagecreatetruecolor($this->getOption('maxwidth'), $newheight);
$quality = $this->getOption('quality');

imagecopyresampled($image_new, $image_orig, 0, 0, 0, 0, $this->getOption('maxwidth'), $newheight, $size[0], $size[1]);
imagejpeg ($image_new , $uploadfile , $quality);

                ※※※

// clear the memory
imagedestroy($image_orig);
imagedestroy($image_new);

}
}

287 :nobodyさん:2007/12/26(水) 01:02:18 ID:???
>>1

288 :285:2007/12/26(水) 01:08:43 ID:???
>>287
CentOS 5.1
PHP 5.1.6
apache 2.2.3
これ以外しか思いつきません。

289 :285:2007/12/26(水) 01:10:06 ID:???
×:これ以外しか思いつきません
○:これしか思いつきません

290 :nobodyさん:2007/12/26(水) 01:39:36 ID:???
CentOSってのもあるのか……
Linux界隈、ディストリ間の差異大杉でFreeBSD派にはついていけねえな

291 :nobodyさん:2007/12/26(水) 03:42:29 ID:???
カーネル一緒なんだから大差あるようで本質的には大差はない

292 :nobodyさん:2007/12/26(水) 04:19:38 ID:???
プリインストールされてるソフトが違うWindowsみたいなもんだからな

293 :nobodyさん:2007/12/26(水) 04:56:01 ID:???
>>285
> PHP Parse error: syntax error, unexpected '/'
PHPの文法レベルでエラーが出てるんだからフルパスとかコマンドの違いとか全然関係ねーよ。

>  /usr/bin/convert オプション $image_temp $uploadfile;
> にすると、
ってこれ、PHPのソース中にシェルコマンドを生で書いてるのか?
PHPはシェルスクリプトじゃねーぞ?
system()とか使えよ。

294 :nobodyさん:2007/12/26(水) 10:54:23 ID:WFCxb7oZ
ローカル側のphpとサーバー側のphpで、相互通信する仕組みを作りたいのですが、
どのような実装方式が一番楽な方法でしょうか?


ローカルphpが、サーバー側phpを呼び出す
サーバー側phpが処理を実行し、実行結果を返す
ローカルphpがサーバー側のphpの実行結果を受け取り、その実行結果により処理を条件分岐する

このような感じで、サーバー側の実行結果によってローカルの実行結果が異なります。

ソケット通信での実装を考えたのですが、少々面倒なので、もっと簡易にできる方法があれば助かります。
宜しくお願いします。

295 :nobodyさん:2007/12/26(水) 11:57:31 ID:???
>>294
レスポンス速度重視でないならば、http で通信すればいいんじゃないの。サーバは apache経由にして。

296 :nobodyさん:2007/12/26(水) 11:58:07 ID:???
soap

297 :nobodyさん:2007/12/26(水) 12:17:11 ID:???
>>296
PHPネタじゃないけど、soapってどうなの?
以前 Javaでやったときは、なんか中途半端に隠蔽されて自由度が低いだけって印象なんだけど。

298 :nobodyさん:2007/12/26(水) 13:15:38 ID:???
PHP.iniの設定で
auto_prepend_fileを使いたいのですが、
一部のディレクトリんは適用させたくないのですが、
その場合どのように記述すれば良いのでしょうか?

299 :298:2007/12/26(水) 13:16:09 ID:0y2BVKsS
すみません、sageチェックついてました
お願いします

300 :nobodyさん:2007/12/26(水) 13:30:41 ID:???
つ auto_prepend_file htaccess

301 :nobodyさん:2007/12/26(水) 13:33:05 ID:0y2BVKsS
>>300
ありがとうございます


すみません、書き忘れていました
レンタル鯖の仕様によりhtaccessでのphp_value・flagが仕様できないのですorz

302 :nobodyさん:2007/12/26(水) 15:08:20 ID:???
情報小出しに日本語不自由か…ダメダコリャ

303 :nobodyさん:2007/12/26(水) 15:14:38 ID:???
これでまた、何か案を出したら、それはすでにやったんですが・・・
と続くからなw

304 :nobodyさん:2007/12/26(水) 15:54:46 ID:???
そして最後には、お前ら使えねーな、で締めるのか

305 :nobodyさん:2007/12/26(水) 16:07:23 ID:5CJgBllV
認証システム作りたいと思ってます 以下のような処理でOKなんでしょうか?
(ログインフォームの次の会員トップページの処理です)
0)session_start(); (タイムアウト設定も同時にする)
1)$_SESSION['LogIn']=0;//ログイン状態のフラグの用意
2)1)をチェック →0なら3)
3)POSTされたid,passwordをもとにログイン処理 →LogIn=1にする
4)以降のページでは0〜3を(外部ファイル化して)最初にチェック
 ※3)のPOSTデータがなければ警告画面に遷移

PEAR:AUTHも考えたんですが、ログインフォームと認証後トップページを
同じにしなきゃだめっぽいんでやめました
環境はPHP5,APACHE2です

306 :nobodyさん:2007/12/26(水) 16:10:25 ID:0y2BVKsS
>>302
すみません、小出しではなく>>301はただの書き忘れです

307 :nobodyさん:2007/12/26(水) 16:20:00 ID:???
>>305
リクエスト毎に 1) の処理を行うの?
そうならヘンだと思うが。

308 :305:2007/12/26(水) 16:32:50 ID:5CJgBllV
>>307 ありがとう ごめんなさい、間違えました
LogInは初期化しません 最初にチェックするだけです
あと、今思ったんだけど、最初のログイン時にランダム値を持たせといて(DBにも登録)
それもリクエストごとにチェックするとかの方がいいのかな?
それがセッション名(?)てことだからわざわざやらなくていいんでしょうか?

309 :nobodyさん:2007/12/26(水) 16:53:52 ID:???
乱数を設定しても意味は無いだろうけど、「ログイン状態のフラグ」を管理するぐらいなら、
誰がログインしているのかという、「ログインユーザのID」を管理した方が良いと思う。

ログイン後は、それが誰だかわからなくても良いなら、別に良いけど。

310 :305:2007/12/26(水) 17:23:39 ID:5CJgBllV
>>309
ログイン開始と終了を記入するテーブルみたいなのを作るわけですか?
考えたこともなかったです。
ログイン状態のチェックだけなら305の内容でokなんでしょうか 度々すみません

311 :nobodyさん:2007/12/26(水) 17:33:52 ID:???
DBじゃなくてセッション変数の話。
「ログイン状態のチェック」が「だれかがログインしているが判定できる」なら、305の内容でOK。
普通は、このセッションでログインしているのが誰かも判らないと困るんじゃないかと。

312 :305:2007/12/26(水) 17:53:13 ID:5CJgBllV
親切にありがとうございます
しかしセッションの知識が不足でよく理解できません
idに依存したセッション名を発行するのかな、、 ちょっと勉強してきます
ありがとうございました

313 :nobodyさん:2007/12/26(水) 18:50:16 ID:7SSM1+qD
すいませんお教えいただきたいのですが、

キーボードからそのまま受け取ったデータaを
cに変更して<textarea>に出力する ことはできますでしょうか?
いろいろ調べて下記のようなものを書いてみましたが、できません。

<form>
<textarea>
<?php

set_time_limit(0);
($stdin = fopen("php://stdin", "r"));
$s = trim(fgets($stdin, 256));

if($s == "a"){
$s = "c";
}
print $s;

?>
</textarea>
</form>

ハッスルサーバを使っていて、phpはバージョン4.3です。
初心者の質問で申し訳ありませんが、どうかよろしくお願いします。

314 :はっしゅ(前すれ703):2007/12/26(水) 19:02:23 ID:drjhjm0k
>>前すれ734
回答ありがとうごいました。
レベル低すぎて誰も答えてくれないのであきらめてたんですが、今日見たら回答きてたのでお礼に伺いました。
またわからないことあったら教えてください。
遅ればせながらありがとうございました。

315 :nobodyさん:2007/12/26(水) 20:44:56 ID:???
キー入力された時その場で変えたいなら
JavaScript使うかAjax使わないと無理

phpはサーバーサイドスクリプトです


316 :315:2007/12/26(水) 20:45:19 ID:???
315は313宛ね

317 :nobodyさん:2007/12/26(水) 20:45:33 ID:???
>>313
意味がわからない キーボードから受け取ったデータってなんだ?
サーバの送受信はするの? しないんだったらphpじゃなくてjavascriptでしょ
具体的にどういう操作と結果がほしいのかわからなきゃ回答不可だよ

318 :nobodyさん:2007/12/26(水) 22:33:52 ID:???
C言語の本読んでもキーボードから1文字ゲットから先に進めない人

ノシ

319 :nobodyさん:2007/12/26(水) 22:40:10 ID:???
$white = 'snow';
$black =& $white;
unset($white);
print $black; //snow

これで snowが出力されるんだけど、$blackは$whiteの参照になってるから
unset($white)で$blackの値も破棄されるんじゃないの?

なぜsnowがprintされるのかわかりません。

320 :nobodyさん:2007/12/26(水) 22:46:40 ID:???
>>319
http://jp2.php.net/manual/ja/function.unset.php
>参照渡しされた変数が関数内で unset() された場合に、 ローカル変数のみが破棄されます。
>呼出側の環境でその変数は、 unset() がコールされる前と同じ値を保持します。

って書いてあるから良いんじゃないの。

321 :320:2007/12/26(水) 22:51:51 ID:???
良く見たら >>320 とはちょっと違うパターンか。ごめん。

322 :319:2007/12/26(水) 22:54:50 ID:???

参照渡しの場合はローカル変数しかunsetされないでいいんかな

323 :nobodyさん:2007/12/26(水) 23:00:42 ID:???
mb_send_mail()の引数の本文部分に
「>」を入れると
勝手に「>」にエスケープされるんですが、
ホワイ?
特に htmlspecialcharsとかかけてないんですが。。。


324 :nobodyさん:2007/12/26(水) 23:11:12 ID:???
ethnaの$this->af->getで取得した変数だからでした。
勝手にエスケープされるんでつね。。。

mb_send_mail( $this->af->get('to'), $this->af->get('subject'), $this->af->get('body') );
みたいな送信の仕方できないですが、
一回エスケープしたのを戻すとかの作業するのが一般的なんでしょうか

325 :324:2007/12/26(水) 23:20:58 ID:???
いや、すんません
ethna関係ないっぽいです、普通にやってむりぽでした。

326 :nobodyさん:2007/12/26(水) 23:53:50 ID:5CJgBllV
条件分岐でページ遷移する処理をしたいんだけど
Header関数(location)がエラー起こします。ほかに方法はないんでしょうか?
echoでjavascript出力もできますがそれはあんまりなので、、 よろしくお願いします

327 :nobodyさん:2007/12/27(木) 00:13:03 ID:kzcBaheO
>>326
飛ばしたいページのファイルをincludeすればいいんじゃね?

328 :nobodyさん:2007/12/27(木) 00:15:44 ID:???
>>326
エラー書いた方が良い

>>324
うちの環境ではエスケープされなかった


329 :nobodyさん:2007/12/27(木) 00:39:58 ID:???
>>326
単に、header関数の前に何か出力されちゃってるんでない?
それか場所の指定に変数を使ったりしてるならそこがおかしいか。

330 :nobodyさん:2007/12/27(木) 00:54:22 ID:???
特にローカルの開発環境だと、
キャッシュが効いて動作がおかしくなったりもするがな<header()

331 :326:2007/12/27(木) 00:57:52 ID:k02W1D9g
>>327-328
ありがとうございます
前に一度相談してて、自力解決めざしたんですができなかったんです
詳細は>>111です 今apacheのエラーログ見たところ、
PHP Parse error: syntax error, unexpected T_EXIT in
 C:\\Program Files\\Apache Group\\Apache2\\htdocs\\system\\admin\\hoge\\index.php on line 14,
 referer: http://localhost/system/ …らしいです
14行目は>>111のexit;なので、コメントアウトしたら(//exit;)今度は
unexpected '}'〜〜 と出ました。ただのif文なのに意味がわかりません 
ググっても出てこないし、気が向いた方教えてください お願いします

332 :nobodyさん:2007/12/27(木) 01:10:18 ID:???
構文エラーじゃん
エラーの行なんて参考でしかないから
/* */で囲みながら範囲をせばめてエラーで出てる箇所特定しろよ
どうせ、おっぱいかっこ{}の数があってないとか、そういうのだろ

333 :nobodyさん:2007/12/27(木) 01:32:39 ID:???
>>313
そいつぁコマンドライン用です。

334 :255:2007/12/27(木) 03:55:57 ID:tJxOOzWu
>>258 遅れてすいません。
<?php
// メール送信先を指定します。
$to = "実際は指定しました。";
// フォームの値を取得します。
if ($_SERVER["REQUEST_METHOD"] == "POST") {
foreach($_POST as $k => $v){
// 「magic_quotes_gpc = On」のときはエスケープ解除
if (get_magic_quotes_gpc()) {
$v = stripslashes($v);
}
$v = htmlspecialchars($v);
$$k = $v;
}
}
else {
exit();
}

// メール本文を組み立てます。
$naiyou = "お名前:$name\n
メールアドレス:$from\n
タイトル:$title\n
内容:$naiyou\n"

335 :255:2007/12/27(木) 03:56:48 ID:tJxOOzWu
if ($name != "" and $from != "" and $title != ""
and $naiyou != "" ) {
if (mb_send_mail($to, $title, $naiyou, "From:$from")) {
echo "メールを送信しました";
}
else {
echo "メール送信失敗です";
}
}
?>

336 :sage:2007/12/27(木) 05:13:26 ID:aXynhXDH
setcookieで「味噌」と日本語を食わして吐き出すと「?」となってしまいます。
ちなみにEUC-JPです。
ファイルを確認した所、保存時では「+%CC%A3%C1%B9+」とurlencodeされているのですが
webで表示(print $_COOKIE[hoge];)するときだけバグります。

64encodeしてから食わし、64decodeして吐かすとも考えたのですが、
ファイル全部の保存と表示部分を直すことは大量すぎて辛いっす。
何かいい解決策は有りませんでしょうか。

337 :336:2007/12/27(木) 05:28:15 ID:???
sagemissしてすいません。
追加ですが「あへあへ噌」や「味噌漬け」はバグりません。

338 :326:2007/12/27(木) 05:57:19 ID:k02W1D9g
>>332
ありがとうございます
構文エラーということで、{の閉じ忘れなどチェックしてもなかったので、
ソースをガンガン削っていったら
1)これは動作する
<?php
header("Location: http://www.yahoo.co.jp/");
?>
2)これは動作しない
<?php
header("Location: http://www.yahoo.co.jp/");
exit;
?>
という状況になりました。ホントに上のソース以外一切何も書いてません
誰か同じ症状になった方いないですか? 参った、、
PHP5.2.3 winXP apache2です

339 :nobodyさん:2007/12/27(木) 09:19:36 ID:jblLPn+a
ドメインについて教えて下さい。
ドメインを正規表現を使って省こうとしているのですが、

このようなドメインが有効なのですが、
ドメインの2番目で3文字以上ないといけないのではないでしょうか?
ドメイン名の規約とかないでしょうか?
http://www.ms.com/
(モルガンスタンレー証券)

340 :nobodyさん:2007/12/27(木) 09:22:25 ID:???
>>339
宣伝乙

341 :nobodyさん:2007/12/27(木) 09:26:19 ID:???
>>326
例えば
header("Location: ./");
@file_put_contents("nnnnnnn.txt", "test" ,FILE_APPEND);//ファイル作成
とすると、表示はジャンプで終わるが読み込み処理は終わらずにファイルも作られる。

header("Location: http://www.yahoo.co.jp/");exit;
@file_put_contents("nnnnnnn.txt", "test" ,FILE_APPEND);
だとexitで終了され、ファイルは作られない。

exit終了しない場合の後述によるエラー文表記は動作が不安定なので一概に言えない。

if(!$a){header("Location: http://www.yahoo.co.jp/");exit;}
などとしてでも、Locationにexitはセットと考えた方がいい。

でもexitつけたら動作しないというのは初耳。

342 :nobodyさん:2007/12/27(木) 09:27:56 ID:NgfmXqR6
>>315
>>317
>>333

313で質問したものです、
ご回答ありがとうございました。
javascriptを勉強してみたいとおもいます。


343 :nobodyさん:2007/12/27(木) 09:29:13 ID:???
んなもんRFC読めよw

344 :nobodyさん:2007/12/27(木) 09:33:20 ID:???
>>305
SESSION使うと「戻る」が使えなくなるから、ユーザーがウザがるよ。
COOKIEでいいんじゃない?
めっちゃ重要なセキュリティーが必要?

345 :nobodyさん:2007/12/27(木) 10:40:08 ID:???
> SESSION使うと「戻る」が使えなくなる

んなこたーない

346 :326=305:2007/12/27(木) 10:41:55 ID:k02W1D9g
>>341
ありがとうございます 結局これは僕の環境の異常という他ないんですかね?
php.iniで自動的に全ファイルに共通読み込みさせる機能がONになってるのかと思い
チェックしたんですがそれも問題ありませんでした…
もうあきらめてjavascript出力してリダイレクトさせることにしました
回答いただいた方、ありがとうございました

>>344
「戻る」が使えないってどういうことでしょう?
本やサイトを見るとセッションを使ってるので自分もそうしようと思っただけで
深い判断はありませんでした
今は>>309さんのいう“誰がログインしているのかという「ログインユーザのID」を管理”
の方が気になってたんですが、、
「めっちゃ重要なセキュリティー」は意識してません 普通の会員システムで十分です

なんかすみません、わからないことだらけで

347 :nobodyさん:2007/12/27(木) 12:00:59 ID:???
多分 >>344が言いたいのは、複数のページにまたがって一連のデータを入力させるような場合、
「戻る」操作をするとブラウザ上の表示とセッション変数の状態が食い違うことがあることを
言ってるんだと思う。

セッションの使い方によっては「戻る」操作を禁止するのは定石だけど、セッションを使うと
ページ戻りできないって話はおかしい。少なくもログインチェックに使用しただけで、
ページ戻り出来ないってのはあんまりすぎる。

348 :344:2007/12/27(木) 13:16:55 ID:???
わかりにくくてごめん。
SESSIONをかましたページでデータの送信等をした際に
ブラウザの戻るや進むで前の画面に戻ろうとすると
「セキュリティーのどうたら」ってエラー文がでて、送信前の入力データが消えたり
新しくリロードしないとページが表示されないようになる。

セッション値とかは関係ないけど、上記理由で
普通の感覚で「戻る」と「進む」が使えないから
ID新規作成とか、何回もログインしない部分だけをセッション使用にして
ログインとか一般的な頻発部分はクッキーの方がいいと書いたのです。

例、ログインID-A(mailとか)/Passの入力→ID-B(Noとか)と暗号化したPASSのクッキーを発行
各ページでクッキーによって本人承認を行い、1日〜4週間&ログアウトでクッキーを消滅させる。

暗号化といえばPHP5の初期設定のままで、md5(一方向)、base_64encode、
urlencode、mb_convert_encoding以外に使えるものってないですかね?
C++のXORみたいなのは用意されてないのかな・・・

349 :344:2007/12/27(木) 13:21:00 ID:???
追記。凡ミス。 ×base_64encode → ○base64_encode

350 :nobodyさん:2007/12/27(木) 13:29:34 ID:???
>>348
なんかめちゃくちゃ言ってない?



351 :nobodyさん:2007/12/27(木) 13:36:30 ID:???
>>349
XORを用意ってビット演算子はあるんだからそれくらいの手間をケチるなよ。
...rot13とかなかったっけ? あとcryptも


352 :nobodyさん:2007/12/27(木) 13:43:05 ID:???
>ブラウザの戻るや進むで前の画面に戻ろうとすると
>「セキュリティーのどうたら」ってエラー文がでて、送信前の入力データが消えたり
>新しくリロードしないとページが表示されないようになる。

これはフォーム送信した後に戻ろうとしたら「再送信します OK?」っていうアレのこと?
セッションとは関係なくない?

353 :nobodyさん:2007/12/27(木) 13:45:14 ID:???
>> 348
てゆーかセッションわかってる?

354 :nobodyさん:2007/12/27(木) 13:50:22 ID:???
>>348
それセッションとかクッキーとか全然関係無いだろw

355 :nobodyさん:2007/12/27(木) 14:17:26 ID:???
>>348
それは、no-cache の話じゃないかな。sessionを使うと自動的にno-cacheにしてしまうような
フレームワークがあっても不思議じゃないけど、一般論として、sessionを使うとno-cacheになると
いうものではない。

>>344は、特定の環境で教えられたんじゃないかって気がする。

356 :nobodyさん:2007/12/27(木) 14:17:58 ID:???
str_rot13() = 英字の置き換え ABCDE ←→ NOPQR
crypt() = 一方向ハッシュ化 $1$Ze5.ut0.$9k5PF7d6Wogm4fjfYcViE0

cryptってmd5より有名だったと知らなかったPHP暦1年の俺が来たよ
str_rot13についてはマイナーすぎて今知った

357 :nobodyさん:2007/12/27(木) 14:31:22 ID:???
「crypt」って、エニグマと同じ方式による暗号化プログラムで、暗号化キーで復号できるものだと
思ってたんだけど、最近はcryptといえば単方向ハッシュであるものを言うようになったのか。

確かにPHPのマニュアルにも単方向って書いてあるし、何時の間にって感じなんだけど。

358 :344:2007/12/27(木) 14:40:06 ID:???
>>344>>348デス。
>>347>>350-355
暗号化について解説ありがとうございます。早速今日から使ってみます。
sessionについても丁寧なご説明ありがとうございます。
今調べたらまさにその通りでした。>>305>>346さんゴメンナサイ。

2年も間違ったまま覚えてたってやっべえ恥ずい。
どれぐらいって恥ずかしい性癖とかばれたぐらい?
反省してROMに戻ります。

359 :nobodyさん:2007/12/27(木) 15:45:25 ID:???
>>357
たぶんUnixとかネットワーク関係プログラマ界隈では
crypt といえば crypt(3) のこと。
PHPのcryptもcrypt(3)の単なるラッパのはず。

>>356
rot13はたぶん一番古くて一番有名なそして一番弱い暗号だぞ!
シーザーさんをなめるな!


360 :nobodyさん:2007/12/27(木) 16:52:06 ID:???
http://ytteter.so.land.to/ts/up59.jpg

361 :nobodyさん:2007/12/27(木) 18:06:57 ID:???
>>359は、宝塚出身の女優と一緒だな。
本人は芝居上手だと勘違いしているが、押し付けがましいパフォーマンスに過ぎない。


362 :nobodyさん:2007/12/27(木) 18:27:55 ID:???
だが、ぬくぬくと生き伸びていたりする。

363 :nobodyさん:2007/12/27(木) 23:42:07 ID:???
過疎ってルナ

364 :nobodyさん:2007/12/28(金) 01:18:59 ID:x8Ui+5jw
質問です。

次元数が任意の多次元配列で、その配列の要素数を数えながら
次元を自動的にさかのぼる処理をさせたいと思っています。
具体例を書くと、配列 $arr が下記のようなものだったとして、

Array
(
[0] => hoge
[1] => Array
(
[0]=> koke
[1]=> moke
)
)

$arr[1]の要素数(2)を取得できるようにしたいと思っています。

この時、この配列の内容は事前に分かっていないため、
count($arr) が1以上ならば、その要素を調べ、
更に配列あればが自動的に添え字を付加して(ここでは「count($arr[0])」として)
上位次元を走査するような方法を思いつきました。
そこで変数に格納した添え字を配列変数に付加したかったのですが、
その方法が分かりません。
感覚的には、 $index = "[1]"; だったとしてとして
$arr{$index}{$index} が 「 $arr[1][1] 」となり、「moke」を取得する、
というような動作を希望していますが、$index が文字列のためうまくいきません。
何か他に望む処理を行える方法があるでしょうか?
よろしくご教示ください。

365 :nobodyさん:2007/12/28(金) 01:28:39 ID:???
>>364
>>$index が文字列のためうまくいきません。
ここの意味が分からない。

$arr["$index"]["$index"]
って話じゃなくて?

366 :nobodyさん:2007/12/28(金) 01:33:23 ID:???
>>364
$index = "[1]";
と、絶対使いにくそうな値を敢えて仮定する理由は?

367 :nobodyさん:2007/12/28(金) 01:35:23 ID:???
つまり

$index = "1";
$arr["$index"]["$index"]

みたいな形がやりやすい方法です。

368 :364:2007/12/28(金) 01:53:54 ID:???
>>365-367
みなさんレスありがとうございます。
その問いが来るかな、とは思っていたのですが、うまく説明できませんでした。

>>364 の例でいうと、$arr が何次元の配列なのか事前に分からないところが
ネックとなります。
つまり処理を行う前に最高次元が「$arr[]」なのか、「$arr[][]」なのか、
「$arr[][][]」なのかが分からないため、決め打ちできないということが問題です。
そのため、「[]」の角括弧を最初から書いておく「$arr["$index"]」方式では
対応できないので、角括弧を後から自由に付加できるような形を
求めていたというわけです。

例えば、$i = 1; で $index = "[$i]"; ならば、
$arr . $index で「 $arr[1] 」となって欲しいと思っていました。
このような目的を満たす処理方法はありますでしょうか?
引き続き、よろしくお願いします。


369 :nobodyさん:2007/12/28(金) 02:02:57 ID:???
最初から分かってたらなら書けと・・

再帰的な手法は分かる?
「再帰的関数 php」とかでググッてみるといい


370 :nobodyさん:2007/12/28(金) 02:08:52 ID:???
home/hoge
home2/hoge4
home/hoge2
home/hoge3
home2/hoge5

これを
-----------------
home
 hoge
 hoge2
 hoge3
home2
 hoge4
 hoge5
-----------------
と表示させられるように配列処理したいのですが、
良い方法思いつきません、
お助けを。

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

372 :364:2007/12/28(金) 02:21:01 ID:x8Ui+5jw
>>369
申し訳ありません。
>>364 の「この時、この配列の内容は事前に分かっていないため」で
伝わるかと思い込んでしまいました。
再帰処理については知っています。
今回の処理も再帰処理で、と思っていたのですが、
どうしても配列変数の添え字を自動生成する方法の所が分からなかったのです。
何か方策はありますでしょうか?

>>371
重ね重ね失礼しました。追記いたします。
サーバのOS: 「Windows2000」
Webサーバ: 「Apache 2.0.59」
PHPのバージョン: 「4.4.7」
以上の環境です。
なおこの環境は、OS 以外は利用しているレンタルサーバのスペックを
模倣したもので、この環境下での動作を求めています。

373 :nobodyさん:2007/12/28(金) 03:04:11 ID:???
>>370
/でexplode()してキーと値に宛えば。

>>372
どうにも難しい処理だから微妙だけど
eval("return \$arr{$index};")
とか。

374 :370:2007/12/28(金) 03:17:21 ID:???
> キーと値に宛えば

詳しくキボンヌ

375 :nobodyさん:2007/12/28(金) 04:14:13 ID:???
「キーと値に使えば」と予想

つまり
home2/hoge4
を分割して
$hoge["home2"] = "hoge4";
って形にすれ


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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

377 :255:2007/12/28(金) 06:41:54 ID:rEU4Fn3c
環境fedora7

<?php


if (mail('ac10@fb3.so-net.ne.jp','titile','message'))


echo "<b>SUCCESS TO SEND</b><BR>";


else


echo "<b>fail to mail</b><BR>";


?>
でfail to mailという方が出ます。



恐らくphp.iniの設定が不足しているんだと思いますが、
php.iniのsendmail_pathについてまだよく分かっておらず、とりあえずデフォのままにしてます。
ポート25は開けていませんがこれでいいのでしょうか。

378 :255:2007/12/28(金) 06:46:39 ID:rEU4Fn3c
sh: /usr/sbin/sendmail: Permission denied
というログが出ました。

379 :255:2007/12/28(金) 06:48:30 ID:rEU4Fn3c
が、lrwxrwxrwx root root system_u:object_r:bin_t sendmail
とあったので別にパーミッションは良いかと思います、、、もしかしたら
bin_tをhttpd_sys_content_tにしなければならないですか。

380 :nobodyさん:2007/12/28(金) 07:40:41 ID:???
/var/logを (って/var/logがFedoraにあるのかしらないけど)
良く調べてみたら。隅々まで。

http://bbs.fedora.jp/read.php?FID=2&TID=1428

ちょっとググってみたかんじだと SELinuxがどうのこうの、って
話がいくつか出てくるけど

381 :255:2007/12/28(金) 08:10:09 ID:rEU4Fn3c
有力情報ありがとうございます。SELinux disableにして実行してみたんですけど、やはりfail to mailでした。
ろぐ追加です。
[Fri Dec 28 06:18:37 2007] [notice] caught SIGTERM, shutting down
[Fri Dec 28 06:18:48 2007] [notice] SELinux policy enabled; httpd running as context user_u:system_r:httpd_t:s0
[Fri Dec 28 06:18:48 2007] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Dec 28 06:18:48 2007] [notice] Digest: generating secret for digest authentication ...
[Fri Dec 28 06:18:48 2007] [notice] Digest: done
[Fri Dec 28 06:18:49 2007] [notice] Apache/2.2.6 (Unix) DAV/2 mod_layout/4.0.1a PHP/5.2.4 mod_ssl/2.2.6 OpenSSL/0.9.8b configured -- resuming normal operations
sh: /usr/sbin/sendmail: Permission denied
もう少しググってみることにします。selinuxには気づきませんでせした。

382 :255:2007/12/28(金) 08:12:50 ID:rEU4Fn3c
あ、ほんとくだらない質問になるんですが、メル鯖立ててなくてもmail関数使えますよね。
sendmailpathの意味するところが分からなくて、、、

383 :nobodyさん:2007/12/28(金) 08:19:14 ID:/nAj2CVO
会員システム作ってるんだけど kaiin/以下が会員領域だとして
その中にあるファイルはリファラがkaiin/内のファイルじゃない場合強制ログアウト
という処理にしたらセキュリティ上がるかなぁと思ってます
この処理をする場合、効率よくリファラチェックする方法はないでしょうか?
ひたすらif&orでやってけばいいんでしょうが何かみっともないので、、

また、そもそも↑みたいなことやっても意味ないですか?
ファイルをDLして手を加えられる侵入に対策したいと思ったんですが…

384 :nobodyさん:2007/12/28(金) 08:30:44 ID:???
>>382
mail()を実行すると、
 Windowsの場合 : メールサーバに接続する(ネットワーク越し) - php.iniのSMTP
 Linuxなど : メール送信用のプログラムを呼び出す(プログラムの引数) - php.iniのsendmail_path
のように、OSごとに違った挙動をする。

>>383
ノートン先生のようにデフォルトの設定でrefererを送信しないものもある。
>ファイルをDLして手を加えられる侵入に対策したい
何をしたいのかよく分からないが、特定の人言い換えりゃ特定の情報を送信してくるブラウザを
識別するには次のどれかだろうね。
・cookie
・セッション(まぁ、これもcookieの場合もあるが)
・WebサーバのBasic認証とかDigest認証とか

385 :255:2007/12/28(金) 08:34:06 ID:rEU4Fn3c
>>384 ありがとうございます。
windows:mail()→ネットワークに接続
linux:mail()→mail program呼び出し→ネットワークに接続
みたいな感じに理解しました、(あってるかな。。。)

386 :nobodyさん:2007/12/28(金) 08:47:14 ID:/nAj2CVO
>>384
ノートンてリファラ送信しないんですか じゃあダメですね、やめときます
ありがとうございました

387 :nobodyさん:2007/12/28(金) 11:31:19 ID:???
今日で仕事納めです。
早速、phpも仕事を土管とやってみましたが、
やはりmb_系の関数が絵文字処理で悩まされました。

mb_をpregと統一して総合文字列関数として再スタートさせるべきではないでしょうか?
それでは、来年も良いお年をお過ごし下さい。

388 :nobodyさん:2007/12/28(金) 12:52:34 ID:gGF8c07c
処理が遅い時、ブラウザを勝手に閉じると、
サーバーのスクリプトが終了したときに返却されるレスポンスのパケットはどこにいくのでしょうか?

サーバーの動作が遅いのですが、このパケットが行き先を失って、
ルーター内で無限ループしているってことは考えられますか?

送信要求しておいて、ページが表示されないからって閉じられるクライアントをどうにかしたいのですが、そうもいかないので。

389 :nobodyさん:2007/12/28(金) 13:04:54 ID:???
横槍だが、メール送信を使いたいだけで自鯖にメール機能をインストする必要はなっしん。
無料レンタ鯖にデータ飛ばして、そこから送信して、必要なら戻ってくるようにすれば無問題。
使い慣れないメール設定やほーと設定で悩んでいる人にオススメ。

390 :nobodyさん:2007/12/28(金) 13:14:14 ID:???
>>388

http://jp2.php.net/ignore_user_abort
http://ja.wikipedia.org/wiki/Transmission_Control_Protocol


391 :nobodyさん:2007/12/28(金) 17:13:21 ID:???
こんど、
「天皇陛下もやっているPEARの活用講座」
という本を出すことになりました。宜しくお願いします。

392 :nobodyさん:2007/12/28(金) 18:45:23 ID:???
こんど、
「将軍様もやっているPECLの活用講座」
という本を出すことになりました。宜しくお願いします。

393 :nobodyさん:2007/12/28(金) 21:09:26 ID:41MrW7lh
作成中のシステムが
[notice] Parent: child process exited with status 3221225477 -- Restarting.
というメッセージをApacheのログに残して落ちるようになってしまいました。

多分、再帰に失敗してスタックオーバーフローか何かになっているのだと思うのですが、
例えば例外をスローしてくれたりする設定のような、場所を特定する良い方法はないでしょうか?

環境は、PHP5.2 Apache2.0 WindowsXP です。
フレームワークは使用していません。

ご存知の方、教えてください。よろしくお願いします。

394 :nobodyさん:2007/12/28(金) 22:07:55 ID:/nAj2CVO
自力で会員システム作ってるんですが、二重ログインという問題があることに気づきました
この問題はどう解決したらいいんでしょう? 同一IDで後から入ってくる人を有効にすべき?
仕組みとしてはどういうものが理想ですか?

今考えてるのは、会員情報の管理テーブルに、現行のセッション名を保持するカラムを作って、
各アクションごとにブラウザが持ってるものと保存してるセッション名とを比較する
→不一致の場合強制ログアウト
というものです
どうなんでしょう ご意見いただければ幸いです よろしくお願いします

395 :nobodyさん:2007/12/28(金) 22:12:07 ID:???
>>394
その処理が君のシステムにおける理想ならそれでいいじゃん

396 :nobodyさん:2007/12/28(金) 22:20:49 ID:???
>>395
調子に乗ってんじゃねーぞ。このニート!!!

397 :394:2007/12/28(金) 22:28:49 ID:/nAj2CVO
自分のアイディアや知識に自信がないから聞いているので、
それでいいじゃんと言われても…
念のためググって調べて考えた上で質問させてもらいました
不快にさせたんならすみません

398 :364:2007/12/28(金) 22:38:10 ID:???
>>373
返事が遅くなりました。
試してみたら eval() で希望の動作が実現できました。
どうもありがとうございました。

399 :393:2007/12/28(金) 22:44:02 ID:41MrW7lh
例外を生成し、そのスタック長がある上限を超えていたら throwする関数を作って、
これを再帰している箇所に埋め込む事にしました。

400 :nobodyさん:2007/12/28(金) 22:44:30 ID:???
>>394
二重ログイン禁止したいならそれでいいんじゃないかな。

後から来た方を拒絶しようにも、明示的にログアウトしてくれる人ばかり
じゃないしね。
一定時間経ったらログアウトって仕組みにしても、その間最ログインできないし。

401 :nobodyさん:2007/12/29(土) 04:16:39 ID:???
冬休みを利用して、何か簡単なwebアプリを作ってみようと思い
開発を始めてみたのですが、一点質問させていただいてもよろしいでしょうか。

a.html 内でに b.phpというファイルをインクルードし、a.html内でb.phpの関数を呼び出し
実行したいのですが、うまく実行することができずに悩んでいます。

<?php include('./b.php'); ?>
<html><head></head>
<body>
<?php b_test(); ?>
</body>
</html>

といった具合です。
b_testの内容は、単純に文字列をprintしているだけなのですが
実行されず、ブラウザ上でソースを見るとそのままphpの記述が
残されている状況です。
各所で見て回った簡単なカウンタ等のアプリで同様の記述を行っているものもあり
自分も同じようなことをやってみようと思ったのですが、何か問題がありますでしょうか。
もしくは、他にhtml内でphpの関数を呼び出すのに適したやり方はございますでしょうか。
ご教示お願いいたします。

環境は、windowsXPにxamppを使用し、apache2.2.6とphp5.2.5をインストールしています。
mb_string系を有効にした程度で、ほとんど設定ファイルは弄っていません。

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

403 :nobodyさん:2007/12/29(土) 04:45:44 ID:???
.htmlという拡張子をphp扱いで動かさないとphpは実行できんよ


404 :394:2007/12/29(土) 09:51:58 ID:???
>>400
わかりました ありがとう!

405 :nobodyさん:2007/12/29(土) 11:02:50 ID:???
softbankの一部の機種じゃ
GETでマルチバイト文字を送れないので
変換すべきと思われるンですが
どんな関数でそれをやればよいですか?>

406 :nobodyさん:2007/12/29(土) 11:25:51 ID:???
マルチバイトが送れんつーか、逆に送れる文字つーのが決まってるんでURLエンコードすりゃええ

407 :405:2007/12/29(土) 11:39:30 ID:???
>>406
なるほど。
サンクスです。

408 :nobodyさん:2007/12/29(土) 15:00:42 ID:???
なんか、ここのスレってサービスが劣化したなぁ。
前は、質問したら丁寧に教えてくれたし5分以内には的確な回答がきた。

今は、質問するとニートとか氏ねとかそんなのが殆ど。
ストレスを発散する場所を間違えないで欲しい。

409 :nobodyさん:2007/12/29(土) 15:08:36 ID:???
なんだよもう…面倒くさいなあ。
仕方ない、面倒見てやるか

>>408
ニートとか氏ね

410 :nobodyさん:2007/12/29(土) 15:11:14 ID:???
ま、2chだし

411 :nobodyさん:2007/12/29(土) 15:11:36 ID:???
>>408
ニートとか氏ね

412 :nobodyさん:2007/12/29(土) 15:36:55 ID:???
相手をニートと断定しないあたりに、プログラマらしさを感じた。

413 :nobodyさん:2007/12/29(土) 16:14:18 ID:???
>>408
もしお前がニートなら氏ねそうでないならイ`

414 :nobodyさん:2007/12/29(土) 17:09:40 ID:???
if( >>408 == 'ニート' ){
   $anser = '氏ね';
}else{
   $anser = '市ね';
}


415 :nobodyさん:2007/12/29(土) 17:11:40 ID:???
>>414
ちょwwwwおまwwwスペルがwww俺氏ねorz

416 :nobodyさん:2007/12/29(土) 17:27:27 ID:???
確かに、誰からも参照されなくなったニートオブジェクトは、ガベージコレクトされるべきではある。

417 :nobodyさん:2007/12/29(土) 17:56:44 ID:tcLiBXaz
array("Apple" => "りんご", "Orange" => "みかん");
という連想配列を、
array('Apple' 'りんご' 'Orang' 'みかん');
という配列に変換したいんですが、どうすれば良いでしょうか?

418 :nobodyさん:2007/12/29(土) 18:06:27 ID:???
>>417
foreach ($array as $key => $val) {
$new_array[] = $Key;
$new_array[] = $val;
}

419 :nobodyさん:2007/12/29(土) 18:19:38 ID:???
$a = array("Apple" => "Ringo", "Orange" => "Mikan");
$b = array_keys($a);
$c = array_values($a);
$d = array();
for ($i = 0; $i <= count($a) - 1; $i++) {
array_push($d, $b[$i], $c[$i]);
}
print_r($d);

420 :nobodyさん:2007/12/29(土) 18:23:01 ID:tcLiBXaz
すげー
天才だ!
有り難うございます。

421 :419:2007/12/29(土) 18:23:05 ID:???
配列の値がローマ字に変わってたのはさっきなぜか日本語がうてなかったからだ
気にしないでくれ

422 :nobodyさん:2007/12/29(土) 18:48:40 ID:WA8jVfpj
PHPでコンストラクタのvisibility (public とか privateなどの指定) をsuper classより厳しく出来ないのは何で?
仕様というより、何の不都合があるのかという意味で。

423 :nobodyさん:2007/12/29(土) 18:52:50 ID:???
継承じゃねーからだろ

424 :nobodyさん:2007/12/29(土) 18:56:45 ID:yIBMpd50
ちりりDUKEの使い方を教えてほしい

425 :nobodyさん:2007/12/29(土) 18:56:45 ID:WA8jVfpj
>>423
むしろ、継承だと出来ないんじゃないの?

426 :nobodyさん:2007/12/29(土) 20:06:36 ID:???
>>414,415
しゅくだいはおわったのかい

427 :nobodyさん:2007/12/30(日) 01:39:18 ID:???
ブラウザからPOSTして送るデータの改行コードって
何に依存するんでしょうか?
CRLFになったり、LFになったりして困ってまつ

428 :nobodyさん:2007/12/30(日) 01:42:14 ID:???
phpでcookieの内容を受け取るにはどうすればええの?
自分でsetしたcookieではなくて、外部鯖から返されるcookieの値を取得したいんだけど


429 :nobodyさん:2007/12/30(日) 01:43:35 ID:???
>>1 も読めないのか。このヴァカども

430 :nobodyさん:2007/12/30(日) 01:46:14 ID:???
事故解決

431 :nobodyさん:2007/12/30(日) 02:34:00 ID:+D3WOxGf
2点質問させていただきます。


1. htmlに書くname属性に日本語を利用しても問題無いでしょうか?

2. htmlのフォームからphpの変数に変換するツール等は無いでしょうか?
    例:html:<INPUT type="text" name="name"> ⇒ php:$name = $_POST['name'];

432 :nobodyさん:2007/12/30(日) 02:50:16 ID:???
>>431
2はextract()でできるけど危険

433 :nobodyさん:2007/12/30(日) 02:57:27 ID:???
>>431
foreachで回せ
つか$_POST['name']で使うのがそんなに嫌なのか

434 :nobodyさん:2007/12/30(日) 02:57:38 ID:???
1 は html 的には何の問題もない

435 :nobody:2007/12/30(日) 03:15:18 ID:8C08uScj
PHPで多次元配列の値を半分だけとりだすのはどうすればいいでしょうか?

436 :nobodyさん:2007/12/30(日) 03:21:54 ID:???
半分だけってどう半分なの

437 :nobody:2007/12/30(日) 03:35:21 ID:8C08uScj
$a["a"][0]=>1
[1]=>1
[2]=>0
[3]=>1
[4]=>0
の$a["a"][0],$a["a"][1],$a["a"][2]の値です



438 :nobodyさん:2007/12/30(日) 03:38:15 ID:???
forなりforeachなりで回して半分まで行ったらbreakすりゃいいでしょ

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

440 :nobodyさん:2007/12/30(日) 05:31:14 ID:???
>>439
お前いい加減うざいよ
わざわざ>>1貼る必要ないだろ
冬休みだからって何回繰り返してるんだよ池沼
せめて>>1嫁ぐらいに留めとけ

441 :nobodyさん:2007/12/30(日) 05:38:36 ID:???
>>440
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

442 :nobodyさん:2007/12/30(日) 05:44:17 ID:???
予想通りの流れだな
さすが冬休み

443 :nobodyさん:2007/12/30(日) 06:49:36 ID:???
冬休み (笑

444 :255:2007/12/30(日) 07:51:44 ID:G9WMPe2A
やはりsendmailの設定を何もしていないとまづいんじゃないかと思ってます。が、、、

445 :255:2007/12/30(日) 08:01:43 ID:G9WMPe2A
でも #sendmail 〜 でメールは送れました。。。混乱しながら1週間くらい悩んでます。

446 :nobodyさん:2007/12/30(日) 08:41:04 ID:???
そのスクリプトでエラー表示させてる?
エラーが出てて表示させないで真っ白になってるんと違う

447 :255:2007/12/30(日) 08:52:27 ID:G9WMPe2A
出せてます ifでmail()がtrueを返したらok falseならno をprintさせてます。

、、、先ほど少し進展がありました。
#setenfoce 0
#restorecon -R /var
を設定することでメール関数がokを返すようになりました。
上のはselinuxを無効にするという意味で、下のは、、、どういう意味だろう。
(cd http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=20619&forum=10
でもメールがこない。。。httpdのerroelogを見てみると
Domain of sender address apache@localhost.localdomain
→やっぱりsendmailの設定をいじらないといけないのかなと思い、
とりあえず#sendmail 自分のメルアド
〜〜〜
としてsendmailをテストしてみると無事に自分のアドレス(プロバイダからもらったやつ)に届く

sender addressを設定しなくてもグローバルな環境でメール送れるじゃん
となって今また悩んでいるところです。

448 :255:2007/12/30(日) 08:54:11 ID:G9WMPe2A
失礼しました。Domain〜のところですが、Domain〜〜〜does not exitです。



449 :nobodyさん:2007/12/30(日) 09:06:56 ID:???
Fedoraって /var/log/maillog とかないの?

あとif文でOKとか、そういうんじゃなくて、
PHPが吐くwarningとかnoticeとかもみてるのかな?

> Domain〜〜〜does not exit

does not exist? 自分宛に送ったメイルの差出人も localhost.localdomainに
なってるのかな?

450 :255:2007/12/30(日) 09:46:25 ID:G9WMPe2A
maillogの内容です。基本的にerrorlogと同じようなことがエラーになってま
す。
Dec 30 08:39:28 localhost sendmail[4414]: lBTNdBJQ004412:
to=<:::::::::@fb3.so-net.ne.jp>, ctladdr=<apache@localhost.localdomain>
(48/48),
delay=00:00:17, xdelay=00:00:17, mailer=esmtp, pri=120328,
relay=mxin2.ms.so-net.ne.jp.
[202.238.83.12], dsn=5.1.8, stat=User unknown
Dec 30 08:39:28 localhost sendmail[4414]: lBTNdBJQ004412:
lBTNdSJQ004414: DSN: User unknown

>>Does not exitst
自分宛(?.so-net.ne.jp)に送ったメールの差しだし人が
localhost.localdomaiになってる可能性大です。
この場合やはりsendmailの設定を変更すべきなのでしょうか。
上にも書いた通り端末からsendmailを利用して自分宛(?.so-net.ne.jp)に
送った場合成功するので、
どこを変更すればいいのかで悩んでいます。


451 :nobodyさん:2007/12/30(日) 10:04:09 ID:???
もう完全に PHP とはかけ離れてるな

452 :nobodyさん:2007/12/30(日) 11:35:19 ID:???
なんか面白い関数とかありませんかね
正月っぽいの

453 :nobodyさん:2007/12/30(日) 11:40:04 ID:???
omikuji();
でおみくじが引けるよ!

454 :nobodyさん:2007/12/30(日) 11:48:59 ID:???
php_logo_guid()だろ、、、常考

455 :nobodyさん:2007/12/30(日) 11:59:43 ID:???
>>450

> メールの差しだし人が
> localhost.localdomaiになってる可能性大です。

俺mail関数使ったことないんで間違ってるかもしれないけど

これ見た感じだと→ http://jp.php.net/manual/ja/function.mail.php

「メールを送信する際には、必ず From ヘッダが含まれていなければなりません」
とかいてあるけど「可能性大」ってのは自分で「localhost.localdomail」のメアドを
指定した、っていう意味?

456 :455:2007/12/30(日) 12:13:57 ID:???
なんか変なこと書いてるな俺。気にしないで

457 :nobodyさん:2007/12/30(日) 12:28:12 ID:???
PHPに関係するのは、ctladdrの所だけだぁね。
ctladdr=<apache@localhost.localdomain>
ctladdr - The ``controlling user'', that is, the name of the user whose credentials we use for delivery.
こいつは mb_send_mailの4だったか5番目だったかのパラメータで設定したものが使われる。
指定してなきゃ、sendmailを呼び出したプロセスの所有者が使われるんだったかな。
で、apacheになるっと。

その部分を除いてPHPには全く関係無く、”sendmailを適切に設定していないことが原因” だから板違い。
Linux板か自宅鯖板のsendmailスレで、どういうメル鯖の構成(ISPのメル鯖に全部投げとか)にするかを書いた上で聞けばいいよ。

458 :nobodyさん:2007/12/30(日) 13:13:30 ID:???
ユーザー認証のページの作成をしています。
登録後のIDとPASSの管理をファイルでしようと思うんですが、
セキュリティを向上させるための定石というのはあるのでしょうか。

また、どのようにユーザーがログインする時はPOSTでデータを送信、
その後はセッションでログイン情報を維持という風にしたいのですが
これは特に問題ありませんよね?

459 :nobodyさん:2007/12/30(日) 13:29:12 ID:???
>>458
とりあえず、オライリーの「入門PHPセキュリティ」を読むことを勧める。

460 :255:2007/12/30(日) 16:15:22 ID:G9WMPe2A
不本意ながらこの泥沼から逃げることで一応解決しました。つまりpostfixに移行しました。

461 :nobodyさん:2007/12/30(日) 16:50:41 ID:???
逃げちゃだめ
とりあえず、オライリーの「sendmail」を読むことを勧める。

462 :459:2007/12/30(日) 16:56:03 ID:???
>>461
別に逃げても良いんじゃないの?

463 :nobodyさん:2007/12/30(日) 19:23:36 ID:???
<tr>
<td class="aaa">あああ</td>
<td class="bbb">いいい</td>
</tr>

↑をまるごと変数に入れるにはどうすればいいでしょうか・・・

464 :463:2007/12/30(日) 19:26:45 ID:MvMxVYb6
ID出し忘れました
申し訳ない

465 :nobodyさん:2007/12/30(日) 19:27:27 ID:???
1読め屑

466 :nobodyさん:2007/12/30(日) 19:29:49 ID:???
$hoge = "<tr>\n<td class="aaa">あああ</td>\n<td class="bbb">いいい</td>\n</tr>";
$hoge = "
<<< HTML
<tr>
<td class="aaa">あああ</td>
<td class="bbb">いいい</td>
</tr>
HTML;
";

467 :nobodyさん:2007/12/30(日) 19:33:13 ID:???
>>466は「"」→「\"」で。
下の方法が合ってるかはわからn

468 :nobodyさん:2007/12/30(日) 19:42:11 ID:???
>>466
なんか、色々間違ってる気がする。
http://www.php.net/manual/ja/language.types.string.php#language.types.string.syntax.heredoc

469 :nobodyさん:2007/12/30(日) 20:02:47 ID:1r819gof
聞きたいんですが、php5のマニュアルってどこかでダウンロードできないですか?
昔マンモス本の中身ダウンロードできるサービスがあったような気がするんだけど、
ああいうの今もないでしょうか?
あったら教えてほしいです、田舎に帰って勉強したいんだけど、
でかい本持ち歩くのキツイ、、

470 :nobodyさん:2007/12/30(日) 20:08:55 ID:lUFWIq2Z
MVCでテンプレートエンジン使わずにVIEWをやりたいんだけど
コントローラーで
$title = "タイトル";
require("hoge.php");
exit;
とかみたいなやりかたってダメ?
他に何かいい方法あるかなー?
っていうかviewを別にするならテンプレート使わないといけないのかな?

471 :nobodyさん:2007/12/30(日) 20:12:51 ID:lUFWIq2Z
>>469
ttp://www.php.net/download-docs.php

472 :nobodyさん:2007/12/30(日) 20:18:46 ID:???
>>459
すいませんわがままだと思うんですが
Web上で参考になるセキュリティ対策のサイトというのはないでしょうか・・・

473 :469:2007/12/30(日) 20:24:49 ID:1r819gof
>>471
すごい! ほんとにあったんですね!! 大感謝です
ありがとう!

474 :nobodyさん:2007/12/30(日) 20:33:01 ID:???
>>472
>>1

475 :nobodyさん:2007/12/30(日) 20:38:53 ID:???
>>466
レスありがとうございます
↑の書き方で例を表示することはできたんですが、
自分の場合"あああ"、”いいい”の部分も<?=$hogehoge?>の様に変数になっていて、
このまま実行してもセルの中が空になります
変数に変数を代入しようとしてるのが問題だと思うんですが、どうにかならないでしょうか
ローカルでテストしてる場合OSとPHPのバージョンは自分の環境を書けばいいんでしょうか
WindowsでPHP5.25なのですが

476 :463:2007/12/30(日) 20:39:38 ID:MvMxVYb6
またやってしまった
申し訳ない

477 :nobodyさん:2007/12/30(日) 20:44:11 ID:lUFWIq2Z
>>475
変数を『{}』でくくるか、
文字列と変数を『.』で繋げればいいんじゃない。

478 :nobodyさん:2007/12/30(日) 20:48:41 ID:???
普通にシングルクォートで囲って入れればいい話じゃないのか?

479 :431:2007/12/30(日) 21:24:43 ID:+D3WOxGf
>>432-434
レスありがとうございます。
とりあえずやりたいことは出来そうです。
もう少し勉強してみます。

480 :463:2007/12/30(日) 21:58:49 ID:MvMxVYb6
>>477-478
$hoge="<tr>\n<td class="hoge2"><?=hoge3?></td>\n</tr>";

変数と言うか、<td>〜</td>間にPHPの書式を書こうとするとだめみたいです
<td class="hoge2">のようにタグの中だと効くのですが、<?=hoge3?>は無いものとして扱われてます
<?=hoge3?>を{}や''で囲むとその囲んだ記号だけ表示されます

481 :nobodyさん:2007/12/30(日) 22:00:51 ID:???
俺はシングルクォートで文字列括って改行コードは定数にしてるな
$html = '<a href="hoge.html" onclick="alert(\'ラヴィ\')">'.$hoge.'</>'.NEW_LINE.
'以上ラヴィでした';
こんな感じで書いてるなー

#てーか携帯でソース書くの辛いな

482 :nobodyさん:2007/12/30(日) 22:09:56 ID:???
つーかロジックとビューは分離しろ。
ヒアドキュメントとかアホじゃねーのか。

483 :nobodyさん:2007/12/30(日) 22:22:57 ID:???
ヒアドキュメント使うと、ロジックとビューが混ざるの?
ヒアドキュメントと文字列に差はないと思うけど。

484 :nobodyさん:2007/12/30(日) 22:24:45 ID:???
PHPのヒアは変数展開とかしてくれないから、混ざらないと思う。

485 :nobodyさん:2007/12/30(日) 22:28:09 ID:UcZOMDnE
>>484
展開したと思う。

486 :484:2007/12/30(日) 22:34:14 ID:???
ごめん、勘違いしてたみたい。
自重します。

487 :nobodyさん:2007/12/30(日) 22:35:18 ID:???
配列の展開やオブジェクトの参照はしてくれないけど({}付は省く)
普通に$unkoとかは展開されてる

488 :nobodyさん:2007/12/30(日) 23:08:06 ID:WyJGCA3E
.cgi .plのスクリプトを使いたいのだが
どうすれば いいだろうか?
クリックしても .bat / .exeみたいに 動かないし…

489 :nobodyさん:2007/12/30(日) 23:15:01 ID:???
>>488
スレ違い
PHPからなら
<?php
exec("pl hoge.cgi");
?>
とか

490 :nobodyさん:2007/12/30(日) 23:16:28 ID:???
(;´Д`)

491 :nobodyさん:2007/12/30(日) 23:51:59 ID:???
吹いたwwwwwww

492 :nobodyさん:2007/12/31(月) 00:40:49 ID:???
>>427
クライアントのOSだったと思う
俺はLFに統一してる

493 :nobodyさん:2007/12/31(月) 02:01:26 ID:ye8NBX1l
クッキーにIDとパスがあった場合、
そのままログイン後の画面を表示させるか、
入力フォームに値を入れてボタンを押させるか、
どっちが主流?

494 :nobodyさん:2007/12/31(月) 02:05:01 ID:???
IDはまだしも、パスワードはクッキーに保存しちゃ駄目wwwwwwwwww

495 :nobodyさん:2007/12/31(月) 02:07:28 ID:???
mysqlも穴だらけだなぁと思う今日この頃。
ソフトウェア開発のがリスクがない分楽かもしれん

496 :nobodyさん:2007/12/31(月) 02:22:13 ID:???
>>493
IDやPASSをそのまま入れてる訳ではないけど
ログインしたままが多いんじゃないかな(Googleとかニコ動とかそうだし)

497 :nobodyさん:2007/12/31(月) 03:43:38 ID:???
そこらへんのphpゲーム見て回ってるんですけど
普通にhiddenでIDとPASSをやり取りしてページを移動していますよね、
これってセキュリティ的にどうなんですか?。。

498 :nobodyさん:2007/12/31(月) 03:55:53 ID:???
最悪

499 :nobodyさん:2007/12/31(月) 04:08:11 ID:???
そうなんですか、どこでも普通に使われてるので何かやってるのかと・・・。

ログイン画面でID・PASSを送信、ハッシュ化、
それに応じたハッシュがあればセッションを作成してページ間の移動に利用、
ページを移動したらセッションを破棄、また移動時にセッションを作成、破棄・・・

というの無知ながら考えたんですが、これはセキュリティとサーバーの負担から考えてどうなんでしょう・・・。
どなたかご教授お願いいたします。

500 :nobodyさん:2007/12/31(月) 04:09:21 ID:???
クッキーに保存して良いのはセッションIDのような、ワンタイムパスワードっぽいのだけ。

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

502 :nobodyさん:2007/12/31(月) 04:46:57 ID:???
KY

503 :nobodyさん:2007/12/31(月) 04:59:41 ID:???
いっそのことテンプレをNGワードにしてしまおうか。

504 :nobodyさん:2007/12/31(月) 05:18:46 ID:???
普通に答えてやればいいのに

505 :nobodyさん:2007/12/31(月) 10:13:13 ID:???
自信満々な態度でテンプレを貼り付けてくるバカを見ると失笑を買う

506 :nobodyさん:2007/12/31(月) 14:09:09 ID:ExHZywTc
phpでMySQLからデータを引っ張ってきて、XMLに加工して出力してるんですが、
XMLの加工そのものは成功してて、IEなんかのブラウザで見てる分には問題ないんですが、
Ajaxで非同期受信すると、responce has no propertiesとなってしまいます。
(status=4を受信できないっぽい)

上記のエラーは、FirefoxのFirebagで見てます。
Firebag上は、ちゃんとXMLが取得できてるので、php側からstatusの4を送信できればいいんだと思うんだけど、やり方わかる人っていますか?

507 :nobodyさん:2007/12/31(月) 14:09:53 ID:ExHZywTc
もしくは、Ajax用にphpで動的にXMLの生成を経験した人っておりますか?

508 :nobodyさん:2007/12/31(月) 14:21:09 ID:???
どうせどっかでタイプミスしてんだろ

509 :nobodyさん:2007/12/31(月) 14:21:27 ID:???
質問する時は、せめて「どうすればいいですか?」って聞き方にした方がいいと思いますよ。
わかる人、経験した人ってのは案外多いもんです。

510 :nobodyさん:2007/12/31(月) 14:29:56 ID:ExHZywTc
phpでxmlを出力すると、ヘッダーが違うからっぽいですね。
何を出力すればいいんだろ?

>>508
してないです。

>>509
はぁ・・・


511 :455:2007/12/31(月) 14:32:14 ID:???
> php側からstatusの4を送信できればいいんだと思うんだけど

HTTPのことを全く理解せずにAjaxとかやってるやつって
色々大変なんだろうなー

512 :nobodyさん:2007/12/31(月) 14:33:17 ID:???
ヘッダなら、これで

header("Content-Type: application/xml; charset=utf-8");


513 :nobodyさん:2007/12/31(月) 14:37:06 ID:ExHZywTc
自己レスです。やっぱりヘッダでした。無事解決しました。

514 :nobodyさん:2007/12/31(月) 14:39:10 ID:ExHZywTc
>>511
Ajaxやったことない人からすると、羨ましいですか?

>>512
はい、それです。やっぱ実力のある人は回答をスパッと出しますね。
実力無い人って、なんでウザイんですかね?

515 :nobodyさん:2007/12/31(月) 14:40:39 ID:???
>>514
そうそうお前みたいに質問者の癖に無駄に解答者煽ったりとかな。
本当に勘弁して欲しいわ。早く巣に帰れ。

516 :nobodyさん:2007/12/31(月) 14:43:42 ID:???

「実力のある人は回答をスパッと出しますね」

実力のないやつがえらそうにこういうこと言うのって恥ずかしいなあ。

"responce has no properties"

"Firebag"

この手の注意力散漫なやつはくだらない打ち間違いで時間を無駄にするタイプ。(中学生か?)

ふつーにFirefox使ってりゃ、この手のバカが打ち間違えないように
赤い下線で打ち間違いを教えてくれるのに、それでも間違えるってのは真性だなあ

517 :nobodyさん:2007/12/31(月) 14:45:09 ID:???
恥知らずの中二病が冬休みのお勉強中か?

はやく「php側からstatusの4を送信」してみろよカスが

518 :nobodyさん:2007/12/31(月) 15:11:38 ID:ExHZywTc
>>515-517
そんなに悔しかったんですか?(w
久しぶりに必死な人を見ました。
今年の歳暮れも大変だと思いますが(w 頑張って下さいね。

519 :nobodyさん:2007/12/31(月) 15:23:53 ID:???

Firebag(笑)

> 上記のエラーは、FirefoxのFirebagで見てます。
> Firebag上は、ちゃんとXMLが取得できてるので、



520 :nobodyさん:2007/12/31(月) 15:24:29 ID:???
>>518

随分舐めた態度の奴だなあ

何様のつもりなんだろう

521 :nobodyさん:2007/12/31(月) 15:28:11 ID:???
おまえが何様だ

522 :nobodyさん:2007/12/31(月) 15:28:26 ID:???
          ____
       / \  /\  キリッ
.     / (ー)  (ー)\
    /   ⌒(__人__)⌒ \        上記のエラーは、FirefoxのFirebagで見てます。
    |      |r┬-|    |
     \     `ー'´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

523 :nobodyさん:2007/12/31(月) 15:30:50 ID:???
>>521

「php側からstatusの4を送信」ってのはいつになったらできるの?

524 :nobodyさん:2007/12/31(月) 16:17:17 ID:???
>>521は質問者ではないぞ。
大して解決策も出してない輩が粋がっていて、なんだかなーと。

525 :nobodyさん:2007/12/31(月) 16:18:07 ID:???
          ____
       / \  /\  キリッ
.     / (ー)  (ー)\
    /   ⌒(__人__)⌒ \        php側からstatusの4を送信
    |      |r┬-|    |
     \     `ー'´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /     |r┬-|    | (⌒)/ / / //
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/    だっておwwwwwwwww
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー'´      ヽ /    /
 |    |   l||l 从人 l||l      l||l 从人 l||l  バンバン
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

526 :nobodyさん:2007/12/31(月) 18:23:23 ID:ExHZywTc
今、家の用事から帰ってきました。
まぁリアルで高校生なんですけど、高校生より劣っていることが
そんなに悔しかったんですか?(w

527 :nobodyさん:2007/12/31(月) 18:26:45 ID:ExHZywTc
まぁ高校生でもプログラム歴5年くらいあるからなぁ。
PHPは1年だけど(w
おっさん、めげるな!

528 :nobodyさん:2007/12/31(月) 18:29:44 ID:???
NG推奨 ID:ExHZywTc

いい加減しつこい。

529 :nobodyさん:2007/12/31(月) 18:36:41 ID:???
しつこさは同意だが、おまえも同じくしつこい野郎だな

530 :nobodyさん:2007/12/31(月) 18:38:52 ID:???
5年もやってて>>506か。頭の病気かも分からんね。

531 :nobodyさん:2007/12/31(月) 18:41:07 ID:???
いちいち反応するなよ。はい次の質問者どうぞ。

532 :nobodyさん:2007/12/31(月) 18:41:25 ID:???
極論厨死ね、リアルで死ね

533 :nobodyさん:2007/12/31(月) 18:44:12 ID:3CT6jxWV
投稿フォームでhttp://yahoo.co.jp/のようなアドレスを自動リンクさせるには
正規表現で<a href=""></a>を加えて置換する以外に何か方法ありますか?

534 :nobodyさん:2007/12/31(月) 18:46:14 ID:???
>>533
URLかどうかを判断する方法は正規表現以外でもできるが、結局は置き換えになる。

535 :nobodyさん:2007/12/31(月) 18:52:11 ID:???
URL入力欄を設ける

536 :nobodyさん:2007/12/31(月) 18:58:49 ID:???
>>535
おまいは何を言ってるんだ

537 :nobodyさん:2007/12/31(月) 19:01:45 ID:???
>>536
頭の固い馬鹿だな

538 :533:2007/12/31(月) 19:02:09 ID:3CT6jxWV
>>534-535
ありがとうございました。
都合のいい正規表現を考えるか、探した方が良さそうですね。

539 :nobodyさん:2007/12/31(月) 19:36:21 ID:???
>>537
ちょww質問の意味を汲み取れてない馬鹿はお前だろww
投稿フォームでアドレスの入力があった場合のオートリンクの話をしてるのに
なんでURL入力欄を設けるとかイミフなこといっちゃってるわけ?wwww

540 :nobodyさん:2007/12/31(月) 19:43:39 ID:???
必死な釣り人がいるが
低学歴は数年後にちゃんとみじめな人生送ることになってるから
放置しておいてやろう
家が金銭的に小康状態を保っているから
他にやることが無いから書き込みをしているんだ
今の彼は最高に輝いている

541 :nobodyさん:2007/12/31(月) 19:47:16 ID:???
煽らんでいいからおとなしく自分の非を認めて黙って引っ込んどけよ。

1. URL入力欄
http://www.example.com/ (自サイトのURL)

2. 投稿フォーム
こんにちは。よかったらサイトに遊びに来てください。
最近 http://www.2ch.net/ にもたまに出没しています。


1と2で張られたリンクには関連性はないだろ。

542 :nobodyさん:2007/12/31(月) 20:41:37 ID:???
>>538
正規表現関連、英語で良ければ
ttp://regexlib.com
が便利。

543 :nobodyさん:2007/12/31(月) 22:34:43 ID:zQ+yU81P
たとえば
<name>ひろゆき</name>
って文字列があるとして、ここから「ひろゆき」だけを抜き出すには、どんな方法がスマートなの?
substrとstrposでゴチャゴチャ処理するのが嫌なんだけど。

544 :nobodyさん:2007/12/31(月) 22:36:38 ID:???
>>543
>>542

545 :nobodyさん:2007/12/31(月) 22:36:53 ID:???
>>543
DOM
SimpleXML

546 :nobodyさん:2007/12/31(月) 22:46:18 ID:zQ+yU81P
>>545
xmlって言ってないのに気を遣ってくれてありがとう。
simplexml使ってみます


547 :nobodyさん:2007/12/31(月) 23:01:32 ID:fLI7N5P/
インクルードさせて使うファイルが直接ブラウザで開かれたときに
エラーを返す方法ってありますか?

そもそもそんなこと気にしないで良いんでしょうか?

548 :nobodyさん:2007/12/31(月) 23:04:14 ID:???
.htaccessとかでインクルードさせる鯖アドレスだけを許可すればいんじゃね。
order deny,allow
deny from all
allow from localhost

みたいな

549 :nobodyさん:2007/12/31(月) 23:07:17 ID:???
ドキュメントルートの上に置けよと

550 :nobodyさん:2007/12/31(月) 23:07:40 ID:???
includeする時は別にHTTPでアクセスする訳じゃないから
localhost許可する必要すらないよ。

普通に全て拒否すればおk

551 :nobodyさん:2007/12/31(月) 23:12:28 ID:???
おいらはクラスや関数にして、直接呼び出しても出力や処理が実行されない形で書くから、
そういうのは気にして無いな。

その他には、他の人と重複するけど、
・Webサーバから直接アクセスできない場所に置く
・htaccessを使うなどして、アクセスを制限する
・設定ファイルなどで定数を設定して、インクルードファイル内でそれを確認
ってところかな。

552 :nobodyさん:2007/12/31(月) 23:22:44 ID:???
Webサーバからアクセスできない場所に置いたらincludeできねーだろw

553 :nobodyさん:2007/12/31(月) 23:26:57 ID:???
まぁ所有者と権限の設定をきちっとしろよという事だな


554 :nobodyさん:2008/01/01(火) 00:01:03 ID:???
あけおめ

555 :nobodyさん:2008/01/01(火) 00:03:26 ID:QS3lzF/U
くわしい解説ありがとう
勉強になりました

あけましておめでとうございます!

556 : 【中吉】 【1298円】 :2008/01/01(火) 00:42:52 ID:???
<?php echo "A Happy New Year !!\n"; ?>

557 :nobodyさん:2008/01/01(火) 01:54:00 ID:mia1J22w
PHP5の正規表現について質問です。
PHP5.2.5 (cli) を使用しています。

1. PHPスクリプトのエンコードはUTF-8
mb_regex_encoding('UTF-8');
mb_internal_encoding('UTF-8');
2. http://2ch.net/ を fsock で取得(これは問題なし)
3. mb_convert_encoding で UTF-8 に変換(これも問題なし)
4. その文字列を正規表現で処理…(ここで問題発生)

//if (mb_eregi('<div[^>]*>(?:(?!</div>)(?:.|\s))*?利用者各位', $body, $matches)) // 動かない(エラーも吐かずに停止状態になる)
if (mb_eregi('<div[^>]*>(?:(?!</div>)(?:.|\s))*?利用者各位', $body, $matches)) // 動く
print_r($matches);
else echo 'NO MATCH';

正規表現的に問題は無いと思うのですが…
「(?!</div>)」を消したり、「(?:.|\s)」を「(?:.|s)」や「.」にすると動きます。
「.」が改行にマッチするので、「.」に置換すればいいのですが、何故この様な事になるのか解りません。
何か無限ループ的なことになっているような気も…

558 :nobodyさん:2008/01/01(火) 02:58:34 ID:mia1J22w
確認用ソースです。[\r\n] でも発生する事があるようです。
http://abc.s65.xrea.com/prox/wiki/?plugin=attach&pcmd=open&file=mb_eregi_test.php&refer=%A5%A2%A5%C3%A5%D7%A5%ED%A1%BC%A5%C0

559 :nobodyさん:2008/01/01(火) 03:19:28 ID:mia1J22w
PHP4.4.7だと正常に動作しました。
MLog: [PHP-users 29514] Re:UTF-8、正規表現で全角スペースがヒットしないことがある?
http://mlog.euqset.org/archives/php-users.php.gr.jp/29514.html
見たいなのも有るようなので、仕様(納得行かないのでバグのような気がしますが)でしょうか・・・?

560 :nobodyさん:2008/01/01(火) 03:21:45 ID:???
>>559のURLは関係無かったようです

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

562 :nobodyさん:2008/01/01(火) 04:48:03 ID:???
>>561
そろそろいい加減にしないとアク禁されんぞ

563 :nobodyさん:2008/01/01(火) 06:09:31 ID:???
PHPで、既存のクラスにメソッドを追加することはできませんか?
RubyやPythonやJavaScriptでは、既存のクラスに対してあとからインスタンスメソッドやクラスメソッドを追加できるんですが、同じことをPHPでしようとして、やり方が分からず困ってます。
なおこの質問はPHP批判ではなく純粋に質問なので、「Ruby使えやボケ」とかはなしでお願いします。

564 :nobodyさん:2008/01/01(火) 06:13:35 ID:???
>>557
その現象が発生する $body はどんなの?
なるべく短いのを書いてみて。

565 :nobodyさん:2008/01/01(火) 06:18:22 ID:???
>>563
PHPをハックすればできるんじゃない?
ていうか既存のクラスいじるとかトリッキーなことしないで、
継承してからいじればいいと思う。
クラスの再利用ってそういうものでしょ。

566 :nobodyさん:2008/01/01(火) 06:45:56 ID:???
>>565
継承すると別のクラスになります。
使おうとしいてるライブラリがクラス名を固定しているため、他のクラスは使えません。
factory methodとかDIコンテナを使っていればいいのですが、そうではないので、継承では解決できません。


567 :nobodyさん:2008/01/01(火) 06:52:45 ID:???
単純な興味なんだけど
何のクラスにどういうメソッドを追加しようとしてんの?

568 :nobodyさん:2008/01/01(火) 06:59:41 ID:???
>>557
止まってるんじゃなくて、マッチングに時間がかかってるだけみたい。
対象文字列を短くしたら、数秒で終わるようになった。
たぶんeregi()のマッチングアルゴリズムがまずいんだろう。

UTF-8でいいなら、mb_eregi()のかわりにpreg_match()を使って、パターンに u オプション使えばいい。

それから、質問するときは現象が発生する最小限のコードにしてほしい。
getPage()とかいらんから、対象文字列を短くしてコードに貼付けるべし。

569 :nobodyさん:2008/01/01(火) 07:02:35 ID:???
つかあえてeregi使う利点ってあんの?

570 :nobodyさん:2008/01/01(火) 07:03:40 ID:???
>>567
privateやprotecedになっているインスタンス変数に対して、publicなアクセッサを定義したいというだけです。
他人が作ったまずい設計のクラスを、なんとかして使わなければいけないときに、RubyやPythonだとなんとかできてしまうので、同じことがPHPでもできたらいいなと思って。

571 :nobodyさん:2008/01/01(火) 07:19:12 ID:???
ふーん、ま無理だから自力で何とかするのがいいかと

572 :nobodyさん:2008/01/01(火) 07:37:33 ID:9i91PKAG
皆さんあけおめです

php_qrってのを使おうと思ったんですが、インスコまではやったんだけど
php_output_from_zvalがみつかんねぇってこと言われました
php_output_from_zvalってなんのパッケージ入れればいいんですか?


573 :nobodyさん:2008/01/01(火) 07:46:35 ID:???
PHPのバージョンが合ってないんじゃね

574 :nobodyさん:2008/01/01(火) 07:54:18 ID:9i91PKAG
>>573
php4なんですが、php_qr-0.1.0.tgzとphp_qr-0.1.3.tgzを試したんですが出来ませんでした。
php4ではどのバージョンを使えばいいんでしょうかね?

とりあえずエラーメッセージ載せておきます

Warning: dl(): Unable to load dynamic library '/usr/lib/php4/qr.so' - /usr/lib/php4/qr.so: undefined symbol: php_output_from_zval in /var/www/html/index.php on line 3


575 :nobodyさん:2008/01/01(火) 09:04:48 ID:???
>>564,568
有難うございます。色々試してみた所、仰るとおり、
PHP5だと何故か異常に時間が掛かるだけで(PHP4だと一瞬)、固まっている訳ではなかったようです。
どういう表現&対象文字列だと遅くなるのかがよく解らなくて困りますが…

一応、テストに使用したスクリプト、対象のソース、結果を纏めた物を用意してみました。
http://abc.s65.xrea.com/prox/wiki/?plugin=attach&pcmd=open&file=mb_eregi-test.zip&refer=%A5%A2%A5%C3%A5%D7%A5%ED%A1%BC%A5%C0

後、異常に遅い表現は、preg_match + i,s,uオプション ではマッチしないようです(PHP4.4.7のmb_eregiだとマッチする)。
もう訳が解りません…

576 :nobodyさん:2008/01/01(火) 09:27:18 ID:???
>>574
そりゃドキュメントなりリファレンスなりreadmeなり見れば書いてあるんじゃないの
あとは作者に聞け

577 :574:2008/01/01(火) 09:54:04 ID:???
しょうがないからコード書き換えた
php_qr.cの594行目のチェックをはずしたらうまく行ったっぽい


578 :nobodyさん:2008/01/01(火) 10:08:13 ID:???
>>575
//if (preg_match('{<div[^>]*>(?:(?!</div>)(?:.|[\r\n]))*?管轄裁判所)}isu', $body, $matches)) // NO MATCH(何故一致しないのかわからない…)

i,s,uはパターン修飾子だから、 /正規表現/isu の書式じゃないの?
http://jp.php.net/manual/ja/reference.pcre.pattern.modifiers.php



579 : 【大凶】 【1876円】 :2008/01/01(火) 10:15:38 ID:???
自分で正規表現考えながら書くのは結構好きなんだが、
他人が書いてるものを見るとわけがわからなくて嫌いになりそうになるよな。

580 : 【大凶】 【1905円】 :2008/01/01(火) 10:24:01 ID:???
そこでコメントですよ

581 : 【末吉】 【1693円】 :2008/01/01(火) 10:35:04 ID:???
大凶 2連チャンとかw

582 :nobodyさん:2008/01/01(火) 10:56:15 ID:???
>>578 は関係ないっぽい。忘れて。

583 : 【吉】 【1505円】 :2008/01/01(火) 13:54:05 ID:???
この板の連中は運悪いなw
今年もくだらねぇ質問して、時には回答にまわって勉強させてもらうぜ。
ヨロシクな

584 :nobodyさん:2008/01/01(火) 14:43:07 ID:???
コーディングが冗長になると、スクリプトの動作速度も鈍くなったりする?

585 :nobodyさん:2008/01/01(火) 15:02:55 ID:???
とんでもない冗長なら遅くなるね

586 :nobodyさん:2008/01/01(火) 15:06:59 ID:???
理論的には単純にコードが長くなれば誤差程度だが当然影響は出る
ただ100行のコードが1万行になるわけではないだろ?
せいぜい数行〜数十行増えるだけのはずだ
そうなると体感動作速度は一緒だし実測しても変わらない
気にする必要はないからわかりやすく書くよろし
間違っても条件文で読みにくい三項演算子なんて使うなよ

587 :nobodyさん:2008/01/01(火) 15:31:35 ID:???
行数で判断できるもんじゃないよ

588 : 【豚】 【542円】 :2008/01/01(火) 15:33:09 ID:???
2chの書き込みは行数で判断できるから3行以上の長文はスルーだな

589 :nobodyさん:2008/01/01(火) 15:35:00 ID:???
>>588にスパムフィルタとか作らせたら凄いことになりそw

590 :nobodyさん:2008/01/01(火) 15:35:06 ID:???
気になるならプロファイラ使って調べれば良いんじゃね。
あとで使い勝手とか教えてくれたら嬉しい。

591 :584:2008/01/01(火) 15:56:16 ID:???
>>585-590
レス、thx.
ちょっと安心したわ。
プロファイラってのも使ってみようと思う。
ありがとう。

592 :nobodyさん:2008/01/01(火) 16:14:59 ID:???
>>588
豚ってwwwwwwww

593 :nobodyさん:2008/01/01(火) 17:29:15 ID:F2c2JMdr
setcookieのドメインの所に、
クッキーを与えるドメインとは別のドメインを書いても
別のドメインでそのクッキーを使えるようにはならないのでしょうか?
やってみたけど上手くいかないので、やり方が悪いのか根本的に出来ないのかを知りたいです。

594 :nobodyさん:2008/01/01(火) 17:31:31 ID:???
$sql = "SELECT id,pass FROM login WHERE id = '".$id."' AND pass = '".$password."'";
$result = mysql_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql);

この記述でクエリの送信に失敗しました と出るのですが
記述が間違っているんでしょうか?

595 :nobodyさん:2008/01/01(火) 17:43:33 ID:???
>>593
多分だけど、それが可能だとしたら他のドメインのcookieを書き換える事が可能ということに
なるので、ブラウザ側が許可しない気がする。

596 :nobodyさん:2008/01/01(火) 17:49:21 ID:???
>>594
mysql は使ってないから、詳しくは知らないけど、これで調べれば少しは判るかも。
http://jp.php.net/manual/ja/function.mysql-error.php

597 :nobodyさん:2008/01/01(火) 18:02:26 ID:???
>>596
その関数を使ってみたところ
単純にデータベース接続が完了してなかったみたいでしたorz

くだらない質問にありがとうございました。

598 :nobodyさん:2008/01/01(火) 19:52:12 ID:gtyeLFx+
少人数利用のBBSで
setcookie("pass", $pass,time()+60*60*24*30);
$pass = $_COOKIE["pass"];
if($pass == abc){BBSを表示}
を使って、簡単なログイン制限を掛けてるのですが、
この処理のあるbbs.phpを直接表示した場合、IE7.0でもFireFoxでも全く問題なく処理されるのですが、
bbs.phpをIE7.0でインラインフレームを使い入れ子にした場合、
フォームの処理を行うとクッキーがクリアされて、またpassの入力画面に戻ってしまいます。
FireFoxでは問題ないようなのですが、インラインフレームの利用で何か特別な問題が起こることはあるのでしょうか?

599 :nobodyさん:2008/01/01(火) 21:46:01 ID:???
IEとFirefoxではcookieが共有されるセッション管理の単位が違うせいかな。

同じPCから複数のユーザとしてログインする必要がないなら、 setcookieで path とか domain も指定すれば
cookieが共有される気がする。

600 :nobodyさん:2008/01/01(火) 22:55:23 ID:???
javaでいう static intializer はPHPではどう書きますか。

class Foo {
 static Map table = new HashMap();
 static { // static initializer
  table.put("<", "lt");
  table.put(">", "gt");
  table.put("&", "amp");
  table.put("¥"", "quot");
 }
}

601 : 【大吉】 【314円】 :2008/01/01(火) 23:02:33 ID:???
>>1

602 :598:2008/01/01(火) 23:04:36 ID:gtyeLFx+
>>599
ここでも仕様が違うんですね。
他の方法を試してみます、どもでした。

603 :nobodyさん:2008/01/01(火) 23:30:56 ID:???
Parse errorでunexpected T_PAAMAYIM_NEKUDOTAYIMとか出てきた
ハァ?何これフザケテンノ?
http://php.liukang.com/manual/ja/tokens.php

ぐぐってみたら同じこと思った人がいたようで
http://p0t.jp/mt/archives/2006/08/paamayim_nekudo.html

604 :nobodyさん:2008/01/01(火) 23:43:58 ID:???
ユダヤの陰毛でつね

605 :nobodyさん:2008/01/02(水) 03:58:58 ID:xlZOpAZW
画像レスできる板とできない板のある掲示板の画像レスできない板で
投稿フォーム改造して画像レスを送ってみたら
アップロードされちゃったんですが見ることができません。
これをHTMLやヘッダに手を加えて画像レスが見れる状態のHTMLを送って
もらうことはできますでしょうか?
PHPを使ってる掲示板なのでここで質問してみました
よろしくお願いします

606 :nobodyさん:2008/01/02(水) 04:25:51 ID:zb153+EZ
12345678790
みたいな可変する文字列のn番目に文字列"\n"を挿入する場合、
substrで切り出してシコシコ成形する以外にスマートな方法ありませんか?

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

608 :nobodyさん:2008/01/02(水) 06:24:31 ID:XSzMXv90
sqlへのselectの結果(オブジェクト化したもの、$obj)に対して、
$obj->NAMAE で名前カラムのデータが求められるとします(カラム名は必ず大文字)
で、上記の呼び出しを関数化したとき
function yobidashi($name){
 $name=strtoupper($name);
 return $obj->name;
}
としても上手くいきません
$obj->の後に続くのはカラム名でなければいけないからなんですが、
どういう書き方にしたらいいのかわかりません
どなたかアドバイスお願いします

609 :nobodyさん:2008/01/02(水) 06:46:53 ID:???
>>608
$obj->$name

610 :nobodyさん:2008/01/02(水) 07:34:16 ID:???
4:44 のテンプレ貼り ktkr

611 :nobodyさん:2008/01/02(水) 07:51:34 ID:???
手動スクリプト乙w

612 :nobodyさん:2008/01/02(水) 08:26:14 ID:???
>>608
いまいち状況がワカラン中でレスをするが・・・・
return $obj->$name;

これでどう?
関数呼び出す時は呼び出し方の例も記載すると
レスし易いと思う



613 :nobodyさん:2008/01/02(水) 08:56:01 ID:???
>>608

return $obj->__get($name);

ではどうですか?

614 :nobodyさん:2008/01/02(水) 08:59:39 ID:???
>>608
そのオブジェクトを返してる部分にメソッドを追加する

615 :nobodyさん:2008/01/02(水) 09:49:13 ID:???
>>608
global $obj;

616 :nobodyさん:2008/01/02(水) 10:06:19 ID:???
>>608
evalを使うしか思いつかない。
http://jp.php.net/manual/ja/function.eval.php

return eval('return $obj->'.$name.';');
ってかんじかな。


617 :nobodyさん:2008/01/02(水) 10:12:07 ID:???
ありがとうございます
単純に$obj->$nameでOKでした すみません、クダ質で…
evalとかglobalとか調べてついでに覚えます
ほんとにありがとう

618 :616:2008/01/02(水) 10:17:01 ID:???
>>617
そんな書式があったのか...。
逆に勉強になった。ありがと。

619 :nobodyさん:2008/01/02(水) 12:44:05 ID:???
Active Perlをインストールしないと 「.pl」は動かないの?

620 :nobodyさん:2008/01/02(水) 12:52:33 ID:???
答えてるやつも大分初心者だな

621 :nobodyさん:2008/01/02(水) 14:12:54 ID:???
そんな下らない事を書かずにはいられない620は人生初心者だな

622 :nobodyさん:2008/01/02(水) 16:30:00 ID:???
>>617
一番覚えるべきなのは「可変変数」かと

623 :nobodyさん:2008/01/02(水) 19:05:49 ID:???
>>619
Windowsでの話ならその通り。あくまで中身がPerlだったらの話だけど。
別にActive Perlじゃなくてもいいけど、定番だし普通これかな。
Linuxがどうかは知らない。

んでPHPと関係ないんで、次からはスレちゃんと選んでね。

624 :nobodyさん:2008/01/02(水) 19:27:01 ID:???
そういえば長いこと*.plのうんこアイコン見てないな

625 :nobodyさん:2008/01/02(水) 20:42:30 ID:lW+cmhhe
>>623 ありがとうございます 
PHPとPerlを同じものと勘違いしていました すみません 

626 :nobodyさん:2008/01/02(水) 21:55:46 ID:XSzMXv90
jpgファイルが存在するかどうか確認する関数ってないですか?

627 :nobodyさん:2008/01/02(水) 22:08:15 ID:???
file_exists

628 :nobodyさん:2008/01/02(水) 22:08:22 ID:???
どういう使い方を想定してるのかよく分からんので、適当に推測して答えると、

想定用途 : 得ろサイトの直リンクのURLを文字列として持っていて、
       それがまだ取得可能かどうか調べたい

答え : getimagesize() で充分。
    getimagesize(そのURL)、あるいはファイルを取得してから、getimagesize()

629 :nobodyさん:2008/01/02(水) 22:14:46 ID:???
クラスを使って、プログラムしてる人どれくらいいる?

掲示板を作ってみようと思うんだけど、クラス……というかオブジェクト指向がいまいち理解出来ない。
やっぱし、これくらい使いこなせないと掲示板自作するのは早いかな。

630 :626:2008/01/02(水) 22:19:01 ID:XSzMXv90
>>627
ありがとう
if(file_exists("http://jp2.php.net/images/php_snow.gif")){
echo "ファイルあったよ";
}else{
echo "ファイルなかった";
}
というのを試したんだけど、「なかった」と言われます
マシン内の画像で試してもそういわれます。絶対存在してるのに、、
何が原因でしょうか?
php5 apache2 winXPでやっています

631 :nobodyさん:2008/01/02(水) 22:37:06 ID:???
>>629
(゚Д゚)ノ ァィ

632 :nobodyさん:2008/01/02(水) 22:37:22 ID:???
志村〜

633 :nobodyさん:2008/01/02(水) 22:38:43 ID:???
>>629
bbsなんてそんなの理解せんでもできるよ
ただ後のメンテを考えるなら覚えた方が良いかも

あとから直すのなんてめんどくさくてやってられねーとなる

634 :nobodyさん:2008/01/02(水) 22:39:17 ID:???
クラスは使うけどオブジェクト指向の概念なんかわざわざ理解しようと思ったことはない

635 :nobodyさん:2008/01/02(水) 22:47:04 ID:???
>>629
覚えれば便利。

同じような処理を書くのにウンザリしてきたら、嫌でも辿り着くから心配ないよ。

636 :nobodyさん:2008/01/02(水) 22:51:42 ID:???
>>629
関係ない。
単なる概念、プログラムする対象の捉え方の違い。

637 :629:2008/01/02(水) 22:54:29 ID:???
レスありがとう。

荷がだいぶ軽くなったよ。
いろいろ、PHPの参考書とかネット上のOOP関連の文献を読み漁ってみたけど、やっぱりモヤッとしてた。

何にせよ、ありがとう。

638 :nobodyさん:2008/01/02(水) 23:10:10 ID:???
functionで関数作ってるんですけど
クラスとオブジェクト指向っていうのはそれとはまた違ったものなの?

639 :nobodyさん:2008/01/02(水) 23:12:39 ID:???
OOPっていうのは読んでいるだけじゃ身に付かない。
実際に自分でコードを書いてみて体で体験して初めて感覚がつかめる。
その感覚こそが大事。つまりオナニーだけしていてはダメで、
実際に女に入れてみなければ真理はつかめないということ。
そして真理をつかんだなら、ぜひオウム真理教の再興を祈念し、入信することを勧めたい。

640 :nobodyさん:2008/01/02(水) 23:16:11 ID:???
オウムなんか再興しないでいいだろ
>>639がセックス教団作ってよ

641 :nobodyさん:2008/01/02(水) 23:18:30 ID:???
>>638
関数でハンドルを取る奴があるとするだろ?
例としてファイルハンドルとしようか

fread(file,num)

↑をOOPではハンドルを主体にして呼ぶ↓という感じ

file->fread(num)

メソッドに操作対象を渡すか、操作対象からメソッドを呼ぶかという違い

642 :nobodyさん:2008/01/02(水) 23:19:38 ID:???
>>638
class と function はまったく別物。
http://www.php.net/manual/ja/language.oop5.basic.php

643 :nobodyさん:2008/01/02(水) 23:25:06 ID:EFH6C9iG
大規模なもん書く予定なんで
クラスについておぼえときます・・・

644 :nobodyさん:2008/01/03(木) 01:26:52 ID:PuYJW96T
$array = array("aaa","bbb","ccc")

をechoした時

"aaa","bbb","ccc"

と表示させたいのですが、forを使う以外の方法はありませんでしょうか?

645 :nobodyさん:2008/01/03(木) 01:31:37 ID:???
>>644
echo '"'. implode('","', $array) .'"';

646 :644:2008/01/03(木) 01:35:00 ID:???
>>645
出来ました!こんなやり方があったんですね。
勉強になりました。ありがとうございました。

647 :nobodyさん:2008/01/03(木) 01:35:13 ID:???
>>645
俺が投稿しようとしてた内容と1文字も違わなくてワロタ

648 :nobodyさん:2008/01/03(木) 02:08:57 ID:???
何に使うんだろうな

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

650 :nobodyさん:2008/01/03(木) 08:23:14 ID:9iX7ULgu
http://phpspot.org/blog/archives/2007/01/php_71.html

ここにある?filename=**で**をincludeするのが危険なのはわかったんだけど、こういうのも危なかったりする?
$text = htmlspecialchars($_GET['text']);
$textfile= './txt/'.$text.'.txt';

readfile($textfile);

651 :nobodyさん:2008/01/03(木) 09:11:37 ID:???
>>650
text=../../hogehoge みたいなアクセスも出来てしまう気がする。
ディレクトリ指定が不要なら basenameを使うべき。
http://jp2.php.net/manual/ja/function.basename.php

あとファイル名に対して htmlspecialchars を使うのに、意味があるのかちょっと疑問。


652 :nobodyさん:2008/01/03(木) 09:15:33 ID:???
>>651
ためしにtext=../../hogehoge

htmlspecialchartは元ソースに$textがなかったときに{$text}がみつかりませんでした。って表示してるからだ。ごめん消し忘れた。

653 :650:2008/01/03(木) 09:21:41 ID:9iX7ULgu
ああ、途中で書いちまった。
ためしにこのphpファイルと同じディレクトリにaaa.txtを置いて?text=../aaa ってやってもWarning: readfile(./txt/../aaa.txt) [function.readfile]: failed to open stream: No such file or directory in C:\www\aaa.php on line *。になる。


654 :650:2008/01/03(木) 09:25:59 ID:9iX7ULgu
あ、ごめん、aaaよみyこめた。basenameつかってみるー

655 :650:2008/01/03(木) 09:47:57 ID:9iX7ULgu
うーん、、困った。
できればディレクトリ指定でファイルを読み込みたいんだけど、どうにかならないものですかね・・・

656 :650:2008/01/03(木) 09:56:17 ID:9iX7ULgu
eregで$textに.が入ってたら不正扱いにするとかでおkかな?
ごめん俺書き込みすぎだ。

657 :nobodyさん:2008/01/03(木) 10:16:03 ID:???
一般論として、不正な文字列かチェックするのではなく、正当な文字列かチェックするようにしたほうが良い。

658 :nobodyさん:2008/01/03(木) 10:27:05 ID:???
if(eregi("^[a-z0-9_]+$",$text)){
$textfile = './txt/'.$page.'.txt';
}else{
$textfile= './txt/error.txt';
}

こんなかんじになりました。大丈夫かな・・・
>>651>>657ありがとう。

659 :626:2008/01/03(木) 10:33:10 ID:uA4WBKbO
すみません、>>630の問題ですが、何が原因に考えられるでしょうか?
お手隙の方、意見いただけると嬉しいです お願いします

660 :nobodyさん:2008/01/03(木) 10:40:55 ID:???
>>659
>>628 >>632 が不憫すぎる。

原因は
http://jp.php.net/manual/ja/function.file-exists.php
http://jp.php.net/manual/ja/wrappers.http.php


661 :nobodyさん:2008/01/03(木) 14:38:25 ID:sD9SHXAa
セッションにユーザーのログイン情報を書き込み、ページ間のやり取りで使用してるんですが
これだと、セッションを破棄・ブラウザを閉じるかしない限り、
下記のように、他のページへ一旦移動してまた戻ってくることができますよね

ログイン画面→ID・PASS認証・セッション発行→専用ページ→他の見知らぬサイト→専用ページ

見知らぬサイト へ行ったら
専用ページへ直接入れないようにしてしまいたいんですがどういう手があるんでしょうか。
ちなみにセッション管理でやりたいんですが。。

662 :nobodyさん:2008/01/03(木) 15:45:13 ID:???
Cache-Control no-cache

663 :nobodyさん:2008/01/03(木) 16:03:13 ID:???
no-cache してもsession はサーバ・クライアント共に残ってる気がする。

664 :nobodyさん:2008/01/03(木) 16:16:18 ID:???
>>663
「気がする」じゃ、何の説得力もない。
学生ならバカ学生で済むが、社会人でそんな安い了見で仕事しているなら死んだ方がいい。
お前は人間の屑。

665 :nobodyさん:2008/01/03(木) 16:20:29 ID:???
>>664
まあまあ私のオッパイでも揉んで元気だしてよ

666 :>>661:2008/01/03(木) 16:21:10 ID:???
no-cacheはセッションに関係ないみたいですね。

667 :nobodyさん:2008/01/03(木) 16:25:54 ID:???
読解力がない人は人生楽しそうな気がする。なりたくはないが、うらやましい。

668 :nobodyさん:2008/01/03(木) 16:26:17 ID:???
専用ページを表示した時にsession破棄するんじゃだめなの?

669 :nobodyさん:2008/01/03(木) 16:28:33 ID:EPFlyde6
掲示板の書き込み終了後、リロードによる二重投稿防止を行いたいのですが、
ユーザーがフォームよりデータをサーバに送信後、サーバ側での処理についてご質問させていただきます。

1.ユーザーから送られてきたデータと、ログファイルの最終行のデータを比べる
2.1のデータがお互い違うデータであれば書き込み


このような処理を思いつきました。しかし、これだと2回ログファイルを開くことになるのですが、どなたか
もっとこうしたほうがいいっていうのがありましたらご指摘アドバイスお願いいたします。

670 :>>661:2008/01/03(木) 16:29:57 ID:???
>>668
一番重要なこと忘れてました;
専用ページは複数あって、その橋渡しにセッションを使っているんです。
セキュリティ面でセッションがいいかと思って。。

671 :!omikuji !dama:2008/01/03(木) 16:31:50 ID:???
>>661
・セッションデータに時間情報を入れて、専用ページではその時間情報ではじく。
 3秒ルールみたいなものだから厳密には要求通りじゃないが、
 セッションハンドラを使えば簡単に実装できる。
・専用ページ内での遷移は全てAjaxで行い、ブラウザの履歴・キャッシュを無意味なものにする
 めんどくさい
・そもそも外のページに行ってもいいじゃないか。
 重要なデータが漏れるのなら、サイト自体の作りに問題がある

672 :nobodyさん:2008/01/03(木) 16:35:44 ID:???
>>669
http://www.phppro.jp/school/phpschool/vol22/2
ここが参考になると思います

673 :nobodyさん:2008/01/03(木) 16:47:34 ID:???
>>671
うーん
やっぱり難しいんですかね・・・

674 :nobodyさん:2008/01/03(木) 16:54:28 ID:+JPyHTOV
soap関数を使ったアマゾンの検索サービスを作ろうと思っているのですが、
本に付いてきたサンプルを実行させた所、

-------------------------------------------
Fatal error: Uncaught SoapFault exception: [SOAP-ENV:Client]
We encountered an error at our end while processing your request.
Please try again in C:\Program Files\Apache Group\Apache2\htdocs\php\day06-2\
amazon.php:22 Stack trace: #0 [internal function]:
SoapClient->__call('KeywordSearchRe...', Array) #1
C:\Program Files\Apache Group\Apache2\htdocs\php\day06-2\amazon.php(22):
SoapClient->KeywordSearchRequest(Array)
#2 {main} thrown in C:\Program Files\Apache Group\Apache2\htdocs\php\day06-2\amazon.php on line 22
-------------------------------------------

この様なエラーが出てしまい実行できませんでした。
自分でエラーの出てる箇所を追ってはみたのですが、どうしても分からず困っています。
どうかよろしくお願いします。

ソースはこれです
http://ranobe.com/up/src/up248796.zip

675 :nobodyさん:2008/01/03(木) 16:55:06 ID:???
sessionのキーをcookieに保持しないようにすれば?
リンクのみでキーの受け渡しを行えば多分いけるはず
あとついでだからsession_regenerate_idで
毎回sessionid変えてやればいいんでない?



676 :nobodyさん:2008/01/03(木) 17:09:46 ID:???
>>674
21行目でエラー返ってるのに
22行目で変換しようとしてexception発生してるんじゃないかな
http://jp.php.net/manual/ja/function.is-soap-fault.php


677 :>>661:2008/01/03(木) 17:16:44 ID:sD9SHXAa
>>675
ユーザ側が下手しなければセキュリティ的にも一番理想的かもしれない
ちょっと試してみます

678 :nobodyさん:2008/01/03(木) 17:16:53 ID:???
よく分からんがアマゾンからIDとかもらった?

679 :nobodyさん:2008/01/03(木) 17:17:02 ID:???
>>674

ぐぐると色々出てくる、なんなんだろうね。
http://www.google.co.jp/search?hl=ja&q=amazon+soap+We+encountered+an+error&btnG=%E6%A4%9C%E7%B4%A2&lr=

680 :674:2008/01/03(木) 17:52:55 ID:+JPyHTOV
>>676>>679
色々とありがとうございます。参考になります。
もうちょい調べて頑張ってみます。

>>678
確か無くても実行できるはずなので、プログラム側の問題かと思います・・

681 :626:2008/01/03(木) 18:21:01 ID:???
>>660 >>628 >>632
気づかずすみませんでした
いまさらですが、getimagesizeを使わせてもらいました。
が、上手くいきません
とりあえずもうしばらく自分でがんばってみます ありがとうございました

682 :nobodyさん:2008/01/03(木) 18:23:33 ID:???
>>675
それだとさ
セッションIDの含まれたURLを保存しといただけで
直接専用ページに入れるんじゃ?
セキュリティ敵にもよくないんでは

683 :nobodyさん:2008/01/03(木) 18:34:04 ID:???
>>681
自分でやろうとしているところを邪魔して悪いが、うまくいくっぽい。XP/PHP5 実行はコマンドライン。

<?php
checkValidImageUrl('http://jp.php.net/images/php_snow.gif');
checkValidImageUrl('http://jp.php.net/images/php_snow2.gif');

function checkValidImageUrl($url) {
if (@getimagesize($url)) {
echo "$url is valid.\n";
} else {
echo "$url is unvalid.\n";
}
}
?>

684 :nobodyさん:2008/01/03(木) 18:35:43 ID:???
unvalid はないな、invalidだ。恥ずかしい。うぇ。

685 :nobodyさん:2008/01/03(木) 18:39:27 ID:???
file_existsもコケてたから、URLのwrapperをoffにしてるんだろうね。

686 :nobodyさん:2008/01/03(木) 18:45:42 ID:???
>>685
file_exists は stat ファミリで、http/httpsはstatをサポートしてないから、onにしても動かないはず。

687 :>>661:2008/01/03(木) 19:02:25 ID:sD9SHXAa
>>682
そうなんですか
もうなんかどーにもorz

688 :nobodyさん:2008/01/03(木) 19:05:42 ID:???
>>682
過去のセッションを適切に破棄してやればそれは無い
破棄しなくても可能な時間はセッションの有効期限内のみだし

php5.1以降であれば
session_regenerate_id(true);
とすることで自動的に破棄される
あとはリロード時のURLチェック等入れればいける


689 :nobodyさん:2008/01/03(木) 19:07:22 ID:???
つーか専用ページに戻った時にセッション張られてると困ることって何があるの?

690 :>>661:2008/01/03(木) 19:22:21 ID:sD9SHXAa
えーとすいません。
phpゲームを開発してて、戻るボタンでNPCにまた話しかけたりとか無くしたいんです。
(でもこれってSESSION使えば二重処理とか発生することはないなそういえば・・・。)

とりあえず戻るボタン押したり、他のサイト行ったら
ページが表示されないようにできればこちらは万々歳ですから
>>675使ってみます。

691 :nobodyさん:2008/01/03(木) 19:24:01 ID:???
>>690
phpに詳しい奴ちょっと来い
http://yutori.2ch.net/test/read.cgi/news4vip/1199354355/l50

692 :>>661:2008/01/03(木) 19:38:02 ID:sD9SHXAa
>>691
ちょっとみてきます

693 :nobodyさん:2008/01/03(木) 19:44:42 ID:???
>>692
ちょっと見てきますってw
どう見てもお前って分かるから

694 :nobodyさん:2008/01/03(木) 21:56:40 ID:???
変数に出力前の関数を代入することはできないんでしょうか
絶対に出力後が代入されてしまうのですが

695 :nobodyさん:2008/01/03(木) 22:01:34 ID:???
出力前の関数って何

696 :nobodyさん:2008/01/03(木) 22:07:30 ID:???
isset等の値を参照するものです。

697 :nobodyさん:2008/01/03(木) 22:08:14 ID:???
俺用語では分からん

698 :nobodyさん:2008/01/03(木) 22:10:13 ID:???
どういう風に呼び出したいんだよw

699 : ◆SHiMA//5DA :2008/01/03(木) 22:11:06 ID:DBOTcnZE
 

700 :nobodyさん:2008/01/03(木) 22:26:00 ID:???
渡した引数をそのまま返して欲しいということか?

701 :nobodyさん:2008/01/03(木) 22:28:23 ID:???
>>696
どういうことなのかよく分からんが、第6感を働かせて
みたところ、「issetで存在を確認したい変数を関数の
引数に入れて処理させるだけの話じゃないのか」という
結論に達した。

もしくは関数呼ぶ前にifなりなんなりで処理してしまうとか。
……>>694が意味不明でやっぱりよく分からんな。

702 :nobodyさん:2008/01/03(木) 23:02:36 ID:???
MySQL使ってみたんですけどこれってflockとかないんですか?
書き込み多いので変なことにならないか心配すぎる

703 :nobodyさん:2008/01/03(木) 23:04:04 ID:???
ないが大丈夫

704 :nobodyさん:2008/01/03(木) 23:06:12 ID:???
どもっす

705 :nobodyさん:2008/01/03(木) 23:22:41 ID:???
トランザクション処理はやっとけ

706 :nobodyさん:2008/01/03(木) 23:48:17 ID:???
>>702
RDBMSにはファイルのロック以上に緻密なロックの仕組みがあり、それを
知らないと意図通りの更新や読み出しができないことはある。
なのでそれはきちんと勉強した方がいい。
MySQLにどの程度実装されているかは知らないけど、ファイルロックよりは
安全にデータの更新や参照ができるはず。

707 :nobodyさん:2008/01/04(金) 00:52:28 ID:Qh7lpWjF
wordpressでプラグインを自分のページ用に改造しています。
global $wpdb;→$random_idにランダムな記事のIDを指定をし、そのIDに基づいて
query_posts('page_id=urlencode($random_id)');
while (have_posts()) : the_post();
ループ
endwhile
としているのですが、どうもうまくいきません。
query_posts('page_id=urlencode($random_id)');
の部分の書き方がおかしいのかと思いますが、どうすればいいのかわからないのでおしえていただけませんか。

708 :nobodyさん:2008/01/04(金) 04:38:17 ID:eljYrwXk
static変数のアクセスの仕方がよく分からないんですが

error_reporting(E_ALL);
class Hoge
{
    public static $name = 'test';
}
$obj = new Hoge;
echo Hoge::$name; //test
echo $obj->name; //Notice: Undefined property: Hoge::$name
echo $obj::name; //Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM

phpではインスタンスからはstatic変数にアクセスできないってことなんでしょうか?
他にどういう方法がありますか?
(アクセサ使えって話かもしれないけど)

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

710 :nobodyさん:2008/01/04(金) 05:30:54 ID:???
>>708
http://www.php.net/manual/ja/language.oop5.static.php

711 :nobodyさん:2008/01/04(金) 07:51:10 ID:???
php5
windows
preg_replaceでーを比較しようとしたところ
for character class at offsetというエラーがでました。
SJISだからかなとおもってEUC-JPに変換してみましたがやはり同じエラーがでました。

どうしてなんでしょうか?

712 :nobodyさん:2008/01/04(金) 08:39:34 ID:???
>>1 >>709

713 :711:2008/01/04(金) 10:02:56 ID:z4j42IHm
お願いします

714 :nobodyさん:2008/01/04(金) 10:10:03 ID:???
EUC-JPで保存してないんじゃないの
変換ができてないとか
SJISだとエラー吐くよ

715 :nobodyさん:2008/01/04(金) 10:12:04 ID:eljYrwXk
>>710
それは勿論読んだ上の質問。
その例で言うと
print $foo::$my_static . "\n";
がパースエラーになるんだけどなんで?

716 :nobodyさん:2008/01/04(金) 10:49:17 ID:???
>Example#1 static メンバの例
>〜中略〜
>print Foo::$my_static . "\n";

読んだ、ねぇ

717 :nobodyさん:2008/01/04(金) 11:59:14 ID:???
>>716
質問者はインスタンス経由でstaticフィールド変数にアクセスする書式がないのか聞いてるんでしょ?


>>715
でも、

http://www.php.net/manual/ja/language.oop5.static.php
>static なメンバは、インスタンス化されたクラスオブジェクトから アクセスすることはできません (static なメソッドからは可能です) 。

ってはっきり書いてあるから、疑問を持つ余地はないかと。
マニュアルページのサンプルがエラーになるのは、どうかと思うが。


718 :nobodyさん:2008/01/04(金) 12:23:57 ID:???
zendのやってることだからなぁ…
windows のセットアップバイナリは壊れたまんまだし、
.chm のヘルプファイルのキーワード文字化けも一向に直そうとしないし…

719 :nobodyさん:2008/01/04(金) 14:12:45 ID:KzTuE4cg
ファイルの最終更新日取得のスクリプトについてです。
なぜか、下記スクリプトでは動きません。(結果が表示されません。echo date をはずしてもブランクが表示されます)ご教授ください。

<?php echo date("y.m.d H:i:s", filemtime("http://xxx.com/index.php")); ?>

サーバー:さくら
バージョン:4.4.7

720 :nobodyさん:2008/01/04(金) 14:19:29 ID:???
>>719
外部ファイルは取得できない

721 :719:2008/01/04(金) 14:23:57 ID:KzTuE4cg
>>720

/homeからのパスに書き直したら取得できました。
ありがとうございました。

722 :nobodyさん:2008/01/04(金) 16:07:08 ID:WmrqhPBt
文字列に全角スペースが含まれている時、半角スペースに変換します。
strtr($word," "," ");

これで変換出来るのですが、複数の全角スペースが含まれている時、
1つの半角スペースにしたいです。その場合、もっとも簡単な方法(関数)
はありますでしょうか?(forを使う方法は自分で試しました。)

723 :nobodyさん:2008/01/04(金) 17:02:46 ID:HZMzJv1w
UTF8でPHPスクリプトを書いてます。
勉強のため、ユーザーがフォームから名前を入力して、ファイルに記録する簡単なスクリプトを書いて練習してます。
そこで名前は18バイトまでの入力を受付け、それ以上の入力はもう一度やりなおしさせるためのチェックをしてみました。
半角1文字=1バイト、全角文字1文字=2バイトとして計算したいのですが、ここで詰まっております。

UTFなため全角文字を3バイトとなってしまいます。

$_POST['name']←これがユーザーが入力した名前が入ってる変数です
ためしに、フォームより、名前「あああ」を入力してみたとして、6バイトとしてサーバで解釈したいのですが、
echo strlen($_POST['name']);←これだと半角1バイトですが、全角3バイトで9と表示されます。
echo mb_strlen($_POST['name'], "UTF8")←これは3と表示されます。

どなたかご教授お願いします。

724 :nobodyさん:2008/01/04(金) 17:16:24 ID:???
>>723
http://jp.php.net/manual/ja/function.mb-strwidth.php
こいつでどないかな。

725 :nobodyさん:2008/01/04(金) 17:47:17 ID:???
> echo strlen($_POST['name']);←これだと半角1バイトですが、全角3バイトで9と表示されます。
> echo mb_strlen($_POST['name'], "UTF8")←これは3と表示されます。

9バイトで3文字→一文字3バイト、ってわかるのなら
一文字2バイト換算で 3文字 x 2バイト = 6って計算はできるよね

ぢゃあ、strlenで10バイト、mb_strlenで4文字だったら、

「半角」の文字数を x 「全角」の文字数を y と置いて
連立二次方程式の解の公式を使って、
半角の字数と全角の字数を計算して、

x + y * 2 を求めりゃいいんじゃないの
(深く考えずに書いているので、まにうけないでください)

726 :nobodyさん:2008/01/04(金) 18:14:15 ID:???
>>725

>>724の処理のほうがいい

727 :nobodyさん:2008/01/04(金) 18:15:59 ID:???
つーか何でバイト数で切ろうとするのかが謎

728 :nobodyさん:2008/01/04(金) 19:00:42 ID:HZMzJv1w
>>724
ありがとうございます。そのやり方で解決しました。

729 :nobodyさん:2008/01/04(金) 20:11:18 ID:???
>>722
正規表現

730 :nobodyさん:2008/01/04(金) 22:13:43 ID:jY1Gv87H
以前、フォーム入力の修正ページで、
<input type=text name=url value="$_POST['URL']" />
としたんですが、ブラウザのフォームには表示されません
$_POST['URL']にはhttp://www.sample.com/が代入されてるのをソースでは
確認できたんですが、、 なぜでしょうか?またどうしたらいいですか?

731 :nobodyさん:2008/01/04(金) 22:14:29 ID:???
<input type=text name=url value="<?php echo $_POST['URL']; ?>" />

732 :nobodyさん:2008/01/04(金) 22:49:56 ID:mPgF8z0i
オブジェクト指向の概念はなんとなく理解できるのですが、
実際作るとなるとどうやっていいのかさっぱりで…。
色々サンプル(pukiwiki, XOOPS)を見てみたんですが、うーんと唸ってしまいます。

初心者向けのわかりやすい、また短めのサンプルコードなどありましたら教えて頂けませんか?
よろしくお願いします。

733 :nobodyさん:2008/01/04(金) 22:59:18 ID:???
>>732
何となくではなくしっかり理解してから作りなされ

734 :nobodyさん:2008/01/05(土) 00:07:08 ID:???
>>732
zend framework のなにか

735 :nobodyさん:2008/01/05(土) 00:43:33 ID:???
OOP素人なら、Javaやらpythonやらrubyやらのドキュメント読んで実際に触ってみてから戻ってきた方が話が速い。確実に。
「オブジェクト指向をできるようにした言語」と「オブジェクト指向であろうとした言語」には習得効率の差がある

それで学習したら戻ってくればおk
OOPL/デザパタの各種利点・欠点を把握した上で「どうPHP上で生かそうか」という頭になりさえすればいいのだ

736 :nobodyさん:2008/01/05(土) 00:59:45 ID:???
>>735
正論。
OOPを勉強したいならPHPじゃないほうがいいね

737 :nobodyさん:2008/01/05(土) 01:06:52 ID:???
なんで?
PHP5は、けっこうマトモなオブジェクト指向言語だと思うけど。

738 :nobodyさん:2008/01/05(土) 01:12:16 ID:???
理由は735にかいてあるだろ

739 :nobodyさん:2008/01/05(土) 01:15:50 ID:???
これを理由と言うのか。( ´・∀・`)へー

740 :nobodyさん:2008/01/05(土) 01:16:12 ID:???
( ´・∀・`)

741 :nobodyさん:2008/01/05(土) 01:17:42 ID:???
C++のが本格的だと思うんだぜ

742 :nobodyさん:2008/01/05(土) 01:18:08 ID:???
(・ω・)モキュ

743 :nobodyさん:2008/01/05(土) 02:12:44 ID:???
>>741
お調子ぶっこえてんじゃねーぞ、士ね。

744 :nobodyさん:2008/01/05(土) 02:14:09 ID:9q7TTvct
質問させてください。

$file = fopen("ログファイル.txt", "r");

↑のようにログファイルを読み込み、項目の抽出・判定を
行うスクリプトを作っています。
職場のLinux環境では、正常に動くのですが、
家のLinuxでは、ログファイルの読み込みが出来ず、
項目の抽出が出来ず空欄となります。
スクリプト自体にはエラーは出ずに、読み込みだけ出来ていない状態です。
家のlinuxがおかしいと思い、簡単なファイルを読み込む
テストスクリプトで試したところ、テストスクリプトでは、
家のlinuxでも正常に読み込めました。
テストスクリプトも本番用スクリプトをコピーしたもので、
スクリプトの行数が違うくらいで特に差がありません。
(テスト50行、本番700行)
同じ記述なのに、fopen出来たり出来なかったりするような
状況なのですが、解決方法等ありますでしょうか。

745 :代行者:2008/01/05(土) 02:15:45 ID:???
よーわからんけど、フルパスでないと駄目なんじゃなかったっけ?
職場のはパスが通ってるとか。

746 :nobodyさん:2008/01/05(土) 02:16:11 ID:???
権限を確認しれ

747 :nobodyさん:2008/01/05(土) 02:38:18 ID:???
>>735=>>738

748 :nobodyさん:2008/01/05(土) 02:38:54 ID:???
>>745
相対でもおk

749 :744:2008/01/05(土) 02:54:41 ID:9q7TTvct
744です。申し訳ありません。
良く見たら、fopenの問題では無く、preg_matchが動作していませんでした。
テストスクリプトで動作していたのは、eregでした。
職場はPHP4環境ですが、preg_matchが正常に動作します。
家でも最初、PHP4環境で試したのですが、動作せず、PHP5にあげてしまいました。
php.ini等にpreg_matchが正常に動作するような設定等無いでしょうか。
権限も疑ったのですが、パーミッションは755で、グループはrootとなっております。

750 :nobodyさん:2008/01/05(土) 03:43:12 ID:???
PHP4なんてはやく卒業しろよ

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

752 :nobodyさん:2008/01/05(土) 06:37:12 ID:???
>>751
俺様のNGトラップによってあぼんされました。たくさん仕掛けてるから何でひっかかったんだか気になるけどどうでもいい

753 :nobodyさん:2008/01/05(土) 06:40:58 ID:???
>>752も含めてどうでもいいな

754 :nobodyさん:2008/01/05(土) 08:03:39 ID:???
>>737
その話はここで突っ込むと、宗教戦争にしかならないからなー。
何を「マトモ」か言い始めると、JavaもC++も含めてどの言語だって批判の俎上に上げられてしまう。
絶対Smalltalkがどうのとか言い出す奴出て来るしw

PHPは実用的な仕組みを色々借りて来てるけど、良い悪いじゃなく
「なぜこういう仕様になった/なってるのか」みたいな視点で
学びにくい点もあると思うよ。
PHPに斬新な言語であってもらう必要はないから、悪い事じゃないけど。

755 :nobodyさん:2008/01/05(土) 10:07:31 ID:???
PHPをバカにするなよっ!!!!!!!!!!!!!

756 :nobodyさん:2008/01/05(土) 10:10:03 ID:???
宗教戦争おこす気はないけど、個人的には、型の定義、継承、ポリモーフィズムがあれば、OO言語として
十分マトモだと思ってる。

OOであることとは関係がないけど、相性の良さから有ったほうが良いと思うのは、ガベジコレクションと例外処理。

PHPの言語仕様がキレイかと言われれば相当疑問だけど、それとOO言語としてどうかという話は別物だと思ってる。

757 :nobodyさん:2008/01/05(土) 10:21:24 ID:???
中規模担当の俺からすれば継承はイラネ

758 :nobodyさん:2008/01/05(土) 10:26:15 ID:???
なんでこのスレはID表示をきつく言っているんだ?
相当荒れているということか?

759 :nobodyさん:2008/01/05(土) 10:35:43 ID:???
>>758
>>1

760 :nobodyさん:2008/01/05(土) 10:36:47 ID:???
>>756
Webアプリでガベージコレクションいる?

761 :nobodyさん:2008/01/05(土) 10:38:51 ID:???
>>760
C/C++で書いてあっても、一切 free / delete されてなかったら気分悪いと思う。

762 :761:2008/01/05(土) 10:41:17 ID:???
メモリ開放されなくても良いという意味じゃなくて、free/deleteでも十分対応可能という意味なのだったのかな。
Webアプリでも複雑なデータ構造をメモリに持つ場合、やっぱり free/delete だと、ちょっとつらい。

763 :nobodyさん:2008/01/05(土) 11:15:29 ID:???
おまえらフリーで仕事を依頼されるとき、前金とか貰ってる?
自分は1/10くらい貰ってるんだけど

764 :nobodyさん:2008/01/05(土) 11:17:36 ID:???
板違い

SOHOやフリーで細々食え出した奴 27人目
http://pc11.2ch.net/test/read.cgi/hp/1197725381/

765 :nobodyさん:2008/01/05(土) 12:06:41 ID:fWLhflwQ
PHPは、データベースとの連携がいいと良く聞くけれど、
具体的に何処がいいのかが良く分かりません。
例えば、PerlのDBIは、データベースからデータを取る場合、
以下のようなモジュールを使えば非常に便利です。
selectrow_array、selectcol_arrayref、selectall_arrayrefなど。
これ以上の機能のモジュールがPHPにはあるということなのでしょうか。

サイトをいくつか検索してみたのですが、思うような
情報が得られませんでしたので、ここで質問してみました。
ヒントとなるキーワードだけでも良いので、よろしくお願いします。

766 :nobodyさん:2008/01/05(土) 12:17:21 ID:???
>>765
http://jp.php.net/manual/ja/ref.pdo.php
こんなんとか。

767 :nobodyさん:2008/01/05(土) 12:27:21 ID:???
>>765
>PHPは、データベースとの連携がいいと良く聞くけれど

誰が何と比較して言ってるの?


768 :nobodyさん:2008/01/05(土) 12:49:37 ID:???
いいというか前提じゃないの
と言ってみる

769 :nobodyさん:2008/01/05(土) 15:33:31 ID:???
ここ見に来てる細々SOHOどもは巣に帰りやがれクズ

770 :nobodyさん:2008/01/05(土) 15:35:41 ID:???
あたたかい正月を過ごせなかったのか?
イライラしすぎだろw >>769

771 :nobodyさん:2008/01/05(土) 18:28:48 ID:Dao7FJFa
header("Content-disposition: attachment; filename= $fname");
header("Content-Length: ".$content_length);
header("Content-Type: audio/mpeg");
$fp = fopen($file_path,"rb");
while($buf = fread ($fp, 4096)){
echo $buf;
}
fclose($fp);

tp://foo.jp/hogehoge.php?id=xxx にアクセスすると、上記のような感じでサーバー上にあるmp3やmp4を読み込んで
ブラウザ上で再生させたいのだが、ファイルがダウンロードされてしまう。
普通にtp://foo.jp/hogehoge.mp3 とファイルを置いてアクセスするとプレイヤが起動して再生するようにしたいのだが、
どうすれば良いでしょう?Content-Type をいろいろ変えてみたんですが・・・。

772 :nobodyさん:2008/01/05(土) 18:43:16 ID:???
>>771
attachment→inline

773 :nobodyさん:2008/01/05(土) 19:22:00 ID:Dao7FJFa
>>772
ありがとう、うまくいったよ。ほんとうにありがとう

774 :nobodyさん:2008/01/05(土) 20:40:09 ID:???
>>771
readfile($file_path);

775 :nobodyさん:2008/01/05(土) 23:27:19 ID:BCQmUqUR
すいません質問なんですが、URLからそのウェブページのタイトルを
取得することできますか? RSSのないページです。

ヒントがあれば教えてください、検索してみます。
いまんとこ見つけれてません。



776 :nobodyさん:2008/01/05(土) 23:31:51 ID:???
ページを取得する。
取得した内容を調べる。
さぁ、分かんないのはどぉーこだ?

777 :nobodyさん:2008/01/05(土) 23:59:39 ID:???
>>775
get_title_from_url($url);

778 :nobodyさん:2008/01/06(日) 00:56:47 ID:???
ぐぐってしまったじゃないか・・・

779 :nobodyさん:2008/01/06(日) 02:00:46 ID:???
function get_title_from_url($url) {
$contents = file_get_contents($url);
$retAry = array();
preg_match('!<title[^>]*>(.*)</[^>]*>!',$contents,$retAry);
return $retAry[1];
}

780 :nobodyさん:2008/01/06(日) 02:12:36 ID:Njbvq9C9
私が使用しているレンタルサーバで、phpを動かした場合、
以下のコードではipアドレスが取得出来ませんでした。
$ip = $_SERVER['REMOTE_ADDR'];
そこで、以下のように書いてみると取得できました。
$ip = getenv("REMOTE_ADDR");

FORMタグにてPOSTされたものも、以下のコードでは
取得できなかったのですが、
上記getenvにあたる関数はないのでしょうか。
$pos = $_POST['test'];

よろしくお願いします。

781 :nobodyさん:2008/01/06(日) 02:28:45 ID:???
>>780
まさかとは思うがphpのバージョンって4.1より古い?
$_HTTP_POST_VARSとか$_HTTP_GET_VARSん使ってみるといいかも

782 :nobodyさん:2008/01/06(日) 02:52:45 ID:???
phpinfo()

783 :780:2008/01/06(日) 02:54:37 ID:Njbvq9C9
すばやいレスありがとうございます。
教えていただいたコードを使ってみたり、
phpのバージョンをしらべてみたりしてみます。

784 :nobodyさん:2008/01/06(日) 04:36:15 ID:5j6bL89B
if(hoge() && huga()){
echo "両方成功";
}
だとhoge()に成功しないとhuga()を実行してくれませんよね。
hoge()に関係なくhuga()も実行したい場合に以下のコードを書いてみたんですが、あまりスマートじゃない気がします。
何かもっといい方法がありましたら教えてください。

$bool1 = hoge();
$bool2 = huga();
if ($boo1 && $bool2) {
//何かの処理
}

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

786 :nobodyさん:2008/01/06(日) 05:45:53 ID:???
>>784
if ((hoge() && huga()))


かも


787 :nobodyさん:2008/01/06(日) 06:19:05 ID:???
>>784
回答しない癖になんだけど、そうしなきゃいけない実装自体に問題あるよなあ

788 :nobodyさん:2008/01/06(日) 06:39:21 ID:++XQtjId
アップしてあるファイルを、ディレクトリごとZipで一括でダウンロードする仕組みをつくっています
zip.lib.phpやZipArchive()を試しに使用しており、出来る限り一時ファイルを作成したくないため
直接クライアントに送信するよう書いてみましたが、ファイルによってはメモリがきついです
何か上手な方法はありますか?

789 :nobodyさん:2008/01/06(日) 06:46:09 ID:???
メモリを増やす

790 :nobodyさん:2008/01/06(日) 06:56:26 ID:++XQtjId
ありがとうございました

791 :nobodyさん:2008/01/06(日) 10:42:16 ID:???
>>784
やったこと無いけど、 if(hoge() & huga()) みたくビット演算にすれば出来るかも。
まぁ、他の人がコード読んだらバグにしか見えないから止めたほうがいいとは思うけど。

792 :nobodyさん:2008/01/06(日) 11:22:00 ID:???
>>788
メモリ的に無理だと、対処しようが無いでしょ。
例えば、検索結果で100万件が1ページで表示されるようにしないのは、
メモリが関係しているから。
なので、ページを分割するか、途中で処理を無理やり止めてしまうか
しか方法はない。

793 :nobodyさん:2008/01/06(日) 11:39:16 ID:???
レベルひっく

下を見ればキリがないっていうけど、ここの回答者はひどいなw



794 :nobodyさん:2008/01/06(日) 11:47:02 ID:???
よし、じゃ君が「レベルの高い回答」とやらを書いてくれ

795 :nobodyさん:2008/01/06(日) 11:47:08 ID:???
具体的に言わないとね

796 :nobodyさん:2008/01/06(日) 11:54:25 ID:???
>>794
いや、ここは週に1回、優越感をひたるために来てるからw

ってか、おまいら学歴低そうだな。IQ100はあるか?
PHPなんて下等ランゲなんかやってると、そのうちホームレスになるぞw


797 :nobodyさん:2008/01/06(日) 11:56:18 ID:???
じゃ何やればいいの

798 :nobodyさん:2008/01/06(日) 13:51:41 ID:???
学歴とIQの関係を詳しく

799 :nobodyさん:2008/01/06(日) 14:06:59 ID:???
ランゲだとよw

800 :nobodyさん:2008/01/06(日) 14:08:00 ID:???
IQは簡単にいうと (精神年齢)/(実際年齢) * 100 だから、
あんまり上げすぎると、体は大人!頭脳はじっちゃん! になっちまうから注意。な。

PHPの質問マダー?

801 :nobodyさん:2008/01/06(日) 14:56:41 ID:???
スレ違いな事書いているという認識を持てや。低能共

802 :nobodyさん:2008/01/06(日) 14:58:09 ID:???
>>801
ごめんなさい。もう書かないので許して頂けませんか。。
ちなみに>>801さんのIQはいくつでしょうか・・?
やはり801でしょうか。。

803 :nobodyさん:2008/01/06(日) 15:05:59 ID:???

ここにいる人は人間的にもレベルがひくいっすねw




804 :nobodyさん:2008/01/06(日) 15:19:16 ID:???
ヤレヤレだぜ

805 :nobodyさん:2008/01/06(日) 15:25:17 ID:???
>>803さんはどうですか?IQいくつですか?

806 :nobodyさん:2008/01/06(日) 15:27:11 ID:???
>>805

小学校低学年の時、132で学年トップでした。



807 :nobodyさん:2008/01/06(日) 15:50:31 ID:???
さっきから痛々しい会話してる奴らは全員IQ30位だなw

808 :nobodyさん:2008/01/06(日) 15:55:37 ID:???
うpろだによっては平気で何百Mも処理しているし
$_FILESの内容、処理だけでも大変そう
実メモリ、memory_limitの値を見てみたい

809 :nobodyさん:2008/01/06(日) 16:09:02 ID:???
PHPってアップロードファイルは一時ファイルに展開するんでしょ。
少ないメモリで動かすのは不安があるけど、実メモリそんなに使うかな。

810 :nobodyさん:2008/01/06(日) 16:10:38 ID:???
まさか全部メモリに読み込んでからファイルに書き出すとでも思ってるのかね。
まさか・・ね。

811 :nobodyさん:2008/01/06(日) 16:19:39 ID:???
コード埋め込まれているかファイルの内容までは
流石にチェックしてないのかな
自分のところengine offとかにしても、経由して他のところ
いたずらされるかもしれんけど

812 :809:2008/01/06(日) 16:24:04 ID:j3gkesVW
>>810
昔読んだ Java Servletで作ってあったやつはそういう作りだったから、ありえない話でもない。

最近のは知らないけど、ServletAPIだとリクエストはメモリに展開されて受け渡されたから、
servlet側ではどうしようもなかったはず。

813 :nobodyさん:2008/01/06(日) 16:24:29 ID:???
あ、意味も無くあげちゃった。

814 :nobodyさん:2008/01/06(日) 16:28:07 ID:???
データベースから取得したデータが10:20:30で$jikanに格納されていて
これを10時20分30秒と時・分・秒と分けて表示する方法ありますか?

815 :nobodyさん:2008/01/06(日) 16:34:25 ID:???
>>1

816 :nobodyさん:2008/01/06(日) 16:54:42 ID:???
回答者レベルひっくw



817 :nobodyさん:2008/01/06(日) 16:58:30 ID:???
マニュアル見ればすぐにわかることだから、答える気もしないだろ。

818 :nobodyさん:2008/01/06(日) 17:50:49 ID:???
とあるスレで、SQLの質問したら、使えない回答しか返ってこなかったので、
こちらでお伺いします。

SELECT id FROM test WHERE id=1 or id=2 or id=3

として、IDが1か2か3のデータを出したいと思います。
上記のSQLなら3つのレコードがヒットします。

idを検索する数だけid=を付けるのは変だと思うのですが、
どういう書き方をしたらいいのでしょうか?

819 :nobodyさん:2008/01/06(日) 17:53:20 ID:???
orでも変じゃないと思うけど、in句でも使えば。
オプティマイザ的に差があるかどうかは知らん。

820 :nobodyさん:2008/01/06(日) 18:12:36 ID:???
くだらねぇの構わんが、無関係なのは困る

821 :nobodyさん:2008/01/06(日) 18:15:15 ID:???
idate('h' ,$jikan);
これはダメなのか?

822 :nobodyさん:2008/01/06(日) 18:22:46 ID:???
>>821
PHPは色んな関数があるな、ほんと。

でも idate の第2引数は int型(timestamp) みたい。
http://php.benscom.com/manual/ja/function.idate.php

文字列になってるなら explodeで良いんじゃないの。

823 :nobodyさん:2008/01/06(日) 19:19:38 ID:???
>>818
SQLは長くしすぎると文法では問題なくてもエラーが出て動かなくなったりするよ。
長くならなければ、プログラムで文字列を自動的につなげてやるのもいいと思うけど、
BETWEEN を使った方がいいと思う。
構文の書き方においてはここでは聞かないでね。

824 :nobodyさん:2008/01/06(日) 19:32:17 ID:???
>>823
BETWEENは遅いと思うんですが。

825 :nobodyさん:2008/01/06(日) 19:34:04 ID:???
一般的なプロバイダ契約 (IP固定契約を行っていない場合) では上記のグローバルIPアドレスは変動的な数値になります。
PCの電源を切った時やインターネットとの通信を切断した場合などはグローバルIPアドレスが変更になります。
また常時通信状態にしておいてもプロバイダ側の都合で不定期に変更になる場合があります。


826 :nobodyさん:2008/01/06(日) 19:38:57 ID:???
>>824
だからなんだよ。

>>825
意味が分からん。

827 :nobodyさん:2008/01/06(日) 19:50:18 ID:???
betweenが遅いというのは気になるが、続きはDB板でやってくれ。
http://pc11.2ch.net/db/


828 :nobodyさん:2008/01/06(日) 20:59:58 ID:???
>>826
人に教えを請う態度じゃないな。
冬休みも今日で終わりかぁ。

829 :nobodyさん:2008/01/06(日) 23:03:03 ID:???
phpでfinallyがないのは何故ですか?

830 :nobodyさん:2008/01/06(日) 23:10:12 ID:???
>>829
phpは未完の大器であり(あってほしい)、終わりはないという意味を込めて、
finallyを実装していない。これはマジな話。

831 :nobodyさん:2008/01/06(日) 23:25:57 ID:???
cloneの使い方がよくわかりません><

832 :nobodyさん:2008/01/06(日) 23:53:40 ID:???
>>831
crontabでググレ

833 :nobodyさん:2008/01/07(月) 00:01:12 ID:???
(´Д`;)

834 :nobodyさん:2008/01/07(月) 00:19:41 ID:???
意味不明なレスがw
php4までは
$obj = new hoge();
$hoge = $obj;
で$hogeにコピーできてたんだけど
php5からはコピーできなくなっちゃったので
$hoge =  clone $obj;
でコピーするようになった

835 :nobodyさん:2008/01/07(月) 00:31:43 ID:???
ほぇ〜
ありがd

836 :nobodyさん:2008/01/07(月) 00:44:50 ID:???
俺もcronの話かと思った。

837 :nobodyさん:2008/01/07(月) 00:49:41 ID:???
そういえば綴り違うんだな、今まで意識してなかった。
ぐぐったらcronの名前の由来はクロノスからきてるらしい。なんかすげー。

838 :nobodyさん:2008/01/07(月) 00:58:35 ID:???
>ぐぐったらcronの名前の由来はクロノスからきてるらしい。なんかすげー。
KWSK

839 :nobodyさん:2008/01/07(月) 01:03:00 ID:???
全角大文字英数字きめぇww

840 :nobodyさん:2008/01/07(月) 02:23:52 ID:???
PHP

841 :nobodyさん:2008/01/07(月) 02:34:35 ID:???
きめぇからヤメロ。
今度全角英数で書き込んだら、
今日の午前9時にこのスレに凄いこと書き込むぞ。

842 :nobodyさん:2008/01/07(月) 02:37:59 ID:???
841 名前:nobodyさん[sage] 投稿日:2008/01/07(月) 02:34:35 ID:???
きめぇからヤメロ。
今度全角英数で書き込んだら、
今日の午前9時にこのスレに凄いこと書き込むぞ。

843 :nobodyさん:2008/01/07(月) 02:38:47 ID:???
echo "\x82\x6f\x82\x67\x82\x6f";

844 :nobodyさん:2008/01/07(月) 03:13:09 ID:???
なにこの必死な人、失笑をかう

845 :nobodyさん:2008/01/07(月) 03:24:18 ID:???
失笑って売ることできるの?ちなみにペッサリーなら知ってるが。

846 :nobodyさん:2008/01/07(月) 04:16:51 ID:???
世にも奇妙な物語「失笑屋さん」

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

848 :nobodyさん:2008/01/07(月) 04:46:18 ID:???
手動スクリプト乙
体内時計狂ってるぞw

849 :nobodyさん:2008/01/07(月) 05:20:42 ID:???
ワロタ

850 :nobodyさん:2008/01/07(月) 05:20:42 ID:???
半角カタカナきめぇww

851 :nobodyさん:2008/01/07(月) 06:03:31 ID:???
ピーエイチピー(ワラ

852 :nobodyさん:2008/01/07(月) 06:35:03 ID:???
もう冬休みも終わりですよ
いい加減元の流れに戻してください

853 :nobodyさん:2008/01/07(月) 10:45:04 ID:???


   回答者のレベルひっくw

   さすが ピーエイチピーーーーーーーー



854 :nobodyさん:2008/01/07(月) 11:38:18 ID:???
>>852
ここは一生冬休みの人の集まりです。


855 :nobodyさん:2008/01/07(月) 13:46:16 ID:???
なあ、配列をforeachとかでマワした後って$valueをうんせtしないとまずい?
$valueを参照する予定がなくても?

856 :nobodyさん:2008/01/07(月) 14:58:28 ID:???
2つ以上のクラスを継承(extends)するにはどうすればいいのでしょうか?

CLASS config {
// 基本設定クラス
}
CLASS DB {
//DB関連のクラス
}
CLASS main {
// メインとなる処理を行うクラス
}
mainがconfig,dbを継承できるようにしたいです。
configがdbを継承すると3つが継承されるんですが、それだとすべてのアクセス時にDB接続を行ってしまうので避けたいです。

857 :nobodyさん:2008/01/07(月) 15:07:17 ID:???
>>856
多重継承がない言語では委譲として実装するのが定石
http://ja.wikipedia.org/wiki/委譲

>>855
何を心配しているのか、わからない。

858 :nobodyさん:2008/01/07(月) 16:36:12 ID:???
>>856
>>1

859 :nobodyさん:2008/01/07(月) 19:11:38 ID:???
test

860 :nobodyさん:2008/01/07(月) 20:06:15 ID:???
当方初心者のため、大変基本的な質問で申し訳ありません。
あるディレクトリ以下のファイルが更新された場合、
その最終更新時刻を表示するということをやりたいのですが、
どうにもあまり良い方法が浮かびません。

$dir="/file/";
if (file_exists($dir)) {
    $filetime=date ("m/d/Y H:i:s.", filemtime("$dir"));
}

一応このようなことをやってみたのですが、/file/のみの更新時間しか表示されません。
それ以下の階層に関しても全て含んだ上で、最も遅い最終更新時刻を得るには
どのようにしたら良いのでしょうか。
拙い説明で済みませんが、宜しくご教授下さい。

861 :nobodyさん:2008/01/07(月) 20:14:41 ID:???
ディレクトリ内のファイルが更新されたら、そのディレクトリの最終更新日時も
更新されるんじゃなかったか。

ディレクトリ内で最も最終更新日時が最近のを取得したいとかだったら、
scandirみたいなことして一覧を取得してソートするのがいいんじゃないだろうか。

862 :nobodyさん:2008/01/07(月) 20:15:28 ID:???
>>860

>>1
http://www.php.net/manual/ja/function.opendir.php

863 :nobodyさん:2008/01/07(月) 20:24:24 ID:???
>>861
たとえば最後に/file/file2/a.phpのようなファイルを更新した時、
その最終更新時刻を表示させたいのですが、やってみてもダメでした。

>>862
質問に夢中で環境を失念しておりました、済みません。
Debian、PHP5、apache2です。

864 :nobodyさん:2008/01/07(月) 20:32:49 ID:???
回答もらうことだけ考えてないでまず>>1をちゃんと読めよ。

865 :nobodyさん:2008/01/07(月) 20:35:25 ID:???
>>863
ID出すように

まぁディレクトリ階層も対象にするなら再帰処理でもすれ

866 :nobodyさん:2008/01/07(月) 21:09:31 ID:???
とりあえず回答者のレベルを俺様が吟味する。

回答しろ、カスども。



867 :nobodyさん:2008/01/07(月) 21:17:25 ID:???
phpでやるよりコマンド発行して結果をパースする方が早くない?

868 :nobodyさん:2008/01/07(月) 21:50:16 ID:???
>>863
foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($last = new SplFileInfo('/file/'))) as $entry)
if($entry->getMTime() >= $last->getMTime())
$last = $entry;
echo date('Y/m/d H:i:s',$last->getMTime()),' ',$last;
無駄にSPLを使ってみたの図。

869 :nobodyさん:2008/01/07(月) 21:54:45 ID:???
>>867
そのような他システムに依存するようなパラサイトなプログラムは設計者としては最低。
システムの不確定要素を増やし、バグポイントを増やすだけ。
最近、こういう安易な発想でシステムを組もうとするやつがうちの会社にも湧いて呆れるよ。

870 :nobodyさん:2008/01/07(月) 21:58:34 ID:???
あきれてないで優しく教えてやれよ

871 :nobodyさん:2008/01/07(月) 22:37:58 ID:???
コマンドを発行するのは変では無いと思うんだが・・・
多量に発行すると後々大変な事になるけど

872 :nobodyさん:2008/01/07(月) 22:58:24 ID:???
既に出ている通り、scandir か opendir使えば良いだけだと思うが、質問者は解ったんだろうか?

873 :nobodyさん:2008/01/07(月) 23:20:23 ID:???
DIRでいいんじゃまいか?

874 :nobodyさん:2008/01/07(月) 23:26:13 ID:???
>>873
それって、いいんじゃない、と、ジャマイカ、を掛けているの?
面白いね。

875 :nobodyさん:2008/01/07(月) 23:29:12 ID:???
>>874
日本最大級の掲示板2chにようこそ

876 :nobodyさん:2008/01/07(月) 23:42:36 ID:???
ごめんただのタイプミス

877 :nobodyさん:2008/01/07(月) 23:49:34 ID:L/merKP+
urlに aiueo=なんとか とする場合はGETになりますが
formとかでメソッドはPOSTなのにアクションの指定で
aaa.php?aiueo=なんとかと指定しても良いものなのでしょうか?
動くのはわかるのですが推奨しない等ありましたらご教示お願いします。

878 :nobodyさん:2008/01/08(火) 00:00:06 ID:???
別にいんじゃまいか?

879 :nobodyさん:2008/01/08(火) 00:11:26 ID:jfnuwFRE
if($test="aaa" or $test="bbb" or $test="333")

というのをもっと簡略化出来ませんかね?
MySQLのINみたいに。

880 :nobodyさん:2008/01/08(火) 00:15:15 ID:???
in_arrayでいいと思うが、比較演算子は == 。

881 :nobodyさん:2008/01/08(火) 00:16:26 ID:???
とりあえずswitchとか

882 :nobodyさん:2008/01/08(火) 00:19:33 ID:???
1ヶ月に3回は出る質問だな

883 :nobodyさん:2008/01/08(火) 00:19:51 ID:???
もう回答しなくていいよ。
わかんないなら、わかんないって言えよ。レベルひくいなぁ。・・


884 :nobodyさん:2008/01/08(火) 00:22:22 ID:???
>>880
すみません、==にするの忘れてました・・・。

で、in_arrayということは、配列にするわけですよね?
そうすると、array("aaa","bbb","ccc")
という処理が入るので、あまり使い勝手が良くないんです。

>>881
普段は879のソースとswitchを使っていますが、
妙にコードが長くなるので、短くできないかな?と思いまして。


885 :nobodyさん:2008/01/08(火) 00:23:11 ID:???
>>879

 if($test="aaa::bbb::333") {



886 :nobodyさん:2008/01/08(火) 00:27:35 ID:???
>>883
くだすれで何言ってんの?

887 :nobodyさん:2008/01/08(火) 00:28:27 ID:???
>>884
「処理が入る」を誤解してたら悪いが、配列を別の変数に入れなくても
if (in_array($test, array('aaa', 'bbb', 'ccc')))
とすれば879より行数も減るし構造的にも好ましいと思うぞ。
あとは自分で関数化するか。

888 :nobodyさん:2008/01/08(火) 00:29:44 ID:???
>>883
というかこんなスレで>>883みたいな発言しちゃう奴は人間的にレベルが低い

889 :nobodyさん:2008/01/08(火) 00:30:08 ID:???
>>887
なるほど。。たしかにこれの方が構造的にわかりやすいですね。
こちらをin_arrayを使うようにしてみます。ありがとうございました。

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

891 :nobodyさん:2008/01/08(火) 11:30:36 ID:???
$timeに10:50:30と入っていて
date('H' ,(int)$time);,date('i' ,(int)$time);,date('s' ,(int)$time);
上記で時・分・秒と表示できそうなんですが違う値が表示されます

他に使い方ありますか

892 :nobodyさん:2008/01/08(火) 11:39:23 ID:M0cxpji0
>>891
まずはタイムスタンプについて勉強しような

893 :nobodyさん:2008/01/08(火) 11:47:10 ID:???
>>892
いやです。勉強するならここきてねーよ。
早く教えろハゲ。


894 :nobodyさん:2008/01/08(火) 11:50:23 ID:???
↑誰?…暇人ですねw

ここが使えそうです.やってみます
ttp://oshiete1.goo.ne.jp/qa3475658.html

895 :nobodyさん:2008/01/08(火) 12:32:51 ID:???
>>891
変なのが湧かない様に質問はあげてIDつけろ。

http://jp.php.net/manual/ja/function.explode.php
http://www.php.net/manual/ja/function.strptime.php


896 :nobodyさん:2008/01/08(火) 13:06:54 ID:Y4XNoL9V
あるサーバ(外部)に接続してヘッダ(サーバトークン)を取得したいのですが、
どのような関数を使えば簡単に取得することが可能でしょうか?
取得するサーバはhttpdとは限らないです。

897 :nobodyさん:2008/01/08(火) 13:14:47 ID:???
@一昔前はPerlの達人と恐れられたが、Rubyのクラスが分けわからず時代に乗り遅れた化石Perler
AJAVAの思想は素晴らしいのに周りに理解者が少なく、コストの問題でクライアントがPHPを指定してきて嫌々やらされているJAVAer
B周りはネット全盛なのに、未だにSoketプログラムが理解できずネットの海に出られない鎖国状態のVisualStudioer
CwebデザイナーはPHPぐらいできないとゴミと言われて、いつの間にかPGにさせられてしまった自称webデザイナー
Dプログラマーという職業に憧れているけど、PG的思考ができずに指をくわえて見ていることしかできないゲーマー

さあレッツ プロファイリング!


898 :nobodyさん:2008/01/08(火) 13:26:58 ID:???
Soket

899 :nobodyさん:2008/01/08(火) 14:42:45 ID:???
>>897
しねくず



900 :nobodyさん:2008/01/08(火) 15:07:32 ID:???
シダックスっていうのは知ってますが
しねっくす゛は知らんがな><

901 :nobodyさん:2008/01/08(火) 16:10:29 ID:???
ックスって見ると、エロい事を考えてしまうが、俺だけ?

902 :nobodyさん:2008/01/08(火) 16:26:43 ID:???


   ピーエイチピーーーーーーーー wwwww





903 :nobodyさん:2008/01/08(火) 16:31:09 ID:???
チョキチョキプルルルリィィィィィィィwwwwwwwwwwwwwwwww

904 :nobodyさん:2008/01/08(火) 17:03:55 ID:???
>>903
足利義寧
七尾藩足利家十九代当主

(財)室町文庫理事長
(株)足利地所社長
北陸銀行相談役顧問
北陸電力相談役顧問
北國銀行顧問
北國新聞顧問
能登国出身会会長

905 :nobodyさん:2008/01/08(火) 18:09:16 ID:lZ/KTkrG
ip-122-152-xxx-xxx.asianetcom.net
から必要な攻撃を受けているの弾きたいのですが、
.htaccessで、したのように設定しても弾かずにスルーしてしまいます。

order allow,deny
allow from all
deny from .asianetcom.net

phpのREMOTE_ADDRで弾くしかないのでしょうか?
宜しくお願いします。

906 :nobodyさん:2008/01/08(火) 18:34:06 ID:???
>>905
必要ならそのまま攻撃受けてろ
というかスレどころか板違い

907 :nobodyさん:2008/01/08(火) 18:34:31 ID:???
IPアドレスでやってみても駄目かね

908 :nobodyさん:2008/01/08(火) 19:12:45 ID:EQjeskZg
PHP5.2 で、SQLite 2.8.17 使ってます。

sqlite_query を実行して得られる結果ハンドルをcloseする関数が見当たらないのですが、
結果ハンドルはcloseしなくて良いんでしょうか?

http://www.php.net/manual/ja/ref.sqlite.php

909 :nobodyさん:2008/01/08(火) 19:16:58 ID:YuL/x3if
FORMに値を設定してPOSTしたデータってURLエンコード・デコードは気にしなくていい?
デコードはする必要ある?



910 :nobodyさん:2008/01/08(火) 19:33:57 ID:???
>>909
エンコードは意識しなくて良い。
http://www.php.net/manual/ja/language.variables.external.php

ただ、magic_quoteには注意が必要。
http://www.php.net/manual/ja/ref.info.php#ini.magic-quotes-gpc

911 :nobodyさん:2008/01/08(火) 21:31:46 ID:???


  ピーエイチ ピーーーーーー wwwwwww




912 :nobodyさん:2008/01/08(火) 21:33:42 ID:???
>>908
結果ハンドルopenしてんの?

913 :nobodyさん:2008/01/08(火) 22:47:08 ID:EQjeskZg
>>912
openっていうか、sqlite_query実行すると戻り値として生成されます。
http://www.php.net/manual/ja/function.sqlite-query.php

914 :nobodyさん:2008/01/08(火) 23:29:44 ID:???
ところでお前ら、DBのことをディービーって発音しないで、デービーって発音するのはなぜだ?




お前らは、小学生かなんか?

915 :nobodyさん:2008/01/08(火) 23:40:48 ID:???
はいはいワロスワロス

916 :nobodyさん:2008/01/08(火) 23:43:49 ID:???
>>914
DBをデービーって発音しないあなたは学生かなんか?

「ディー」とか「ティー」とかいうと、電話なんかで聞き取りづらい
と感じる人が多く、聞き返されることが少なくない。
だからDは「デー」、Tは「テ(ry

もしかして、社長を捕まえて堀江呼ばわりする秘書は失礼な奴
系のネタだった?

917 :nobodyさん:2008/01/08(火) 23:46:00 ID:???
>社長を捕まえて堀江呼ばわりする秘書は失礼な奴
kwsk

918 :タヌキ ◆kN93rkdiOs :2008/01/09(水) 01:46:23 ID:1HfuVzUD
PHPを使って現在サイトを作成しています。

SQliteのデータベースに登録してある日本語のデータが検索してもヒットしません。
半角英数のデータは問題なくヒットします。
Webページのencodeの宣言はUTF8を指定しています。
どうすればよいでしょうか。御教授下さい。


Apache2.2.4
PHP 5.2.4を使用しています。

919 :nobodyさん:2008/01/09(水) 01:51:06 ID:???
set names utf8

920 :nobodyさん:2008/01/09(水) 02:04:50 ID:???
>>918
特に何も設定した覚えも無いけど、自分はUTF-8で問題なく検索できてる。
DB中にUTF-8で格納されているか/SQLはUTF-8で生成されているか確認してみたら?

921 :918:2008/01/09(水) 02:14:21 ID:???
>>920
なんでオマエそんなに偉そうな口調なんだよ。
何様のつもりだ? あぁ?



922 :nobodyさん:2008/01/09(水) 02:21:11 ID:???
>>921
すいません・・。特に偉ぶっているつもりはないのですが・・。

923 :nobodyさん:2008/01/09(水) 02:25:45 ID:???
>社長を捕まえて堀江呼ばわりする秘書は失礼な奴
kwsk

924 :nobodyさん:2008/01/09(水) 02:28:56 ID:???
ブンヤ「堀江社長はいますか?」
美人?秘書「堀江は現在席を外しております」
ゆとり「社員が社長を呼び捨てwwwww」

ってやつじゃないか?

925 :nobodyさん:2008/01/09(水) 05:01:59 ID:???
>>924
ってか、上司に敬称をつけないのって常識だろ?
お前がゆとりなんじゃないの?

926 :nobodyさん:2008/01/09(水) 05:05:54 ID:???
( ゚д゚ )

流れを読めない>>925は間違いなくゆとり

927 :nobodyさん:2008/01/09(水) 05:10:57 ID:???
>>926
流れ云々とかじゃなくて、常識的にオカシイだろwww

928 :nobodyさん:2008/01/09(水) 05:16:35 ID:???
あぁ〜そういうことか。
まぁ、>>924の書き方もオカシイよな。

929 :nobodyさん:2008/01/09(水) 05:53:49 ID:???
PHPの中のswitch文から条件に応じて別のPHPファイルを呼び出す
(ジャンプする)ときはMETAタグを使えばいいんでしょうか?

930 :nobodyさん:2008/01/09(水) 06:06:09 ID:???
その発想はなかったわw

931 :nobodyさん:2008/01/09(水) 06:52:34 ID:???
>>929
    〈\_/ /               
 '´ ̄ ,z≧D≦ \   /.       
   /´⌒/|  /'⌒ l   )     え  
   | /Tメ| /ヘヾハ  ) ど   l . 
   |/ l! ∨ l! |`ト  ) ん   l . 
   | 、_  、_,Y  ) だ ! . 
   |///r─‐┐//〉|  ) け     . 
 \|、_V⌒V イヽ|   ) }  .   
  ト、__了 /j    ) {     
  \   //r'´    \    

932 :nobodyさん:2008/01/09(水) 06:54:46 ID:???
でも発想が面白いとおもた

933 :nobodyさん:2008/01/09(水) 07:51:23 ID:???
switch($hoge) {
  case 1:
    header('Location: a.php');
    exit;
  case 2:
    include_once('hoge,php');
    break;
  case 3:
    echo '<html><header><meta http-equiv="Refresh" content="0;URL=hoge.php"></header></html>';
    exit;
}

ってとこか?w

934 :nobodyさん:2008/01/09(水) 08:01:09 ID:???
<header>

935 :920:2008/01/09(水) 09:14:03 ID:???
なんか知らんが >>922が自分の代わりに謝ってる。
まぁ、>>921は最近荒らしてるバカが詐称してるだけだろうから、どうでもいいけど。( ゚д゚)、ペッ

936 :nobodyさん:2008/01/09(水) 11:16:51 ID:???
あれ?今日スクリプトきてないな
毎日ほぼ同じぐらいの時間だったから
てっきり自動かと思ってたんだが

937 :nobodyさん:2008/01/09(水) 11:27:31 ID:???
手動の暇人にきまっとる

938 :タヌキ ◆kN93rkdiOs :2008/01/09(水) 13:47:53 ID:1HfuVzUD
>>919
>>920
ありがとうございます!

939 :nobodyさん:2008/01/09(水) 15:42:49 ID:kGicjkjv
phpが
if($_POST['submit'] == "cookie"){
setcookie("test", "testest", 0);
$test = $_COOKIE['test'];
}

htmlが(bodyのみ)
<form action="cookie.php" method="POST">
<p><input type="submit" name="submit" value="cookie"></p>
<p>$test</p>
</form>

のようなファイルを作りました。
1回ボタンを押して、クッキーがセットされますが$testにはまだ値が入っていません。
2回目以降はtestestが表示されるのですが1回目で表示させたいのです。
何か方法があればよろしくお願いします。

940 :nobodyさん:2008/01/09(水) 15:52:27 ID:???
if($_POST['submit'] == "cookie"){
setcookie("test", "testest", 0);
$test = "testest";
}

でいいじゃまいかw

941 :nobodyさん:2008/01/09(水) 15:54:45 ID:???
setcookie("test", "testest", 0);
をした時点ではクッキーは発行されてないから
$_COOKIEで取得はできない



942 :nobodyさん:2008/01/09(水) 15:54:56 ID:???
if($_POST['submit'] == "cookie"){
$test = 'testest';
setcookie("test", $test, 0);
} else {
$test = $_COOKIE['test'];
}

でどう?

943 :nobodyさん:2008/01/09(水) 15:59:44 ID:kGicjkjv
申し訳ありません。言葉足らずでした。
cookieの値自体はではなく、そのタイミングで発行できるか重要でした。

>>941
なるほど。わかりました。
Location辺りで1回飛ばしてみようと思います。

944 :nobodyさん:2008/01/09(水) 16:13:59 ID:???
>>943
それで良いなら別に良いんだけど、1回ボタンを押したとき画面には $test の値が表示されなくても、
ブラウザに cookie は設定されてるよ。

945 :nobodyさん:2008/01/09(水) 16:20:05 ID:kGicjkjv
そうなんですか? $_COOKIEは取得できなかった気がしたので・・・

946 :nobodyさん:2008/01/09(水) 16:28:13 ID:???
それは当たり前。一度のリクエスト内で処理してるんだから。
まあやっていくうちに分かるさ。

947 :nobodyさん:2008/01/09(水) 16:50:12 ID:lojqq5Hc
初めまして、よろしくお願い致します。

100〜200行程度のCSVファイルがあり、それの特定行から特定行までを読み込むにはどうすれば良いでしょうか?

データ自体のCSVファイルと別に、インデックス用のCSVファイルがあり、何行目から何行目に
必要なデータがあるのか予め分かるようになっています。

fgetcsvで1行ずつ読み込みができるという所までは分かったのですが、
これを使ってデータ呼び出しの度に[1行目から読み込み]→[必要な行に到達したか判定]を繰り返すしかないのでしょうか?

毎回1行目から呼び出すのは効率が悪そうなので、できるならば、直接その行を呼び出せれば嬉しいです。

失礼な部分があったら申し訳ありません。
よろしくお願いします。

948 :nobodyさん:2008/01/09(水) 17:07:57 ID:???
200行程度なら配列に入れとけば?

949 :nobodyさん:2008/01/09(水) 17:07:59 ID:???
>>947
おまえには教えない。
なんか知らないけど、ムカツクから。



950 :nobodyさん:2008/01/09(水) 17:26:08 ID:???
配列に入れてarray_sliceか
whileで頭から読んで改行を数えるかだろうなぁ

951 :nobodyさん:2008/01/09(水) 17:32:20 ID:???
>>947
PHP5ならSplFileObject->seek()で行単位シーク出来るよ。
SPLが使えなけりゃ指定回数fgetsかしら。

952 :nobodyさん:2008/01/09(水) 18:22:21 ID:???
ファイルアクセスについてマニュアルで file_get_contents とか調べると

http://jp.php.net/manual/ja/function.file-get-contents.php
>もしOSがサポートしていれば パフォーマンス向上のためにメモリマッピング技術が使用されます。

って書いてあるけど、その対応してるOSって何があるだろ?
この件で使えそうな file 関数もメモリマッピングを使おうとするのかよくわからんし。

http://jp.php.net/manual/ja/function.file.php

953 :nobodyさん:2008/01/09(水) 19:52:58 ID:???
php5ならこれか?
http://jp.php.net/manual/ja/function.stream-get-line.php

正直使った事ないけどw

954 :nobodyさん:2008/01/09(水) 19:56:00 ID:???
あ、すまん953は忘れてくれw



955 :nobodyさん:2008/01/09(水) 20:05:21 ID:???
だが断る

956 :nobodyさん:2008/01/09(水) 20:59:30 ID:???
>>933
ご教授深謝。
いろいろ方法ありますね。
headerがオーソドックスなのかな。

957 :nobodyさん:2008/01/09(水) 21:34:58 ID:???
>>956
http://www.tt.rim.or.jp/~rudyard/torii009.html

958 :素人:2008/01/09(水) 21:35:29 ID:4fMiWS+z
プログラム板では、WEBプログラム板に池と言われ、
WEBプログラム板に行くとなぜかサーバに接続出来ず、
仕方が無いので、プログラマの皆さんに質問させてください。

次が全く分かりません。

【環境】
PHP5 + MySQL5.0 + Windows XP (Home) + Apache

【事象】
WEB画面から入力された値をDBに登録(Insert)するという
単純な処理を実装してみたところ、半角数字なら問題無く登録出来
るのですが全角(日本語等)が登録データに含まれているとなぜか
登録が出来ません。
(しかもエラーも何も表示されない。)

エスケープシーケンス回りを疑ってはみたものの、そもそも特殊文字
など入力していません。
(例:' " & ・・・等)


959 :nobodyさん:2008/01/09(水) 21:36:25 ID:???
>>958
mysql_error()

960 :素人:2008/01/09(水) 22:13:06 ID:4fMiWS+z
>>959
mysql_error()を実行したところ次のエラーメッセージが表示されました。

【実行SQL】
insert into tab1 values('485','あいうえお','あいうえお')

【エラー】
Incorrect string value: '\x82\xA0\x82\xA2\x82\xA4...' for column 'name' at row 11366
numberが [485] のデータを登録しました


しかし、実行してエラーになったSQLをMySQL上から実行すると普通に
登録出来ました。。。

何が原因でしょうか?

961 :nobodyさん:2008/01/09(水) 22:20:13 ID:???
mysqlの文字コードとHTMLの文字コード(+PHPの文字コード)を合わせるべし
それより登録できてないくせに登録しましたと表示するエラー処理のほうも何とかすれ

962 :素人:2008/01/09(水) 22:34:08 ID:4fMiWS+z
>>961さん
そうですね<numberが [485] のデータを登録しました >
の出力は削除します。

MySQLでの文字コードを調べてみたところ次の通りです。
 character_set_system
の部分を【sjis】に統一すれば良いでしょか?

________________________________________
show variables like '%char%';
________________________________________
_______________________________________
Variable_name Value
________________________________________
| character_set_client | sjis
| character_set_connection | sjis
| character_set_database | sjis
| character_set_filesystem | binary
| character_set_results | sjis
| character_set_server | sjis
| character_set_system | utf8
| character_sets_dir |
C:\Program Files\MySQL\MySQL Server 5.0
\share\charsets\ |

963 :素人:2008/01/09(水) 22:35:12 ID:4fMiWS+z

【補足】
1.*.phpファイルは、サクラエディタで編集し保存時には
 文字コードとして<SJIS>を使用しています。
2.ブラウザは<Lunascape4>を使用しており、文字コードの
 デフォルトのチェックは次の通りです。
 表示(V) ⇒エンコード(D) ⇒ 日本語(シフト JIS)

964 :nobodyさん:2008/01/09(水) 22:46:39 ID:???
とりあえずSJISに拘る必要ないならphpとか
表示関係全部utf-8にしといたほうが幸せになるぞ

965 :nobodyさん:2008/01/09(水) 22:51:58 ID:???
>>963
PHPのほうもSJIS?

966 :素人:2008/01/09(水) 23:02:41 ID:4fMiWS+z
>>964
先ほどPCを再起動してみたのですがやはり全角文字だと文字化けします。
一度全てutf-8にしてみようかと思います。

【エラー内容】
Incorrect string value:
'\x82\xA0\x82\xA0\x82\xA0...' for column 'name' at row 11366

>>965
php.iniの事でしょうか?

967 :nobodyさん:2008/01/09(水) 23:05:11 ID:???
>>966
うん

968 :nobodyさん:2008/01/09(水) 23:07:51 ID:???
スクリプト側でset names sjisですんなりいくかも
あとmy.cnfでskip-character-set-client-handshakeとか
キーの重複は関係ないか

969 :nobodyさん:2008/01/09(水) 23:11:45 ID:???
質問です。

数メガの容量のファイルを読み込んで、配列にいれる。
それをPHPで一度に処理して表示したいんですが、
サーバーへの負担はどのくらいになるのでしょうか?

レンタルサーバーを借りていて、あまり処理が重かったら迷惑かなと思いまして。

970 :素人:2008/01/09(水) 23:24:08 ID:4fMiWS+z
>>968さん
ありがとうございます!!解決しました!!


971 :素人:2008/01/09(水) 23:24:40 ID:4fMiWS+z
>>965
php.iniもSJISです。

972 :nobodyさん:2008/01/10(木) 01:01:47 ID:nr809F9h
何らかのフラグに用いる変数を100個用意するのと、
配列ひとつ用意して、それに要素100個入れてフラグとして利用するのでは
どっちが処理早い?
プロのプログラマってそういう処理速度考えて作業してるんでしょ?
そういうのの代表例教えて ケースバイケース過ぎて無理かな

973 :nobodyさん:2008/01/10(木) 02:06:04 ID:???
>>972
後者。つか前者は実行速度/効率云々の前に
プログラム組んでる時点でコスト掛かるだろ。

974 :nobodyさん:2008/01/10(木) 02:42:44 ID:???
っていうか、プロならフラグを100個も使うようなコーディングはしない。
フラグを使わないコーディングが出来るように勉強しろよ。
趣味でやっているなら、動けばいいと思うけどな。趣味ならな。

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

976 :nobodyさん:2008/01/10(木) 08:42:00 ID:???
そろそろ次スレな季節な訳だが
質問者にID表示をさせてるがこれトリップでも問題なくない?
IDなんてIP変われば変わるんだし


977 :nobodyさん:2008/01/10(木) 09:09:13 ID:jxxVBXDn
画像縮小でBMPファイルを扱うにはどうすれば良いんですか?
jpgならimagecreatefromjpeg()で問題ないんだけど、BMPのことはマニュアルにも載ってないみたいで。

978 :nobodyさん:2008/01/10(木) 09:54:38 ID:???
>>977
なんかのエクステンション使うとかしないと無理
bmp→jpgとかならimagecreateの下の方にやり方が載ってる


979 :nobodyさん:2008/01/10(木) 10:03:32 ID:jxxVBXDn
どうも。見てみます

980 :nobodyさん:2008/01/10(木) 10:07:02 ID:cQpcF1mT
独学でLinuxやPHPを学んで今就職活動してます。
PCサイトを作ってる会社と携帯サイトを作ってる会社、
どっちで働こうか迷ってるんだけど、
PCサイトと携帯サイトのプログラミングって全然違うもんなの?
いろんなスキルを身に付けるならPCサイトの方が良さそうな気がするんだけど、
どうなんでしょうか?

981 :nobodyさん:2008/01/10(木) 10:17:29 ID:???
別に同じ

982 :nobodyさん:2008/01/10(木) 10:18:01 ID:???
Web屋きたあああああああああああああああああああああああああああああああああ
現実見ろよ
http://d.hatena.ne.jp/waseda23/20071225/1198573722

983 :nobodyさん:2008/01/10(木) 10:38:53 ID:???
三行でまとめてくれ

984 :nobodyさん:2008/01/10(木) 12:41:02 ID:???
>>980
> いろんなスキルを身に付けるならPCサイトの方が良さそうな気がするんだけど
いろんなスキルを身につけたいならむしろPCサイトと
同様の事を求められるのにキャリアや機種による制約が多い
携帯サイトの方が良いと思う


985 :nobodyさん:2008/01/10(木) 12:44:34 ID:???
>>974
>プロならフラグを100個も使うようなコーディングはしない
むしろプロの方が"ちゃんと"そういう方法を採用するだろ。
今日日メモリなんて只みたいなもんだからな。

986 :nobodyさん:2008/01/10(木) 12:59:31 ID:???
とりあえずPHPは単価安いし仕事がないんでASP.NETやっとけばおk
会社としても高い仕事やりたいわけよ
となると仕事で使うのはASP.NET>Java>PHPとなってくるわけよ
PHPだけのとこにはいかないほうがいいよ
安い給料がさらに安くなるぜ

987 :nobodyさん:2008/01/10(木) 14:02:43 ID:???
フラグを100個なんて管理破綻するからそんなことやらんわ
状態遷移を有効に使う

988 :nobodyさん:2008/01/10(木) 14:39:44 ID:???
地方SOHOの俺涙目。

989 :nobodyさん:2008/01/10(木) 15:04:58 ID:???
100個(件)と100種(状態)を混同してないか?

990 :nobodyさん:2008/01/10(木) 15:14:24 ID:???
>>989
混同しているのはお前。>>972をよく嫁

991 :nobodyさん:2008/01/10(木) 15:19:40 ID:???
どうせなら、西鹿児島駅を鹿児島駅とし、鹿児島駅を東鹿児島駅とでもすればいいのに、と思うのは私だけでしょうか。

992 :nobodyさん:2008/01/10(木) 16:08:06 ID:???
>>990
フラグって上げ下げ(2値)か、せいぜい3値程度で
100もの値を保持するのはステイタスだよな。
>>972は100個のフラグの処理の話と解釈してるが
そこで「状態遷移を有効に使う」方法ってどんなの?

993 :nobodyさん:2008/01/10(木) 16:41:10 ID:???
恐らく>>987は知ってる単語を並べただけかと

994 :nobodyさん:2008/01/10(木) 16:52:35 ID:???
レベルひっくwwwwwwwwwwwwwwwwwwWWWWWWwwWWwW

995 :nobodyさん:2008/01/10(木) 16:57:27 ID:???
そもそも100個のフラグを使う仕様がタコだって話だろ。
>>993みたいな初心者は口出さないでアホな質問だけしてろよ。

996 :nobodyさん:2008/01/10(木) 17:00:26 ID:???
ん?悔しかったの?

997 :nobodyさん:2008/01/10(木) 17:12:39 ID:???
どうせなら、西鹿児島駅を鹿児島駅とし、鹿児島駅を東鹿児島駅とでもすればいいのに、と思うのは私だけでしょうか。

998 :nobodyさん:2008/01/10(木) 17:31:13 ID:???
麻布高校から慶応大学を経て公認会計士になりましたが、何か??

999 :nobodyさん:2008/01/10(木) 18:09:43 ID:???
【PHP】下らねぇ質問はここに書き込みやがれ 62
http://pc11.2ch.net/test/read.cgi/php/1199956159/

1000 :nobodyさん:2008/01/10(木) 18:11:51 ID:???
>>1

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

281 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)