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

このエントリーをはてなブックマークに追加
1nobodyさん
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

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

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

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
2nobodyさん:2008/12/08(月) 01:28:48 ID:???
■過去ログ
【PHP】下らねぇ質問はID出して書き込みやがれ 75
http://pc11.2ch.net/test/read.cgi/php/1224168721/
【PHP】下らねぇ質問はID出して書き込みやがれ 74
http://pc11.2ch.net/test/read.cgi/php/1221909788/
【PHP】下らねぇ質問はここに書き込みやがれ 73
http://pc11.2ch.net/test/read.cgi/php/1220440493/
【PHP】下らねぇ質問はここに書き込みやがれ 72
http://pc11.2ch.net/test/read.cgi/php/1218855685/
【PHP】下らねぇ質問はここに書き込みやがれ 71
http://pc11.2ch.net/test/read.cgi/php/1216291372/
【PHP】下らねぇ質問はここに書き込みやがれ 70
http://pc11.2ch.net/test/read.cgi/php/1214356448/
【PHP】下らねぇ質問はここに書き込みやがれ 69
http://pc11.2ch.net/test/read.cgi/php/1211879073/
【PHP】下らねぇ質問はここに書き込みやがれ 68
http://pc11.2ch.net/test/read.cgi/php/1209822736/
【PHP】下らねぇ質問はここに書き込みやがれ 67
http://pc11.2ch.net/test/read.cgi/php/1207863515/
【PHP】下らねぇ質問はここに書き込みやがれ 66
http://pc11.2ch.net/test/read.cgi/php/1205655807/
【PHP】下らねぇ質問はここに書き込みやがれ 65
http://pc11.2ch.net/test/read.cgi/php/1203854597/
3nobodyさん:2008/12/08(月) 01:29:18 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/
4nobodyさん:2008/12/08(月) 01:30:01 ID:???
【簡易FAQ】
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プログラムとして実行された結果になる。
5nobodyさん:2008/12/08(月) 01:30:32 ID:???
10. そもそもインストールの時点でうまくいかない
 → 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
  Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
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.を参照
21. 画像処理一般 or GDの限界
 → ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
 → 好きにしてください
6nobodyさん:2008/12/08(月) 04:44:19 ID:???
いまnl2br という関数を知ったんだが、なにこの
便利すぎる機能。
7nobodyさん:2008/12/08(月) 08:30:56 ID:E0jjD+uU
PHPの連想配列は、
添え字は、数字とキーと、
混在できるんだ?

perlでは無理だった機能だよね。
8nobodyさん:2008/12/08(月) 09:00:16 ID:???
もうお腹一杯
9nobodyさん:2008/12/08(月) 10:50:40 ID:j23sMbCH
【OS名】Debian Etch
【PHPのバージョン】php4.4.4-8+etch6
【連携ソフトウェア】
【質問内容】
検索エンジンのクエリの文字化け対策をしています。
Google、YAHOOともに以下の記述で文字化けを解消できています。
$refer = urldecode($refer);
mb_language("Japanese");
$refer = mb_convert_encoding($refer, "Shift_JIS", "auto");
$refer = urldecode($refer);

しかし、Googleイメージ検索だけ文字化けしてしまいます。
Googleイメージ検索のクエリを文字化けせずに表示できている方いらっしゃいますか?
若しくは、もしヒントとなる情報お持ちの方いらっしゃいましたら、どうかお助け下さい。
宜しくお願いします。
109:2008/12/08(月) 11:13:42 ID:j23sMbCH
文字エンコードをShift_JIS→UTF-8に統合してみました。
すると、文字化けが解消しました!
(ファイルの自体の文字エンコードをShift_JISから全てUTF-8に、
htmlの文字エンコード指定も全てUTF-8にしました)
お騒がせしました。
11nobodyさん:2008/12/08(月) 11:14:25 ID:???
まず取得した文字列の文字エンコードを調べる作業に入るんだ
12nobodyさん:2008/12/08(月) 11:18:06 ID:???
No more Multibyte Character !!
13nobodyさん:2008/12/08(月) 11:46:01 ID:???
前スレの方へ
>996 名前: nobodyさん [sage] 投稿日: 2008/12/07(日) 16:08:22 ID:???
>配列関数のところで、配列を育成するとして一覧されており、
>ヘルプのファイル名もfunction.array.phpとなっている。
>関数でなければ、そのような分類にはならないでしょう。
>というのは状況証拠。
echoもありますよ

>998 名前: nobodyさん [sage] 投稿日: 2008/12/07(日) 16:12:07 ID:???
>そもそもhoge()の形で呼び出してる時点で関数
同様にechoもprintもあるので残念ながら短絡すぎ
14nobodyさん:2008/12/08(月) 11:53:17 ID:???
何この粘着ぶり
だからechoやprintは関数ではないってちゃんと書いてるじゃん。
arrayはそこまで言い切ってないでしょ。
往生際悪過ぎ
15nobodyさん:2008/12/08(月) 11:55:28 ID:???
いちいち前スレから話題ひっぱってくんなよ
どうしてもその話題したいなら揚げ足じゃなくて
Array()が関数じゃないという証明にしてくれ
16nobodyさん:2008/12/08(月) 12:01:16 ID:???
今後、「array()が関数」の話題を続けたい人は隔離スレ立ててくれ。
まぁ、俺が結論だしてもいいけどww
17nobodyさん:2008/12/08(月) 12:01:19 ID:???
冬休みが近づいてくるとキチガイが表れるよな
18nobodyさん:2008/12/08(月) 12:04:45 ID:???
>>14-17
何言ってんの?
998が間違いだって言ってるの
19nobodyさん:2008/12/08(月) 12:11:26 ID:t7PZq5hY
質問です。
例えですが、CD1枚ごとのXMLファイル(ID、タイトル、アーティスト名...)が数千、
CDごとの月別売上枚数ファイル(CDID、○年○月、枚数...)が数千ほどあったとして
それを月ごとの販売CD一覧、1年トータルでの売上枚数上位表示みたいなことをしようと
金曜にPHPの本を買ってきて土日にネット見ながら練習してみたといった習得レベルです。
で調べてて思ったんですが、上記のようなことをしようと思ったらXMLファイルでやりとりするより
sqliteを使ったほうがいいもんなんでしょうか。
ただ、大元のデータ管理はFileMakerでやっていて、XMLだと修正レコードを個別に書き出して
アップロードするだけとメンテナンスが容易そうなんですが、
SQLだとローカルのFeliMakerの修正のあとにサーバのDBの修正作業とすこし煩雑な感じがするので
どちらで進めたらいいか悩んでいます。
調べ始めたばかりでまだわかってないだけなんですが、FileMakerで修正したデータ
(xmlなりcsvなり)をもとにサーバ上のDBの特定箇所を簡単に修正することはできるのでしょうか。

テンプレの項目はわかりません。アットページズを借りようかと思っていますので
PHPは5.2.6、mysqlは4.1.22になると思います。
20nobodyさん:2008/12/08(月) 12:11:58 ID:???
>>18
粘着*2 乙
問題の正誤は問題にしてない。ここはクダスレ。
arrayの議論スレじゃないんだよ。
前スレで退廃した話題を引っ張ってくるなと。
21nobodyさん:2008/12/08(月) 12:12:51 ID:???
>>18
日本語わかんねーのかよ

お前がキチガイだって言ってんだよ
22nobodyさん:2008/12/08(月) 12:40:41 ID:???
>>18
貴様の正論は公式で開発してる人達に通じるのかメール送ってみればいいじゃん
ここで吠えてんじゃねえぞ負け犬
23nobodyさん:2008/12/08(月) 12:41:15 ID:???
>>19
文が長すぎ
24nobodyさん:2008/12/08(月) 13:01:52 ID:???
>>19
csvでサーバー上のデータベースを更新するのは難しくはないけど、
今PHP本見てるレベルで安全に実装するのは大変かもね。

大本がFileMakerを管理してるマシンで*AMP環境を構築して、ODBCでFileMakerDBに接続、
*AMPのPHPからクエリを発行してリモートのMySQLを更新とかのほうが簡単な気はするけど。 
25nobodyさん:2008/12/08(月) 13:13:20 ID:???
>>20
なんで前スレの話題を続けちゃいけないの?
言論封殺?
引っ張ってこられると都合が悪いから?
>>21
なぜに?理由を示してください
>>22
俺別に何とも戦ってないよ。
ただ括弧つけてコールしたからといって必ず関数とは限らないよって示しただけだよ。
26nobodyさん:2008/12/08(月) 13:14:36 ID:???
うるせーこれ以上やるなら専用スレ立てるから覚悟しろ!
27nobodyさん:2008/12/08(月) 13:16:41 ID:???
問答無用だ!立ててやったからこっからでてけ!

さまざまな言語仕様について熱く語る闘技場
http://pc11.2ch.net/test/read.cgi/php/1228709756/
28nobodyさん:2008/12/08(月) 13:18:54 ID:???
相手しなければいいだけだよ
29nobodyさん:2008/12/08(月) 13:43:26 ID:???
>>25
サービスだ、1回だけ教えてやる
> >>20
> なんで前スレの話題を続けちゃいけないの?

質問でも回答でもないからだ。
お前らがやってるのはドキュメントレベルとシステムレベルを混同してる不毛な議論
30nobodyさん:2008/12/08(月) 13:47:35 ID:CarXFmyd
【OS名】windows xp
【PHPのバージョン】php5.26
【連携ソフトウェア】sqlite
【質問内容】
市販の解説本のサンプルソースを勉強中です
if (isset($key)) {
if (strlen($key) > 0) {
$sql .= " WHERE uid = $key";
}}

多少記述を省略していますが
上記の条件は $key がセットされているか?
$key が1バイト以上か?
ですよね?

最初のif文 if (isset($key)) {
は要らないのでは?と思ったのですが
必要なのでしょうか?



31nobodyさん:2008/12/08(月) 13:50:43 ID:???
>>30
未定義の変数を関数に放りこみたいか?
非推奨だからNOTICEが発生する
32nobodyさん:2008/12/08(月) 13:55:23 ID:???
>>30
本来は必要ないはず
必ず変数は初期化するよう心がける
初期化しない変数は使わない
これ基本
33nobodyさん:2008/12/08(月) 13:57:23 ID:???
しかし、酷いサンプルだね。そんな本捨てちゃえ
34nobodyさん:2008/12/08(月) 14:30:32 ID:???
>>29
回答が間違ってることの指摘だよ
もしくは回答に関連した議論の続き
自分が嫌だから他人に書き込むなって強制するのは子供だよ
35nobodyさん:2008/12/08(月) 14:39:41 ID:???
>>34
お前以外の全員が、お前の粘着を嫌がってるのに気付かないのか。
かわいそうに・・・唯一の味方の>>29まで失うのか。
この上は自作自演でもして盛り上がってくれよwww
36nobodyさん:2008/12/08(月) 14:41:27 ID:???
いい加減スルーしろよ
37nobodyさん:2008/12/08(月) 14:45:09 ID:???
えっと、誘導先のスレに行ってくれるかな
3830です:2008/12/08(月) 14:53:53 ID:CarXFmyd
どうもありがとうございます

>>30
いまいち理解できませんが、意味は分かりました

>>33
勉強するのに、いいサンプルソース(DB連携付)
があればぜひ教えてください

PHPによるWebアプリケーションスーパーサンプル 第2版
http://d.hatena.ne.jp/asin/479733245X
のサンプルを勉強しているのですが


3930です:2008/12/08(月) 14:55:44 ID:CarXFmyd
> >>30
> いまいち理解できませんが、意味は分かりました
×30
>>32 の間違いでした
40nobodyさん:2008/12/08(月) 15:08:20 ID:???
33だけど、コーディング覚えるのに本ってどうだろうな。
いまどきならPHP5ベースのフレームワークのソース呼んだ方がいい。
が、質問の趣旨に答えとくと、一応これをお勧めしとく[初めてのPHP & MySQL]

あのソースがなんで酷いか。
$keyがセットされてるかどうかもわからない状況で
エスケープもクォートもせずにWHERE句に文字列を突っ込んでる点。
41nobodyさん:2008/12/08(月) 15:20:45 ID:???
4230です:2008/12/08(月) 17:00:55 ID:CarXFmyd
>>40
どうもです
サンプルにはちゃんとエスケープ処理してあります
今回は、引用を短く書きました。失礼しました

自分はprepare メソッドに書き換えています
43nobodyさん:2008/12/08(月) 17:17:09 ID:???
>>42
そういうことね。了解。
エスケープって、こんなかんじ?
$key = is_string($key) ? "'" . mysql_escape_string($key) . "'" : "''";
その文脈で来てて、issetとかおかしいし、strlenもいらねぇよな。やっぱり変。
44nobodyさん:2008/12/08(月) 17:19:47 ID:???
あぁ、ごめ、SQLiteだね。
4530です:2008/12/08(月) 17:46:53 ID:CarXFmyd
addslashes を使ってあります

ちょっとソースが長いので省略しますが
$sql="SELECT * FROM usr";
if (isset($key)) {
$sql .=" WHERE uid = $key";

大体こんな感じです
$key はPOSTされてきます

なんか記述がショボイ(洗練されてない)なぁとは感じています
46nobodyさん:2008/12/08(月) 18:23:33 ID:t7PZq5hY
>>24
ありがとうございます。
*AMPはMacなのでMAMPをインストールしています。(ということですよね)
提示されてる内容がいまいち把握できてませんが、調べてみます。
ODBCという名前にまったく関心がなかったので忘れてましたがFM9からは
「外部SQLデータソースに接続できる」だそうでこれが旨く使えればいいんですが。
47nobodyさん:2008/12/08(月) 18:51:53 ID:???
>>45
やるなら
if(isset($_POST["key"])){
$key = (int)trim($_POST["key"]);
}else{
$key = 0;
}
$sql="SELECT * FROM usr WHERE uid = ".$key;
でいいんじゃないの?
48nobodyさん:2008/12/08(月) 18:52:35 ID:???
arrayは関数です
49nobodyさん:2008/12/08(月) 18:58:54 ID:???
50nobodyさん:2008/12/08(月) 19:03:43 ID:???
>>45,47
まさか、uidって整数なの?strlenで比較してるのに?
51nobodyさん:2008/12/08(月) 19:08:51 ID:???
>>50
47だがシングルクォートないからINT型かとエスパーしたわけだが
実際にintかどうかはしらん
てかよくみたらだめぽなので修正

if(isset($_POST["key"])){
$where = WHERE uid = ".(int)trim($_POST["key"]);
}else{
$where = "";
}
$sql="SELECT * FROM usr ".$where;
52nobodyさん:2008/12/08(月) 20:27:07 ID:???
arrayは関数です
53nobodyさん:2008/12/08(月) 20:28:57 ID:wAMJwI03
http://drrf.freehostia.com/

このPHP探してます
配布してるところ知ってれば教えてください


ここでよかったのかな・・・
54nobodyさん:2008/12/08(月) 20:29:37 ID:???
>>53
スレ違い
55nobodyさん:2008/12/08(月) 21:27:21 ID:tNwQhygu
こんにちは
file_get_countentsの参照先が、gzip転送対応必須となっています
見に行かせると「ブラウザ設定のHTTP1.1を〜」など警告が出ます
この場合phpに取得させるにはどうすればよいのでしょうか?
よろしくお願いいたします
56nobodyさん:2008/12/08(月) 23:21:48 ID:E0jjD+uU
<?PHP

これって、PHP、の部分を大文字で
書いても、いいの?
57nobodyさん:2008/12/08(月) 23:22:48 ID:???
やってわかることはやってから質問しろ
58nobodyさん:2008/12/08(月) 23:22:56 ID:E0jjD+uU
質問

varって予約語?
59nobodyさん:2008/12/08(月) 23:24:43 ID:???
態度をわきまえて質問しろ!
60nobodyさん:2008/12/08(月) 23:25:13 ID:???
おっと、ゆとりに熱くなってしまった^^;
61nobodyさん:2008/12/08(月) 23:40:18 ID:???
62nobodyさん:2008/12/08(月) 23:52:51 ID:???
varって変数を定義するときに使うのか。
おまいら、そんなカンタンなことも答えられないのか。
63nobodyさん:2008/12/08(月) 23:56:36 ID:???
<?php
$a=array('aaaaaa',55,5.876,NULL,FALSE);
var_dump($a);
?>

これ実行するとおもろい。
NULLはなんの型でもなくNULLなんだ、ってわかる
64nobodyさん:2008/12/08(月) 23:58:38 ID:???
何をいってるんだお前は
65nobodyさん:2008/12/09(火) 00:28:07 ID:???
FALSEはbool型だけど、
NULLjは、なんの型でも無い。
66nobodyさん:2008/12/09(火) 00:50:08 ID:???
NULLはnull型という特殊な型です
ていうか配列に異なる型いれるなよ気持ち悪い
67nobodyさん:2008/12/09(火) 00:50:15 ID:???
NULLはNULL型だが?
68nobodyさん:2008/12/09(火) 00:50:21 ID:AVrbWSbl
void flush ( void )

関数の使い方のマニュアルの説明書きで、
()の中が、voidって書いてあるのは、
何も入れるな、って意味?
69nobodyさん:2008/12/09(火) 00:50:46 ID:???
すまんかぶったw
70nobodyさん:2008/12/09(火) 00:51:16 ID:???
んでも
>>63
のコードを実行すると、NULLのところだけ、
型の指定が無い。これは
NULLだけ、なんの型でもないことを示唆している。
71nobodyさん:2008/12/09(火) 00:51:17 ID:???
>>68
全然違う
72nobodyさん:2008/12/09(火) 00:51:47 ID:???
>>70
していない
73nobodyさん:2008/12/09(火) 01:02:59 ID:???
http://startup.dino.co.jp/2008/05/27/php-7/

このページわかりやすい
74nobodyさん:2008/12/09(火) 01:04:00 ID:???
blogでだらだら書いててお世辞にも読みやすいとは言えない
コードも初心者丸出し
75nobodyさん:2008/12/09(火) 01:08:08 ID:4nXhjr9t
質問いたします。
mailサーバーにmailを送るのはsend_mail関数でできるのですが
mailサーバーに送られたmailの添付画像をPHPで読み込むには
何関数を使えばよいのでしょうか?
よろしくお願いします。
76nobodyさん:2008/12/09(火) 01:20:18 ID:???
7775:2008/12/09(火) 01:54:40 ID:4nXhjr9t
>>76
じっくり見たのですが俺のバカな頭ではわからない orz
もう無理でしょうか?
78nobodyさん:2008/12/09(火) 01:59:19 ID:???
     *      *
  *  無理です  +
     n ∧_∧ n
 + (ヨ(* ´∀`)E)
      Y     Y    *
7975:2008/12/09(火) 02:24:53 ID:4nXhjr9t
無理は承知なのですがズバっとmailサーバーに送られた添付データを
読み込むにはPHPの何関数を使えば大丈夫ですか?
80nobodyさん:2008/12/09(火) 02:42:17 ID:???
8130です:2008/12/09(火) 06:29:29 ID:pNYuh3pR
>>47
ご丁寧にありがとうございます

この処理は一番最初の時点でも実行されます
(つまり$key にPOSTされていない)

その場合でも、書いて頂いた記述でいいのでしょうか
8230です:2008/12/09(火) 08:54:44 ID:pNYuh3pR
すいません、再度お願いします
PDOを使っています
mysql_num_rows ←PDOでコレに該当する物がないのです

http://php.plus-server.net/pdostatement.rowcount.html
ココをみると SELECT COUNT(*) 文を発行してから
再度SELECTしろ となっています

2回同じようなSQLを実行しないといけないのですが
遅くなりそうでイヤなのですが
気にしなくていいのでしょうか

if (mysql_num_rows($res) <= 0) { return; }
この判定(ゼロ判定)のためだけに、SELECT COUNT(*)
するのがアホらしいのですが
83nobodyさん:2008/12/09(火) 09:20:50 ID:???
select count(*)は遅くないし
84nobodyさん:2008/12/09(火) 09:27:49 ID:???
>>82
if (mysql_num_rows($res) <= 0) { return; }
この目的は行数を得ることですか?
行数を得る目的ならcount(*)が適切でしょう

しかし、結果セットがない場合はreturnだったら、
pdoのイテレーターでそのまま実装できるのでは?
85nobodyさん:2008/12/09(火) 10:30:29 ID:???
86nobodyさん:2008/12/09(火) 10:32:37 ID:???
SQL_CALC_FOUND_ROWS
87nobodyさん:2008/12/09(火) 10:37:24 ID:???
>>83
count()は遅いぞ?
単体サーバーで500万件くらいいれると
どんなにフル最適化しても2〜5秒はcountにとられるぞ

ポスグレだけどな…
88nobodyさん:2008/12/09(火) 11:52:40 ID:???
さっさと質問に答えろ屋!!
89nobodyさん:2008/12/09(火) 12:12:03 ID:6VdqcFEv
【OS名】red hat linux 9
【PHPのバージョン】php 4.4.6
【連携ソフトウェア】なし
【質問内容】

phpで作られたフリーのカートシステム「zen cart」を利用しているのですが、
クライアントの情報を利用するため、自前で作成したプログラム(log.php)を、index.phpからincludeするように改造しました。
作成したプログラムは、商品のコンバージョンを計るためです。

log.phpの内容

<?

extract($_GET);
extract($_POST);
session_start();

/* セッションに変数を登録 */
$_SESSION['dvd_date'] = date("Y/m/d l H:i:s");

?>

index.phpが呼ばれるとlog.phpが動作して、ちゃんとセッションがサーバーに書き込まれています。
しかし、zen cart で買い物をすると、カートに商品が入りません。おそらく、zen cartの中でもセッションを
使用しているからだと思います。log.phpがzen cartのセッションをクリアしてしまっているせいかも
しれないです。

このようや事象を回避する方法はありますでしょうか?
9030です:2008/12/09(火) 12:30:49 ID:pNYuh3pR
>>84
>if (mysql_num_rows($res) <= 0) { return; }
>この目的は行数を得ることですか?
行数把握が目的ではなく、結果セットが無い場合(該当レコードゼロ)
の場合の対処が目的です

>結果セットがない場合はreturnだったら、
>pdoのイテレーターでそのまま実装できるのでは?
ここが分かりません
どのような記述でしょうか?
91nobodyさん:2008/12/09(火) 12:34:59 ID:???
>>89
究極の解決方法は
他人が作ったものを使わない!

それはさておき
確実に
session_start();
をよんでるからだろ…これをコメントアウトすれば?
あとセッションが利用しているかしていないかの判定入れて
利用してなければスタートするようにする
92nobodyさん:2008/12/09(火) 12:47:14 ID:???
>>90
あんまスマートじゃないけど許してね
たとえばこんな感じ
$row = $stmt->fetch();
if (false === $row) return ;
do {
//処理
} while($row = $stmt->fetch());
93nobodyさん:2008/12/09(火) 12:51:29 ID:6VdqcFEv
>>91


session_start でやはり初期化されるようですね。
おっしゃるとおりやってみます

サンクス湖
9430です:2008/12/09(火) 12:56:02 ID:pNYuh3pR
>>92
ありがとうございます
fetchして判定しようとは思ったのですが
カレントレコードが移動してしまうのでどうしたら
いいのだろうかと模索していました

whileではなく、do while ですね
ありがとうございました
95nobodyさん:2008/12/09(火) 13:26:32 ID:???
while ($row = $db->fetch()) {
}
してれば件数0の場合は実行されないからいいんじゃないの?
96nobodyさん:2008/12/09(火) 14:26:08 ID:???
>>95
件数0件のときを別処理にしたいということじゃない?
97nobodyさん:2008/12/09(火) 14:53:16 ID:???
じゃ$db->fetch()なり$rowなりで判定すればいいじゃない
98nobodyさん:2008/12/09(火) 14:54:31 ID:???
回答をまとめてくれないとわからない件
99nobodyさん:2008/12/09(火) 15:13:34 ID:???
>>97
ん、たとえば、どんな感じ?
100nobodyさん:2008/12/09(火) 17:37:02 ID:???
>>94
日本語としては「じっぽん」が正しいが、レッドブックの「とおほん」(×とうほん)も間違いではない
ただ朝鮮人や一部の関西人が良く使う「じゅっぽん」は明らかに間違い
これを使っていると日本人である事を疑われるので気を付けるように
101nobodyさん:2008/12/09(火) 17:37:19 ID:???
>>89
俺が有料で改造してあげゆ
102nobodyさん:2008/12/09(火) 17:37:28 ID:???
なんか変なのが沸いてるな
103nobodyさん:2008/12/09(火) 17:43:01 ID:???
>>82
PDOをやめる。という解決は?!
104nobodyさん:2008/12/09(火) 18:46:37 ID:O9eg0LyY
【OS名】CentOS release 5.2
【PHPのバージョン】PHP5.1.6

pecl installでAPC導入したのですがphpinfo()に反映されませんでした。
apache再起動時のエラーログを確認した所
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/apc.so' - /usr/local/lib/php/extensions/apc.so: undefined symbol: zend_compile_file in Unknown on line 0
と出ています。
導入したAPCのバージョンは3.0.19です。
解決策ありましたらご教授よろしくお願いします。
105nobodyさん:2008/12/09(火) 19:21:43 ID:AVrbWSbl
少数は内部的に違う数値になっているから
少数の比較をしてはならない、
って、解説サイトに書いてあったんだが、そうなの?
106nobodyさん:2008/12/09(火) 19:22:15 ID:???
少数X
小数○
107nobodyさん:2008/12/09(火) 19:30:42 ID:???
質問者としての態度をわきまえろ!
108nobodyさん:2008/12/09(火) 19:36:14 ID:???
                   ∧∧ ∩
                  ( ゚ω゚ ) /
             ハ_ハ   ⊂   ノ    ハ_ハ
           ('(゚ω゚`∩   (つ ノ   ∩´゚ω゚)')
       ハ_ハ   ヽ  〈    (ノ    〉  /     ハ_ハ
     ('(゚ω゚`∩  ヽヽ_)        (_ノ ノ    ∩´゚ω゚)')
     O,_  〈                      〉  ,_O
       `ヽ_)                     (_/ ´
   ハ_ハ          お 断 り し ま す         ハ_ハ
⊂(゚ω゚⊂⌒`⊃                       ⊂´⌒⊃゚ω゚)⊃
109nobodyさん:2008/12/09(火) 23:37:38 ID:???
質問ないのか?まったく日々精進する気のねえ三流プログラマどもだな
110nobodyさん:2008/12/10(水) 12:01:59 ID:6u+ZdXWj
こんにちは。PHPでMySQLのデータをエクセル出力したいです
MySQLのデータを、PHPを用いて表示は出来ましたが、エクセルへ出力となると何から手をつけていいのやら…

オススメの参考資料などありませんか?
ググってもCVS出力というものばかりヒットします
111nobodyさん:2008/12/10(水) 12:12:05 ID:???
公式マニュアルに書いてありますね
112nobodyさん:2008/12/10(水) 12:49:12 ID:???
だったらそのマニュアルのリンクを張れ!!!
113nobodyさん:2008/12/10(水) 12:52:42 ID:???
ぐぐれよ
114nobodyさん:2008/12/10(水) 12:54:11 ID:???
webサイトの開発のテスト目的で
強制的にセッションを切断したいんだけど
なんか良い方法ある?
115nobodyさん:2008/12/10(水) 12:55:48 ID:???
ブラウザを閉じる
116nobodyさん:2008/12/10(水) 13:14:41 ID:???
閉じても切れないんだよなこれが
117nobodyさん:2008/12/10(水) 13:17:26 ID:???
>>114
サーバのセッションファイルを手作業で削除
118nobodyさん:2008/12/10(水) 15:02:36 ID:???
>>116
ブラウザのクッキーをクリアしたらいいじゃないか?
119nobodyさん:2008/12/10(水) 16:36:22 ID:AE/sV1ze
フォルダを圧縮して、ダウンロードさせにはどうしたらいいでしょう。
フォルダのなかに、ファイル(データ書込み)をつくり、
そのフォルダを圧縮します。

また、複数人がアクセスすることを考えると、
ファイルには乱数で名前をつける必要があるのでしょうか?

素人ですみませんが
120nobodyさん:2008/12/10(水) 16:40:54 ID:???
圧縮してからうpればいいじゃん
121nobodyさん:2008/12/10(水) 17:13:46 ID:AE/sV1ze
すみません。

WEB上から申し込んだ人に対して、
個別にファイルをTENPでつくり、
それを入れたフォルダを圧縮したいです。
122nobodyさん:2008/12/10(水) 17:23:26 ID:???
123nobodyさん:2008/12/10(水) 17:23:45 ID:???
圧縮関数なかったっけ?
124nobodyさん:2008/12/10(水) 17:48:30 ID:IV3o+bU1
$part1から$part78まで、$_POST['part1']から$_POST['part79']までをそれぞれの変数に下記のようにセットしたいのですが、いちいち一列づつ書いていく意外に方法ありますか?

$partO=$_POST['partO'];
125nobodyさん:2008/12/10(水) 17:49:16 ID:IV3o+bU1
間違えました↑

$_POST['part78']までです
126nobodyさん:2008/12/10(水) 18:05:15 ID:???
>>124
extractかregister_globalsか$_POSTのまま使う
127nobodyさん:2008/12/10(水) 18:08:59 ID:???
>>124
配列にセットしたら?

$part = array();
for ($i = 1; $i <= 79; $i++) {
if (isset($_POST["part{$i}"])) {
$part[$i] = $_POST["part{$i}"];
}
}
128127:2008/12/10(水) 18:12:06 ID:???
あ、78までか
$i <= 78か$i < 79ね
129nobodyさん:2008/12/10(水) 18:14:47 ID:IV3o+bU1
>>126

ありがとうございます。
$_POST[]の部分に変数が入れられないと思ってましたが、ググってみたら"{}"で入れられるんですね。
130nobodyさん:2008/12/10(水) 18:15:56 ID:IV3o+bU1
間違えた↑

>>126>>127>>128
131nobodyさん:2008/12/10(水) 18:16:45 ID:???
>>129
入れられるわ
$_POST[$key]
132nobodyさん:2008/12/10(水) 18:19:47 ID:IV3o+bU1
>>131

orz

自分 '' をつけてました。
133nobodyさん:2008/12/10(水) 18:20:44 ID:???
別にシングルクオートでも
$_POST['part' . $i]とかでもいいよ
柔軟に書けます
134nobodyさん:2008/12/10(水) 19:22:10 ID:AE/sV1ze
>>つ ttp://jp.php.net/manual/ja/ref.zlib.php

素人なものですみません。

ファイルの圧縮は、例文どおりに書いたらできましたが、
フォルダの圧縮がまったくわかりません。
どの関数を使うのでしょうか?

また、複数人が同時アクセスすると、
フォルダの中には複数のtempファイルが入ってしまうのでしょうか?
個別にしたいわけですが。
135nobodyさん:2008/12/10(水) 19:31:33 ID:???
アーカイブ+圧縮すればできそうだが
136nobodyさん:2008/12/10(水) 20:01:42 ID:UV6BBIxz
質問

<?php
for ($a=0; $a<3; $a++){
print ($a."<br />");
}
?>


↑これで、1行ずつ表示したいんだが、無理?
137nobodyさん:2008/12/10(水) 20:07:08 ID:???
>>136
何故試さないのですか?
138nobodyさん:2008/12/10(水) 20:10:34 ID:???
>>134
フォルダーの圧縮やってみました?
mkdirしてそこに必要なファイルをつっこんでそのフォルダを圧縮 チーン
139nobodyさん:2008/12/10(水) 20:11:37 ID:UV6BBIxz
>>137
いや、だから、何を試すんだよ?
バカなのかお前
140nobodyさん:2008/12/10(水) 20:12:12 ID:UV6BBIxz
>>137
1行ずつ、って
ゆっくり表示する、って意味だよ?
141nobodyさん:2008/12/10(水) 20:14:21 ID:???
>>140
>>1を満たしていないので却下
142nobodyさん:2008/12/10(水) 20:18:28 ID:???
>>140
ゆっくり表示するって書いてくれなきゃわからないです。ごめんなさい。
田代砲でサーバ攻撃しながら表示すればOK
143nobodyさん:2008/12/10(水) 20:19:25 ID:???
って、あぁぁ、送信つもりないのにエンター押しちゃったよorz..
flushとsleep使ったらどうかね
144nobodyさん:2008/12/10(水) 21:11:51 ID:???
ローカルサーバにローカルから田代砲を試し打ちして
しっかり守ってるかセキュリティのチェックがしたいのですが
田代砲って配布サイトで拾ってきたもの使っても大丈夫ですか?
145144:2008/12/10(水) 21:12:46 ID:yyzcwK8M
すいません144です
146nobodyさん:2008/12/10(水) 21:24:10 ID:???
んなスクリプト3行ぐらいで出来るだろ・・・
147nobodyさん:2008/12/10(水) 21:31:58 ID:???
田代砲ってDoS攻撃だろ・・・
セキュリティのチェックとか関係ない
148nobodyさん:2008/12/10(水) 21:42:22 ID:???
http://science6.2ch.net/test/read.cgi/math/1228746786/291

この問題を表示するプログラムって
ちょちょいと作れる?
149nobodyさん:2008/12/10(水) 21:43:19 ID:???
作れるっていったら作るなら作れるって言ってあげるよ
150nobodyさん:2008/12/10(水) 21:48:36 ID:???
>>148
京大過去問乙
151nobodyさん:2008/12/10(水) 21:49:21 ID:AE/sV1ze
圧縮の件ですが、
1)ファイルを動的につくる
2)そのファイルを含む複数のファイルをまとめて圧縮する

この2つをやる例文はないでしょうか?

素人なものですみません
152nobodyさん:2008/12/10(水) 22:04:50 ID:???
>>149-150

とりあえず、
フォームで、「nの値を入力させる」

そんで、nが確定するから、
そのときの、出る目のパターンを、
全表示する、って、PHPでできる?
153nobodyさん:2008/12/10(水) 22:15:04 ID:???
154nobodyさん:2008/12/10(水) 22:33:18 ID:???
Pear使わなくても標準クラスで良くね?
http://jp.php.net/manual/ja/function.ziparchive-open.php
155nobodyさん:2008/12/10(水) 22:56:27 ID:???
http://c-brains.jp/blog/wsg/08/04/07-144033.php

このサイトわかりやすい
156nobodyさん:2008/12/10(水) 23:00:34 ID:???
作者の宣伝乙
157nobodyさん:2008/12/10(水) 23:02:09 ID:???
http://c-brains.jp/blog/wsg/08/05/22-193020.php

このページに、

「セッションというものは、クッキーを利用している」

って書いてあるけど、別にクッキーを使わない
セッションというものも、あるんですよね?
158nobodyさん:2008/12/10(水) 23:09:40 ID:???
>>157
ある。
お勧めはしない
159nobodyさん:2008/12/10(水) 23:33:40 ID:???
クッキーなんてあてにならんだろ
160nobodyさん:2008/12/10(水) 23:36:40 ID:AE/sV1ze
圧縮の件

素人ですみません。

zlib というので、やりたいのですが、
フォルダにするやり方がどうしてもわからないので断念

zip関数というので、できそうな気がしましたが、
サーバーを調べるとPHP4だったので、たぶん使えないだとうと断念

Pear でやれるか検討中。

という感じなんですが、できるでしょうか?
161nobodyさん:2008/12/10(水) 23:45:17 ID:???
やる気次第では?
162nobodyさん:2008/12/10(水) 23:46:50 ID:???
市ね
163nobodyさん:2008/12/11(木) 00:15:49 ID:2wImFGsH
質問

セッションは、

(1)セッション+クッキーで管理する
(2)セッション+URLにセッションIDを埋め込む

この2つしかやり方はない、であってる?
164nobodyさん:2008/12/11(木) 00:25:16 ID:???
クッキーで管理するのも含めてセッションだから。。。
URL埋め込み以外にもフォームのhiddenの場合もあるし
165nobodyさん:2008/12/11(木) 00:40:13 ID:2wImFGsH
(1)クッキー
(2)URL埋め込み
(3)hidden

おおまかに言って、この3種類?
166nobodyさん:2008/12/11(木) 01:13:02 ID:vCW1WzQV
たびたびすみません

http://jp.php.net/manual/ja/zip.examples.php

ここに書いてある最初の例を、ローカルで試すと、
書き込んだファイルの拡張子の後に、
乱数(時間?)の数字がつきます。
それも、ちょっとまずく、
個別のアクセスした人に、個別のファイルをダウンロードさせたい
わけです。
数字なしにすれば、いいでしょうか。
その場合、同時アクセスのリスクはあるでしょうか?

素人ですみません

167nobodyさん:2008/12/11(木) 01:42:27 ID:???
>>166
これはおもしろいサンプルだ。
実行したら、パソコンの中にZIPファイルができた。
168nobodyさん:2008/12/11(木) 02:07:33 ID:???
>>166
>乱数(時間?)の数字がつきます。
time()を外しゃいいのでは?
169nobodyさん:2008/12/11(木) 02:16:43 ID:vCW1WzQV
レスありがとうございます。
time()を外すと、大丈夫でした。

あと、アクセスした人個別にファイルをつくり、
その個別ファイルをダウンさせたいわけです。

なので、同時にアクセスされると不具合が起きるような気がして
ずっと心配しています。

そういう場合はプロの方はどうするのでしょうか?

同時に1人しかアクセスしないように制限するとか・・・
170nobodyさん:2008/12/11(木) 02:19:15 ID:???
もっと詳しく説明してくんないと何とも言えない
171nobodyさん:2008/12/11(木) 02:37:05 ID:???
アプリケーション番号みたいのを
付与したいんでないか?
172nobodyさん:2008/12/11(木) 04:15:55 ID:2wImFGsH
質問

本や解説サイトによって、
関数の引数の
値渡しと、参照渡しで、
どっちが多く使われるか、
意見が分かれているのだが、
どっちがポピュラーなのか?
173nobodyさん:2008/12/11(木) 04:21:57 ID:???
最近いないと思ったらまたお前か
理論的なことばっか質問するな
答えがほしいなら学校へ行け
技術的に詰まったら質問に来い
174nobodyさん:2008/12/11(木) 04:23:18 ID:???
            __、
     ,r´⌒ヽ,⌒ヽ,ヽ
   (⌒)、   .人  λ\、 ._____
    \. \    、 ヽ./ ー  ー\
     |\ \    ヽ./ ( ●) ( ●)
     |  \  \ /     (__人__) \  はいはい、どーもすみませんでした
     |.   \   |       ` ⌒´   |
  .   |.   |.\_ノ\            /
  .   |.   |   |   \______/
  .   |   )  .|     . . ̄ ̄
  .   |   |  .|
     |   |.|  .|
  .   |  | .| .|
     /  / / ヽ,
    (__ノ  ヽ、__つ
175nobodyさん:2008/12/11(木) 08:01:27 ID:???
今時そんな問題で悩むなんて・・・
176nobodyさん:2008/12/11(木) 08:09:54 ID:???
まさに、タイトル通り、くだらねぇ
177nobodyさん:2008/12/11(木) 12:52:42 ID:???
>>172
ポピュラーなんてない
考えるならどちらが最善なのかを状況に応じて考えろ
178nobodyさん:2008/12/11(木) 21:02:23 ID:yxR9XmFM
あるコマンドの出力の中から出力部分を取得したいと思います。
データの構造は、このようになっていますが、
どのようなデータ処理が一番適切でしょうか?

adfadfasdfasf1 384 Thu Dec 11 10:41 data1
(himitu1)
subdata1
adfadfasdfasf2 356 Thu Dec 11 05:20 data2
(himitu2)
subdata2
adfadfasdfasf3 361 Wed Dec 10 20:32 data3
(himitu3)
subdata3






このような構造のデータが可変で続きます。
上記の例でいえば、data1、subdata1、data2、subdata2、・・・の順で取得してDBに突っ込みたいと思っております。
一つのデータが一行で収まっていれば、explodeと簡単なのですが、
一つのデータが複数行になってしまっているので、処理が複雑になってしまいます。

何かよい知恵をお貸し下さい。お願いします。
179nobodyさん:2008/12/11(木) 21:05:45 ID:???
3行ごとに分けてexplodeなりsubstrなり正規表現なりで好きなように切り取ればいいじゃない
180nobodyさん:2008/12/11(木) 21:43:42 ID:???
>adfadfasdfasf2 356 Thu Dec 11 05:20 data2
悩むとするならこの行だろうけど、
項目が減ったり増えたりする訳じゃないのだから
頑張って正規表現だな。

まず、日付を先に取り出すのを考えて、日付取り出しちゃえば
後はすげー楽だと思う。

7種類の曜日のどれか、スペース、12種類の月のどれか、スペース
数字2桁、スペース…
正規表現に当てはめるのは簡単だけど、書くのは凄いめんどくさそうだね。
181nobodyさん:2008/12/11(木) 22:37:36 ID:yxR9XmFM
>>179 >>180
アドバイスありがとうございました。
行での正規表現でのアドバイス参考になりました。

ただ、3行ずつ分けるって、結構大変そうですね。
やはりフラグを多用し、プログラムがぐちゃぐちゃになりそうなので、
そこはちょっと困ったところです。もう少し考えてみます。
どうもありがとうござました。
182nobodyさん:2008/12/12(金) 01:34:45 ID:???
implode("\n", $text)やって
$i = 0;
$j = 0;
foreach ($text as $line) {
$block[$i][$j] = $line;
$j++;
if ($j == 2) {
$j = 0;
$i++;
}
}
的なことすればいいんでないの?
183nobodyさん:2008/12/12(金) 02:00:06 ID:8m0qh2cG
phpでベンチマークで一回のPVで平均0.07秒掛かります。

一時間当たりのどれくらい処理できるかを考えるとき、
3600÷0.07=51,429PV処理できると考えて、ほぼ間違いないでしょうか?

どれだけの処理能力があるかが分かると、どれくらいの負荷の時に、
サーバーを増やす必要があるかどうか分かるので、参考になります。
アドバイス下さい。
184nobodyさん:2008/12/12(金) 02:03:32 ID:???
お前は何を言ってるんだ
185nobodyさん:2008/12/12(金) 02:08:35 ID:???
>>183
ちゃんとした負荷テストをやって下さい
186nobodyさん:2008/12/12(金) 02:11:48 ID:8m0qh2cG
>>184>>185
色々情報を書きすぎてすみません。
知りたいことは、一時間あたり「待ち時間なく」どれくらい処理できるか、ということでした。
そう考えたときに、51,429PVまでなら、待ち時間なく0.07秒で処理できるという認識で正しかったでしょうか?
187nobodyさん:2008/12/12(金) 02:27:34 ID:???
ベンチマークの0.07秒とはユーザ秒?システム秒?
188nobodyさん:2008/12/12(金) 02:29:55 ID:???
処理時間や負荷なんて同時アクセス数で増減する増えるわけで
PVとかあんまり参考にするものじゃない
189nobodyさん:2008/12/12(金) 02:31:04 ID:8m0qh2cG
>>187
はい。0.07秒は、リクエストを最初に受け取った直後から、
リクエストを返却してスクリプトを終了する直前までの時間です。
5万回リクエストテストをして得た数値です。

DB処理も絡むシステムなので、待ち時間が発生すると、DBのデータ不整合が発生する場合があるので、
できる限り待ち時間を発生させないのが課題です。
190nobodyさん:2008/12/12(金) 02:34:19 ID:???
トランザクション使えよ
191nobodyさん:2008/12/12(金) 02:34:21 ID:???
>DBのデータ不整合が発生する場合があるので、
いやいやいや・・・
トランザクション処理も知らないのか?
192nobodyさん:2008/12/12(金) 02:41:15 ID:???
待ち時間が発生しようとも、
データーの不整合が発生しないように
組むのが普通だよね?
193nobodyさん:2008/12/12(金) 02:45:54 ID:8m0qh2cG
>>190 >>191
トランザクションは、結構多いです。ですから、それで困っています。
そうなると、たまたま同じデータに更新処理しようとしたときに、微妙なタイミングでデータが破損することが分かっています。
これが原因だということを突き止めるのに結構時間も掛かりました。
以上の経緯から、システムを安全に運用するために、待ち時間を発生させる前にサーバー増設のタイミングを計ろうと考えているところです。
そのためのデータとして、一時間当たりの処理能力を測ることはできないでしょうか?
194nobodyさん:2008/12/12(金) 02:47:29 ID:???
お前は何を言ってるんだ
195nobodyさん:2008/12/12(金) 03:00:16 ID:???
ロックをかけたりするんじゃないの?
196nobodyさん:2008/12/12(金) 03:06:02 ID:???
>>193
銀行が世の中からなくなるわ
197nobodyさん:2008/12/12(金) 03:12:52 ID:???
>>193
排他処理をすればいいでしょ。
処理能力を上げて待ち時間を無くして、DBを守るなんて無理。
昔、いい加減なCGIで作られた、超過疎のBBSでもログを飛ば
すことがしょっちゅうあった。

っていうか、何釣り?
198nobodyさん:2008/12/12(金) 03:19:22 ID:???
頭がいいんだか、悪いんだか、、、
努力する方向を間違ってる人っているよな。
199nobodyさん:2008/12/12(金) 03:28:03 ID:???
1時間あたり何PV処理できれば不整合が発生しないと考えてるのか気になる
200nobodyさん:2008/12/12(金) 03:31:05 ID:???
そんなもん、同時にアクセスされたら終わるにきまっとる
201nobodyさん:2008/12/12(金) 03:42:21 ID:8m0qh2cG
私の知識不足と説明不足で、色々考えさせてしまってすみません。
確かに、>>200さんが仰られているとおり完全に同時にアクセスされたら終わりです。
ただ、それは仕様として諦めるとしても、できるだけそのような状況を回避することはできないでしょうか?

たとえば、現実の話に喩えますと、店のレジが一個しかなくてレジ係の人が1時間で100人しか人をさばけないとします。
その時、一時間平均100人を超える人が並ぶことが予め想定されるならば、レジを増やすなりの必要があるのではと考えています。
単純に、一時間200人の客がくれば、一時間で100人の待ちが発生し、10時間後には1000人の待ちが発生します。
もし、この店が24時間営業ならば、この待ちは永遠に解消されません。

サーバーの話に戻しますと、永遠に解消されない待ちは、いずれシステムダウンに繋がるのではと思っています。
どのような動作になるのかは、知識不足で分かりませんが、そのような状況を回避するために一時間当たりの処理能力を測る手立てというものはありませんでしょうか?

長文ですみません。
202nobodyさん:2008/12/12(金) 03:45:58 ID:???
意味がわからん
ファイルロックとかしてないの?
203nobodyさん:2008/12/12(金) 03:47:15 ID:???
>>201
>>199は?
204nobodyさん:2008/12/12(金) 03:49:15 ID:???
客の数を減らしたいなら
有料にすればいいのに。
205nobodyさん:2008/12/12(金) 03:57:29 ID:8m0qh2cG
ん、話が全然かみ合わないですが、
phpの話というよりweb全体の話ということで、スレ違いなのでしょうか?

ちなみに、話題にあがっているロックや客の数を減らすというのは、
根本的な解決には全然ならないと思うのですが。

上のたとえで言えば、レジが処理できないので、客を外で待たせる、客を追い出すって話ですよね。
それはちょっと方法論として違うかと思います。
206nobodyさん:2008/12/12(金) 04:21:32 ID:???
待ち行列理論というものがあってだな
207nobodyさん:2008/12/12(金) 05:49:01 ID:???
>>205
話がかみ合わないんじゃなくて、わかった上でおかしいんじゃない?
ってみんな言ってるんだと思うけど・・・

さてと、その変なところをおいといたとして。
>>189
> はい。0.07秒は、リクエストを最初に受け取った直後から、
> リクエストを返却してスクリプトを終了する直前までの時間です。
> 5万回リクエストテストをして得た数値です。

その5万回を入れた単位時間は?
1リクエストで付随的に発生する関連リクエストはないの?

で、同時アクセスの偏りはどの程度と見積もってるの?
で、業務のクリティカル度は?

とまぁ、いろいろ考えてからベンチを取らんとねぇ。
低負荷状態の処理時間なんて飾りです。
同時アクセスが継続した場合にどうなるかをチェック汁。

というわけで、
>>183
> 3600÷0.07=51,429PV処理できると考えて、ほぼ間違いないでしょうか?

ほぼ、間違いです。
リクエストが均一に来るわけないし、
ちょっと重くなるとF5アタック来るし、

208nobodyさん:2008/12/12(金) 06:13:41 ID:???
ていうか個人レベルならともかく業務レベルならコンサルに聞けよ
掲示板で解決しようってのがそもそもの間違い
209nobodyさん:2008/12/12(金) 07:41:10 ID:???
web制作管理板であっち行けされましたので、こちらに投稿します。

裏でDBを動かして、PHPでアンケート画面を作るとします。

アンケートの項目が多くて1つの画面で収まらない場合があるけど、
一覧性というか視認性を下げたくないからスクロールは使わないと
します。

当然アンケートが複数のページにまたがる形になりますが、こういう
場合はcookieで、前のページの情報を持つのが普通なのでしょうか?

あまり調べては居ませんが、PHPでテンポラリファイルを作成、或いは
cookieでアンケートのデータを保持するなどして、アンケートのいずれ
かのページにある登録ボタンが押されたらDBにデータを書き込む、
別のページに移動しようとしたら、キャンセルするかどうかの確認
ページを出す、ようにすることが可能でしょうか?

参考になるサンプルページがあるとよいのですが。

javaでクライアント側を作り込んだほうがよいのかもしれません。
210nobodyさん:2008/12/12(金) 07:59:34 ID:???
>>209
PHPで普通に可能
Javaですか、JavaApplet?JavaFX?それもいいんじゃない?
211209:2008/12/12(金) 08:09:31 ID:???
>>210レスサンクス。

せいぜい数クライアントしか繋がないので、応答速度重視ではありません。
開発速度は必要です。

テキストを結構含むことになるので、クッキーだけでは追いつかない
かもしれず、PHPでテンポラリファイルを使うことになるのかなー、と
思ったのです。
212nobodyさん:2008/12/12(金) 09:25:43 ID:???
なんで、$_SESSIONを使わないのかよくわからんが、
テンポラリファイルでもできるんじゃね?
つうか、スレチかもよ。
ttp://pc11.2ch.net/test/read.cgi/php/1227303362/l50
213nobodyさん:2008/12/12(金) 14:32:13 ID:3H8K5DfD
PHPでテキストファイルから1行読み込む時、
fopenでファイルを開いてwhileで回しながら
fgetsで1行ずつ取得できます。

それで質問ですが、指定行を読み込む事って出来ないのでしょうか?
全ファイルを出力するとファイルサイズによっては処理が遅くなるので
特定の文字列が一致する行だけ取得できればと思っています。
214nobodyさん:2008/12/12(金) 14:41:07 ID:???
>>213
行のデータサイズが固定など、行の始まりの位置がわかれば特定の行だけ読み込むことも可能です。
215nobodyさん:2008/12/12(金) 16:27:49 ID:???
>>213
その為のDB
216nobodyさん:2008/12/12(金) 20:33:31 ID:???
217nobodyさん:2008/12/12(金) 20:38:07 ID:???
>>216 そっすね
218nobodyさん:2008/12/12(金) 21:09:44 ID:N5GIYx97
質問

教科書を読んでたら、
「ファイルを読み込む処理をするときには、
is-readable関数を使って、
そのファイルが本当に存在するかどうか、
あらかじめ確かめないといけません。

この処理を忘れたときには、noticeが出ます」

って書いてあるんだけど、自分で書いたプログラムで、
テキストファイルをf_openで読み込む部分があるんだけど、
そこで別に、is_readableとかで、ファイルの存在とか、確かめなかったんだけど、
それで別にNoticeとか出なかったんだけど、これでいいのかな?

それとも、通常実行時には何もエラーが出なくて、
ファイルが存在しなかったときにだけ、エラーが出るって意味なの?
219nobodyさん:2008/12/12(金) 21:16:27 ID:???
>>216
Perlで仕事してる人とかいんの?
220nobodyさん:2008/12/12(金) 21:24:04 ID:N5GIYx97
質問

requireとかincludeとかの関連の質問です。

読み込むファイルの拡張子を.phpにしていると、
そのファイル単体を実行されてしまうかもしれないので、
拡張子を.incとかにしておくように、と
教科書に書いてあるのですが、そうなのですか?
221nobodyさん:2008/12/12(金) 22:01:41 ID:???
>>216
保守だけが仕事の中年Perlerだろ
リストラしろ〜w
222nobodyさん:2008/12/12(金) 22:14:09 ID:cYuXCaJp
すみません初心者です。

$this-> abc =

このときの -> はどういう意味でしょうか?
連想配列ではないと思うのですが
223nobodyさん:2008/12/12(金) 22:15:41 ID:cYuXCaJp
補足
コードを見ていると、
$this-> abc は $abc と同じではないかと考えているのですが
まちがいでしょうか。
224nobodyさん:2008/12/12(金) 22:16:10 ID:???
225nobodyさん:2008/12/12(金) 22:43:09 ID:N5GIYx97
質問

htmlentities と htmlspecialchars の違いだけど、
htmlentitiesはバグがあって、シフトJISの半角かなを入れると、

本来変換すべきでない文字なのに変換してしまって
プログラムが破壊される、という。

よってhtmlspecialcharsを使うべきである、
この理解であってる?
226nobodyさん:2008/12/12(金) 22:56:48 ID:cYuXCaJp
>>224
むずかしくてわかりません。
もっとわかりやすいのはないでしょうか。
227nobodyさん:2008/12/12(金) 23:00:38 ID:N5GIYx97
質問

「PHP 5以降、デフォルトで値はリファレンス渡しとなります。」

と書いてあるのだが、自分で実際に実験してみたら、
値渡しになっているのだが、これってどっちが正しいの?
228nobodyさん:2008/12/12(金) 23:02:18 ID:N5GIYx97
>>226
デリヘル「おまんこクラブ」って店があったとして、
そこに登録している女の子が「みよちゃん」「あすかちゃん」「かなえちゃん」
だったとして、
「みよちゃん」を指名するのが、

$おまんこクラブ-> みよちゃん
229nobodyさん:2008/12/12(金) 23:04:54 ID:N5GIYx97
>>227
ごめん、意味がわかった。
本来書くべき引数を、省略した場合に
どちらが使われるか、という意味なのね。
230nobodyさん:2008/12/12(金) 23:14:45 ID:???
>>218,220
べつにis_readableしなくてもfopenにエラー制御付けてdieすればいいじゃない
.incにするというより外部からアクセスできなくする方がいい。
読み込みさせたくないファイルをexample.inc.phpとかにして.htaccessとかで
<FilesMatch "\.inc\.php$">
Order allow,deny
Deny from all
</FilesMatch>
って書いてあげればおk

つーか教科書ってなによ
231nobodyさん:2008/12/12(金) 23:17:42 ID:N5GIYx97
>>230
「incフォルダ」というのを作って、
そこにincを全部押し込めて、そんで
そのフォルダのパーミッションごと、
ユーザーからは000にすればいいかな。

そんで、オーナーからのみ利用可能と。
232nobodyさん:2008/12/12(金) 23:30:45 ID:???
ID:N5GIYx97
233nobodyさん:2008/12/13(土) 01:00:18 ID:6CbaLDLd
質問

「メタタグで、ページのコードを指定しないと
セキュリティ的に危険」

という記述を見つけたんだけど、そうなの?
234nobodyさん:2008/12/13(土) 01:04:08 ID:6CbaLDLd
質問

htmlspecialchars で、
第三引数に、
mb_internal_encodingを指定するやり方と、
utf-8 を指定するやり方と、
2種類あるようなんだが、
これの違いはなに?
235nobodyさん:2008/12/13(土) 01:08:01 ID:6CbaLDLd
質問

ユーザーが何か文字を入力するような
フォームは一切置いてなくて、ただボタンを押す
だけのプログラムなんだが、この場合でも
htmlspecialchars等でサニタイズはしたほうがいいの?

「変数を画面に出力する場合には、
すべてサニタイズしたほうがよい」

って解説サイトに書いてあったので。

あと
「POSTでも攻撃はできる」

との記述もありました。
236nobodyさん:2008/12/13(土) 02:21:17 ID:RdWJvdiT
別にしなくてもいいんじゃないかな?
「POSTでも攻撃はできる」は確かにできるけど、
それはあくまで変数を取得したときだから
237nobodyさん:2008/12/13(土) 02:49:23 ID:???
なんで相手にするの?バカなの?
238nobodyさん:2008/12/13(土) 02:59:00 ID:???
>>216
PHPのエンジニアの給料が安いのは、単純にエンジニアの数が多いから
市場原理で下がってるんじゃないかな?
239nobodyさん:2008/12/13(土) 03:05:34 ID:???
>>219
perlのエンジニアの給料が高いのは、内容の難易度とは何の関係もなく
単に人がいないから市場原理で上がっているんだろうな。
240nobodyさん:2008/12/13(土) 04:22:46 ID:???
<?php

$a=10;

function Test()
{
print "hello";
$a=$a-1;
Test();
}

Test();
?>

これを実行したらアパッチが死んだ。一瞬で。
怖いプログラムや。
241nobodyさん:2008/12/13(土) 04:55:25 ID:???
言語で給料が決まるのか?Perlでも糞コードばかり書くプログラマなんか
ざらにいるだろう?不思議だね
242nobodyさん:2008/12/13(土) 06:07:09 ID:???
Googleが適当に巡回して適当に蓄積した適当なデータに基づいた適当な数値を出してるだけなのに
何を真剣に議論してるんだ
Perlやってまーす今月のお給料は30万円でした!→Perl 給料 30万円
今回のプロジェクトはPHPです。今日は給料日でお昼にトンカツを食べたよ。600円だった。→PHP 給料 600円
243nobodyさん:2008/12/13(土) 06:20:39 ID:6CbaLDLd
>>234
これ誰か教えてよ
244nobodyさん:2008/12/13(土) 06:30:35 ID:???
PHPは裾野が広いから末端の安さに引きずられて平均を押し下げてるってことだろう。
コーダーに毛が生えたレベルでできる案件でもPHPプログラマー募集だからな。

例のURLは米だが、
日本だと、本当にできるやつは限られてて、いくら積んでもあつまらないからね。
実力を証明できれば、月150は普通に行ける。
245nobodyさん:2008/12/13(土) 06:37:22 ID:???
>>234-236
だめだめだね。
>>234
質問が不完全なのでマニュアルを読んで、どっちの引数に指定なのかぐらい書いてください。
>>235-236
「変数を画面に出力する場合には、
すべてサニタイズしたほうがよい」
表示するときにするのはサニタイズじゃなくてエスケープな。
XSSされてマルウエア撒く土台になっても問題ない、
何を実行されても変更するコードを含まないサイトじゃないかぎりアウト。

>>236は釣りだろ。POSTだって全然だめこ。
246nobodyさん:2008/12/13(土) 06:38:06 ID:???
スレ違い
247nobodyさん:2008/12/13(土) 06:46:24 ID:6CbaLDLd
http://www.meibinlab.jp/nishijima/archives/58

このサイトで、

「よくhtmlspecialchars関数が使われていたり、
htmlentities関数を使っていても第1引数しか
指定されていなかったりしますが、これでは穴
が残ることになります。」

って、断言しちゃってるんだが、
htmlspecialcharsはそんなにダメな子なの?
248nobodyさん:2008/12/13(土) 06:52:11 ID:???
サニタイズという言葉を使うやつは信用しないほうがいい
249nobodyさん:2008/12/13(土) 07:12:10 ID:6CbaLDLd
http://tech.oklahome.net/6/Fall+Break.html

このページに

「また、第3引数に文字コードも指定した方が無難です。
 $fixed = htmlspecialchars($str, ENT_QUOTES, UTF-8);
「UTF-8」と書いた部分には、自分の使っている文字コード
を書きます。mb_internal_encoding()と書いておくのもありです。

と書いてあるのだが、「UTF-8」と「mb_internal_encoding()」と
どっちを書けばいいのだ?
250nobodyさん:2008/12/13(土) 07:33:57 ID:???
>>249
日本語勉強汁
書いてあるまんまだろ
処理対象が内部エンコードじゃなかったら自分で指定しなきゃいかんわけだし。
251nobodyさん:2008/12/13(土) 07:37:09 ID:???
>>247
第2引数が省略されて、アトリビュートをシングルクォートで出力すると
XSSが可能になる
文字コードを指定しないと、文字コードが違った場合に変換されない文字がある。
処理対象文字列が出力文字列と違う場合など、処理方法はケースバイケース
定式の対策ってのはサンプルでしかないって常識だから(カス以外)
252nobodyさん:2008/12/13(土) 08:41:32 ID:???
pearからアク禁されたやつっている?
253nobodyさん:2008/12/13(土) 08:58:20 ID:6CbaLDLd
DB.とMDB2で、
DBはもう古くて、
MDB2を使わないとだめなの?
254nobodyさん:2008/12/13(土) 09:46:06 ID:???
>>253
なんで「質問」付けなくなったの?質問内容からなんとなく分かるけど念のため付けてくれ
255nobodyさん:2008/12/13(土) 11:57:09 ID:???
だな。さもなきゃトリップつけたら?

さて、スパム質問がんがん続けてもらって結構だが、
>>1を守って、最低限の情報は提示したらどうかね。

>>253
DB MDB2? 正確に何の何って書いてくれ。
PEARのことか、標準関数か、PDOかさっぱりわからねぇ
256nobodyさん:2008/12/13(土) 14:07:48 ID:???
これからPHPを覚えて就職しようと思うのですが
就職のとき、どの程度のスキルがあればいいのかなどを教えていただけないでしょうか
257nobodyさん:2008/12/13(土) 14:20:52 ID:???
GoFパターンを完全理解
各種フレームワークを使いこなす
ある程度のDBチューニング、DHTML、Ajax技術の取得
くらい
258nobodyさん:2008/12/13(土) 15:01:29 ID:eAoN+Tsu
【OS名】Free BSD
【PHPのバージョン】php5
【連携ソフトウェア】
【質問内容】

PHPでアクセス解析ツールを自作しています。
その際アクセスしてきた端末のIPアドレスが、リストであらかじめ指定しておいた
特定の範囲のIPアドレスに該当する場合は記録に残さないよう除外機能を
設けようと思っています。

ところがIPアドレスの範囲表記といっても表現の仕方は様々で、たとえば

a) 192.168.1.1/255.255.0.0 サブネットマスク

b) 192.168.1.1/12 ビットマスク

c) 192.168.1.1-192.168.1.255 範囲指定1

d) 192.168.1.1-255 範囲指定2

と種種雑多あります。おのおののケースに関して場合分けして一つ一つしらみつぶしに
対応させていく方法もありますがかなり面倒です。

PHPの標準関数の中に上記の表記方法の違いを吸収してくれるものは無いでしょうか?
259nobodyさん:2008/12/13(土) 15:06:01 ID:???
4種類の入力に対応させたいけど4種類の処理の実装がめんどいってこと?
260258:2008/12/13(土) 15:11:32 ID:eAoN+Tsu
>>259
はい、たとえば禁止リストの中に>>258のa)〜d)の表記が混在していても問題なく
対応できるコードを書きたいと思っています。標準関数等でその違いを吸収して
くれるものがあれば実装はぐっと楽になりますが、なければa)〜d)に関してこちら
で場合分けしてやらなければならなくなるわけです。
261nobodyさん:2008/12/13(土) 15:57:04 ID:???
ぐぐってみたらはてなでこんな質問や
http://q.hatena.ne.jp/1123814667
こんな関数とPEARクラスがあったよ
http://jp.php.net/ip2long
http://pear.php.net/package/Net_IPv4

その用途に特化したライブラリはあるのかもしれないけど俺は知らないなー
他のスクリプトのコード見て拝借するか上のクラス使って実装するのがいいんじゃなかな
262nobodyさん:2008/12/13(土) 16:08:01 ID:???
>>261のNet_IPv4に丸投げでおk
263258:2008/12/13(土) 17:58:47 ID:eAoN+Tsu
>>261-262
どうもです。Net_IPv4をざっと見てみました。

Net_IPv4::ipInNetwork()を使えばCDIR形式(b形式)で指定された範囲のIPアドレスが
特定のIPアドレスに該当するかチェックできそうです。

ただいずれにせよNet_IPv4自体はa, b, c, dの区別まではつくてくれるわけではないので
場合分けは他の方法を考案しないといけないようです。
264nobodyさん:2008/12/13(土) 19:16:22 ID:YPhOdbZ4
初心者です、
1個の処理が終わって、画面表示されるときはいいのですが、
そうでなく、どこかへ飛ばしたいとき、どうするのでしょうか。

PERLのようにGOTOは使っていないみたいですが、
どうすればいいのかわかりません。

初心者ですみません
265nobodyさん:2008/12/13(土) 19:18:30 ID:???
header("Location:http://google.com/");
266nobodyさん:2008/12/13(土) 19:19:19 ID:???
<初心者>

</初心者>
267nobodyさん:2008/12/13(土) 19:22:09 ID:???
PerlなんてしらんがGOTO文は関係ないだろ・・・
268nobodyさん:2008/12/13(土) 21:14:20 ID:YPhOdbZ4
初心者ですが、悩ましい
269nobodyさん:2008/12/13(土) 23:46:10 ID:K82uEZY1
【OS名】winXP
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
divでメニューとメインの左右2カラムに分けているのですが、メニューをクリックするとメインに対応したページ(hoge.html)を表示させるようにはできないでしょうか?
270nobodyさん:2008/12/13(土) 23:47:52 ID:???
<a href="hoge.html">メニュー</a>
271296:2008/12/13(土) 23:51:07 ID:K82uEZY1
>>270だとhoge.htmlしか表示されませんよね?
272269:2008/12/13(土) 23:54:29 ID:???
言葉が足りていませんでした。
【質問内容】
divでメニューとメインの左右2カラムに分けているのですが、メニューをクリックするとメインに対応したページ(hoge.html)を”メインのカラムに”表示させるようにはできないでしょうか?
273nobodyさん:2008/12/13(土) 23:55:09 ID:???
<a href="hoge.html" target="_multiscreen">メニュー</a>
274269:2008/12/14(日) 00:12:57 ID:???
targetの _multiscreenという属性が見当たらないのですが・・・
275nobodyさん:2008/12/14(日) 00:20:01 ID:???
javascriptで対応したページのデータを引っ張ってきてメインのカラムのコンテンツと置き換えれば?
276269:2008/12/14(日) 00:25:37 ID:???
>>275
JSを触ったことが無いので誘導若しくは記述していただけないでしょうか
277nobodyさん:2008/12/14(日) 00:26:23 ID:???
ぐぐれ
278nobodyさん:2008/12/14(日) 00:29:46 ID:wo5hksfa
【OS名】centOS
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

顧客情報がMD5のハッシュ化されて保存されてしまいました。
どうやったら顧客名を復元できるか教えてください。
279nobodyさん:2008/12/14(日) 00:31:30 ID:???
ムリポ
280nobodyさん:2008/12/14(日) 00:33:41 ID:???
英数36文字の総当りプログラム書けばイケルポ
281nobodyさん:2008/12/14(日) 00:42:49 ID:???
今、PHPの入門書読んでるんだが、
「理解できないほど難しい」
という個所はほとんどなく、
たいていの説明は理解できる。

Cと違ってとてもうれしい。
ストレスがたまらない。
282nobodyさん:2008/12/14(日) 00:55:12 ID:???
> ストレスがたまらない。

ストレスがうれしいってマゾ
283nobodyさん:2008/12/14(日) 03:28:19 ID:???
捜査幹部によると、勝木容疑者は物事を順序立てて話すのが苦手な様子で、
調べ官は、文字や絵を使いながら慎重に調べている。
284nobodyさん:2008/12/14(日) 03:40:18 ID:???
http://ww7.tiki.ne.jp/~inabah/php/index.htm

このページわかりやすい
285nobodyさん:2008/12/14(日) 04:02:38 ID:???
糞ページの宣伝乙
286nobodyさん:2008/12/14(日) 04:05:45 ID:???
>>284
今まで見たページの中で一番役立つと思った。
的確な解説と詳しい事例の紹介。特に、右側の本の紹介は最高。
さっそく何冊か買っちゃった。これは買いだよ。
287nobodyさん:2008/12/14(日) 04:07:44 ID:???
自演アフィ厨乙
288nobodyさん:2008/12/14(日) 04:38:40 ID:???
>>284
いや、俺が凄いと思うよ、このページ。
人によって色々意見があると思うけど、そこらの本では得られない情報が満載。
右の本の紹介も確かに参考になるね。ありがとう。
289nobodyさん:2008/12/14(日) 07:07:57 ID:cWESsLbm
【OS名】winXP
【PHPのバージョン】php5.26
【連携ソフトウェア】SQLite
【質問内容】
PDOで処理しています
INSERT でトランザクションかけている時に
他のユーザでINSERT しようとすると database is locked となります
数秒待ってから、database is locked の表示が出るのではなく
すぐエラーの表示になってしまいます

書き込みが処理がダブった場合に、片方のユーザは待つようにしたいのです
http://www.bumblebury.com/function.sqlite-busy-timeout.html
ココを見ると、初期値ではタイムアウトが設定されている
となっているのですが、処理待ちしてくれません

どうすればいいのでしょうか
290nobodyさん:2008/12/14(日) 07:36:05 ID:???
>>284
このページ最高。右の本もセンスが良い物ばかり、
先の人と同じで、私も早速注文させて頂きました。
291nobodyさん:2008/12/14(日) 07:50:35 ID:???
2chでの営利目的な宣伝行為は禁止です
292nobodyさん:2008/12/14(日) 08:04:57 ID:???
宣伝じゃないよ。まずページを見てから言えよ。
293nobodyさん:2008/12/14(日) 08:20:12 ID:???
見た
初心者のまとめ用ノートに見えた
解説ページとしての出来は三流以下
本もどういった理由でお勧めかも書いていない
ただのアフィ目的
294nobodyさん:2008/12/14(日) 08:27:34 ID:???
http://www.php-ref.com/

このページわかりやすい
295289です:2008/12/14(日) 09:36:55 ID:cWESsLbm
>>289 の補足です
sqlite_busy_timeout()
これと同じ事をPDOでしたいのです

よろしくお願いします
296nobodyさん:2008/12/14(日) 10:03:03 ID:???
>>295
エラーがどこで発生して何がエラー表示をしているかを調べてみたら?
エラーを捕捉したらそのエラー種を調べて、一定時間内であればsleepしてリトライ
297nobodyさん:2008/12/14(日) 10:44:44 ID:???
>>294は完全に糞。>>284のサイトがこれまでで最高のサイト。
298nobodyさん:2008/12/14(日) 11:03:43 ID:???
>>297
  ∧_∧         ∧_∧         ∧_∧         ∧_∧
  (´・ω・`)     n   (´・ω・`)     n    (´・ω・`)     n   (´・ω・`)     n
 ̄     \    ( E)  ̄     \    ( E)  ̄     \    ( E)  ̄     \    ( E)
フ     /ヽ ヽ_//  フ     /ヽ ヽ_//  フ     /ヽ ヽ_//  フ     /ヽ ヽ_//
  ∧_∧         ∧_∧         ∧_∧         ∧_∧
  (´・ω・`)     n   (´・ω・`)     n    (´・ω・`)     n   (´・ω・`)     n
 ̄     \    ( E)  ̄     \    ( E)  ̄     \    ( E)  ̄     \    ( E)
フ     /ヽ ヽ_//  フ     /ヽ ヽ_//  フ     /ヽ ヽ_//  フ     /ヽ ヽ_//
  ∧_∧         ∧_∧         ∧_∧         ∧_∧
  (´・ω・`)     n   (´・ω・`)     n    (´・ω・`)     n   (´・ω・`)     n
 ̄     \    ( E)  ̄     \    ( E)  ̄     \    ( E)  ̄     \    ( E)
フ     /ヽ ヽ_//  フ     /ヽ ヽ_//  フ     /ヽ ヽ_//  フ     /ヽ ヽ_//
  ∧_∧         ∧_∧         ∧_∧         ∧_∧
  (´・ω・`)     n   (´・ω・`)     n    (´・ω・`)     n   (´・ω・`)     n
 ̄     \    ( E)  ̄     \    ( E)  ̄     \    ( E)  ̄     \    ( E)
フ     /ヽ ヽ_//  フ     /ヽ ヽ_//  フ     /ヽ ヽ_//  フ     /ヽ ヽ_//
299nobodyさん:2008/12/14(日) 13:53:19 ID:???
>>289
PDO::setAttribute(PDO::ATTR_TIMEOUT, 1000);
は違うかい?
300289です:2008/12/14(日) 17:37:24 ID:cWESsLbm
>>299
やっているんですけどダメなんです
トランザクション開始せずに、INSERT を実行するように
記述すれば正常に待ってくれますが
トランザクションを開始してINSERT をするようにすると
トランザクション開始の段階でdatabase is locked を出してくる
ようなのです
301289です:2008/12/14(日) 17:50:52 ID:cWESsLbm
>>300 の補足です
端末A側で時間のかかるINSERTを実行すると同時に
端末B側でINSERTを実行する
  →○端末Aの処理が終わるまで待ってくれる

端末A側でトランザクションを開始してからINSERTを実行すると同時に
端末B側でトランザクションを開始してINSERTを実行する
  →×一切待たずにdatabase is locked エラー
302nobodyさん:2008/12/14(日) 18:25:18 ID:???
>>301
> ×一切待たずにdatabase is locked エラー

そのエラーはDBが吐いてるのか、PDOが吐いてるのか確認した?

タイムアウトはPHPがクライアントとしてどんだけ待つか?という設定。
DBからエラーが帰ってきたら、待つわけがないんで、
コマンドラインでトランザクションが重複したときの挙動を確認してみて。

もし、SQLiteの挙動として、トランザクション処理が二重になると
「database is locked」が返ってくるようなら自前でリトライするしかない
303nobodyさん:2008/12/14(日) 18:53:31 ID:???
バグかもしれないから、PDOのコンストラクタで指定してみるっていう
手はあるかもね。
あるいは、ステートメントでsqlite_busy_timeout(100000) を発行する
304nobodyさん:2008/12/14(日) 20:29:18 ID:YaM9vo5D
$csv = fopen ("hoge.csv", "r") or die(print "ファイル開けませんでした。");
while ($items = fgetcsv ($csv, 1000,",")) {

結果表示


}

fclose($csv);

これにページング機能をつけたいのです
CSVファイル内は500件あって
20件ずつ表示させたいです。

よろしくおねがいします
305nobodyさん:2008/12/14(日) 20:45:14 ID:???
die(print "ファイル開けませんでした。");

なにこれ、裏技?
306nobodyさん:2008/12/14(日) 20:47:10 ID:???
307nobodyさん:2008/12/14(日) 20:52:56 ID:???
>>304 Pager
>>305
揚げ足帰れ^^;
308nobodyさん:2008/12/14(日) 20:54:08 ID:???
目から牛乳
309nobodyさん:2008/12/14(日) 21:53:42 ID:???
310nobodyさん:2008/12/14(日) 21:54:06 ID:w3Pugtuv
お助けください。
wordpressでつくったサイトのトップページに、
ブログの更新情報をPHPで表示したいのですが、

2008.12.14 ブログの更新情報
2008.12.14 ブログの更新情報
2008.12.14 ブログの更新情報

という風に表示するには、どういう記述をしたらいいのでしょうか。
詳しい方お願いします!
311nobodyさん:2008/12/14(日) 21:54:21 ID:???
マルチ乙
312nobodyさん:2008/12/14(日) 22:34:56 ID:2jbmy5jI
【OS名】CentOS4.6
【PHPのバージョン】php4.3.9
【連携ソフトウェア】apache 2.0
【質問内容】
php5.2.3以降を入れたいのですが、どのような方法があるでしょうか。
Jason氏のレポジトリを使うという方法もあるそうですが、評判はどう
なんでしょうか。
313nobodyさん:2008/12/14(日) 23:54:19 ID:???
>>310
マルチ乙
314nobodyさん:2008/12/14(日) 23:54:52 ID:???
>>312
php4を消してphp5をインストール
315nobodyさん:2008/12/15(月) 01:37:01 ID:???
>>312
ソースから入れれば?
もしくはどこかの誰かが作ってるかもしれないRPM入れるか
316nobodyさん:2008/12/15(月) 02:10:05 ID:???
最近わかったこと。
変数の名前を「aaa」とかにすると
後から読んでわけわかんなくなる。
317nobodyさん:2008/12/15(月) 02:37:19 ID:Y6XF9DXs
質問

ファイルを読み込むときに、
そのファイルがなかったときは、
どのように処理するのが適切か。

「ファイルが存在しません」
とエラーメッッセージを出して、
止めるのが正解か?

そのとき、
「エラーです」
とだけ表示するか、
「ファイルが存在しません」
と、「理由」も表示するべきか、
「abc.txtが存在しません」
と「ファイル名」も表示するべきか?
318nobodyさん:2008/12/15(月) 03:20:56 ID:/Qwgx48G
>>316
aaaはテスト用
319nobodyさん:2008/12/15(月) 05:08:01 ID:???
昔アフリカに青年海外協力隊?が行って避妊、ゴムの付け方を教えたそうだ。
言葉が通じないから木の枝にゴムを被せるというジェスチャーで何とか教えたという。

それから何年かしてアフリカに行ってみたら子供は減るどころか逆に増えてたんだ。
おかしいと思って夜民家の近くに行ったらなんと木の枝にゴムが被っていてジェスチャーで教えたそのまんまだったそうだ。
現地の人は木の枝にゴムを被せたら妊娠しないというおまじないだと思ってたそうな。
320nobodyさん:2008/12/15(月) 05:59:52 ID:???
php板やプログラマー板に入り浸ってる人間ってのは
基本的にリアル対人能力は無いneet達なんだから
普通の交流しようとしても無駄だし
関わってもキチガイ人間っぷりにうんざりするだけ

普通にコミュニケーション力鍛えて
普通の世界に入った方が圧倒的に人生楽しめる
321nobodyさん:2008/12/15(月) 06:07:13 ID:Y6XF9DXs
だれか助けてくれ、、、

あまりにもナゾなバグが出た、、、

「ボタンを押すと数字が1減る」
ってプログラムを書いたんだが、
なぜか10から1減らすと90になる。

何を言っているかわからねーと思うが
こっちもわからない。

だってそんなロジックは入れてないんだから。

なんで?
322nobodyさん:2008/12/15(月) 06:08:12 ID:Y6XF9DXs
13→12→11→10→90→89→88→,,,,

こういう動作になってしまっている。

もちろん、こちらが希望する動作は

13→12→11→10→9→8→

なのだが。なんで増えるの??
323nobodyさん:2008/12/15(月) 06:17:45 ID:Y6XF9DXs
もしかして10の左の1を消して、
9を書き込んでるから、
90
になってるの?

でもなんでそうなるの?
324nobodyさん:2008/12/15(月) 06:46:16 ID:???
>>321-323
釣られてみるが、その下らないプログラムをエスパーしろと?

むしろはっきりこう書いたらどうだ。
一見、Aの動作を期待しているように見えるコードで
Bの結果が得られるコードを示せ。

A 13→12→11→10→9→8→
B 13→12→11→10→90→89→88→,,,,
325nobodyさん:2008/12/15(月) 06:50:25 ID:???
>>321に期待
326nobodyさん:2008/12/15(月) 08:16:16 ID:???
                |
                |
                |
                |
     /V\        ,J
    /◎;;;,;,,,,ヽ
 _ ム::::(;;゚Д゚)::| ジー
ヽツ.(ノ::::::::::.:::::.:..|)
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U'
327nobodyさん:2008/12/15(月) 08:35:31 ID:???
得られるものがないんだから回答者は相手にするなっての
いい加減学習しろ
328289です:2008/12/15(月) 09:02:53 ID:7RJYXvH2
>>303
>PDOのコンストラクタで指定してみるっていう手
すいません、具体的にどう書けばいいのでしょうか

>ステートメントでsqlite_busy_timeout(100000) を発行
sqlite_open を使ってないので???

ttp://phpspot.net/php/man/php/function.sqlite-busy-timeout.html
一応、↑ココを参考に下記の記述しましたがはじかれました
$db=new PDO ($dsn);
$db->busyTimeout(10000);
329nobodyさん:2008/12/15(月) 10:11:37 ID:???
いろいろ試してみた?

うーん、そりゃはじかれるだろ。
ただ、はじかれましたで、何かが得られたりはしないと思うし、
どう試して、どういう結果になったのかがわからなきゃフォローのしようがない
330289です:2008/12/15(月) 10:41:07 ID:7RJYXvH2
ttp://www.mail-archive.com/[email protected]/msg13901.html
同じケースがありました
あきらめます


331nobodyさん:2008/12/15(月) 11:13:49 ID:???
>>330
その参照先には何も理由とか、無理とか書いてないよな?
だいたい、beginでエラー返してくれるんだったら、何も問題ないわけだが
332nobodyさん:2008/12/15(月) 14:36:42 ID:???
あきらめたらそこで試合終了だよ(AA略
333nobodyさん:2008/12/15(月) 14:52:01 ID:???
年がばれますよおっさん乙
334 ̄ ̄ ̄ ̄ ̄)/ ̄ ̄ ̄ ̄ ̄ ̄ ̄:2008/12/15(月) 15:11:35 ID:vRJjZHan
     /⌒ヽ
    / ^ ω^j、
 _, ‐'´  \  / `ー、_
/ ' ̄`Y´ ̄`Y´ ̄`レ⌒ヽ
{ 、  ノ、    |  _,,ム,_ ノl
'い ヾ`ー〜'´ ̄__っ八 ノ
\ヽ、   ー / ー  〉
\ \`ヽ-‐'´ ̄`冖ー-く
|| \ \         \     ∧_∧
||   \ \         \  ( ´Д`) オイ、なんか変なのがいるぞ
||    \ \         \ /     ヽ
||      \ \         / |  | |
||       \ \∧_∧ (⌒\|__/ /
          ヽ(     )絶対目合わせるな  ∧_∧
           /   く          \  (    ) うわー、なんか言ってるよ
           |     \           \/    ヽ
335nobodyさん:2008/12/15(月) 15:47:28 ID:???
AAオタク乙
336nobodyさん:2008/12/15(月) 16:27:28 ID:6UH6h1c5
$a = array('x'=>'X','a'=>'A',0=>'B',1=>'C',2=>'Y',3=>'Z');
ksort($a,SORT_REGULAR);
print_r($a);
のように5.2.5で走らせると結果が
Array
(
[x] => X
[0] => B
[a] => A
[1] => C
[2] => Y
[3] => Z
)
となってしまい、なんだかおかしい気がします。
SORT_NUMERIC や STRINGの場合はわかるんですが
ksrotでのREGULARってどういうソートを行ってるんでしょうか。
337nobodyさん:2008/12/15(月) 16:40:44 ID:???
>>336
5.1.でも同じ現象だった
バグじゃね?
338nobodyさん:2008/12/15(月) 16:48:12 ID:???
>>336
キーに0が入るとだめだめってことかね
0がないときの動作は正常
<?php
$a = array('x'=>'X','a'=>'A',0=>'B',1=>'C',2=>'Y',3=>'Z');
unset($a[0]);
ksort($a,SORT_REGULAR);
var_export($a);

array (
'a' => 'A',
'x' => 'X',
1 => 'C',
2 => 'Y',
3 => 'Z',
)
339nobodyさん:2008/12/15(月) 16:56:18 ID:???
連想配列のときに数字と文字をごっちゃにしたらソートできないわな
340nobodyさん:2008/12/15(月) 18:47:16 ID:6UH6h1c5
バグっぽいですか。ありがとうございます。

>>339
sort asort あたりだとデフォやREGULAR指定でも問題ないんですけどね。
ksortのときだけSORT_STRINGにでもしておかないと場合によっては想定外の動作しそう。
341nobodyさん:2008/12/15(月) 22:10:30 ID:Y6XF9DXs
質問

アクセスカウンタ関係とか、
ファイルロック関係とか、
ライブラリみたいな形で
まとまってるものってないの?
342nobodyさん:2008/12/15(月) 22:18:16 ID:Y6XF9DXs
質問

解説サイト見ると、
「ファイルがロックされているかどうか、
返り値をみて確認したほうが良い。

ファイルがロックされていないのに
ロックされていると勝手に決め付けて
処理をすすめてしまう可能性がある」

と書いてあるのですが、これって本当に
いちいち確認したほうがいいの?

ロックが取得できなかったときは、
そのまま待機に入るのではないの?
343nobodyさん:2008/12/15(月) 22:19:42 ID:???
通常の配列と連想配列がごっちゃになったデータのソートなんて、未定義なんじゃねーの?
個人的にはNotice出してくれてもいいくらい
344nobodyさん:2008/12/15(月) 22:28:37 ID:???
>>342
文章は読む気がしないからコードを書いて質問したまえ
345nobodyさん:2008/12/15(月) 22:31:29 ID:???
素朴な疑問なんですけど、phpってやっぱり小規模WEBシステムにし
か向かないのでしょうか?大規模サイトだとパフォーマンスが悪いのですか?

ただ、mixiとかの大規模システムでもphpで運営してるそうなのでその辺りの関係がいまいち分かりません。
そもそもどんな言語で開発をしたとしても最終的に実行される時には、
機械語に翻訳されて実行される訳だから速度なんて変わらない気がするのでが実際のところどうなんでしょうか?
346nobodyさん:2008/12/15(月) 22:32:36 ID:???
347nobodyさん:2008/12/15(月) 22:32:50 ID:???
>>1
348nobodyさん:2008/12/15(月) 22:34:02 ID:???
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
349nobodyさん:2008/12/15(月) 22:34:20 ID:???
>>345
>>1読め
350nobodyさん:2008/12/15(月) 22:35:14 ID:???
IDも出せないチキン野郎はおとといきやがれ!
351345:2008/12/15(月) 22:41:53 ID:???

チキンは嫌い!!
俺から逃げるな!!
352nobodyさん:2008/12/15(月) 22:42:38 ID:SRI0Veq9
PEARを使ってみたいのですが
PHPを開発しているPCが諸事情でネットに繋いでません。
そのPCにZIP圧縮をするPEARを入れたいのです。

PEARのサイトでArchive_Zip-0.1.1.tarをダウンロードして解凍したのですが
それからどうすればいいかが分かりません。

オフラインでこのArchive_Zip-0.1.1をインストールするには
どういう手順になるのですか?
353nobodyさん:2008/12/15(月) 22:45:08 ID:???
解凍する→適当な場所に置く→それをincludeする
354nobodyさん:2008/12/15(月) 23:38:41 ID:???
>>341
公式サイトの関数一覧じゃ足りんの?
355352:2008/12/16(火) 00:14:38 ID:p4XUaZgR
>>353
えっ?それだけ?

眠いので明日起きたら実験してみます。
356nobodyさん:2008/12/16(火) 00:17:52 ID:1rcPvBlh
どうしても楽天APIがやりたいのですが、PHP全く初心者です。何も知りません。
楽天APIのブログのをコピペして使おうと思ってます。

まず必要なものは、パソコン、サーバー、ドメイン、terapad、ホームページビルダーのほかに何がありますか?
terapadで保存したものをサーバーにアップしましたが、保存の仕方が間違ってたのか、うまくいきませんでした。
言語はUTF-8、形式は何で保存したら良かったんでしょうか?
よろしくお願いします。
357nobodyさん:2008/12/16(火) 00:20:07 ID:???
>356
うまくいきませんでした、じゃエスパーが来るまでお待ちいただくことになりますが。

エラーの内容をどうぞ。
358nobodyさん:2008/12/16(火) 00:30:40 ID:xUK+da4V
>>354
(1)ファイルが存在するかどうか、確認する
(2)もしファイルが存在していたら、次の処理に進む
(3)もしファイルがなかったら、「指定されたファイルが存在しません」と
表示して、プログラムを止める
(4)ファイルが読み込み可能かどうか調べる
(5)もし読み込み可能なら次の処理に進む(だめならエラー)
(6)ファイルを読み込みモードでオープンする
(7)ファイルをロックする
(8)ファイルからデータ-を読み込む
(9)データ-を1プラスする
(10)ファイを書き込みモード(ファイルの内容クリア)でオープンする
(11)ファイルにさっき1プラスしたデータ−を書き込む
(12)ファイルをクローズする

こういう、一連の動作をまとめた
ライブラリとかってないんですか?
359nobodyさん:2008/12/16(火) 00:32:39 ID:???
>>358
そんな単純な処理ならば自分で書いたほうが早いし勉強になるよ。
360nobodyさん:2008/12/16(火) 00:33:49 ID:xUK+da4V
早いか遅いかなんて聞いてません
ライブラリとかでまとまってるのが
ないかって聞いてるんです
361nobodyさん:2008/12/16(火) 00:56:53 ID:???
>>360
ライブラリならPEARとか
あとはZend Frameworkをライブラリとして使うかかな
一応FFrameworkとなってはいるが
単体でも使えるように設計されてた筈

まぁどちらを使っても>>358に書いてある
一部の手続きしか行ってはくれないがな

>>356
もうちょっとPHPとは何かを勉強した方が良い
362nobodyさん:2008/12/16(火) 01:05:10 ID:???
>>356
API見てきたがPHP無くてもいいぞ
JavaScriptだけでもできる
363nobodyさん:2008/12/16(火) 01:20:15 ID:???
>>361
ない。
他人の作ったライブラリなんてどうやったってかゆいところに手の届かないとこでてくる。
仮に近いライブラリあったとしても手順4がないとか5の間に別のいらない処理入ってるとかで満足いかんだろうな。
正式に依頼して作ってもらうか、自分で作るしかない。
364nobodyさん:2008/12/16(火) 01:20:51 ID:???
ずれた>>361じゃなくて>>360だ。ごめん。
365nobodyさん:2008/12/16(火) 04:51:23 ID:xUK+da4V
質問

ファイルが存在するか、確認する、という手順。
これをやったほうがいいのか。
あるいは、@をつけて、エラーメッセージをスルー
したほうがいいのか。意見を述べてください。
366nobodyさん:2008/12/16(火) 04:53:13 ID:???
◆質問する時の注意
・ 質問者として、態度をわきまえること。
367nobodyさん:2008/12/16(火) 04:53:37 ID:xUK+da4V
ちなみに、@でエラーメッセージを出さない方法、
これってエラーが出ないっていうだけで、
スクリプトの実行は中断されず、
実行が進みますよね。

これってまずくないですか?
368nobodyさん:2008/12/16(火) 05:00:26 ID:xUK+da4V
もしかしてデーターベースであれば、
ファイルロックの仕組みが最初から
備わってるの?
369nobodyさん:2008/12/16(火) 05:01:00 ID:???
>>366
           ∠_ンY7=r'─--- 、:;;__________!__ヽ//-‐ァ
              ,ハ:::::|l:::::::::r-┐:::::::::::::::::::::7::二7,/         ,. -───-
            ,.:'" ヘ.,_!!______::::::::::::[]:::l]::::::/::::::::/、       /
-─- 、.,_       ,:'  ,      /  ̄ ̄"''' ー-'-‐ ''"^ ヽ.     ,'   大 分 そ
     `ヽ.   /  / /  / ; !:.:.:.:.:.:.:.:! ', ヽ.  、    ':,    i   変 か う
 帰 分  ', ,.イ   ,'  ,' 、,_!_/」,.ハ:.:.:.:.:.:.ハ _!__  ',  ':,    ',.   |   だ. っ か
    か   i |   !  ! /|/  |./ ';.:.:.:/ |.´ハ  `ハ   ',    i  <.    な た
 れ. っ   | !   !  レ'r‐'ァ‐-=、 !:.:/  !/_,」_/_ !   i.   |    !
    た   >',  ,.! ハ ヽ ! Jリ  レ'  7´ i´ Jア'ァ  ,' i   !    ',
    か   |  V`'レ'|:.:.:!  `ー '       '、_,ン イi  ,ハ |   !    ヽ.
    ら   ,'    ! .|:.:.!'"'"     ,      ,.,.,. ハくタく!   |      `' ー-----‐
      ノ     | .|:.:人      ___       /:| |  !   |
‐--─ ''"´     .! .|:.:.:.| `: 、   ` 二フ u ,ィi:.:.:| !  :   !
          ,'  |:.:.:.|  | .>.、,    ,. イ  |:.:.:.! i  i   |
          /  ハ.:.:.!  ! /r'|、_`ニ_´  ,ィ|ヽ.|:.:.;'  |  !   ',
         ,.'‐'" ̄';.:.!イ"く /__     __/|:::::::レ'_____!_ !    ',
        /     レ' /、!::::::ヽ、   ン:::!7"´i /   `ヽ、,  i
       ,:'      、/:::;ヘ:::::::::::i-イ::::::::::|]::::::!}        ヽ. |
370nobodyさん:2008/12/16(火) 05:43:21 ID:???
371nobodyさん:2008/12/16(火) 06:17:17 ID:???
ほんと人の話を聞かないバカだな
なんで質問してるのかがとても不思議です
372nobodyさん:2008/12/16(火) 08:06:57 ID:???
お礼を言わないのは>>1を満たしていないのだがな
373nobodyさん:2008/12/16(火) 09:33:49 ID:7CqC2LzI
質問です。
まだ初学の段階で、画像のアップローダーなら作れるかなと思い挑戦しています。
フォームはコメントとアップロードファイル、それにsubmitボタンのみという構成です。
それらフォームの下にアップロードされた
ファイル名とそれへのリンク、コメントと時間が表示されるようにしたいと思ってます。
具体的にはファイルへの書き込み、どのように書き込めばいいか
またそれを読み込んでどのように表示させたらいいかで悩んでいます。
<?php
//初期値設定
$comment ="";
//フォームのメソッドがPOSTだったときの処理
if ($_SERVER["REQUEST_METHOD"]=="POST"){
//送信されたときの処理
if (isset($_POST["submit"])){
//日付の取得
$now = date("Y/m/d H:i:s");
//タグなどの除去
$comment = htmlspecialchars($_POST["comment"], ENT_QUOTES);
}
374nobodyさん:2008/12/16(火) 09:34:28 ID:7CqC2LzI
//送信元の元のファイル名
$pic_name = $_FILES["pic"]["name"];
//サーバにアップされたテンポラリファイル名
$pic_tmp = $_FILES["pic"]["tmp_name"];
//コメントが未入力のときの処理
if (strlen($comment) == 0){
echo "コメントが未入力です。";
}
//現在位置の取得
$path = getcwd();
//OSによりディレクトリの区切り文字を分別・ファイルの保存場所の設定
if (isset($_ENV["OS"]) && preg_match(/windows/i, $_ENV["OS"])){
$path .= "\\";
}else{
$path .= "/";
}
//画像のファイル名およびtmpファイル名が1文字以上のとき
if (strlen($pic_name)>0 && strlen($pic_tmp)>0){
if (is_uploaded_file($pic_tmp)){
if (move_uploaded_file($pic_tmp, $path .basename($pic_name))){
echo "ファイルのアップロードに失敗しました。<br />";
}
}
}
375nobodyさん:2008/12/16(火) 09:35:36 ID:7CqC2LzI
//ログファイルの名前の設定
$log_file = image.log;
//ログファイルを展開(無い場合は新規に作成)
$fh = @fopen($log_file, "a");
if (!$fh){
exit("ログファイルの展開に失敗しました。");
}else{
//排他ロック
flock($fh, LOCK_EX);
//書き込み内容
$log = $now ."\n";
$log .= $pic_name ."\n";
$log .= $comment ."\n";
//書き込み
fputs($fh, $log);
//ロック解除
flock($fh, LOCK_UN);
//ログファイルを閉じる
fclose($fh);
}
}
?>
376nobodyさん:2008/12/16(火) 09:36:20 ID:7CqC2LzI
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>画像UPローダーβ版</title>
</head>
<body>
<h1>画像UPローダーβ版</h1>
<form action="<?=$_SERVER["PHP_SELF"]?>" method="POST" enctype="multipart/form-data">
コメント<input type="text" name="comment" value="<?=$comment?>" size="50" /><br />
添付ファイル<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
<input type="file" name="pic" size="50" /><br />
<input type="submit" name="submit" value="アップロード" />
</form>
377nobodyさん:2008/12/16(火) 09:38:28 ID:7CqC2LzI
<?php
//ここでログファイルの読み込みを行い日時・ファイル名・ファイルへのリンクを表示させる処理を行う

?>

</body>
</html>

以上になります。
よろしくお願いします><;
378nobodyさん:2008/12/16(火) 10:08:36 ID:???
長くて読む気にならないので適当にレス

ログ形式は適当なデリミタを使って(とりあえず<>にする)
日時<>ファイル名<>コメント\nという感じにする
書き込んだログはfile関数で読み込む
fileで読み込んだものは改行ごとに配列に格納されるので
foreach等でまわしてexplodeでデリミタごとにさらに細分化したものを配列に収める

例)
/**
* ここはfileで読み込んだ中身
* $a = file(log_file);
*/
$a = array("2008/12/16 09:30:00<>up0<>コメント1",
"2008/12/16 09:31:11<>up1<>コメント2",
"2008/12/16 09:32:22<>up2<>コメント3");
//入れ物
$b = array();
//explodeで<>ごとに細分化したものを入れ物に格納
foreach ($a as $value) {
$b[] = explode("<>", $value);
}

この時点で$b[0]にはarray("2008/12/16 09:30:00", "up0", "コメント1")が格納されている
あとはこれを使って

for ($i = 0; $i < count($b); $i++) {
echo "<td><a href=\"{$path}{$b[$i][1]}\">{$b[$i][1]}</a></td><td>{$b[$i][2]</td><td>{$b[$i][0]</td>";
}

見たいな感じで表示する
379nobodyさん:2008/12/16(火) 10:15:16 ID:7CqC2LzI
>>378
すごいです!!
ありがとうございます!!!!!
380289です:2008/12/16(火) 10:33:55 ID:mtsIGhc+
>>331 PDOのtimeoutの件です お願いします
http://trombik.mine.nu/~cherry/w/index.php/2005/05/06/152/dbd-sqlite
すいません
上記からの参照先も英語なのですが
結論が分かりません
381nobodyさん:2008/12/16(火) 11:14:51 ID:???
じゃ英語翻訳スレ池
382nobodyさん:2008/12/16(火) 11:53:22 ID:???
>>380
結論文は読むものじゃない
感じろよ
383nobodyさん:2008/12/16(火) 16:22:45 ID:UYl9yLz9
【OS名】windowsXP
【PHPのバージョン】php4.4.9、php5.26
【連携ソフトウェア】mysql
【質問内容】
preg系の関数の正規表現について質問です。
PHP4で、preg系でUTF-8を扱う際にuオプションをつけないで運用してたところ
文字化けが起きました。
その後、PHP5で試したところ、そのままで文字化けしませんでした。
ちょっと調べたところ、PHP5では鬼車という正規表現に変わったようですが、
preg系の関数でUTF-8を扱う際にuオプションが必要なのはPHP4までなのでしょうか?
384nobodyさん:2008/12/16(火) 17:13:25 ID:???
php.iniの設定とかまったく同じになってるのか確認しれよ
385nobodyさん:2008/12/16(火) 19:05:26 ID:DMBjIVd3
素朴な疑問なんですがprintとechoの違いってなんですか?
386nobodyさん:2008/12/16(火) 19:07:43 ID:???
テンプレ
387nobodyさん:2008/12/16(火) 19:18:44 ID:DMBjIVd3
基本的なことではなくて厳密な違いが知りたいのですが・・・
388nobodyさん:2008/12/16(火) 19:19:37 ID:???
じゃソース見れ
389nobodyさん:2008/12/16(火) 19:57:51 ID:???
答えられない池沼は黙ってろ!!!!!!!!!
390nobodyさん:2008/12/16(火) 20:41:15 ID:???
んなくだらねぇこと考えてる暇があったら他のこと勉強しろ
391nobodyさん:2008/12/16(火) 20:50:09 ID:???
>>385,387
"厳密な違い"とはどのレベルのものか、質問の趣旨が不明確。
まずは、マニュアルを引用して、どこが疑問なのか明確にしてくれ
392nobodyさん:2008/12/16(火) 21:00:25 ID:???
違いがわからないから答えられないんだろ
ヘボはでてくんなっ!
393nobodyさん:2008/12/16(火) 21:19:48 ID:???
違いがわからないなら「厳密」とか書いてんじゃねぇよっていう突っ込みをしてるわけだろ。
「基本的なことではなく」って書いてるけど
「基本的」な違いはわかってて、「厳密」を論じるなら、
「厳密な違い」とはどのスコープなのかが書かれなきゃ言及のしようがねぇだろ
394nobodyさん:2008/12/16(火) 21:25:00 ID:???
カスはひっこんでろや
395nobodyさん:2008/12/16(火) 21:27:36 ID:???
おいおい、釣りなら釣りらしく言い返せよ
396nobodyさん:2008/12/16(火) 21:39:17 ID:mtsIGhc+
printは印刷
echo は叫ぶ

397nobodyさん:2008/12/16(火) 21:44:49 ID:???
  ,..、_      _  __  ..,,__
  l ./====/ \| .l ,、| ./ , 、
  / /.l`‐- ゙、| |=| .i- l ./= ,>
. /  |.| || | | |.|`' __'`ノi、l / /
 ~| |.| !! |.| .|.| | | .|ヽ. ./
  | .|.!-'`二l  .|| |._| .|/  `‐-
  |_,,,|   \_丿!-‐'>,.-'゙~`、/

               `゙lli、      : 'i,,  ..__、     .'''iil、
: .゙lil:      .,,,:     、,,,,,,,,ililllll″   .,ll゜.,,f~`゙i,:   ,,  .,il,,,,,llli、          : _,,,,,,,_:
 .:ll       ゙゙li,,    `:  .'ll,,,,,,lllll・  .,ll ,,l° :ll,  `゙゙゙゙゙゚ll″..,,,wllilllli、    .,,,,#゙゙゙ ̄: ゙゙゙゙lll,,
 .:ll  .,.    `!li,  ''lllll*'l゙゙゙゙゙!l,、    ll,,l゙   .:lll    .,il` : `: ``    : 'llllll゙゙゜      ゙!l:
  ll、 .,l°     l!l   ..,,,v,v,,,,,llii,,   .'!ll   .ll°  .,il゜  :                    ,,ll:
  .゙l,,,i゙`            il゙`    .゙゙゙′     .,,ll°  .,il′ .:i、             : .,,,,llll゙°
  .゙゙!"            ゙ll,,,,_、: .,,,、     ._,,rl゙’    il!′  ゙゙!lllllllllllllllli、      `''“ ̄
               ゙゚゙゙゙゙゙゙゙゙゙゙゜    : `      ``
398nobodyさん:2008/12/17(水) 00:20:37 ID:Q+ZHoejC
質問

セッションってページの一番上に
書かないとだめって教科書に書いてあるけど
そうしたら、無料のレンタルサーバーとかで
ページの一番上に自動的に
広告が挿入されるタイプのサーバーだと
「ページの一番上にsession()関数を挿入する」
ってできないから、そういうタイプのサーバーでは
セッションってつかえないってこと?
399nobodyさん:2008/12/17(水) 00:59:40 ID:???
>>398
HTMLヘッダがsession_start();以前に送られてるとダメ。
ただ無料鯖で試したことないから一概に無理、とは言えない。
試してみてダメなら、管理者に手動で入れたい、って問い合わせてみたら?
400nobodyさん:2008/12/17(水) 01:07:35 ID:Q+ZHoejC
質問

解説サイト読んでると、
「読み込みをするだけでも、共有ロックをかけろ」
と書いてあるんだが、本当にそうなのか?

(1)ファイルをオープンする
(2)共有ロックをかける
(3)数値を読み取る

こういう順番にしろ、と書いてあるんだが、本当にそうなのか?

(1)ファイルをオープンする
(3)数値を読み取る


これだとだめなのか?
(2)のときに、他のユーザーがアクセスしてきて、
割り込んで書き込み処理をしようとして
排他ロックをかけると、何か問題がおこるとか?
401nobodyさん:2008/12/17(水) 01:14:19 ID:???
礼ぐらい言えよ
ちゃんと>>1にも書いてあるだろ
402nobodyさん:2008/12/17(水) 01:15:17 ID:???
>>400
よっぽどでかいファイルでもなきゃそうそうないだろうが
ファイル書き込んでる最中に、他の人のファイルを読み込む可能性がある。
あんまり起きないからいらねーやってんなら好きにすればいいがやんないよりはやっといたほうがいい。
403nobodyさん:2008/12/17(水) 01:23:16 ID:Q+ZHoejC
>>402
Aがファイルを書き込みしている途中で
Bがその、中途半端なファイルを読み込んでしまう
可能性があるという意味?
404nobodyさん:2008/12/17(水) 01:25:48 ID:Q+ZHoejC
(1)Aがファイルをオープン
(2)Bがファイルをオープン
(3)Bがファイルを排他ロック
(4)Bがファイルに書き込み開始
(5)Aがファイルを共有ロックしないで読み込み開始

こうなった場合、(5)でAがファイルを読もうと思っても、
(3)で、Aに排他ロックをかけられているのだから、
読み込めないのでは?


それとも、ロックの概念の理解が間違ってる?
405nobodyさん:2008/12/17(水) 01:34:21 ID:Q+ZHoejC
質問

ファイルをオープンしてからでないと
ロックはできないの?

先にロックしてから
ファイルをオープンしたほうが
安全でいいと思うのだが?
406nobodyさん:2008/12/17(水) 01:36:22 ID:???
データーベースとか、
ファイルロックとか、
ロールバックとか、
トランザクションとか、
の勉強をするのは、
ものすごくおもしろいね!
407nobodyさん:2008/12/17(水) 01:38:59 ID:???
ん?

1.排他ロック
2.ファイルオープン
3.読み取りOR書き込み
4.排他ロック解除

だと思うんだが。
408nobodyさん:2008/12/17(水) 01:42:02 ID:Q+ZHoejC
>>407
いやいや、、、
私が読んでる教科書や、解説サイトでは、全部

(1)ファイルオープン
      ↓
(2)ファイルロック

この順番ですよ。
409nobodyさん:2008/12/17(水) 01:45:18 ID:???
>>407
それはロック用ファイルが別の場合ってとこか
410nobodyさん:2008/12/17(水) 01:47:16 ID:???
>>408
あぁわかった。
flock()使う場合は
たしかにファイルオープン→ロック→処理→ロック解放→ファイルクローズだね。
411nobodyさん:2008/12/17(水) 01:48:59 ID:???
>>409
そそ。
ロック用ファイルなりディレクトリなりをフラグにするなら、
ロックが先でしたってことです。
すまそ。
412nobodyさん:2008/12/17(水) 01:50:26 ID:Q+ZHoejC
ああ
ロック用ファイルを別に用意して、
そのファイルをロックする方式もあるよね。

どっちを使えばいいのかわからんのだけれども。

「こういう方法もあります、
またこういう方法もあります」

って書いてあるだけで、
「どっちを使え」
とは書いてないから。
413nobodyさん:2008/12/17(水) 01:51:21 ID:Q+ZHoejC
(A)書き込むファイルそのものをロックする場合
(B)ロック用のファイル、ディレクトリを別途用意して、それをロックする場合

この2方式があって、話すときは、どちらなのかを
明確にしないと混乱するね。
414nobodyさん:2008/12/17(水) 02:03:52 ID:???
>>412
PHPならすなおにflock()使うのがいいよ。

ちなみに、fopen()は厳密にいうとファイルを開いてるわけじゃない。
ファイルハンドラを返してるだけ。
だから、ロックがあとでも大丈夫なんだ。
flock()でfopen()で返されたファイルハンドラを指定してるでしょ?

例えば、fopen()してからsleep100秒経過後、fread()したとする。
取得したデータはfopen()した時(100秒前)のデータじゃなくfread()した時のデータになる。
415nobodyさん:2008/12/17(水) 02:35:07 ID:???
perlだと開いた後のflockは微妙だったと思ったけどphpなら大丈夫なのかな。
あんまり厳密に調べたことないからわからんが。
416nobodyさん:2008/12/17(水) 03:00:59 ID:???
つうか毎度思うんだかつきつめて質問するなら金払ってどっかで学べよ
いい加減迷惑
417nobodyさん:2008/12/17(水) 03:27:02 ID:???
>>416
なんでこのスレにいるの?
418nobodyさん:2008/12/17(水) 03:30:58 ID:???
>>417
何を勘違いしてるんだ?
どっちがいいの?何が一般的なの?
は好きにしろで完結するのがこのスレ
それ以上のものを求めるなら代価を支払え
下らない議論につきあってる必要もないし他の質問者にも迷惑
419nobodyさん:2008/12/17(水) 03:40:39 ID:???
別に代価は支払わなくていいけど
ブログなりHP開設してそっちでおおいにやれって感じだな
それかそういう話題の好きな人のHPに積極的に行ってフォーラムに参加するとか

質問もしっぱなしで次から次と質問を変えてくる
どんどん進化する分野でいちいち疑問をもってるようじゃ向いてない
プログラマーは工数を踏んで対処法のノウハウを蓄積するもの
このへんはGoFもそう言っている
頭で考えてるうちは肝心なことはなんも身につかない
態度も悪いしそんな人間には誰も投資しないよ

プログラムのなんたるかを勉強したいなら
まずPHPでやろうというのがそもそもの間違い
適当な言語だから適当にしろとは言わないが
PHPはセキュリティだけに気を払えば後のことはぶっちゃけどうでもいい
もともと性能任せにしたゆとり向けの言語なんだから
ちゃんと学びたいならまずCからやるべき
420nobodyさん:2008/12/17(水) 04:10:50 ID:???
>>418
付き合わなければいいのになんでわざわざ首を突っ込むの?
それとなんで代表者きどり?
個人的には自治厨のほうがよっぽど迷惑なんだけど
421nobodyさん:2008/12/17(水) 04:18:47 ID:+p3m0j6L
POSTされた値を変数で保持しようとするときに、
保持できるのは次のページの更新があるまでですよね?
ページの更新があっても変数を保持し続けたい(というより更新したい)
のですがどのようにすればいいのでしょう?
例えば$aと$bという変数があって、
1回目のページ送信の時に$aを変更したあと、
2回目のページ送信の時に$bのみを変更した場合、
1回目に送った$aは初期化されてしまいますが、
この$aも保持し続けたいということです。
条件としては、
外部ファイルやhiddenフィールドやCookie(セッション)に持たせる以外の方法で、
何か方法があれば教えてください。
422nobodyさん:2008/12/17(水) 04:22:13 ID:???
>>420
テンプレ守らない質問者に回答者が回答した結果がスレ分断した原因なのだが
それを知らないなら質問質問連呼してるバカと一緒にあっちのスレ行ってくれ
423nobodyさん:2008/12/17(水) 04:52:18 ID:???
>>421
GETかPOST
云々以外の方法って何で?
424nobodyさん:2008/12/17(水) 05:42:33 ID:Q+ZHoejC
>>414
なるほどね!
それですっきりわかったわ
そういう冴えわたった回答がほしかった
あなたは教え方うまいので
次からも教えてもらえますか?
425nobodyさん:2008/12/17(水) 05:51:58 ID:???
去年あたりからか、メールとかの内容で分からない事があっても
疑問にも思わず平気でスルーする奴が多くなった。
今期に入ってからの3時間以上残業した日に、何で残業したのか
報告しれっていう指示メールに対し、「今期」が何を意味するのか
わからないからとノーアクションだったり。
ちなみに「今期」について聞きもしなければググりもしていない。
426nobodyさん:2008/12/17(水) 06:33:02 ID:???
http://www.stackasterisk.jp/tech/php/php02_01.jsp

できればこういう風にわかりやすく教えて欲しい

「(カウンタのファイルには 10 が保存されている。)
プロセス A がファイルのロックを確保に挑戦
プロセス A がファイルのロックを確保に成功
プロセス A がファイルのカウンタ値(10)の読み込み
プロセス B がファイルのロックを確保に挑戦
プロセス B がファイルのロックを確保に失敗(待つ)
プロセス A がカウンタ値に 1 を加える
プロセス A がカウンタ値(11)をファイルに保存する
プロセス A がファイルのロックを開放
プロセス B がファイルのロックを確保に成功
プロセス B がファイルのカウンタ値(11)の読み込み
プロセス B がカウンタ値に 1 を加える
プロセス B がカウンタ値(12)をファイルに保存する
プロセス B がファイルのロックを開放」
427nobodyさん:2008/12/17(水) 06:45:37 ID:???
説明なんて必要ないだろ
こういうケースはこう対処すればいいと覚えればいいだけ
動作の様子や原因をつきつめていきたいならアセンブラでもやれ
逆にいうとアセンブラが理解できないのなら
本質的な部分は到底理解できない
だからPHPのみをやってるうちは気にするだけ無駄
428nobodyさん:2008/12/17(水) 07:16:38 ID:Q+ZHoejC
fwriteなんだけど、
ファイルの中味が

「1234567」

のとき、fwriteで「9」を書き込むと

「9234567」

になってしまうんだけど、これで
「正しい動作」なの?
429nobodyさん:2008/12/17(水) 07:17:19 ID:Q+ZHoejC
先頭の1文字だけ上書きされてしまうんだよ

こっちの希望の動作は、
「1234567」
が全部消えて、
「1」
だけが書き込まれるということなんだけど。
430nobodyさん:2008/12/17(水) 07:18:06 ID:???
まちがえた、「9」だけが
書き込まれて欲しいってこと。
431nobodyさん:2008/12/17(水) 07:30:31 ID:Q+ZHoejC
ファイルの中味を削除する関数が必要なんだが、どこで売ってるんだ?
432nobodyさん:2008/12/17(水) 07:37:12 ID:???
ID:Q+ZHoejC
433nobodyさん:2008/12/17(水) 07:57:53 ID:???
そろそろコテつけてくんないかな?
毎日NGIDにするのはだるいわ・・・。
434nobodyさん:2008/12/17(水) 08:08:35 ID:???
>>433
,   ,:‘.          。             +   ,..
 ’‘     +   ,..       . ..; ',   ,:‘
      . .; : ’                           ' ,:‘.
           あ あ             ,:‘.      +
.. ' ,:‘.                             . ...:: ’‘
’‘     .;    こ ん な に お 断 り し た い
                                       。
.     。   気 持 ち に な っ た の は   ,:‘. 。
 '+。
                初 め て で す          .. ' ,:‘.
:: . ..                            .. ' ,:‘.
      ハ,,ハ
     ( ゚ω゚ )
435nobodyさん:2008/12/17(水) 08:15:41 ID:???
俺の隣に座ってるやつがさ、ID:Q+ZHoejCと似たようなタイプなのよ。
調べればわかることを調べず、どうでもいいことにこだわってるわりに、
人が丁寧に質問してやっても礼の一つも言ったためしがない。

世の中にこういう奴が結構いるのは仕方ない、採用しちまった人事の責任って
チーム一同ハブにしてるけどね。
だから、なおさら構ってちゃん質問が増えるんだけどさ。
なんていうの?こういうの、世の中の不純物

ID:Q+ZHoejCちゃんはどうかわからないけどね。
436nobodyさん:2008/12/17(水) 08:26:03 ID:???
なるほど
人事権の無いやつが文句言ってるのか
437nobodyさん:2008/12/17(水) 08:26:06 ID:???
どうみてもただのゆとりだなw
時間の無駄にも程がある
438nobodyさん:2008/12/17(水) 08:26:42 ID:???
1つわかったのは都合が悪くなるとID消して煽りにきてるんだな・・・
439nobodyさん:2008/12/17(水) 08:33:56 ID:???
人事権の無い人は
今後書き込まなくていいですからw
440nobodyさん:2008/12/17(水) 08:35:27 ID:???
人事権が無いだけじゃないよね
席順を決定する権利すらも与えられてないんだろう?
441nobodyさん:2008/12/17(水) 08:38:35 ID:???
いい加減にしろよ
テンプレ守れないなら質問するな
あと誘導するんで
いつもの池沼とそれに回答したい阿呆は以後ルールのないこちらへどうぞ
ttp://pc11.2ch.net/test/read.cgi/php/1221471692/
これ以上荒らすなよ
442nobodyさん:2008/12/17(水) 08:42:05 ID:???
「ぼくたち人事権無いよ〜
キライなヤツを辞めさす権利無いよ〜

それどころか、席順を決定する権利もないよ〜
座りたい席にも座れない〜
キライなやつの隣に座らされてるよ〜
これってイジメだよ〜

いじめるなよ〜いじめないでくれよ〜

でも!2ちゃんではえらそうに他人に指図して
命令するよ!やったね!」
443nobodyさん:2008/12/17(水) 08:49:54 ID:???
何この必死ぶり
444nobodyさん:2008/12/17(水) 08:57:53 ID:???
http://nyx.pu1.net/practice/file_ope/file_ope5.html

ついに見つけた!ついに見つけたぞ!

ちなみに「r+」というモードがあり、こちらは
「上書きモード」って意味合いになるかな。
「r」は読み込みのみ可能でしたが、「r+」は
読み込みと書き込みの両方が可能です。こ
ちらもファイルポインタが先頭に置かれます
。ファイルに文字列があった場合は上書きし
ていきます。「w」との違いは、「r+」はファイル
を空にせず、元のデータ上に上書きしていく
という点です。「r+」モード君は指定したファイ
ルがなくても新規作成はしてくれず、無慈悲
にエラーを出力してきます。

ファイルを開いた時点では元のデータが残っ
ているので一見こちらの方が良さそうですが
、不便なところもあります。書き込みたい内容
が、ファイルに既に書き込まれている文字列
より短い場合には変なゴミがつきます。変な
ゴミ、と言いましたが、元々ファイルにあった
文字列が残ってしまうって事です。先ほどの
サンプルのようにシングルバイト文字(英数
字)を使ってた場合なんかはそのおかげで
文字化けしたりします。サンプル出しておき
ますので動作の違いを試してみて下さい。
445nobodyさん:2008/12/17(水) 09:04:31 ID:???
ブログかハテブにでも書いとけよ
446nobodyさん:2008/12/17(水) 09:12:35 ID:???
キライなやつの隣に座らされる感想はどうだ?
447nobodyさん:2008/12/17(水) 09:16:37 ID:???
スレチ持ちだしたカスとそれに乗ってる奴、去れ
448nobodyさん:2008/12/17(水) 09:18:23 ID:???
いやいや、俺の隣の奴さ、もしかして本人?
449nobodyさん:2008/12/17(水) 09:19:13 ID:???
やっぱこうなったかw
だから相手にするなと口をすっぱくしていってきたのになぁ
ID消してるが特徴丸出しだからわかるだろう?
今後はちゃんと答える相手を選んでそれ以外はスルーしような?
わかってて答えてるなら荒らしに加担してるようなものだ
荒らしたくないのなら次長してくれ
相手にすると喜ぶタイプだから独り言を言わせておけばOK
そのうち飽きていなくなる
450nobodyさん:2008/12/17(水) 09:19:48 ID:???
>>444
で、おまえさんは、質問者なの?回答者なの?
質問者じゃないんなら、ひどくはしゃぎすぎな気がするが・・・
451nobodyさん:2008/12/17(水) 09:24:48 ID:???
>>450
自作自演で連投してたから、ID出し忘れた困ったチャンだよ
452nobodyさん:2008/12/17(水) 09:36:37 ID:???
煽ってくれるな。もうスルーしようぜ・・・
流れ読めば誰がどれ書いてるかわかるしもうそっとしといてやろう。
453nobodyさん:2008/12/17(水) 09:43:45 ID:???
怒らないでマジレスしてほしいんだけど
なんでこんな時間に書き込みできるわけ?
普通の人なら学校や会社があるはずなんだけど
このこと知った親は悲しむぞ?
現実見ようぜ
454nobodyさん:2008/12/17(水) 09:51:32 ID:???
>>453
怒らないでマジレスしとくけど、
おれは、全社的にPHPを採用してることで有名なYa○○○に入社して5年のPM。
会社まで5分の距離にマンション持って暮らしてる。当然人事権はない。
455nobodyさん:2008/12/17(水) 09:52:03 ID:???
自己紹介乙
456nobodyさん:2008/12/17(水) 09:52:37 ID:???
ども
457455:2008/12/17(水) 09:54:08 ID:???
>>454じゃなくて>>453に言ったのね
ちなみに俺はフレックスで11時までに出勤すればいいのでそろそろだな
458nobodyさん:2008/12/17(水) 09:54:28 ID:???
どこまでコピペ?
459nobodyさん:2008/12/17(水) 10:05:57 ID:???
ID:E0jjD+uU
ID:UV6BBIxz
ID:2wImFGsH
ID:N5GIYx97
ID:6CbaLDLd
ID:Y6XF9DXs
ID:xUK+da4V
ID:Q+ZHoejC

他、ID無しでの煽り多数、D無しでの質問前後の意味のわからないぼやき、
ID無しでの唐突な話題多数。
9割型IDのない変な書き込みは全てこいつです。
460nobodyさん:2008/12/17(水) 10:24:55 ID:???
つか、質問をするのにいちいちIDを出せ!
ってスレを立てた「1」が一番の問題だと思うぞ。

なんでいちいち質問をするのに出さねばならない?
頭オカシイんじゃないか?「1」よw
461nobodyさん:2008/12/17(水) 10:27:00 ID:???
【PHP】ID出さなくても質問OKなスレ【初心者歓迎】
http://pc11.2ch.net/test/read.cgi/php/1221471692/
462nobodyさん:2008/12/17(水) 10:29:06 ID:???
粘着質問者はさ、ID出し忘れて罵られて逆上して
たたり神になっちまったんだろうなぁと。

だから、スレタイトルも見ないで迷いこんでくる>>460みたいのを早目に駆逐しとかないとw
463nobodyさん:2008/12/17(水) 10:32:24 ID:???
相手をしなければいいだけ。
464nobodyさん:2008/12/17(水) 10:37:17 ID:???
確かに誘導しても行かない相手には無視するしかないね
質問しまくって無駄に伸ばしてスレ荒らしするだろうけど
こっちも反応して書き込むと無駄に伸びてしまう
無視をするのが一番
465nobodyさん:2008/12/17(水) 13:42:18 ID:???
自治も態度悪いのも荒らしたいだけのもいらないが
出てけって言ったって出てくわけないからほっときゃいーさ。
466nobodyさん:2008/12/17(水) 14:11:44 ID:???
>>383
preg_* はずっとPCRE、正規表現エンジンが変わったのは mb_ereg_*
UTF-8な文字列を扱うときは/u必須だ
PCRE_UTF8を有効にした上で結果が変わるようなら、
それはバグとして報告したほうがいい


>>421
永続化させたけりゃファイルシステムやらDBへの書き込みが必要
PHPのセッション管理もデフォルトじゃファイルで保存している
データが揮発してもいいなら共有メモリでも使え
467nobodyさん:2008/12/17(水) 15:15:15 ID:7ilSy2El
mixiをphpスクリプトで作る場合何日ぐらいでクローンを作れますか?
468nobodyさん:2008/12/17(水) 15:18:24 ID:???
君のレベルが不明なので回答不可
469nobodyさん:2008/12/17(水) 15:19:37 ID:7ilSy2El
すいませんぼくは文法とマニュアル見てある程度できます
ここの回答者様の力ではどれくらいで作れるのか教えてください
470nobodyさん:2008/12/17(水) 15:20:47 ID:???
1日くらい
471nobodyさん:2008/12/17(水) 15:21:11 ID:7ilSy2El
mjsk
472nobodyさん:2008/12/17(水) 15:23:52 ID:7ilSy2El
ざっと見積もって作り終わるまでに何行ぐらいになりますかね?
473nobodyさん:2008/12/17(水) 15:25:51 ID:???
設計次第だけど5000〜1万行くらい?
474nobodyさん:2008/12/17(水) 16:39:56 ID:???
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

WEB上からデータ登録しようとしたら上記のようなエラー構文が出ました。原因を教えて下さい。
475nobodyさん:2008/12/17(水) 16:43:03 ID:TGxtJ5tD
>>474なんですがIDが出てるでしょうか?
476nobodyさん:2008/12/17(水) 16:45:45 ID:???
>>474
構文ミス
477nobodyさん:2008/12/17(水) 16:58:59 ID:TGxtJ5tD
>>476
もう少し具体的には分からないでしょうか?
478nobodyさん:2008/12/17(水) 17:03:08 ID:???
あなたのSQL構文でエラーが発生している、それは正しい構文を使用してMySQLサーバのバージョンに近くに対応するマニュアルをチェック

byぐーぐる翻訳
479nobodyさん:2008/12/17(水) 17:05:09 ID:???
>>477
コードのどこかが悪い
480nobodyさん:2008/12/17(水) 17:14:16 ID:???
>>477

エラーが出てる行で使用しているクエリを晒したら、
具体的な話もできるでしょう。

しかし、質問の質が低すぎるのは残念だ。
○○なふりしなくても、十分○○なんだからもう少しまともな質問してくれ。
481nobodyさん:2008/12/17(水) 17:28:05 ID:???
構文エラーと言ってるのにコードも出さず具体的に教えろって
エスパーでも無理だろw
482nobodyさん:2008/12/17(水) 18:25:09 ID:???
>>474
よーしエスパーしちゃうぞー
文章型への挿入はポッチで囲めよ
483nobodyさん:2008/12/17(水) 18:37:44 ID:???
>>474
まず、電源を疑った方がいい。

電源が力率改善型のコンデンサを積んでいるか、
電圧が綺麗な正弦波を描いているか、
そもそもコンセントの電源が101Vプラスマイナス3Vの範囲内に収まっているか?
そこを確認しなさい。

これらの話は、OSIでいうと物理層の問題。物理層は最下層であり、
何かトラブルがあったらそこから疑うのが基本。ちなみに、おれはCCNPホルダーだけどね。
484nobodyさん:2008/12/17(水) 20:26:51 ID:+z5yJo1f
>>483
turemasuka
485nobodyさん:2008/12/17(水) 21:59:31 ID:???
外部ファイルでロックするのは、
その関数がいきなりファイルオープンする
仕様で、ファイルロックすることができない場合。
486nobodyさん:2008/12/17(水) 22:44:07 ID:???
correspond
一致する、相当する

シス単p.115にのってる
487nobodyさん:2008/12/17(水) 23:07:35 ID:???
はぁ?
488nobodyさん:2008/12/17(水) 23:17:12 ID:???
>>462
32歳の中学の女性教師、温泉で"裸の指導"
http://tsushima.2ch.net/test/read.cgi/news/1229520201/1

「教育のため」?女性教諭、1万円盗む 宮城

 温泉旅館の脱衣場で1万円を盗んだとして、宮城県教育委員会は17日、同県塩釜市立中学校の女性教諭(32)を
懲戒免職処分にした。「苦い思いをすれば不用心なことをやめるだろう」と、被害者への勝手な“教育的指導”から
盗んだと話しているという。

 県教委によると、教諭は10月下旬、鳴子温泉まで日帰り入浴に行った。脱衣場のロッカーを開けると、岩手県一関市の
女性の財布などが入っていた。教諭には施錠せずロッカーに入れていた持ち物を盗まれた経験があるといい、
「全部取るとかわいそう」などと考えた末、ある程度の額を残し1万円札だけ抜き取った。

 教諭は翌日、中に1万円札を忍ばせた封書を匿名で温泉に送付、おわびも添えた。結局、1週間後に警察に逮捕され、
罰金20万円の略式命令を受けることになった。
489nobodyさん:2008/12/17(水) 23:31:13 ID:???
ニートって、
「ボクは本当はこんなに凄い人間なんだっ」
って根拠のない妄想で自己完結してるけど、
世間一般では「無能がなにほざいてんの?」といわれちゃう人達の事だよね?
だから怖くて世間に出られないんでしょ?

肥大した無根拠の自己愛を満たすには、
自分の狭い世界の中で、自分を無条件に受け入れてくれるものと一緒に
夢の世界で暮らすしかないもんね

でも、現実に接触すると、夢から醒めなきゃいけない
彼らにとってそれは、自分が目をそらし続けた無能な自分と対峙する瞬間だもんねぇ
そりゃ苦しかろう逃げたかろう
その結果出来たのが、いわゆる「ニート」とよばれる人達なんじゃないの?w
490nobodyさん:2008/12/18(木) 00:19:01 ID:???
質問

なんでセーフモードのphpo.iniは
magic_quote_gpcがOFFなの?
491nobodyさん:2008/12/18(木) 00:19:33 ID:4FSaHF+d
>>490
おっとID
492nobodyさん:2008/12/18(木) 01:57:31 ID:???
http://takagi-hiromitsu.jp/diary/20051122.html

ひろみちゅのページは勉強になるなあ
493nobodyさん:2008/12/18(木) 02:19:17 ID:???
確かに勉強にはなるが古くないか
494nobodyさん:2008/12/18(木) 02:21:01 ID:???
>>459
>ID無しでの唐突な話題多数。
>9割型IDのない変な書き込みは全てこいつです。
495nobodyさん:2008/12/18(木) 02:33:35 ID:???
http://japan.zdnet.com/sp/feature/07zeroday/story/0,3800083088,20384960,00.htm

セキュリティの問題でPHP 5.2.7が配布中止に

PHP 5.2.7にセキュリティ上の問題が発見され、配布中止となっ
た。PHPユーザーはバージョン5.2.8がリリースされるまではPHP
5.2.6を使うべきであるという。

オープンソースプロジェクトのPHP Groupは、PHP version 5.2.7
の配布を中止した。これは、一定の設定に影響のあるセキュリ
ティ上のバグのためだ。

 Apacheの支援を受けたプロジェクトであるPHP Groupが掲載
した情報によれば、PHPユーザーは、この問題が修正されたPH
P 5.2.8がリリースされるまでは、version 5.2.6を使うべきだという。

 PHP 5.2.7リリースに発見されたセキュリティ上のバグにより
、このバージョンは配布を中止された。このバグは、magic_quote
s_gpcが有効とされた設定に影響があり、これが有効に設定され
ていても無効のままになってしまうという問題がある。PHP 5.2.8
がリリースされるまでの間は、PHP 5.2.6を使用すること。

 magic quotes機能はPHP 6.0.0で廃止され、削除される。PHP
Groupは「この機能を使用しないことを強く推奨する」と警告して
いる。
496nobodyさん:2008/12/18(木) 02:34:17 ID:???
5.2.8もう出ただろ
497nobodyさん:2008/12/18(木) 02:45:14 ID:???
これ以上スレ違いなぼやきと自演レスを続けるのなら
マジで頼むからコテをつけるかどっか行ってくれ
答えられるならコテかくして普通に答えてもいいから
とにかく今の状態は本当に迷惑だ
498nobodyさん:2008/12/18(木) 02:52:32 ID:???
>>497
ルルルル…
    !   ___
    ∧,,∧  ||\  \
   (・ω・` )  ||  |二二|
  (  つつ ||/  /
|二二二二二二二二二二|
 || ̄ ̄ ̄ ̄|| ̄ ̄ ̄ ̄||
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄


      ∧,,,∧  ガチャ
     ( ´・ω・)コ
     ( oロ.ノ    ヱ
     `u―u'~~~~'〔◎〕
     """""""""""""""

                 ____________________
      ∧,,,∧      /
     ( ´・ω・)コ   < <丶`∀´><マジで頼むからコテをつけるかどっ…
     ( oロ.ノ    ヱ \
     `u―u'~~~~'〔◎〕   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     """""""""""""""



      ∧,,,∧  ガチャ
     ( ´・ω・) ミ
     ( oロ つΠ
     `u―u' 〔◎〕
     """""""""""""""
499nobodyさん:2008/12/18(木) 02:55:48 ID:???
匿名だからって少しは空気ぐらい嫁よ・・・
500nobodyさん:2008/12/18(木) 03:00:52 ID:???
>>497宛な
501nobodyさん:2008/12/18(木) 03:14:56 ID:???
お前宛だよ

>>483=>>485=>>486=>>488=>>489=>>490=>>491=>>492=>>495=>>498=>>500

こういう必死に返信してくるのが楽しいなら
ストレス発散の場を間違えてる
リアルでやれ
502nobodyさん:2008/12/18(木) 03:32:36 ID:???
明らかに違うんだけど
お前頭悪いな
503nobodyさん:2008/12/18(木) 04:46:05 ID:???
知恵遅れとか    低学歴とか  奴隷体質とか
   精神病とか  部落民とか    在日とか     そんな奴等の集まり
504nobodyさん:2008/12/18(木) 04:52:45 ID:vOfimxeh
ID出さないと、なにがまずいのかなぁとか聞いてみたりして。。

ここのルールなんだよ!じゃなくて
なんでそんなルールがあるの?っていうとこ。。


505nobodyさん:2008/12/18(木) 05:00:38 ID:???
成りすましが沸くらしい
506nobodyさん:2008/12/18(木) 05:02:15 ID:4FSaHF+d
質問

文字コードをメタタグで明示的に指定しないと、
ユーザーがUTF-7を選んだり、
アタッカーがUTF-7になるように仕組んだりしたときに、
文字が変換されて、攻撃が可能になるような
コードが生成される可能性がある、よって
文字コードはUTF-8などと、メタタグで
明示的に指定したほうがよい、

と解説サイトに書いてあったのですが、
これってそうなの?
507nobodyさん:2008/12/18(木) 05:06:57 ID:???
過去ログみたら全てわかるから過去ログみれ
いちいち新参のそんな質問に答えてやってもきりがない

といいたいところだが簡単に説明すると
まず第一の問題が偽者が出現する(自己解決しました)
第二の問題がIDを出さないことは匿名の性質を高めるので
お礼がなかったり煽りかえしてきたり態度が横柄になったりと
心理的な影響が大きくなり荒れる方向に進む
最近いるID出して態度が横柄なのは例外(これはただの荒らしなのでどうしようもない)
それともう1つスレをageて質問があることを知らせる役割もある(ブラウザから見てる人間もいる)

IDは変えることが可能だがわざわざ変えてまで荒らそうとするのはそうそういない
508nobodyさん:2008/12/18(木) 05:19:40 ID:???
>>506
ググってわかる質問はググレカス。
コードも出さないつまらん質問ばっか繰り返すな。
四六時中神出鬼没でニートで必死なのはわかったけど、
現状を打開したいのならWebからの情報に頼らずまず専門学校なり行きなさい。
お金がないならハロワ行ってその手の職業訓練校紹介してもらいなさい。
そのほうが君のためにはいい。
509nobodyさん:2008/12/18(木) 05:49:18 ID:???
>>508
このスレってなんのためにあるの?
ググレ、ググレって覚えたての言葉をうれしそうに連呼する猿を見ると吐き気がする。
手元にある書籍で思いっきりひっぱたいてやりたい気分。氏ねw
日本のphpが終わってるのはコミュニケーション能力のないキモヲタしかつかわないから。
そういう豚は「ググレググレググレ」ばっか。だからユーザーが育たない。
510nobodyさん:2008/12/18(木) 06:03:25 ID:???
>このスレってなんのためにあるの?
少なくとも態度のでかいお前のための人力検索スレではない
コードを書いて行き詰った人やエラーの原因が特定できないなど
技術的な問題に行き当たった時に質問するようなスレで
それ以前の理論的な話題は議論するだけ無駄なので扱ってない
ようするにどっちがいい?この説明は正しい?とかそういう質問はやめろ

人に聞けば何でも解決すると思ってるバカをこんな匿名掲示板で育ててやる義理はない
少しは自分でどうにかしろ
それかできないのなら金払って学校行くか就職して会社で育ててもらえ

そんなに議論したければ登録制のフォーラムに参加するか
サイトでそう説明してるならそこの管理人に聞け
511nobodyさん:2008/12/18(木) 06:18:19 ID:???
>>506
正しい質問の仕方

こういうコードを書いたのですが、
ある解説サイトではこういう危険性があるということで、
こういう風に書き換えました。
しかし実際に動かしてみてどう危険なのか理解できません。
どうしてこのコードが危険なのでしょうか?
実証できるテスト方法などもあったら教えてください。
512nobodyさん:2008/12/18(木) 06:58:31 ID:???
超便利なスクリプト書いたよ
フォームから入力した文字の
バイト数をカウントして表示してくれるんだ!

下記のソースを1.phpで保存して実行

<form method="post" action="1.php">
<input type="text" name="bbb" >
<input type="submit" >
</form>

<?php
if(isset($_POST['bbb'])){
$a=$_POST['bbb'];
print htmlspecialchars($a);
$b=strlen($a);
print "<br>";
print htmlspecialchars($b);
}
?>
513nobodyさん:2008/12/18(木) 06:59:31 ID:???
一見同じように見える「あ」も
シフトJISのときは2バイト、
UTF-8のときは3バイト、と
違っているのが実際に確認できる。おすすめ。
514nobodyさん:2008/12/18(木) 07:16:01 ID:4FSaHF+d
質問
htmlspecialcharsの第三引数を
UTF-8等と指定しろ!と書いてあるサイトと、
そんなん、指定しても意味ないけどねー。って
書いてあるサイトとあるんだけど、
どっちが正しいの?
515nobodyさん:2008/12/18(木) 07:19:32 ID:???
http://blog.ohgaki.net/htmlentitiesa_raspa_a_afia_a_s
このページには、
第三引数を指定しろ、と書いてある。
516nobodyさん:2008/12/18(木) 07:26:53 ID:???
文字コードもきちんと指定した完全版はこれだ

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>

<form method="post" action="1.php">
<input type="text" name="bbb" >
<input type="submit" >
</form>

<?php
if(isset($_POST['bbb'])){
$a=$_POST['bbb'];
print htmlspecialchars($a, ENT_QUOTES, 'UTF-8');
$b=strlen($a);
print "<br>";
print htmlspecialchars($b, ENT_QUOTES, 'UTF-8');
}
?>
</html>
517nobodyさん:2008/12/18(木) 07:35:27 ID:???
http://d.hatena.ne.jp/teracc/20070415

このページでは、「第三引数を指定しても
まったく意味がない」と書いてある。

「htmlspecialcharsの第三引数は、今のところ指定するメリットは無い。」
「補足すると、意味的には指定したいところです(何の効果もありませんが)。」
「意味的には第三引数に文字コードを指定するのが正しいですが、指定しなくても実のところ問題はありません。

ネット上には「不正な文字を利用したXSS攻撃*1を防ぐために、
第三引数を指定する方がよい」というような記述もありましたが
、これは日本語用の文字コードを使う限りは正確ではありませ
ん。文字コードを指定したところで、関数の出力結果は何ら変わ
りません。攻撃を防ぐ効果はないのです。」
518nobodyさん:2008/12/18(木) 07:37:52 ID:???
ほうほう、どっちが正しいの?
519nobodyさん:2008/12/18(木) 08:16:52 ID:???
http://d.hatena.ne.jp/teracc/20070125/1169722643

このページ見ると

「DBMSが提供するエスケープ関数や、バ
インド関数、もしくはそれらを使いやすいよ
うにラップするPear::DBなどを使うようにす
るのが望ましいです。」


ってかいてあるけど、そうなの?
520nobodyさん:2008/12/18(木) 08:18:09 ID:???
521nobodyさん:2008/12/18(木) 08:19:41 ID:4FSaHF+d
http://d.hatena.ne.jp/teracc/20070125/1169722643

このページ見ると

「DBMSが提供するエスケープ関数や、バ
インド関数、もしくはそれらを使いやすいよ
うにラップするPear::DBなどを使うようにす
るのが望ましいです。」


ってかいてあるけど、そうなの?
522nobodyさん:2008/12/18(木) 08:21:24 ID:???
>>521
時と場合による
523nobodyさん:2008/12/18(木) 08:56:59 ID:4FSaHF+d
http://nyx.pu1.net/practice/file_ope/file_ope7.html

このページの説明間違ってるよな?
ここの部分
「8(前のカウント値は上書きされるので自然に消滅)」

なぜなら、数字の桁数が減るときに問題が出る。
たとえば、10→9となるとき。
10は2桁だから、1桁だけの文字を書き込んだら
左がわだけ消えて、90となる。

だから、カウントアップされて数字が増える
スクリプトなら問題ないが、
数字が減るタイプだと問題が出る。
524nobodyさん:2008/12/18(木) 08:57:38 ID:???
臨機応変
適材適所
525nobodyさん:2008/12/18(木) 09:04:25 ID:???
>>523
ご指摘は管理人にどうぞ
526nobodyさん:2008/12/18(木) 09:06:55 ID:4FSaHF+d
ためしに、以下のコードを実行してみてほしい
数字が減って、突然増えることが確認できるはずだ

<?php
$filepath = './count.txt'; // ファイルへのパスを代入しておく

$fp = @fopen( $filepath, "r+" ); // ファイル開く 今回はr+が望ましいと思う
@flock($fp,LOCK_EX); // 排他ロックをかける
$count = fgets( $fp, 10 ); // 9桁分値読み取り
$count--; // カウントダウン
rewind( $fp ); // ファイルポインタを先頭に戻す
fputs( $fp, $count ); // 値書き込み
flock($fp,LOCK_UN); // ロックの破棄。この位置なら書かなくてもいいがまぁ一応・・
fclose( $fp ); // ファイル閉じる
echo $count; // カウント値出力
?>
527nobodyさん:2008/12/18(木) 09:15:13 ID:???
>>523
カウントアップするアクセスカウンターを前提に話しているモノに、カウントダウン時の不整合を指摘してもしょうがなかろう。
それは【難癖】という
528nobodyさん:2008/12/18(木) 09:32:27 ID:???
>>527
しかしそのままCGIゲーム等で
敵のHPを減らす等の処理に流用する人がいるかもしれない

そういう時に困るだろ?
529nobodyさん:2008/12/18(木) 11:24:59 ID:???
そうですねそのとおりですね
530nobodyさん:2008/12/18(木) 12:26:24 ID:???
>>528
頭固すぎ
REMAIN = MAXHP - DAMAGE
531nobodyさん:2008/12/18(木) 12:28:47 ID:???
途中で書き込んでしまった…
REMAINをいちいち書き出したりはせずメモリ上で処理すれば
問題ないだろ?
532nobodyさん:2008/12/18(木) 14:17:00 ID:???
>>528
そういう場面に出くわしてから初めてこのスレをご利用下さい
次の患者さんどうぞ
533nobodyさん:2008/12/18(木) 14:30:41 ID:zC30MAtd
仕切り厨乙
534nobodyさん:2008/12/18(木) 16:16:01 ID:0JPteQZ9
【OS名】CentOS release 5
【PHPのバージョン】php5.1.6
【連携ソフトウェア】
【質問内容】
-- location.php --
<a href="http://www.hoge.com/location2.php">link</a>
-- location2.php --
<?php print("HTTP_REFERER={$_SERVER['HTTP_REFERER']}<br/>\n"); ?>
これだと
HTTP_REFERER=http://www.hoge.com/location.php
て、表示されるけど

-- location.php --
<?php header("location: http://www.hoge.com/location2.php"); ?>
location2.phpは一緒で、これだと
HTTP_REFERER=
と表示されてリファラーが取れないんですけどなんででしょう?

http://www.teria.com/~koseki/memo/referrer/
ここなんかでは取れるように書いてあるのですが
535nobodyさん:2008/12/18(木) 16:22:02 ID:???
headerで飛ばしたらとれないにきまってるじゃん
536nobodyさん:2008/12/18(木) 16:44:33 ID:0JPteQZ9
>>535
えーそうなんだ、出来る風に書いてあると思ったんですけどね

そしたら質問を変えまして
自動でジャンプできてリファラーも取れる方法をなんか知ってたら教えてください。
537nobodyさん:2008/12/18(木) 16:45:05 ID:???
つセッション
538nobodyさん:2008/12/18(木) 16:45:45 ID:???
>>536
女?
539nobodyさん:2008/12/18(木) 17:26:21 ID:0JPteQZ9
>>537
できた、こんなかんじ。ありがとう

-- location.php --
<?php
session_start();
$_SESSION['MyURL'] = isset($_SERVER['HTTPS'])?'https://':'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
header("Location: http://www.hoge.com/location2.php");
?>
-- location2.php --
<?php
session_start();
print("MyURL={$_SESSION['MyURL']}<br/>\n");
?>
540nobodyさん:2008/12/18(木) 19:03:05 ID:???
なんか気持ちわるい書き方だな
541nobodyさん:2008/12/19(金) 00:56:37 ID:QvofKKAh
【OS名】さくら鯖
【PHPのバージョン】php5.26
【連携ソフトウェア】
【質問内容】
文字列から
<BODY>
もしくは
<BODY style="〜">
を消したいのですが、eregi_replaceが思うように動いてくれません。

$str = eregi_replace("<BODY(.*?)>","",$str);

これの返り値が空になっちゃうんだけど、どうしてでしょう?
ちなみに、
$str = eregi_replace("<HEAD>(.*)<\/HEAD>","",$str);
これはちゃんと動作しました。
542nobodyさん:2008/12/19(金) 01:02:27 ID:LlHxV6ok
>>516
これって
変数を初期化していないから、
セキュリティ上、問題ある?
543nobodyさん:2008/12/19(金) 01:03:47 ID:???
変数を初期化しないとセキュリティに問題があると思った理由は?
544nobodyさん:2008/12/19(金) 01:12:13 ID:???
>>541
こうじゃだめ?
$str = preg_replace("/<BODY (.*)?>/","",$str);
たぶん、eregi_replace("<BODY (.*)?>","",$str);
でも動く。たぶん。
545544:2008/12/19(金) 01:13:48 ID:???
>>544
ごめん、間違えた。
546nobodyさん:2008/12/19(金) 01:16:51 ID:???
.*?>の最短マッチはPerlの記法だからたぶん他では使えないから
[^>]*>とかのほうがいけそうだが
547nobodyさん:2008/12/19(金) 01:19:49 ID:???
Perl系ならこんな感じで。
<?php
$str = '<head><body>';
$str = preg_replace("/<BODY( .*)?>/i","",$str);
echo htmlspecialchars($str);//<head>
?>
548541:2008/12/19(金) 01:21:54 ID:QvofKKAh
>>544
レスありがとうございます!
あなたのレスにヒントを頂き、

$str = preg_replace("/<BODY(.*)?>/i","",$str);

と書いたところ思い通りの動作をしました。
$str = eregi_replace("<HEAD>(.*)<\/HEAD>","",$str);
↑これが動作しない理由はまだ謎ですが、とりあえず解決したので良かったです。
どうもありがとうございました!
549541:2008/12/19(金) 01:23:35 ID:QvofKKAh
>>546-547
なるほど、Perlの記法だったんですか!
どおりで動作しない訳だw

どうもありがとうございました!
550nobodyさん:2008/12/19(金) 01:25:44 ID:???
>>548
いいならいいけど、それだと<body>の後ろも消えないかい?
551541:2008/12/19(金) 01:43:03 ID:QvofKKAh
>>550
最短一致なので消えないと思ったんですが
違いますか?
552nobodyさん:2008/12/19(金) 02:30:02 ID:ZfofV50h
>>541
後ろも消える
553にゃあ:2008/12/19(金) 02:59:14 ID:Uk1GMt1i
初めて書かせていただきます!!
関係なかったらごめんなさい。
プログラミングjavaの課題がわららないのです↓↓

5問ほどあるのだけど・・・
どなたか答えてもらえますか??
今日中なんです↓
おねがいします!!
554nobodyさん:2008/12/19(金) 03:05:40 ID:???
いいよ
555nobodyさん:2008/12/19(金) 03:08:11 ID:???
>>551
$strから改行を全部取り去ってみ

>>553
http://pc11.2ch.net/test/read.cgi/tech/1221652206/l50
556nobodyさん:2008/12/19(金) 03:36:16 ID:LlHxV6ok
質問

PDOっていうのは
複数の種類があるの?
557nobodyさん:2008/12/19(金) 05:47:34 ID:LlHxV6ok
質問

allow_url_include

これってオフにしないと、やばいの?
558nobodyさん:2008/12/19(金) 06:05:11 ID:???
>>556-557
なぜそう思ったんですか?
559nobodyさん:2008/12/19(金) 06:44:58 ID:???
「allow_url_include 危険性」
560541:2008/12/19(金) 06:45:34 ID:QvofKKAh
>>552
ぎゃあああほんとだ

どうしてですかorz
561nobodyさん:2008/12/19(金) 06:56:16 ID:???
ONにすると危険なphp.iniの設定一覧

allow_url_fopen
allow_url_include
register_globals

これらの設定は必ずOffにしておきましょう!
562nobodyさん:2008/12/19(金) 07:02:32 ID:???
>>559
ぐぐれるなら自己完結できますね
これからもそうしてくださいね
563nobodyさん:2008/12/19(金) 07:06:24 ID:???
追加

expose_php

その他、phpのセキュアな設定については
以下のページを参考にしてください
http://www.asahi-net.or.jp/~wv7y-kmr/memo/php_security.html
564nobodyさん:2008/12/19(金) 07:07:09 ID:???
>>562
NO

そうしたら有用な情報が拡散しない
問題が発生したらキサマが責任を取るのか?
565nobodyさん:2008/12/19(金) 07:13:29 ID:???
はっきり言って自分の方が身分が高いし
人間としての格もこちらの方が上なのです。
566nobodyさん:2008/12/19(金) 07:33:15 ID:???
>>564
×有用
○余計

別にこんな所で拡散させなくていいです
布教ならブログでも開設してそちらでどうぞ
567nobodyさん:2008/12/19(金) 07:37:26 ID:???
http://www.geekpage.jp/web/php-gd/

誰か一緒にGDの勉強しようぜ
568nobodyさん:2008/12/19(金) 07:41:22 ID:???
>>565
ニートおつかれ
569nobodyさん:2008/12/19(金) 07:41:23 ID:???
友達いないの?
570nobodyさん:2008/12/19(金) 09:07:54 ID:???
PHP_SELFって危険なの?
571nobodyさん:2008/12/19(金) 09:11:09 ID:???
>>570
なぜそう思ったんですか?
572nobodyさん:2008/12/19(金) 09:14:34 ID:???
使い方によって危険
573nobodyさん:2008/12/19(金) 09:15:04 ID:???
>>571は知識がないからこういう返答しかできないのでスルーでいいよ
574nobodyさん:2008/12/19(金) 09:16:30 ID:???
>>573
調べた情報が信用できなくて
こんな匿名掲示板のレスなら信用できるんですか?
575nobodyさん:2008/12/19(金) 09:18:04 ID:???
$_REQUEST って危険?
576nobodyさん:2008/12/19(金) 09:18:59 ID:???
>>575
なぜそう思ったんですか?
577nobodyさん:2008/12/19(金) 09:19:49 ID:???
>>574
情報の出所は関係ない
578nobodyさん:2008/12/19(金) 09:22:11 ID:???
>>577
なぜ関係ないんですか?
関係ないならそもそも質問する意味がないですよね?
579nobodyさん:2008/12/19(金) 09:27:35 ID:???
情報の出所が関係ないのと質問する意味がなくなるのか意味がわからない
説明よろ
580nobodyさん:2008/12/19(金) 09:31:09 ID:???
その人のためを思ってるなら、何も答えないでおけばいいのに。
581nobodyさん:2008/12/19(金) 09:37:40 ID:???
>>577
あなたは一体何を期待してるのですか?
ここで嘘や適当な返答をしても真に受けるのですか?

顔や経歴の見える相手と面と向かって然るべき場所で教えてもらえば
その情報は少なくてもここよりは信用できるわけですから
情報の出所は重要ですよ

コードでわからないところがあればさらりと書けば解決なわけですが
そういう漠然とした質問はこの掲示板向けではありません
あまりにも求めてるものが大きすぎます
そんなに教えてほしいのなら私が家庭教師として教えてさしあげますよ
582nobodyさん:2008/12/19(金) 09:39:19 ID:???
>>579
たとえるなら中国の胡散臭い店舗で100万するロレックスの時計が
10万でといわれて信用できないならおとなしく
日本代理店でサービス価格の95万では買えという事だろ
583nobodyさん:2008/12/19(金) 09:41:17 ID:???
質問してるのはいつものバカでしょ?
それを追い出すためなんだろうが結局スレが伸びて迷惑になるから、
おとなしく>>581も無視を決め込んでくれ。
584nobodyさん:2008/12/19(金) 09:49:54 ID:LlHxV6ok
質問

グローバル変数が初期化されていないときに
エラーを出すようにしたいんだが、どうやるの?
585nobodyさん:2008/12/19(金) 09:50:42 ID:???
>>581
はどうせXOOPS CUBEとかやってるキチガイだろ
586nobodyさん:2008/12/19(金) 09:52:34 ID:???
ID隠した質問や煽りの直後にこいつのID出した質問が毎回来るなw
人をニートだのこんな時間に何してるの?と言ったり、
俺はお前らより身分が高い(笑)とかわけのわからんこと言ってるわりに、
昼夜逆転の生活を送ってるようですねwww
夜のお仕事ですか?wwwww毎日がホリデー(笑)ですか?wwwww
まぁなんとでも言い訳できるけどいい加減気持ち悪いよ^^;
587nobodyさん:2008/12/19(金) 09:55:28 ID:???
>>581
なんでそんなに偉いの?
588nobodyさん:2008/12/19(金) 09:56:42 ID:???
>>581
>ここで嘘や適当な返答をしても真に受けるのですか?

情報の出所が重要ならこんなスレいらないってことだよな
589nobodyさん:2008/12/19(金) 09:57:46 ID:???
今度は必死に>>581叩きを開始したようですwww
醜すぎる><
590nobodyさん:2008/12/19(金) 09:58:04 ID:???
>>586
怒らないでマジレスしてほしいんだけど
なんでこんな時間に書き込みできるわけ?
普通の人なら学校や会社があるはずなんだけど
このこと知った親は悲しむぞ?
現実見ようぜ
591nobodyさん:2008/12/19(金) 09:58:32 ID:???
最近脱線が多いのな。
592nobodyさん:2008/12/19(金) 09:58:53 ID:???
煽ったりキチガイ演じたりコピペしたり忙しいな
593586:2008/12/19(金) 10:04:26 ID:???
>>590
定型文乙wwwww

マジレスすると、俺先月失業して今夜の仕事してんだよ。
ていうか必死に質問してるやつも同じ部類だろ?
必死にPHP習得して転職でもしようと思ってるんだろうけど、
そんなことよりハロワでも向かったほうがいいぞ。マジで・・・
594nobodyさん:2008/12/19(金) 10:07:38 ID:???
いまどき学校と会社が昼間しか動いてないと思ってる奴いるとは・・・
595nobodyさん:2008/12/19(金) 10:16:38 ID:???
>>594
会社や学校自体はほぼ100%近く昼間しか動いてないだろ
夜間学校なんてそんな多くないし(そもそも夜間のやつは昼間働いてる)
研究室に篭ってるならこんなとこに書き込んでる暇もない
会社は夜は機能しない
24時間監視しないといけないような業種も会社として動いてるわけではない
トラブルがあったらその場は個人やチームで対応して
対応しきれない場合は責任者や専門家を叩き起こしてどうにか対応する
会社としての事後処理は昼間だ
夜に飲食店や風俗嬢向けのアパレル・宝石店・不動産屋なんかもやってるがあれはまた別な
596nobodyさん:2008/12/19(金) 10:18:30 ID:???
なにこの必死な人wwwwwwwwwwwwww
597nobodyさん:2008/12/19(金) 10:25:04 ID:???
社会人とニートの認識の差です
598nobodyさん:2008/12/19(金) 10:36:32 ID:LlHxV6ok
質問

グローバル変数を初期化しないまま
使ったとしても、
register_globals=offであれば、
セキュリティ上の問題は生じない?
599nobodyさん:2008/12/19(金) 10:53:55 ID:???
PHPSecInfo

PHPセキュリティ・コンソーシアム(PHP Security Cons
ortium)から無料で入手できるPHPSecInfoというツー
ルは、構成を分析して可能性のあるセキュリティの落
とし穴をレポートしてくれます(図2)。PHPSecInfoは実験
的なツールです。その推奨事項は一般的なものであり
、やみくもにそれらを適用すべきではありません。それ
でも参考にはなりますので、phpsec.org/projects/phps
ecinfoからダウンロードしてみる価値はあるでしょう。

http://phpsec.org/projects/phpsecinfo/
600nobodyさん:2008/12/19(金) 10:59:42 ID:???
だからそういうことは自分のブログでやれっての
回答がこないとどうでもいい話題ばっかしやがって
スレ違いもいいところ
601nobodyさん:2008/12/19(金) 11:02:01 ID:???
>>600
いや>>599>>598に教えてやってんだろ
>>598よかったな
これでお前もこのスレとはお別れできそうだな
ちなみに評価ソフトウェアは他にもたくさんある
XSSやSQLインジェクションの評価にはParosなんてのもある
まぁそういうの使ってがんばれや
602nobodyさん:2008/12/19(金) 11:16:16 ID:???
603nobodyさん:2008/12/19(金) 11:35:44 ID:/xkb1uRj
if(---) {
  if (---) {
    通常処理A();
  } else {
    エラー処理A();
  }

  if (---) {
    通常処理B();
  } else {
    エラー処理A();
  }

} else {
  エラー処理A();
]

よくこういう形になって、エラー処理Aがたくさんでてきてしまうんですが
もっとスマートにかける(エラー処理Aを1つの箇所にまとめられる)方法があればアドバイスください
604nobodyさん:2008/12/19(金) 11:46:28 ID:???
if (a && b) {
} else if (a && c) {
} else if (a && d) {
} else {
エラー処理
}
605nobodyさん:2008/12/19(金) 13:12:22 ID:???
>>604
aの条件が何度も出てスマートじゃないです><
606nobodyさん:2008/12/19(金) 13:26:25 ID:???
今日はキチガイが一名沸いたな
607nobodyさん:2008/12/19(金) 13:30:43 ID:???
>>605
えー
608nobodyさん:2008/12/19(金) 13:50:05 ID:???
>>605
ifで無理にネストするよりelseif使ったほうが自然だけど?
ネストした場合は必ず実行するなんかしらの処理を行うのが自然

if () {
 if () {
 } else {
 }
 処理
} else {
 処理
}
609nobodyさん:2008/12/19(金) 15:19:20 ID:yzWk+963
おねがいしまーす

1.$_SERVERの値を書き換える事ってできませんか?

2.変数名の「名前」を取得する関数はありますか?
例)
$test = 'test';
echo get_variable_name($test);//←みたいな関数で、出力結果が $test みたいな感じ
610nobodyさん:2008/12/19(金) 15:42:57 ID:???
>>609
> 1.$_SERVERの値を書き換える事ってできませんか?
もっと具体的に

> 2.変数名の「名前」を取得する関数はありますか?
ない
ある値が入ってる変数名を取得とかならわかるけど
変数名から変数名を取得するなんて発想が変だよ
結局変数名がわかってるからそのまま
echo "\$test"とやればいいのでは?
611nobodyさん:2008/12/19(金) 16:30:39 ID:???
>>609
ローカルで試してみたら?

<?php
echo $_SERVER["HTTP_HOST"]."<br>";//そのまま
$_SERVER["HTTP_HOST"] = "test";
echo $_SERVER["HTTP_HOST"];//test が表示される
?>
うちの環境では一応できたが、こういうことがしたいの?
何に使うんだ。
612nobodyさん:2008/12/19(金) 16:32:56 ID:yzWk+963
>>610
1.もっと具体的に↓とかやりたい。
$_SERVER['SCRIPT_URI'] = 'http://hoge.com'.$_SERVER['SCRIPT_URL'];
なぜかというと、FWからアプリサーバーに転送してて、ホスト名がローカルのホスト名になってる。
FWの外からアクセスすると、上の関係でphpMyAdminが動かないのです。

2.変数名が浮動の場合に取得したい
例えば、func_hoeg($unknow_name);
とかした場合、func_hogeに渡された変数名が知りたい。
func_hoeg($unknow_name,'$unknow_name');
↑これでも解決できるが、煩わしい。
PHPは何に使うのか不思議な関数が盛りだくさんなので、ありそう。
613nobodyさん:2008/12/19(金) 17:05:03 ID:???
>>612
>1
それってFWの設定で解決できるんじゃないの?
てかDBなんてコマンドでたたけよ…

>2
その程度のことを煩わしいというならセッションかグローバルに
値ぶち込んでキーを渡すようにしたら良いじゃん
614nobodyさん:2008/12/19(金) 17:18:14 ID:???
コマンドでとか効率も悪いだろうにw
>>612
1.$_SERVERはただのグローバル変数なので611の方法で可能
2。知る必要あるの?デバッグ関数とかでも作りたいの?
debug_backtraceとか使えば一応取り出せるけど
615nobodyさん:2008/12/19(金) 21:04:09 ID:???
与える変数名ごとに場合わけしたいんだろ
func_hoge($add)
func_hoge($view)
func_hoge($delete)
とか
アホの極みだが
616nobodyさん:2008/12/19(金) 21:54:13 ID:???
617nobodyさん:2008/12/19(金) 22:25:19 ID:???
>>616
 〜〜〜 AAでわかるマスゴミフィルター 〜〜〜
  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
  | 北海道から友達と一緒に来ました。         |
  | どうせなら六本木とかおしゃれなところで働きたい|
  \______________  ____ /
                       V   
  ∧_∧                ∧_∧
 ( ・∀・)               (´∀` )
 (    )               (    )
 | | |               | | |
 (__)_)              (_(__)
  麻生            北海道から来たある若者
  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
  | 何かありませんか?じゃ仕事は見つからない   |
  | しっかり目的意識を持たないと就職は難しい    |
  \  __________________ /
   V http://headlines.yahoo.co.jp/hl?a=20081219-00000572-san-pol
  ∧_∧                ∧_∧
 ( ・∀・)               (´∀` )
 (    )               (    )
 | | |               | | |
 (__)_)              (_(__)

                     | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|   サッ
  ∧_∧                | 一般の若者   | ミ
 (; ・∀・)               |________|
 (    )               (    )|| ∧∧
 | | |               | | |  ||(゚д゚,,) <的外れだ!批判を呼びそうだ!
 (__)_)              (_(__) Φ⊂ ヽ http://www.47news.jp/CN/200812/CN2008121901000234.html
                             マスゴミ
618nobodyさん:2008/12/19(金) 22:56:08 ID:???
トリッキーなコードを書くやつはいっぺん死んでくれ。
処理速度アップとか理由があるならともかく。
619nobodyさん:2008/12/19(金) 23:07:20 ID:???
たとえばどんなコード?
620nobodyさん:2008/12/19(金) 23:44:13 ID:???
PHPにトリッキーな書き方あるならおれも知りたい
載せてよ
621nobodyさん:2008/12/20(土) 00:02:52 ID:???
別にPHPだからどうとか言うことは無いんだが、
複雑な条件式を無理に1文に詰め込んだりとか、
評価戦略を駆使したアルコリズムを書いたりとか。
しかもそのくせコメント残してなかったり。

とにかくメンテナンスしにくいのが嫌だ。
622nobodyさん:2008/12/20(土) 00:04:15 ID:???
どうせ三項演算子とか言っちゃうんだろ
623nobodyさん:2008/12/20(土) 00:38:50 ID:???
参考演算子を入れ子にするやつは死ねばいいよ
624nobodyさん:2008/12/20(土) 00:44:02 ID:???
自分ねちっこくて陰気だから
気に入らない相手をどん底に落とすことしか考えてない。
相手の落ち度を見つけたら
大袈裟に且つ広範囲(関係者だけでなく社員全員をCCに付けて)に告知。
しかしねっちこい性格だから自分は社員全員から嫌われている。
台風のような扱いをうけてるよ。
625nobodyさん:2008/12/20(土) 01:16:01 ID:???
大規模WEBシステムの構築にphpって向いてないのでしょうか?
626nobodyさん:2008/12/20(土) 01:21:54 ID:???
>>1
627nobodyさん:2008/12/20(土) 01:22:07 ID:BBPvbgE4
>>614
おーこんな関数があったのか!
別のことに使えそう。thx

>>613 >>615
素人の発想は貧弱だな
628nobodyさん:2008/12/20(土) 01:24:19 ID:???
629nobodyさん:2008/12/20(土) 01:33:44 ID:???
>>627
図星かw
630nobodyさん:2008/12/20(土) 01:36:26 ID:???
変数名を知りたいとか素人発想だな
そんな謎システム組むなよ
フレームワークにはそもそもデバッグモードがあるだろ
631nobodyさん:2008/12/20(土) 01:41:48 ID:???
PHP+MySQLの話は
どこの板のどこのスレでするのが
適切かな?
632nobodyさん:2008/12/20(土) 02:16:48 ID:???
>>631
SQLの質問ならDB板
SQLが出てくるが質問内容がDBを扱う関数のことなどPHPのことならここでOK
633nobodyさん:2008/12/20(土) 02:36:48 ID:???
>>625
そんなことないと思うよ
ようは何で作るか、では無く、どう作るか?
だと思うけど。

取り合えずオブジェクト思考は勉強したほうがいいよ。あとはDBのレプリケーションとかスケーリング関係かな
634nobodyさん:2008/12/20(土) 03:12:34 ID:???
質問

「あめぞうウイルス」とはどのようなものだったのか?
635nobodyさん:2008/12/20(土) 03:37:00 ID:???
>>634
なんでここで聞くの?スレタイ見えないの?バカなの?
636nobodyさん:2008/12/20(土) 03:45:43 ID:???
餌をやるな
637nobodyさん:2008/12/20(土) 04:47:31 ID:???
638nobodyさん:2008/12/20(土) 05:02:20 ID:???
>>630
そんなにムキになんなよ、貧弱君。
639nobodyさん:2008/12/20(土) 05:04:14 ID:???
はてなの障害、TITLEのエスケープ漏れだったようだね。
TITLEの中に入れられたすべてのタグが
全部チェック無しで流通してしまったようだ

キサマラが「エスケープやサニタイズの話をさせない」
雰囲気を作った結果がこれだ。

責任取るんだろうな。賠償金1億でも2億でも
払ってもらうぞ。
640nobodyさん:2008/12/20(土) 05:06:16 ID:???
セキュ板でやれ無能
641nobodyさん:2008/12/20(土) 05:08:36 ID:???
それエスケープって言うのか?
642nobodyさん:2008/12/20(土) 06:16:46 ID:???
はてなの障害と関係あるのか?
643nobodyさん:2008/12/20(土) 06:25:46 ID:???
放置しろよ
644nobodyさん:2008/12/20(土) 06:39:14 ID:???
2008年4月、クエリー・ストリングの中に SQL の列の
名前が使用されていたことによって、米国のある州の
Department of Corrections (刑務局) から機密データ
が流出してしまいました。この漏洩事件では、悪意の
あるユーザーが、表示させたいデータベースの列を選
択するようにして、そのページを送信することで、その
データを取得することができたのです。この漏洩事件
によって、アプリケーション開発者がまったく予期しな
かったような入力をユーザーが考え出して実行する手
口が明らかになり、SQL インジェクション攻撃に対して
慎重に対策を施す必要があることが改めて示されまし
た。
645nobodyさん:2008/12/20(土) 07:31:00 ID:???
バイナリセーフではない関数の一覧
これらは危険

ereg_replace(), eregi(), eregi_replace(),
split(), spliti(),
include(), include_once(), require(), require_once()
fopen(), file_get_contents(), readfile(), basename()
646nobodyさん:2008/12/20(土) 08:21:27 ID:???
647nobodyさん:2008/12/20(土) 08:41:56 ID:???
>>1を読め
648nobodyさん:2008/12/20(土) 08:44:46 ID:???
一切触るな
649nobodyさん:2008/12/20(土) 11:38:13 ID:???
>>633
そうですか。ありがとうございます。
@ITかどこかのサイトで以前に大規模WEBシステムをphpをで組むのは危険とかなんとか
いう記事を見た事がありましたので書き込みさせて頂きました。
650nobodyさん:2008/12/20(土) 11:51:55 ID:???
自分で経験してない情報をなんでも鵜呑みにするのはよくないぞ
651nobodyさん:2008/12/20(土) 11:57:13 ID:???
その話って高負荷分散のケースだね
652nobodyさん:2008/12/20(土) 13:01:48 ID:???

じゃやっぱりphp大規模WEBシステムには向いてない?って事でFA?
653nobodyさん:2008/12/20(土) 13:14:13 ID:???
大規模になりやすいシステムの分野がphpに向いてないというか。
銀行系とか。
654nobodyさん:2008/12/20(土) 13:20:06 ID:???
銀行とか交換機はそもそも別クチだろう
655nobodyさん:2008/12/20(土) 14:00:27 ID:???
Webシステムに大規模って存在するのかねぇ
見たことないんだが・・
656nobodyさん:2008/12/20(土) 14:02:38 ID:???
開発者人数が多い、という意味で大規模な開発の場合、静的型付け言語の方が圧倒的にやりやすい。
となると、実際問題Java一択になるわけだ。
PHPで開発してもJavaっぽい書き方になる事が多いので、PHPのメリットが活かせないし。

捌くリクエスト数が多い、という意味で大規模ならば、実行速度の面でやや不向き。
だけど、これははっきり言って誤差の範囲。DB方面とかUIの出来のほうがよほど影響が大きい。

ひたすらに画面数が多く、しかも互いに独立性が高い場合、phpはむしろ向いている。
657nobodyさん:2008/12/20(土) 14:08:30 ID:???
でもPHPのインタフェースのページってもっさりして重くね?
658nobodyさん:2008/12/20(土) 14:12:34 ID:???
>>603
if(!---){
 return エラー処理A();
]
if (!---) {
 return エラー処理B();
}
if (!---) {
 return エラー処理C();
}
if(---){
 return 通常処理A();
}else{
 return 通常処理B();
}

ファウラーの『リファクタリング』「ガード節の導入」を参照。
即returnしちゃまずいっていうなら、即returnできるような形に処理を関数として切り出しておく。
こういう処理を振り分ける部分には、実際の処理内容は一切書かず、こういう風に判定ロジックだけを残したほうが見通しがスッキリする。
意味が分からなくとも、「ifの論理判定を逆転すれば、エラー処理を先に、通常処理を後に書ける」ってのは便利。
可読性が若干落ちるが、エラー処理って大抵数行で終わるしな。
最初のifに対応するelseが1画面に収まる範囲内に無いと、可読性が急激に落ちる。
659nobodyさん:2008/12/20(土) 14:22:24 ID:???
ヤフーの社員だけど普通にPHPで大規模なことやってますよ
660nobodyさん:2008/12/20(土) 15:54:33 ID:???
だから開発人数の話だって言ってるだろうが落ち目会社!
661nobodyさん:2008/12/20(土) 16:21:34 ID:5J5Av4Jf
みんな話が混乱しているから、俺が整理するけど。

web開発の現場で使われることがphpとJavaが多いのは、
技術者の数を確保しやすいため。
マイナー言語だと、募集しても集まらないし保守の時も困る。

大規模案件でphpよりJavaが多いのは、一言で言えば安全だから。
大規模ということは、関与する技術者も多い。そして得てして混交玉石。
その中で一定の質を上げるには、型チェックが厳しくコンパイルレベルでエラーが検出できるなどの
メリットがあるJavaの言語仕様の方が向いている。

処理速度については、処理を速くする機構を使えば、Javaもphpも体して変わりない。

総括すると、大規模な案件は単価が高い。単価が高いからみんなやりたがるし、競争も激しい。
よって、「全体として」Javaの技術者の方がphpのそれよりも単価が高いし、技術力も高い。
あくまで、これは一般論。
662nobodyさん:2008/12/20(土) 16:23:20 ID:???
型チェックができることがそんなに有利なの?
663nobodyさん:2008/12/20(土) 16:30:02 ID:???
>>661
Javaの人はしっかりしてる人が多いもんな。
V2Cの作者とか。

それに比べてphpはバカが多い
XOOPS CUBEやってるやつとか。

女性にストーカーして警察に呼び出されて
注意された連中って、あいつらくらいだろ?
664nobodyさん:2008/12/20(土) 16:30:38 ID:5J5Av4Jf
>>662
Javaの大規模案件を一回やってみれば分かるよ。
型チェックがあることが、どんなに有り難いことか分かるから。
オブジェクト思考がない奴が開発に入ると、どうしてその型が使っているか分からずに、
型でまず苦労するが。
665nobodyさん:2008/12/20(土) 16:32:21 ID:???
やれば分かるじゃなくてできたら言葉で説明してくれ
666nobodyさん:2008/12/20(土) 16:35:26 ID:???
昔からやってる人なら、

型あり言語としてC、
型なし言語としてBASIC

をやってるから、説明しなくても通じるんだけどねー
667nobodyさん:2008/12/20(土) 16:36:04 ID:???
ついでに聞くけど、ネットワーク版で、
web屋は馬鹿でもできるけど、ネットワークエンジニアは馬鹿じゃできない、
っていっていたけど、何?

web屋だって馬鹿じゃできないでしょ。ネットワークエンジニアがweb屋より優れている点って何?
668nobodyさん:2008/12/20(土) 16:36:30 ID:???
javaなんてもう廃れ始めてるじゃん
今はどこも.NETだよ
669nobodyさん:2008/12/20(土) 16:38:00 ID:???
ちょっとミスしたら5万人の回線が止まったり
するんですよ
670nobodyさん:2008/12/20(土) 16:44:48 ID:???
>>660
氏ねコノヤロウ!
ヤフーの正門もくぐれない・就けない・仕事がない(笑)ぐらいの分際で!
671nobodyさん:2008/12/20(土) 16:47:16 ID:???
>>669
それって、>>667に対するレス?
それなら、それはweb屋だってそうでしょ。
672nobodyさん:2008/12/20(土) 16:52:27 ID:???
あいつらがWEB屋って言ったら
「インターフェースの画面作るだけの人」
くらいの意味で言ってる
673nobodyさん:2008/12/20(土) 17:45:16 ID:???
>662
一言で言うと、静的型付け言語の方がルールが多く、ルールに沿った書き方しかできないようになっているから、

たとえばPHPのような動的型付け言語は、ルールを無視してstringを要求する関数にarrayを渡したりできるわけだが、
静的型付け言語で同じ事をしようとすると、普通はコンパイル時、最悪でも実行時にエラーになる。つまりそういうルール違反が出来ない。
「こういう変数を渡しましょうね」とコメントに書くより、特定の型のオブジェクトしか受け取れないようにした方が確実だろ?
そういう、言語レベルで他人に何かを強制する仕組みは、Javaのような静的型付け言語の方が圧倒的に強力。
まあ、その代償として、Hello, worldを出力するのにクラスが必要、みたいな大仰な事になるのだが。

動的型付け言語と静的型付け言語のプロジェクトの効率は、
「コーディング規約」「ファイル名などの命名規則」がないプロジェクトとあるプロジェクトくらい差がある。
小規模なプロジェクトなら無いほうが効率がいいが、関わる人数が増えてくるとこの差は致命的に効いてくる。
674nobodyさん:2008/12/20(土) 17:45:38 ID:pE0RX0hB
わるい。
php5からサイトのヘッダーあたりが一発で取れる関数があったはずだが
なんだっけ?
675nobodyさん:2008/12/20(土) 17:50:32 ID:???
頑張ってJava勉強したけど、PHPを新たにやらなきゃいけなくなった奴が
発狂してんのか?
676nobodyさん:2008/12/20(土) 17:55:17 ID:???
>>673
PHPにだってタイプヒンティングがあるのでは?
677nobodyくん:2008/12/20(土) 18:31:55 ID:tNhejazT
mbstring.internal_encodingについて教えてくれ!

こいつはmbstring関数のデフォルトエンコードなの?
それともphpの内部エンコードなの(ゼンドエンジン)?
ttp://journal.mycom.co.jp/special/2004/php5/010.html

検索したがphpに内部エンコードなんてないとか書いてあって・・・
ttp://hain.jp/index.php/tech-j/2007/02/13/p125

よく分からなくなってきてパニックです。
誰か教えてくれよん〜
678nobodyさん:2008/12/20(土) 18:43:53 ID:???
>676
ちなみに俺は>656=>673。>661は別の人。

タイプヒンティングは本質的に「静的型付け言語っぽい考え方」なんだよ。
だから、そういう方向に進んでも「静的型付け言語の劣化版」にしかならない。

そもそも、どんな型でも渡せる、型に縛られないというのが動的型付け言語の強み。
タイプヒンティングの考え方は、その強みを消してしまう。
たとえばPHP6では戻り値のタイプヒンティングが有効になるのだが、開発者はこれを「It's not PHP way」と断言している。
できないとは言っていない。>656でも書いたが、あくまで「(言語として)向いていない」っていうのが俺の主張。

Javaが依存性注入とかチマチマやってる中、動的型付け言語はダックタイピングで型に縛られない書き方が出来るし、動的にクラスを生成する事だって自由自在。
それはそれで強み。それで開発効率が上がる事だって多いし、自分ひとりならその方が快適。
だけど、その柔軟性が足かせになる事だってある、って話。

ま、開発言語が自由に選べるなんて幻想だけどな。俺も32bitOSじゃ扱えない額扱うPHPシステム開発やった事あるし。
679nobodyさん:2008/12/20(土) 18:53:18 ID:???
なんでPHPでも静的型付け言語と同じことができるのにJAVAのほうが強力なの?
どちらもできるんなら用途に応じて使い分ければいいじゃん
680nobodyさん:2008/12/20(土) 19:23:22 ID:VXNsKNQ0
動的型付けて単なるスクリプトのことだろ?rubyはチーム作業できにくいのかよ。しんだほうがいいよ
681nobodyさん:2008/12/20(土) 19:30:38 ID:???
>>680
君のような短絡思考の奴が一番チーム作業ができにくいw
682nobodyくん:2008/12/20(土) 19:53:44 ID:tNhejazT
誰か教えてくれw
683nobodyさん:2008/12/20(土) 20:07:09 ID:???
>>682
ど偉そうに聞いていいスレへ
684nobodyさん:2008/12/20(土) 20:12:49 ID:???
>679
2行目には同意。

そもそも、静的型付けってのはできる事を制限する思想だから、「できる事が多い」は別にメリットではない。
という前提で。宗教論争になるから機能比較はしたくないんだが。

・引数の型によって同名の別関数を呼ぶ、という事ができない。
 同様に、引数の数だけが違う同名の関数を定義できない。
・整数をタイプヒントに使用できない。
 これは早晩解決されるだろうが。
・配列などの宣言時に、中に入る型を指定できない。
・そもそも実行時までタイプヒントに違反している事を検出できない(関数がどの型を返すか明示できないため)。

PHPしか触れてない奴にも容易に想像が付くものだとこの程度。
総じて「型があるからこそ使える便利な機能」は抜け落ちている傾向がある。
これは言語仕様として型を動的に扱う以上、埋めようがない差異。埋めたら別言語になってしまうし、性能がガタ落ちする。
恐らくこういうのが「It's not PHP way.」という発言の真意だろう。
型を使ってプログラマを制約するのは、PHPの得意分野ではないし、PHPの目指す方向でもない。
685nobodyさん:2008/12/20(土) 20:24:58 ID:???
>>679
強力という言葉が果たして合うかはわからないが信頼性は高いよ
静的型付けはコンパイル時と実行時の2回チェックが行われる
対して動的型付けは実行しないと問題点がわからない
もう1つ静的型付けにすることによって最適化が図れる
型の定義というのはメモリの確保であるから
書き手が意識して書くことができる
686nobodyさん:2008/12/20(土) 20:27:47 ID:???
> 型を使ってプログラマを制約するのは、PHPの得意分野ではないし、PHPの目指す方向でもない。

目指す方向について詳しく。
687nobodyさん:2008/12/20(土) 20:37:13 ID:???
型の制約から開放されたという点で明らかにPHPのほうが優れていると思うんだが
688nobodyさん:2008/12/20(土) 20:38:15 ID:???
> 型の制約から開放されたという点で明らかにPHPのほうが優れていると思うんだが

どういう観点から明らかなの?
689nobodyさん:2008/12/20(土) 20:59:48 ID:???
>>685
PHPも最適化されますが何か
690nobodyさん:2008/12/20(土) 21:26:13 ID:???
>689
型が静的だと、変数が確保する領域のサイズがコンパイル時に分かる。
動的だと実行時まで分からない。後は分かるな。
静的言語に静的型付けを持つものが多い理由のひとつがここ。
691nobodyさん:2008/12/20(土) 22:17:13 ID:???
そろそろいいかな?
初心者がしつもんできなくなるだろうから

さまざまな言語仕様について熱く語る闘技場
http://pc11.2ch.net/test/read.cgi/php/1228709756/
692nobodyさん:2008/12/20(土) 23:10:55 ID:5BlIZK9J
<table border="1">
<tr>
<td>id</td>
<td>name</td>
</tr>
<?php do { ?>
<tr>
<td><?php echo $row_rsLocations['id']; ?></td>
<td><?php echo $row_rsLocations['name']; ?></td>
</tr>
<?php } while ($row_rsLocations = mysql_fetch_assoc($rsLocations)); ?>  ←ここ
</table>

”ここ”って行がエラーを吐きます
mysql_fetch_assoc(): 4 is not a valid MySQL result resource in

なぜでしょうか・・・・
693nobodyさん:2008/12/20(土) 23:14:33 ID:???
>>692
$rsLocationsの中身を確認しましょう
$rsLocationsの中身がMySQLが返すリソースじゃないから
怒られてます
694規模について質問した者:2008/12/20(土) 23:28:26 ID:???
>>ヤフーの人
なるほどある程度の大規模システムでもphpでパフォーマンスを損なう事無く
構築する事は可能なんですね。
ヤフー関連のWEBシステムでそんなに思いと感じる事は無いですしね。

>>java と phpを比較して解説してくれた人
@ITのなんちゃって記事を書いている人より分かり易かったです。

それはそうと、自分は.NETマンセーな人間なので、個人的にはWEBシステムは
ASP.net一本にしてくれればなぁ、と思ってます。
まぁ、WEB系+クラサバも全て.NET一本にしてしまえば色々とメリットがあると思うんですけどね。

俺の好きな言語の順序

ASP.net >> php >> Java
695nobodyさん:2008/12/20(土) 23:29:43 ID:???
ASP.netのいいとこってどこら辺なん?
環境構築にもコード書くにもやたら面倒そうな印象だったんだが
696nobodyさん:2008/12/20(土) 23:30:47 ID:???
ようは ASP.net しか知らないって事だろ?w
697nobodyさん:2008/12/21(日) 00:01:19 ID:???
>>695
生産性が全然違うよ。

>>696
phpしか知らない奴がいってもw
698nobodyさん:2008/12/21(日) 00:02:25 ID:???
>>697
だから例えばどんな風に?
699nobodyさん:2008/12/21(日) 00:02:39 ID:???
昨日からPHP5を始めた者です。くだらない質問をさせていただきま。
if($hen != "")ってあるんですけど、これって=の時?それとも=で無い時?どっち?
!って良く解らないです。ビックリしてるわけじゃないと思いますが。
700nobodyさん:2008/12/21(日) 00:04:26 ID:???
>>699
びっくりだよ
701nobodyさん:2008/12/21(日) 00:11:11 ID:???
>>699
スレタイ
702nobodyさん:2008/12/21(日) 00:14:09 ID:???
>>701
ここphpのレスじゃないんでしょうか?
703nobodyさん:2008/12/21(日) 00:19:31 ID:???
> 生産性が全然違うよ。

詳しく教えて欲しい。
704nobodyさん:2008/12/21(日) 00:22:14 ID:???
また荒れそうな話題だな
705nobodyさん:2008/12/21(日) 00:26:01 ID:???
ASP.netってWindows環境でしか使えない。
処理のパフォーマンスを重視するなら、あり得ない選択。
706nobodyさん:2008/12/21(日) 00:39:16 ID:???
PCユーザの何割がWindowsを使ってると思ってるんだ。↑
707nobodyさん:2008/12/21(日) 00:42:35 ID:???
>>706
すごく突っ込みたいが触れないほうがいいんだろうか。
708nobodyさん:2008/12/21(日) 01:24:50 ID:???
706 名前: nobodyさん [sage] 投稿日: 2008/12/21(日) 00:39:16 ID:???
PCユーザの何割がWindowsを使ってると思ってるんだ。↑
709nobodyさん:2008/12/21(日) 04:20:18 ID:???
型に自由度あるphpやperlの適当さはそれはそれでメリットあるけど安全な開発目指すなら逆方向だしな。
710nobodyさん:2008/12/21(日) 04:21:40 ID:???
いけねリロードしてないせいですでに終わった話題だったか。
711nobodyさん:2008/12/21(日) 05:29:19 ID:???
>>699
それバグじゃない?
==ってしないと比較はできないよ

=だと代入になってしまう
712nobodyさん:2008/12/21(日) 05:40:08 ID:???
お前は何を言ってるんだ
713nobodyさん:2008/12/21(日) 05:53:02 ID:???
a==b   これは比較

a=b    これは代入
714nobodyさん:2008/12/21(日) 06:10:13 ID:???
PHPのマニュアルもあんまりよくないと思う。

* セキュリティに関する大切な警告なのに、マニュア
ルの後ろの方に書かれている。サンプルコードより前
じゃないと気がつかない人が多そう

* 「なぜ使用してはいけないか」が書かれていない。
なので、対策を読んでも OK の場合と NG の場合の
区別がつかない
715nobodyさん:2008/12/21(日) 06:25:36 ID:???
http://d.hatena.ne.jp/hoshikuzu/20060211

これ結局、どっちなの?

PHPでは、一部のマルチバイトエンコーディングにお
いて、addslashes()を使っているとSQLインジェクション
が発生しかねないよ、はてどうしましょう、というお話。

Chris Shiflett 氏が仰ることでは、addslashes()は使わず
に、mysql_real_escape_string()を使いましょうと。そこへ I
lia Alshanetsky 氏が、いやいや、mysql_real_escape_stri
ng()でも駄目で、Prepared Statements を使いましょう、
と言っているような気がします。一方日本でもこの現象
について触れている文書があります。
716nobodyさん:2008/12/21(日) 06:28:44 ID:???
結論から言うと、
Shift_JISを素直に使っている限り、

addslashes()は駄目(Chris Shiflett氏)、

mysql_real_escape_string() は駄目(Ilia Alshanetsky氏)、

一部のPrepared Statements すらも駄目(id:jrofbyrsさん)、

ということらしいです。
717nobodyさん:2008/12/21(日) 08:40:48 ID:???
シフトジスなんて使うバカまだいたのか
大手のケータイサイトでさえEUCで作って鯖でシフトジスに変換して出力してんのに
貧乏鯖でしか借りれない人達はがんばってシフトジス(笑)で年越してくださいな
718nobodyさん:2008/12/21(日) 10:34:46 ID:???
mysql_real_escape_string()でも
SET NAMES sjis;等を実行した後に使うと
2バイト目の0x5C文字がエスケープされない
719nobodyさん:2008/12/21(日) 10:35:19 ID:???
マスコミの記事でよく見かける表現に、「完全に○○ない
わけではない」というものがあるが、これは断定できない
ことを言うときの逃げ口上だってことを知っておいたほう
がよい。マスコミには許されるが、技術文書には許されな
い。技術文書なら、前提を明らかにした上でその前提の
上で何が言えるかを書くのであって、例外があるなら例
外を書くようにする。

セキュリティの解説で「どれも完全じゃないからいろいろや
っておこう」という表現が出てきたら、その著者は信頼す
るに値しないと判断してよい。書いてる当人がわかってい
ないから、問題を整理できていないから、そういう表現が
出てくる。
720nobodyさん:2008/12/21(日) 10:37:30 ID:???
情報に流されやすい人間はプログラム向いてない
さっさとやめろ
721nobodyさん:2008/12/21(日) 10:42:23 ID:???
文字コード勉強すれば回避できることを長々と・・
722nobodyさん:2008/12/21(日) 10:44:07 ID:???
元から貧弱性のある文字コードを使う時点でバグが入る率も高まるというのに長々とsjisに拘る貧乏人(笑)
723nobodyさん:2008/12/21(日) 10:51:21 ID:pZUxQjb7
UTF-8にしろって言いたいんだろうが、
UTF-8は、全ての文字が3バイト掛かるんだよ。
サーバー負荷が大きいサイトなら、メモリーが圧迫されることになる。
インフラも含めてプログラミングするのは、真のプログラマーだろ。
そういう視点が抜けているように思うが。
724nobodyさん:2008/12/21(日) 10:53:26 ID:???
>>723
つEUC
725nobodyさん:2008/12/21(日) 10:54:28 ID:pZUxQjb7
>>724
今更、EUCって何だよ。俺はCCNPだぞ。もっと考えろよ。
726nobodyさん:2008/12/21(日) 10:57:12 ID:???
CCNPごときがこんなスレにはりつくんじゃねえよ
727nobodyさん:2008/12/21(日) 12:10:15 ID:???
>>719
>技術文書なら、前提を明らかにした上でその前提の
>上で何が言えるかを書くのであって、例外があるなら例
>外を書くようにする。
これの根拠が示されておらず勝手に決め付けてる。
728nobodyさん:2008/12/21(日) 12:30:16 ID:VviuyWm4
<?php
$a=" aaa ";
$b=" bbb ";

$c= $a.$b;
print $c;

print "<br>";
trim ($c);

print $c;

?>

なんかこれで、
全然トリムされてないんだけど???
729nobodyさん:2008/12/21(日) 12:41:26 ID:???
>>728
アセンブラではないんだからw
$c = trim ($c);
730nobodyさん:2008/12/21(日) 12:52:07 ID:VviuyWm4
>>729
あ、、、
代入しないとダメなんだ、、、
ありがと
731nobodyさん:2008/12/21(日) 12:52:30 ID:???
マニュアル見れw
732nobodyさん:2008/12/21(日) 13:06:16 ID:VviuyWm4
http://netlog.jpn.org/r271-635/2008/06/php_basename.html

basenameって日本語使えないの?
733nobodyさん:2008/12/21(日) 13:07:05 ID:???
試せボケ
734nobodyさん:2008/12/21(日) 13:08:20 ID:???
>>732
自分で試せば分かることをいちいち聞くなクズksgk!
735nobodyさん:2008/12/21(日) 15:28:56 ID:???
この板は、精神を病んでる反応が多いねぇ。
やっぱ不景気でカツカツな人が多いいの?かわいそうに。
736nobodyさん:2008/12/21(日) 15:33:09 ID:???
自己紹介乙
737nobodyさん:2008/12/21(日) 15:41:06 ID:???
だれがどこで自己紹介してるの?
738nobodyさん:2008/12/21(日) 15:42:59 ID:???
>>737

>>735
739nobodyさん:2008/12/21(日) 15:47:37 ID:???
>>738
日本語勉強したほうがいいと思うよ。
740nobodyさん:2008/12/21(日) 16:04:30 ID:???
自己紹介乙
741nobodyさん:2008/12/21(日) 16:07:20 ID:???
>>739
トリップつけろ
742nobodyさん:2008/12/21(日) 16:09:08 ID:???
>>741
人にものを頼むときにそういう態度でいいのか?
743nobodyさん:2008/12/21(日) 16:09:21 ID:???
744nobodyさん:2008/12/21(日) 20:11:14 ID:???
>>743
荒らし乙
745nobodyさん:2008/12/21(日) 22:25:03 ID:BLufKTBe
つまらないことなんですが,クラス内の関数から
同じクラスのメンバやメソッドにアクセスする際に $this->
はつけた方がいいのでしょうか?

class A {
private $hoge;
private function foo() { }

public function bar() {
$hoge = 'なんたらかんたら';
$this->hoge = 'なんたらかんたら'; /* どっちいいの? */

foo();
$this->foo(); /* どっちがいいの? */
}
}
746nobodyさん:2008/12/21(日) 22:37:42 ID:???
俺はつけてない
747nobodyさん:2008/12/21(日) 22:58:17 ID:???
>>745
本当にそれが両方とも期待する動作をするかどうか確認してみ
748nobodyさん:2008/12/22(月) 01:52:46 ID:???
ま、SJISは想定外のことをしかねんから使うべきでないってだけだし。

あと日本語のマルチバイトが3バイト使うってだけでUTF8の全てが3バイトじゃないよね?
信頼性と容量どっちを優先するかは好きにすりゃいい。
自分でよりよい案も出せず文句つけるだけの723には無理だけど。
749nobodyさん:2008/12/22(月) 02:19:57 ID:???
11月末に契約更新に応じなかった派遣、とんでもない爆弾仕掛けていきやがった。
帳票出力アプリ任せてたのに、出力データ取得条件が絶対に1件も持ってこない条件だった。
引継ぎ資料には「帳票が出ないのは整合性の取れたデータが無いためです。アプリの動作は問題ありません」
エビデンスのデータで再テスト行っても出力されず。
技術が無くて作業が進まず、それを隠すために逃げたんだろうな
750nobodyさん:2008/12/22(月) 02:37:36 ID:???
>>749
それがどうかしたの?
751nobodyさん:2008/12/22(月) 05:37:08 ID:???
お前らって、グーグルの面接で
「ニューヨークにはピアノの調律師は何人いるか?」
って質問されたら、答えられなくて発狂するの?
752nobodyさん:2008/12/22(月) 06:04:46 ID:???
>>751
それがどうかしたの?
753nobodyさん:2008/12/22(月) 06:07:29 ID:???
なんで唐突にGoogleの話が出てくるんだか
スレ違いな上に頭悪いな
754nobodyさん:2008/12/22(月) 06:13:45 ID:???
お前らってグーグルで検索できない
質問されると発狂するじゃん
755nobodyさん:2008/12/22(月) 06:24:37 ID:???
例えばどれ?
756nobodyさん:2008/12/22(月) 06:31:15 ID:???
いつから人力検索スレになったんだよ
はてなにでも池
757nobodyさん:2008/12/22(月) 08:53:52 ID:Cwv0g3tM
通常、PDOって言ったら、それは
PECL::PDOのことなの?
758nobodyさん:2008/12/22(月) 08:59:25 ID:Cwv0g3tM
mysql関数と、
mysqliと、

pear::DBと、
PEAR::MDB2と、

PECL::PDOと、

どれを使えばいいの?
759nobodyさん:2008/12/22(月) 09:04:29 ID:Cwv0g3tM
mysql関数と、
mysqliと、

pear::DBと、
PEAR::MDBと
PEAR::MDB2と、

PECL::PDOと、

どれを使えばいいの?
760nobodyさん:2008/12/22(月) 09:15:50 ID:???
動作効率を求めるならネイティブ関数
使いやすさや開発の効率など機能の利便さを求めるならライブラリ
761nobodyさん:2008/12/22(月) 09:20:53 ID:Cwv0g3tM
http://www.google.co.jp/trends?q=MDB2%2CPDO&ctab=0&geo=all&date=all&sort=0

PDO一択かな
でもそれだと、mysqliが使えないんだけど、
みんな使ってないの?
762nobodyさん:2008/12/22(月) 09:25:01 ID:???
PDOだけでおk
763nobodyさん:2008/12/22(月) 09:41:19 ID:Cwv0g3tM
PDO 使うときに、
mysql_real_escape_string でエスケープしなければ
いけないのか、それとも、しなくていいのか、という議論ですが、

http://labs.cybozu.co.jp/blog/hata/archives/2005-10-04-1.html
このページを読む限りだと、

(1)
PDO::query() でいきなりSQL文を実行する場合
           ↓
SQLインジェクションの可能性があるので、
自分でmysql_real_escape_stringしなければならない

(2)
prepare()して、execute()する場合、
        ↓
SQLインジェクション対策を自動的にしてくれる
        ↓
mysql_real_escape_string 不要


=--------------------------
この理解で合ってますか?
764nobodyさん:2008/12/22(月) 09:57:12 ID:???
あってるよ
765nobodyさん:2008/12/22(月) 09:57:50 ID:Cwv0g3tM
「データーベースに格納するときは
htmlentitiesを使ってエスケープする」

という記事を読んだことがあるのですが、
これってマユツバですか?
766nobodyさん:2008/12/22(月) 10:00:35 ID:???
>763
あってる。というか、可能な時はいつでもprepareを使え。

DB接続のパフォーマンスがどうしても問題になる場合のみ、しぶしぶmysql関数。
それ以外の場合はPECL::PDO(現在はPECLではなく標準ライブラリ)。
きちんとクラス構成ができていれば、書き換えはそれほど手間ではないので、迷ったらとりあえずPDOで書く。
767nobodyさん:2008/12/22(月) 10:14:36 ID:???
>765
その本を燃やせ。というか、出版社を燃やせ。あり得ない。
「エスケープは、出力先に応じて適切なものを選ぶ」のが基本。
出力先はSQLなのだから、SQLとして安全になるようなエスケープを選ぶ必要がある。
DBに応じたエスケープ関数があるはずだからそれを使え。
たとえばMySQLならmysql_real_escape_string。SQLiteならsqlite_escape_string。
ttp://jp2.php.net/manual/ja/refs.database.php

とりあえずそれだと、'NULL OR TRUE'という入力には確実に無防備になる。
WHERE ID = $id
というプログラムに上記文字列がぶち込まれた時にどう動作するか考えてみるといい。
DROPやDELETE、UPDATEと組み合わせた文も上手くやれば発行可能かもしれん。
HTMLの実体参照はよりによってセミコロンを多用するしな。
ユーザー管理テーブルが書き換えられ、RDBMSのroot権限を奪取される事もじゅうぶんあり得る。
768nobodyさん:2008/12/22(月) 10:15:12 ID:???
>>765
目的がSQLインジェクション対策でないからしなくていい
DBには生のデータを入れるのが基本
XSS等を意識するのは取り出す時
取り出す時に忘れるかもしれないから入れる時にエスケープする人もいるが
取り出す時にエスケープするのは当たり前なので
穴を防ぐ目的としてはいいかもしれないが根本的な解決にはなってない
769nobodyさん:2008/12/22(月) 10:17:41 ID:???
>>765
それはPHPが進化する過程の中での話し
770nobodyさん:2008/12/22(月) 10:20:58 ID:???
マユツバってなに?
771nobodyさん:2008/12/22(月) 11:27:37 ID:YHC8UPCZ
一つ質問させていただきたいんですが
画像キャプチャによるフォームの認証のセキュリティについて
画像キャプチャの下にhiddenでその画像キャプチャの値を設定し
認証の時にユーザが記述した値とhiddenの値を照らし合わせるという
やり方はセキュリティー的に問題がありますか?

以前どこかのサイトで
生成された画像キャプチャの値とidを一度データベースに書き込み
hiddenには値ではなくIDを設定、
認証時にそのIDからデータベース検索を行い認証するやり方
を目にし上のやり方はセキュリティ的に問題あるのかなと
ずっと気になっています。
わかりにくい説明ですいませんがアドバイスよろしくお願いします。
772nobodyさん:2008/12/22(月) 11:29:20 ID:???
【東京】都ホームページ、不正アクセスで障害
http://gimpo.2ch.net/test/read.cgi/wildplus/1229912492/
773nobodyさん:2008/12/22(月) 11:31:17 ID:???
>>771
hiddenの値はHTMLのソース見れば
誰でも見れるよね。

つまり、スクリプト等でhiddenの値を
自動的に読み取るようにして、その値を
連続でぶちこまれたら、アカウント10万個とか
取られてしまうのではないかな?
774nobodyさん:2008/12/22(月) 11:33:23 ID:???
>>771
金庫に鍵をさしっぱなしで一緒に置いておいても
問題がないならいいんじゃないの?
俺ならhiddenにいれずに簡易に済ませるならセッションに入れる
775nobodyさん:2008/12/22(月) 11:37:46 ID:???
でもセッションの値ってたいてい
クッキーにも書き込んでるよね。

クッキーの値はクライアント側から読めるわけで、
もしアタッカーが、クッキーの値を読み取って、
自動的に連続入力するスクリプトをrubyで書いたら
やっぱりアカウント10万個とか取られてしまう。のでは?
776nobodyさん:2008/12/22(月) 11:44:22 ID:???
>>775
クッキーに記録しなければいいだけじゃん
777nobodyさん:2008/12/22(月) 11:46:49 ID:???
>>775
すまん、高度すぎて言ってる意味が分らん
クッキーに入ってるのはセッションIDだろ?
画像チャプタってたいがい都度生成だろうからその都度ID変わるし
都度セッションに値セットするなら仮に違うセッションID使われたとしても
セッションの参照先に値が無いからとおらないだろ
778nobodyさん:2008/12/22(月) 11:52:47 ID:???
SIDやhiddenによるIDがそのまま認証鍵だと思い込んでいるのでしょうね
だから安全性に問題があるとは書いている
779nobodyさん:2008/12/22(月) 11:57:34 ID:???
つかなんでルビー?
780771:2008/12/22(月) 12:01:59 ID:???
>>773
>>774
たくさんのアドバイスありがとうございます!
今独学でPHPを勉強してるんですが
アプリケーション作成時にXXSやSQLインジェクション、XSRFなど
どんな時にセキュリティを施せばいいかがすごい難しかったりします。
もう少し頑張って勉強してみます。
本当にありがとうございました!
781nobodyさん:2008/12/22(月) 12:04:39 ID:???
いや、そのhiddenの値は、
ユーザーが手で入力すべき値と
同一なの?
782nobodyさん:2008/12/22(月) 12:11:23 ID:e1MSnnKM
Parse error: syntax error, unexpected T_STRING, expecting ')' in /home/www/htdocs/index.php on line 70

上記のエラーが、”たまに”出ます。
70行目は、クラス変数(配列)を宣言している場所です。
var $prefs = array(
  '北海道', '青森県', '秋田県', …
          :
          :
  … '宮崎県', '鹿児島県', '沖縄県'
);
といった感じです。

一体なぜでしょうか?
毎回出るわけじゃなく、アクセスすると条件不明でたまに出るのです。
783nobodyさん:2008/12/22(月) 12:15:33 ID:???
わからんから、とりあえず
配列の要素を1万個に増やして
F5しまくって実験
784nobodyさん:2008/12/22(月) 12:17:34 ID:???
CAPTCHAで「12345」と出るとしよう。
hiddenに入れる値(以下、キー)に「12345」としたら何の意味もない。これは論外。

じゃあ、推測困難な計算方法で「12345」が導けるようなキーはどうだろう。
たとえば「23456」とか(これだと推測容易なんで、実際はもっと難しい計算を使うべき)。これは悪くない。

これを発展させて、crypt($salt . '12345')とかをキーにする。これも悪くない。まず破られないだろう。

ベストは、キーには「12345」とはまったく無関係の値を入れておき、キーと「12345」の関連付けはDBなどで行なう方法。
これだとDBのデータを知らないと絶対に両者を関連付けられない。

セッション・キーを発行しているなら、もうキーにできる値はあるので、新規に発行する意味もない。
キーとしてセッション・キーを使い、CAPTCHA生成時に「12345」をセッション変数としてサーバーに保存しておけばいいわけだ。
785nobodyさん:2008/12/22(月) 12:21:03 ID:???
ちょい説明が足りなかったかな。
> これを発展させて、crypt($salt . '12345')とかをキーにする
この場合、キーから'12345'は算出不能になる。
答え合わせは、ユーザーの入力した「12345」を同じ方法でcryptして、両者が一致するかで行なう。
786nobodyさん:2008/12/22(月) 12:26:46 ID:???
>782
Shift_JISでプログラムを書くな。
787nobodyさん:2008/12/22(月) 12:33:08 ID:???
>>786
でも文字コードが原因だったら
「毎回」エラーが出るのでは?
788nobodyさん:2008/12/22(月) 12:38:02 ID:e1MSnnKM
>>786
UTF-8ですよ
789nobodyさん:2008/12/22(月) 12:50:13 ID:Cwv0g3tM
接続が成功したかどうかを知ろうと思って

<?php
$user="root";
$pass="abcde";
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
print $dbh;
?>

って書いて実行したら、

Catchable fatal error: Object of class PDO could not be converted to string in

ってエラーが出るのですが、
これを出力するにはどんな関数を使えばいいですか?

自分の予想だと1か0で返ってくるかと思ったのですが。
790nobodyさん:2008/12/22(月) 12:53:25 ID:???
var_dump($dbh);
791nobodyさん:2008/12/22(月) 12:56:27 ID:Cwv0g3tM
>>790
やってみたら、
object(PDO)#1 (0) { }

って返ってきました。これって、(0)の部分を
見ればいいの?0ってことは失敗してる?
792nobodyさん:2008/12/22(月) 12:57:56 ID:???
>>791
つど偉そうに聞いていいスレ
793nobodyさん:2008/12/22(月) 13:07:26 ID:???
ttp://jp2.php.net/manual/ja/pdo.connections.php
データベースへの接続に成功すると、PDO クラスのインスタンスが スクリプトに返されます。
この PDO オブジェクトが存在する間、 接続がアクティブであり続けます。

パスワードわざと間違えたのを入れて、もいちど var_dump($dbh);
794771:2008/12/22(月) 13:29:14 ID:???
>>781
そう考えてました。
掲示板の新規登録のところを作ってたんですが
個人情報を扱う場所じゃないから
そこまで厳しくしないでいいかなと思ってました・・
明らかに無知ですよね・・
もう少ししっかり勉強します。
>>784
丁寧な説明本当にありがとうございます!
色んな方法があるんですね。

アプリケーションでも様々な物があり
個人情報を登録してもらうフォームや掲示板の新規登録のフォームなど
各々でどこまでのセキュリティを施すべきかの判断が
本当に難しく感じます。
しっかり勉強しようと思います。
795nobodyさん:2008/12/22(月) 13:30:26 ID:???
ちなみにどうやって?
796771:2008/12/22(月) 13:48:07 ID:???
>>795
先日PHPサイバーテロの技法という本を買って
今それを読みながらwebで一つ一つを調べています。

XSSにしてもXSRFにしても言葉と意味はなんとなく理解できたんですが
ただどんな状況下でそういった事が起こりえるのかが
理解できにくく苦労しています。
私自身以前はwebデザイン関係で働いてましたので
情報漏えいに対する危機感は理解しているつもりです。
それで今いい勉強の仕方を考えているんですがなかなか難しいですね。

私事ですいません。
797nobodyさん:2008/12/22(月) 14:10:18 ID:???
http://raven-seo-tools.com/
ここのサイトなのですが壁紙は全て同じ色なのに
一部分だけ明るくなってます。
どうやってそれをやっているのでしょうか?
自分も真似をしたくて質問させてもらいました。
798nobodyさん:2008/12/22(月) 14:12:48 ID:???
>>796
良い方法です。頑張って。
>>797
PHPと関係無し
799nobodyさん:2008/12/22(月) 14:21:03 ID:???
800nobodyさん:2008/12/22(月) 14:21:35 ID:???
>>797
seoのために2ちゃんで宣伝ごくろうさまです作者様
801nobodyさん:2008/12/22(月) 14:22:10 ID:???
802nobodyさん:2008/12/22(月) 14:22:46 ID:???
>>801
lol
803nobodyさん:2008/12/22(月) 14:23:24 ID:???
> その本を燃やせ。というか、出版社を燃やせ。

精神に障害かかえてるのなら、病院行けよ。
804nobodyさん:2008/12/22(月) 14:23:44 ID:???
最初からそういう画像だったのね
805nobodyさん:2008/12/22(月) 15:09:22 ID:???
apache2.2→apache2.2.11
PHP5.2.6→PHP5.2.8と久々に更新したくて
↓ここのサイト参考に作業したんですがapacheが走ってくれません
ttp://2php.jp/php/install_php_windows.html#download

落としてきたPHPをフォルダ改名して現PHPフォルダに上書きが良くなかったのでしょうか
C:ドライブ直下に置いたphpフォルダ直下にあるphp5apache2.dllを読み込んでくれません

apacheのhttp.confには表記したのですが↓
LoadModule php5_module "C:/php/php5apache2.dll"

ttp://127.0.0.1/に繋ぐと"It Works!"と表示されます
806nobodyさん:2008/12/22(月) 15:16:15 ID:???
休みに入りましたからね

大人しく本を買って来て読めw
807nobodyさん:2008/12/22(月) 15:18:38 ID:???
It Works!

だったら動いてるんじゃないの?
808nobodyさん:2008/12/22(月) 15:24:51 ID:???
の筈なんですが、ttp://127.0.0.1/phpinfo.phpに繋ぐと当然表示無し
apacheスタートさせるとThe requested operation has failed!って言われます

とりあえず全部削除してもっかいやってみます、なんか使用変更とかで
やらなくて良い手順とか出てきたのかと思って聞いてみました、どうもです
809nobodyさん:2008/12/22(月) 15:28:06 ID:???
>>805
>>808

>>1スレタイ嫁
810nobodyさん:2008/12/22(月) 15:29:24 ID:AQe0W6WJ
すいません、表示してませんでした
ちなみにxpのsp3です
811nobodyさん:2008/12/22(月) 15:29:52 ID:???
Apacheのエラーログを読め。
原因究明に必要な事はすべてそこに書いてある。
812nobodyさん:2008/12/22(月) 15:29:56 ID:???
どうせphp5ts.dllとかその周りのdllを入れ替えてないんだろw
813nobodyさん:2008/12/22(月) 15:30:15 ID:???
xamppにすれば?
814nobodyさん:2008/12/22(月) 15:42:16 ID:???
>>812
入れ替えるとはどういうことですか?
815nobodyさん:2008/12/22(月) 15:59:34 ID:???
2.2だったら2.2用のDLLじゃないとだめじゃん
816nobodyさん:2008/12/22(月) 16:12:54 ID:???
>>814
D&Dで上書きする
817nobodyさん:2008/12/22(月) 16:24:37 ID:???
>>775
自動化してアカウント取るなら別に他人のクッキー読むとか関係なくね?
818nobodyさん:2008/12/22(月) 16:46:37 ID:???
>>789
接続に失敗したら PDOException を投げるのでそれを掴まえる
ちなみに件のエラーは「オブジェクトを文字列に変換できねぇよバーヤ」って事

http://www.php.net/manual/ja/pdo.construct.php
> try {
>     $dbh = new PDO($dsn, $user, $password);
> } catch (PDOException $e) {
>     echo 'Connection failed: ' . $e->getMessage();
> }
819nobodyさん:2008/12/22(月) 16:58:04 ID:???
>>818
普通にifのほうが初心者向きなんじゃ・・
820nobodyさん:2008/12/22(月) 16:59:44 ID:???
PDOを使って、UTF8で開発しているのですが、結果が文字化けしています。

・MySQLのテーブル等の文字セットは utf8_general_ci
・phpMyAdminを通して見ると化けていない
・mbstring系の設定は
mbstring.http_input:auto
mbstring.http_output:pass
mbstring.internal_encoding:UTF-8
mbstring.language:Japanese

スクリプト側から SET NAMES 系を発行するのはよくないと聞いています。
では何を使って解決すればいいのでしょうか。
よろしくお願いします。
821nobodyさん:2008/12/22(月) 17:09:03 ID:Cwv0g3tM
>>820
skip-character-set-client-handshake
822nobodyさん:2008/12/22(月) 17:10:31 ID:Cwv0g3tM
default-character-set = utf8
823nobodyさん:2008/12/22(月) 17:21:45 ID:???
>>820
こんどからしっかり>>1をよくよんでIDを出すことをおすすめする
824820:2008/12/22(月) 17:41:45 ID:mD1ma74F
>>823
出し忘れてました。すみません。
>>821-822
ローカルではその方法で可能なのですが、本番のサーバーはレンタルなので、権限がないのです。
query メソッドで SET NAMES 系を発行する場合はやはり、プリペアドステートメントを使わないと問題ありますか?
データ検索のアプリケーションのため、SQLの条件節がリクエストされてからでないと確定せず、使いにくそうなのですが。
825nobodyさん:2008/12/22(月) 17:46:42 ID:???
php.iniを書き換える権限が無いってこと?
826nobodyさん:2008/12/22(月) 17:47:27 ID:???
my.cnfだっけ?
827820:2008/12/22(月) 17:48:25 ID:mD1ma74F
>>825-826
はい。
my.cnf は通常のレンタルサーバーでは書き換えできないですよね。
828nobodyさん:2008/12/22(月) 17:49:44 ID:???
mysql_set_charsetを使う
829nobodyさん:2008/12/22(月) 17:52:00 ID:???
前、mysql_set_charsetで指定しても効果なかった経験あるけど今はそれで設定できるの?
830820:2008/12/22(月) 17:54:35 ID:mD1ma74F
>>828
調べてみたのですが、どうも、mysql_connect();でオープンする必要があるみたいです。
PDOを捨てる or query()を使わずにプリペアドステートメントを使うか、の二択でしょうかね。
831820:2008/12/22(月) 18:05:57 ID:mD1ma74F
どうにも解決策が見つからないので、とりあえず頭のほうで $pdo->query("SET NAMES UTF8"); で設定しておいて、
以降のクエリの発行はすべて、プレペアドステートメントを使ってどうにかすることにします。

答えてくださった方、ありがとうございました。
832nobodyさん:2008/12/22(月) 18:14:09 ID:AQe0W6WJ
>>811>>812

解決しました、ありがとうございました
833nobodyさん:2008/12/22(月) 18:29:33 ID:???
>>831
それ意味なくね?
>>832
どう解決したか
834820:2008/12/22(月) 18:38:27 ID:mD1ma74F
>>833
SET NAMES 使っちゃうと、もしかしてプレペアドステートメントも使えませんか?
そうなると、mysql_set_charsetを使うためにmysql_* で自作クラスを組むしかないのでしょうか。
835nobodyさん:2008/12/22(月) 18:38:48 ID:???
>>833

>>812の人の言うとおりでした orz
お騒がせしてすみませんでした
836nobodyさん:2008/12/22(月) 21:21:32 ID:b0EzUWOb
php5.2.6@windowsなんだけど、
mb_eregにおける全角スラッシュの扱いがおかしい気がする。これバグ?
具体的には
mb_ereg('<a>(.+?)</a>(.+)','<a>abc</a>xyz',$reg);
は期待した値が$regに格納されてるけど、
mb_ereg('<a>(.+?)</a>(.+)','<a>abc</a>xyz',$reg);
にしたらダメ。どーなのこれ。
837nobodyさん:2008/12/22(月) 21:24:27 ID:???
>836
ereg関数はマルチバイトに対応していない。
つうか、pregが完璧に上位互換だからpreg使え。eregはPHP6で標準関数から削除される(PECLへ格下げ)。
838nobodyさん:2008/12/22(月) 21:25:07 ID:???
ってmb_eregか、ロクに読んでなかった
839836:2008/12/22(月) 21:27:41 ID:b0EzUWOb
そうそう。個人的にはpregの方が好きなんだけどね。マルチバイト使う時はしょうがなくmb_ereg。
ローカルルールがよく分からんけど、まだage続けたほうがいいのかな?
そちらでは正常に動きますかい?
840nobodyさん:2008/12/22(月) 21:28:49 ID:???
この板には基地外しかいないから、ルールとか気にしたら負けだよ。
841836:2008/12/22(月) 21:32:29 ID:???
連投ごめん。
PHP5.2.6@CentOS5.2で全く同じソース↓を動かしたらまともに動きやがった。
windowsだとtrue1,false2がしゅつりょくされて、centOSだとtrue1,true2が表示される。ナニコレ

if(mb_ereg('<a>(.+?)</a>(.+)','<a>abc</a>xyz'))
echo "true1\n";
else
echo "false1\n";
if(mb_ereg('<a>(.+?)</a>(.+)','<a>abc</a>xyz'))
echo "true2\n";
else
echo "false2\n";

php-windowsのバグか?

>>840
そうかwww
842820:2008/12/22(月) 21:40:42 ID:???
しつこくてすみません。
いろいろ調べました。
結果、PDOには文字セットの変更は伝わらない、伝える手段がないようです。
(SET NAMES しちゃダメってこと……だと思う)。
おとなしく、mysql_* なり mysqli 系にします。

お騒がせしました。
843nobodyさん:2008/12/22(月) 21:42:41 ID:UijRZ2Ey
すみません
初心者です。10日ほど前に圧縮ファイルをダウンロードさせる方法について聞いた者です。
http://www.phppro.jp/phpmanual/php/ref.zip.html
このページにあるZIPファイル関数というので、
ローカルでは完ぺきにできました。
が、サーバーでは動きません(php4)

エラーは
Parse error: syntax error, unexpected ')', expecting '(' in /〜〜〜〜.php on line 135

135行目は
if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {

これは、php4では動かないと理解したらいいのでしょうか?

php4でやる場合、フォルダを圧縮するのと、透過的書込みというのを
やる方法はあるのでしょうか?

あるいは、サーバーをphp5のところに引っ越したほうがいいのでしょうか?
844nobodyさん:2008/12/22(月) 21:54:52 ID:???
予期せぬ)って書いてあるじゃん
そこのカッコの数があってたら、前の部分でカッコの数があってない
845nobodyさん:2008/12/22(月) 22:12:22 ID:UijRZ2Ey
レスありがとうございます。
ローカルでは動いているので、カッコは合っていると思うのですが。
それなのにエラーが出るのは、
php4ではダメという意味かなと推測しましたが、勘違いでしょうか?
846nobodyさん:2008/12/22(月) 22:17:40 ID:???
予期せぬ)って書いてあるじゃん
そこのカッコの数があってたら、前の部分でカッコの数があってない
847nobodyさん:2008/12/22(月) 22:18:49 ID:???
>>845
勘違いも何も、まったく関係ないエラーメッセージが出てるのに「PHP4ではダメなのかな」っていう発想がずれてる。
出るとしたら Undefined function 〜 とかだよ。
848nobodyさん:2008/12/22(月) 22:27:31 ID:UijRZ2Ey
すみません
135行目の数行前に
$zip = new ZipArchive();
これがありますが、これが悪いのでしょうか?
849nobodyさん:2008/12/22(月) 22:28:42 ID:???
このスレにエスパーはいないので、スクリプトを全うpすればいいと思うよ。
850nobodyさん:2008/12/22(月) 22:29:52 ID:???
とりあえず、zipが使えるのかphpinfoで確認したら?
851nobodyさん:2008/12/22(月) 22:32:53 ID:UijRZ2Ey
すみません。
その前に、圧縮ファイルの中に書き込むデータを記述するところがあって、
そこが悪いことがわかりました。
$data = <<<MESSAGE
なんたらHTML
MESSAGE

この表記に何か問題あるでしょうか?


852nobodyさん:2008/12/22(月) 22:34:32 ID:???
853nobodyさん:2008/12/22(月) 22:36:40 ID:UijRZ2Ey
たびたびすみません
$data = <<<MESSAGE
なんたらHTML
MESSAGE

の中に、変数を入れているのが悪いのではと推測しますが、
HTMLのなかに変数を入れる場合、変数を""で囲むのでしょうか?
初心者ですみません
Perlでは囲まないような気が
854nobodyさん:2008/12/22(月) 22:38:16 ID:???
855nobodyさん:2008/12/22(月) 22:40:02 ID:???
エラーメッセージ読んでる?

Parse error: syntax error, unexpected ')', expecting '(' in /〜〜〜〜.php on line 135
'('があるべき場所に予期せぬ')'があります。
856nobodyさん:2008/12/22(月) 22:43:47 ID:???
MESSAGE; 最後はこうだろ
857nobodyさん:2008/12/22(月) 22:49:54 ID:???
>>855
なにそのエキサイト翻訳みたなの
858nobodyさん:2008/12/22(月) 22:53:14 ID:UijRZ2Ey
レスありがとうございます。
MESSAGE; にしていました。

MESSAGEの中に、

<?php
header("content-Type: text/html; charset=sjis");なんたら
?>

これがあるのが悪いみたいです。
これ(<php? ?>)は、どうやって入れたらいいのでしょうか?
外部のテキストデータを読む?
859nobodyさん:2008/12/22(月) 22:54:27 ID:???
そのレベルで、スクリプト動的生成とかどうみても危険すぎて笑えるw

860nobodyさん:2008/12/22(月) 22:56:54 ID:???
x-sjisかshift_jisじゃない?
861nobodyさん:2008/12/22(月) 22:58:52 ID:???
>>860
それ今はどうでもよくね。
862nobodyさん:2008/12/22(月) 23:07:56 ID:UijRZ2Ey
原因はこれしかないです。

<?php
header("content-Type: text/html; charset=sjis");
?>

sjis を変えてもダメで、
header("content-Type: text/html; charset=sjis");
のheaderがダメみたいですね。うーん
863nobodyさん:2008/12/22(月) 23:10:14 ID:???
>>862
君には才能がないから他の道を行くといい。
864nobodyさん:2008/12/22(月) 23:19:27 ID:UijRZ2Ey
"をエスケープしたらいいような気がしましたが。
これでいいでしょうか?
865nobodyさん:2008/12/22(月) 23:22:40 ID:???
そんな調子じゃソースさらさない限り前に進まないと思うぞ
そのつもり無いならとっとと失せろ
866nobodyさん:2008/12/22(月) 23:32:40 ID:???
人の話を聞かない奴多すぎw
867nobodyさん:2008/12/22(月) 23:35:36 ID:???
つまり、こうなってんの?

$data = <<<MESSAGE
<?php
header("content-Type: text/html; charset=sjis");
?>
hogehoge
<b>hogehoge</b>
MESSAGE;
868nobodyさん:2008/12/22(月) 23:36:55 ID:F+ur7gRG
久しぶりに来たけどなんでこんなに乱立してるんだ
869nobodyさん:2008/12/22(月) 23:38:53 ID:UijRZ2Ey
>>867
そうです。

皆様
いろいろお騒がせしてすみませんでした。
ZIP関数の例文をコピーしてアップしてみたら、
やはり同じところで同じエラーが出るので、
これは、zip関数が使えないということだと思います。

その場合、どうしたらいいのでしょうか。
PEARでできるでしょうか(フォルダ圧縮、透過的書込み)
870ただの人:2008/12/22(月) 23:39:08 ID:i5NpGqPt
PHP暦1ヶ月ぐらいです。
最近、PEARを知ったのですがログイン認証機能を設置するのに
Authを使おうか迷っています。

Auth使った失敗談とか教えてくれたらうれしいのですが・・・
871nobodyさん:2008/12/22(月) 23:39:15 ID:???
なんだあのコード
あんなの動くのか
872nobodyさん:2008/12/22(月) 23:39:37 ID:???
人の話聞かない質問者のひとは egachan か?
うざいから、どっか消えろよw
873nobodyさん:2008/12/22(月) 23:40:50 ID:???
>>869
環境は違うが。
<?php
$data = <<<MESSAGE
<?php
header("content-Type: text/html; charset=sjis");
?>
hogehoge
<b>hogehoge</b>
MESSAGE;
echo $data;
?>

エラーなし、hogehoge って出たぞ。
出るエラーメッセージは何よ?
874nobodyさん:2008/12/22(月) 23:49:50 ID:i5NpGqPt
\(´・ω・`)\ チョキーン
875nobodyさん:2008/12/22(月) 23:51:32 ID:???
もしかして$dataにheaderが入るとか信じてる?
876nobodyさん:2008/12/22(月) 23:51:35 ID:???
もちろんZipモジュールインストールしたんだよな?・・・な?
リンク先にちゃんと書いてあるし
877836:2008/12/22(月) 23:51:52 ID:???
流れぶった切って悪いが、>>836はどんなかんじ?
SJISの関係かしら。
878nobodyさん:2008/12/23(火) 00:00:12 ID:59V79J7s
皆様すみません
自鯖ではないので、インストールできません。
やはり、原因はZip関数が使えないのだと思います。
ローカルでは動いていますので。

そういう場合、どうすればいいのでしょうか?
879nobodyさん:2008/12/23(火) 00:02:20 ID:???
首釣って氏ぬ
880nobodyさん:2008/12/23(火) 00:08:41 ID:???
他人の話を聞かない典型だな
881nobodyさん:2008/12/23(火) 00:11:18 ID:???
この板は、基地外と話聞かないアホしか来ないのかw
882nobodyさん:2008/12/23(火) 00:18:06 ID:???
釣りだとしたらつまんないし
本気だとしたら本人の頭が改善できないから無理だな。
883nobodyさん:2008/12/23(火) 00:41:06 ID:???
よくわからないまま勝手に解決したあとで、釣りでした宣言来そうだなw
884nobodyさん:2008/12/23(火) 01:33:38 ID:59V79J7s
すみません、圧縮の件、初心者です。
検索すると、PECLというのは、PEARとちがって
コンパイルする必要があると書いてあります。
それって、自分でレン鯖に入れることできるのでしょうか?
885nobodyさん:2008/12/23(火) 01:42:05 ID:VpMBr0l7
php 5.2.3です。

funcA( ABC , DEF );
となっている部分の
ABCとDEFをpreg_matchで取り出すのは簡単ですが、
preg_match( "/.*funcA\s*\(\s*(.+)\s*,\s*([^\)]+)\s*\)/", $xxx, $yyy ) )
でできたのですが、
funcA( funcB( XYZ ) . ABC , DEF );
と入れ子になっていたりすると、
funcB( XYZ ) . ABC
DEF
が取り出せません。
さらに、
funcA( funcB( XYZ ) . ABC ,
               DEF );
などとなっていると、さらに厳しいです。
これを鮮やかに取り出す方法はないでしょうか?
よろしくお願いします。
886nobodyさん:2008/12/23(火) 01:44:29 ID:???
>>885
pukiwiki のソースでも読んでろ
887nobodyさん:2008/12/23(火) 02:00:17 ID:???
本気でやるなら、適当なlexerなりHTMLとかのパーサーなりの実装例を読むのが近道かもな。
正規表現一発では無理、仮に出来たとしてもかえって難しい。
状態を持つ再帰構造で頑張るか、ツリー型のデータ構造(Interpretorパターン)を自前で実装する必要がある。
888nobodyさん:2008/12/23(火) 02:14:55 ID:???
日常五心

「有難う」と言う
 感謝の心


「すみません」と言う
 反省の心


「おかげ様」と言う
 謙虚な心


「私がします」と言う
 奉仕の心


「はい」と言う
 素直な心
889nobodyさん:2008/12/23(火) 02:29:36 ID:6F++HAzm
質問です。
md5を使って二重投稿の判定をしようと考えています。
本文が64KBなのですが、
md5($str) で、$strに最大64KBもある文字列を突っこんでも一意の値を返してくれるのでしょうか?

DBより前回の投稿本文を取ってくる = $str1 (最大64KB)
今回の投稿本文 = $str2 (最大64KB)

if(md5($str1) == md5($str2)) {
※同じ値なので二重投稿として判定
}

この方法はあってますでしょうか?
890nobodyさん:2008/12/23(火) 02:40:56 ID:???
何十メガのデータでも、すでに公表されてる例以外には、あんまり衝突することないと思うよ。
891nobodyさん:2008/12/23(火) 04:16:18 ID:???
md5変換のオーバヘッドの方が文字列の直接比較より大きくないか?
892nobodyさん:2008/12/23(火) 04:16:43 ID:???
>>889
MD5 に限らずハッシュ関数ってのは特徴を求めるための関数
一意性を求めるための物じゃないので衝突は絶対に発生する
データベースにデータとそのハッシュ値を保存しておいて、
最初にハッシュ値でざっと比較し、その後精査てな感じで利用される

ちなみに書いてくれた方法だとハッシュ値なんて得ずにそのまま比較するだけでいい
893889:2008/12/23(火) 04:27:42 ID:6F++HAzm
>>890-892
ありがとうございます。
教えどおり直接比較してみることにします。

ちなみに画像データは
hash_fileで比較しようとしてたのですが、これも直接比較する方法があるのでしょうか?
894nobodyさん:2008/12/23(火) 04:51:43 ID:???
バイナリで比較すりゃいいじゃん
895nobodyさん:2008/12/23(火) 05:08:34 ID:KPRHaWl+
http://phpc2.seesaa.net/article/50643791.html

ここのページのサンプルの、

<?php

class Food {

private $name;

public getName() {
return $this->name;
}

}


これを実行したらエラーになるんだけど、なんで?
896nobodyさん:2008/12/23(火) 05:13:31 ID:???
もう一個下の例なら
897nobodyさん:2008/12/23(火) 05:18:16 ID:???
4だからだろ
898nobodyさん:2008/12/23(火) 05:24:10 ID:???
>>893
string 型はバイナリセーフなので比較演算子 == が使える
二つのファイルを fread() 等で読み込んで比較するだけ

I/O に掛かる時間は馬鹿にならないから直接比較する機会は減すよう、
それこそハッシュ値やメタ情報(ファイルサイズetc)を活用するといい
899nobodyさん:2008/12/23(火) 05:58:11 ID:???
PHPのオブジェクト指向の一番カンタンな例

<?php
class aaa
{
var $bbb="はじめまして";

}
$ccc = new aaa();

echo $ccc->bbb;
?>
900nobodyさん:2008/12/23(火) 06:00:49 ID:???
var って必ず無いとダメなのかなぁ?と思って、

<?php
class aaa
{
$bbb="はじめまして";

}
$ccc = new aaa();

echo $ccc->bbb;
?>

って、「var」を削って保存して実行してみた。
結果、問題なく表示される。varいらないジャン?
901nobodyさん:2008/12/23(火) 06:01:46 ID:???
それは良かったね
902nobodyさん:2008/12/23(火) 06:02:21 ID:???
ごめんvarが無いとエラーになった
まちがえてたごめん
903nobodyさん:2008/12/23(火) 10:51:31 ID:gaPLrdeb
CackePHP使ってる人っているんですか?
904nobodyさん:2008/12/23(火) 11:24:31 ID:???
>>903
いなきゃ開発なんてされないだろ
905nobodyさん:2008/12/23(火) 11:35:35 ID:???
varなんてどうせ使わないから問題ない。
全部privateが基本だからな。
906nobodyさん:2008/12/23(火) 11:37:26 ID:???
まだPHP4も現役だぜ?
907nobodyさん:2008/12/23(火) 11:43:13 ID:gaPLrdeb
個人サイトで使ってる人って少ないですよね
908nobodyさん:2008/12/23(火) 11:46:09 ID:???
4も5も通用するvarを使う以外にありえん
909nobodyさん:2008/12/23(火) 11:51:05 ID:???
php4をいつまでも考えてるから世間は移行しない
910nobodyさん:2008/12/23(火) 12:05:33 ID:???
何を言ってるんだお前は
911nobodyさん:2008/12/23(火) 12:12:06 ID:???
>>907
普通個人サイトつったら簡単な処理にphp入れてるぐらいだからな
例えば背景をランダムで出したり今日の日付出したり
ブラウザで条件分岐したりとjavascriptでできるようなことをやってるのが多い
掲示板などのWebアプリケーションにしても
わざわざ自分で作って運用してるほうが稀
912nobodyさん:2008/12/23(火) 12:27:10 ID:???
新しいシステムを作るのにいまさら4はあり得ないだろ。
既存システムの保守/拡張のために使わざるを得ない時にしぶしぶ使うのが4。
まあ、いまだにPHP4のシステムを何の移行計画もなく運用してる所なんてクズ企業だけだろうが。
(移行しない=機能拡張しないor使い捨てる、というのまで計画に含めての話)

>907
Cakeに限らず、フレームワークを個人で利用する意義はかなり薄い。
覚えるまでのコストが高いからな。設置も難しいし。
どっちかっつーと大量のプログラムを作るプロ向け。技術的な難度というよりも、性質上そういうもんなんだよ。
913nobodyさん:2008/12/23(火) 13:14:45 ID:gaPLrdeb
>>911
>>912
回答ありがとうございました。 すっきりしました
914nobodyさん:2008/12/23(火) 13:39:36 ID:KPRHaWl+
予約語の取り扱いの定義がいまいちアイマイだな

「予約語は、関数の名前として使用できません」
と書いてあるのもあるし、
「使用できますが、混乱を招くのでおすすめできません」
と書いてあるのもあるし。

マニュアルによって、言ってることが違うんだよな。
915nobodyさん:2008/12/23(火) 13:48:02 ID:???
後者言ってるページてどれ?
916nobodyさん:2008/12/23(火) 13:53:03 ID:KPRHaWl+
http://itbtech.itboost.co.jp/man/php_man/reserved.html

以下にPHPの予約語と定義済みの定数および変
数の一覧を示します。ここに は関数は含まれず、
言語の構造が含まれます。混乱を招くことが確実
である ため、これらの名前を変数、関数、定数、メ
ソッドの名前として使用するべ きではありません。
917nobodyさん:2008/12/23(火) 13:53:41 ID:???
どこに使用できるなんて書いてあんの?
918nobodyさん:2008/12/23(火) 14:17:29 ID:???
>>914
公式に書いてあることを優先しましょう
919nobodyさん:2008/12/23(火) 15:07:29 ID:KPRHaWl+
OOPなんだけど、
newしたら、必ずメソッドを呼び出して
使うというのがノウハウというか、
通常の流れなの?
920nobodyさん:2008/12/23(火) 15:18:51 ID:???
"必ず"ではない
921nobodyさん:2008/12/23(火) 15:25:29 ID:KPRHaWl+
でも初心者向けのサンプル見ると、
ほとんど全部そういう流れなんだよね。
クラスを定義して、
そのクラスの中でメソッドを定義して、
そんでnewして、メソッドをよびだして、、、て流れ。
922nobodyさん:2008/12/23(火) 15:29:39 ID:???
まじでか
923nobodyさん:2008/12/23(火) 15:34:12 ID:KPRHaWl+
OOPなんだけど、OOPって、言語によって、主に、

(1)多重継承できるOOPと、
(2)多重継承できないOOPと、

2種類あるようなんだが、この理解であってる?

ちなみにリサーチには5分かけました。
924nobodyさん:2008/12/23(火) 15:38:20 ID:???
クイズか?
2元に分けたいかどうかは自由だが、
普通、できるかできないかのどちらかだよな?
925nobodyさん:2008/12/23(火) 15:38:53 ID:???
>>923
OOPって何か解って言ってる?
926nobodyさん:2008/12/23(火) 15:40:20 ID:???
>>921
初心者用だからでしょ。
927nobodyさん:2008/12/23(火) 15:42:27 ID:KPRHaWl+
ちなみに、PHPのOOPは多重継承できないみたいですが、
どう考えても多重継承できた方が便利だと思う夕暮れなのですが、
皆様いかがお過ごしでしょうか。
928nobodyさん:2008/12/23(火) 15:42:36 ID:???
暇つぶしに答えてるんだが、もちっとおもろいネタ考えてくれ。
だいたい、テンポ遅い。もうすこしがんばれ
929nobodyさん:2008/12/23(火) 15:43:27 ID:KPRHaWl+
すいません、多重継承って言葉の意味がわかってませんでした。
930nobodyさん:2008/12/23(火) 15:44:07 ID:KPRHaWl+
「単一継承では,あるクラスのスーパー
クラスは簡単に決まります。直接上のス
ーパークラス,そのスーパークラス,その
またスーパークラス,…と一列に並ぶ単
純な関係です。」


↑これが多重継承だと思ってた
931nobodyさん:2008/12/23(火) 15:44:35 ID:???
ルーズに多重継承出来た方が便利という奴と、
多重継承を制約しておいた方がクリーンな実装ができるという奴がいる。
おれは後者、あなたは前者。
932nobodyさん:2008/12/23(火) 15:45:17 ID:???
>>930
それは笑えたwアホすぎるw
933nobodyさん:2008/12/23(火) 15:47:22 ID:???
多重継承を多用するやつは、interfaceとコンポジッショの使い方がへぼいのな
934nobodyさん:2008/12/23(火) 15:51:33 ID:PHOPDLlW
配列に特定の文字があるか調べたいと思います。

$array = array("今日は晴れです");
if(array_search("晴れ",$array)){
echo 1;
}

としたのですが、1が出力されません。
in_arrayだと完全一致になるし、forで配列を1つずつ読み込みながら
確認するのも負荷がかかりそうです。良い方法はないでしょうか?
935nobodyさん:2008/12/23(火) 15:56:06 ID:???
> forで配列を1つずつ読み込みながら
> 確認するのも負荷がかかりそうです

負荷の話はやってみてからにしようぜ

array_map preg_match を組み合わせてもいいが一緒
936nobodyさん:2008/12/23(火) 16:00:51 ID:???
つ preg_grep
937nobodyさん:2008/12/23(火) 16:01:41 ID:KPRHaWl+
そういうときって正規表現使うのが一般的なんじゃないの?
938934:2008/12/23(火) 16:01:47 ID:???
>>935
「禁止単語の指定」なるものを作っているのですが、
入力項目1つに対して、調査する検索単語分のforが必要になると
負荷がかかると思うのです。実際にやっても少し重くなりました。
939nobodyさん:2008/12/23(火) 16:02:04 ID:???
>934
array_searchは「配列の中に"晴れ"が存在するか?」であって、「配列の中の文字列に"晴れ"が存在するか?」じゃないからな。
使うのはarray系のメソッドじゃなくて、文字列検索系のメソッドだ。
お前のやりたい処理は本質的に「配列を1つずつ読み込みながら確認する」事なのだから、コードがそうなるのはむしろ自然。

それと、負荷問題を想像で語るな。
遅くともいいから動くものを作って、それから速度を気にしても遅くない。
940nobodyさん:2008/12/23(火) 16:03:30 ID:???
なんか、異次元のソースだな
941934:2008/12/23(火) 16:04:59 ID:???
>>936
preg_grepで出来ました!ありがとうございます。

>>939
負荷云々は実際にやった上での意見ですから・・。
942nobodyさん:2008/12/23(火) 16:06:04 ID:KPRHaWl+
>>938
それって掲示板とかで
「アホ」とか「死ね」とかって書けないようにするとか
そういう処理だよね。だったらやっぱり正規表現じゃないの?

perlのスレだったら2分でコード出してくるよ
943nobodyさん:2008/12/23(火) 16:06:39 ID:???
>>935(なぜ、ID出さん?)
それは設計の問題だろ

> 入力項目1つに対して、調査する検索単語分のforが必要になると
> 負荷がかかると思うのです。

検索単語分のforが必要になるとか、どうかしてる
944nobodyさん:2008/12/23(火) 16:07:31 ID:???
ああ、目視とはいえ負荷のチェックはやってるのか、失礼。

検索対象が複数あるような状況でpregを使ったら死ぬほど遅くなるから、文字コードを揃えてからstrposないしstr_replace使え。
それ以上の高速化は転置インデックスでも生成するしかないが、よほど大量に処理するのでなければ生成のコストのほうが高い。
何より、コードが読みづらくなる。
945nobodyさん:2008/12/23(火) 16:08:29 ID:???
>>934
>>941

おまえ、自分で書いてておかしいと思わないか?
>>934のソース、動かないんだろ。
どうして負荷の計測ができるんだよ
946nobodyさん:2008/12/23(火) 16:09:13 ID:???
そうそう、配列を育成するとかいう段階でなんか間違ってると思え
947nobodyさん:2008/12/23(火) 16:11:28 ID:???
負荷の話なんて、
プランA、プランBがあって、相対的にどちらが重いから良い方を選択する。

動かないソース提示しといて、負荷計測しましたってなんだよそれ
948nobodyさん:2008/12/23(火) 16:13:51 ID:???
次、行ってみよう
949nobodyさん:2008/12/23(火) 16:16:15 ID:???
forもおちおち使えない糞マシンっていつの時代の遺物だよw
950nobodyさん:2008/12/23(火) 16:17:42 ID:???
ID:KPRHaWl+
の自作自演、お粗末
>>934
>>938
>>942

君レベルで自作自演するときは、ブラウザー分けた方がいいよ。
951nobodyさん:2008/12/23(火) 16:25:18 ID:???
ブラウザー(笑)
952nobodyさん:2008/12/23(火) 16:27:12 ID:???
環境によってはエラーがディスプレイに出力されないから気付かない人もいるだろうね
953nobodyさん:2008/12/23(火) 16:29:08 ID:???
そりゃ自分のphpの設定次第だろ
954nobodyさん:2008/12/23(火) 16:33:06 ID:???
>>952
それは何のレス?
955nobodyさん:2008/12/23(火) 16:34:00 ID:???
956nobodyさん:2008/12/23(火) 16:34:20 ID:???
>>936で答えが出てるのに、なんでみんなそんなに燃えてるの?
それとも一人だけ?
957nobodyさん:2008/12/23(火) 16:34:57 ID:???
↓こいつだけ
958nobodyさん:2008/12/23(火) 16:37:39 ID:???
お、おれ?
959nobodyさん:2008/12/23(火) 16:38:06 ID:???
   i⌒ヽ;;|.  -=・=‐  .‐・=-.|
960nobodyさん:2008/12/23(火) 16:39:40 ID:???
文字列中に特定の文字があるかどうか調べるならstrposでいいだろ
何でもかんでも正規表現使う奴は頭悪いよなー
それしか知識の引き出しがないんだろうなー
961nobodyさん:2008/12/23(火) 16:39:42 ID:???
学校が休みに入ると毎回こういう流れになる
あつくなる奴は学習能力ないのかw
962nobodyさん:2008/12/23(火) 16:44:36 ID:???
いや、たぶん、掲示板のNGワード実装だと、
NGワードが大量にあって、対象文字列も長い。
そうすると、単純にstrposは使いづらいってことだろう。
でも、配列ってのは頭使わな過ぎ。
963nobodyさん:2008/12/23(火) 16:47:41 ID:???
preg_grepは入力が配列で、その各要素に対する検索が正規表現だろ?
そもそも投稿記事が配列というのが謎
964nobodyさん:2008/12/23(火) 16:54:22 ID:???
謎ではなくて単に関数の用途を理解してないだけ
965nobodyさん:2008/12/23(火) 17:02:12 ID:???
関数の用途を理解していないのではなくて単に入力のデータ構造を理解してないだけ
966nobodyさん:2008/12/23(火) 17:14:06 ID:???
>文字列中に特定の文字があるかどうか調べるならstrposでいいだろ

どうしてこういう結論を出したかkwsk聞こうか
まさか思いつきとかなんとなくで書いたわけじゃないだろうな
967nobodyさん:2008/12/23(火) 17:14:08 ID:???
4年目の奴、知識だとか資格はすごい多いんだわ。
それだけで天狗になっちゃってる感じ。
知識とスキルは違うんだよ。仕事ってのは学校の試験と違って
わかるところから片付ければ良いわけじゃないし、最後には
百点の状態にしなければならないんだってのが理解できないらしい。
968nobodyさん:2008/12/23(火) 17:23:34 ID:???
お前よりは出来ると思う
969nobodyさん:2008/12/23(火) 17:42:33 ID:???
>>967
何も無いあなたよりマシだと思う
970nobodyさん:2008/12/23(火) 18:17:09 ID:???
無職必死だなw
971nobodyさん:2008/12/23(火) 18:23:09 ID:???
休みパワーってすごいな
1日ぶりにみたらこんなスレ伸びててビックリだ
972nobodyさん:2008/12/23(火) 18:28:57 ID:???

なんかFireFoxだと普通に見れるんですが、IEだとリダイレクト繰り返して
Internet Explorer ではこのページは表示できません ってでてくるんですが、
Header関数使ってないのにリダイレクトしまくるって事あるんでしょうか?

973nobodyさん:2008/12/23(火) 18:30:27 ID:???
IE7.0.5730.13です
974nobodyさん:2008/12/23(火) 18:30:56 ID:???
>>1
975nobodyさん:2008/12/23(火) 18:31:33 ID:???
>>972
ブラウザのバグかも。PHPに関係なくブラクラっぽくなるw。
976nobodyさん:2008/12/23(火) 18:37:02 ID:KPRHaWl+
<?php
echo <<<'EOT'
My name is I am printing some
Now, I am printing some
This should not print a capital 'A': x41
EOT;
?>

なんかこれでエラーなるんだけど??
977nobodyさん:2008/12/23(火) 18:38:48 ID:???
ヴぁーじょんぐらい書けや
978nobodyさん:2008/12/23(火) 18:40:14 ID:???
マルチ乙

> エラーなるんだけど??
だからなに?
エラーが出たらエラーメッセージとphpのバージョン必須
979nobodyさん:2008/12/23(火) 18:43:51 ID:KPRHaWl+
Parse error: syntax error, unexpected T_SL in

PHP5
980nobodyさん:2008/12/23(火) 18:46:15 ID:???
php5ってw
なぜ省く
981nobodyさん:2008/12/23(火) 18:46:26 ID:???
マニュアルくらい見ろ
982nobodyさん:2008/12/23(火) 18:47:10 ID:KPRHaWl+
もしかしてNowdocって5.2.6では使えない?
983nobodyさん:2008/12/23(火) 18:47:45 ID:KPRHaWl+
「PHP 5.3 α1に実装」とかって書いてある

実装されてない機能の解説記事を書くなよ
984nobodyさん:2008/12/23(火) 18:48:23 ID:???
文字通りPHP 5.3 α1に実装されてるが
985nobodyさん:2008/12/23(火) 18:48:42 ID:???
> 「PHP 5.3 α1に実装」とかって書いてある

ID:KPRHaWl+って日本語読めるのか、知らなかった
986nobodyさん:2008/12/23(火) 18:50:47 ID:???
MLに参加して、予定している機能はドキュメント化するなって要望を送ればいい。
一人を除いてみんな知ってる話だからな。
987nobodyさん:2008/12/23(火) 18:57:42 ID:???
Nowdoc ・・・
988nobodyさん:2008/12/23(火) 19:00:57 ID:???
 注意: Nowdoc のサポートは PHP 5.3.0 で追加されました。

古い記事見てるんだな、α1とか
989nobodyさん:2008/12/23(火) 19:04:16 ID:???
>>980
次スレよろ
990nobodyさん:2008/12/23(火) 19:11:43 ID:???
5.2.8が最新版なのか
入れたほうがいいのかな?
でもxamppに入れてくれないと
インストールできない、、、
991nobodyさん:2008/12/23(火) 19:15:36 ID:???
xampp(笑)
992nobodyさん:2008/12/23(火) 19:16:44 ID:???
【PHP】下らねぇ質問はID出して書き込みやがれ 78
http://pc11.2ch.net/test/read.cgi/php/1230026935/
993nobodyさん:2008/12/23(火) 19:21:12 ID:???
xamppを初心者向けに解説してる本やサイトは罪を償うべきだな
994nobodyさん:2008/12/23(火) 19:26:47 ID:???
どうやってだw
自業自得だからいいんじゃないの
995nobodyさん:2008/12/23(火) 21:22:46 ID:???
埋め
996nobodyさん:2008/12/23(火) 21:42:00 ID:???
1000ならphpは今後スタンダードになっていきrubyは滅びる
997nobodyさん:2008/12/23(火) 21:44:48 ID:???
xamppはなんて読むの

くっさープップッ?
998nobodyさん:2008/12/24(水) 00:17:21 ID:???
メリークルシミマス
999nobodyさん:2008/12/24(水) 00:55:18 ID:???
.
1000小倉優子 ◆YUKOH0W58Q :2008/12/24(水) 00:55:57 ID:???
1000ならジュースでも飲むか
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。