【PHP】下らねぇ質問はID出して書き込みやがれ 77
質問者はまず
>>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等)・フレームワークは各該当スレへ
【簡易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プログラムとして実行された結果になる。
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に保存?
→ 好きにしてください
いまnl2br という関数を知ったんだが、なにこの 便利すぎる機能。
7 :
nobodyさん :2008/12/08(月) 08:30:56 ID:E0jjD+uU
PHPの連想配列は、 添え字は、数字とキーと、 混在できるんだ? perlでは無理だった機能だよね。
もうお腹一杯
9 :
nobodyさん :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イメージ検索のクエリを文字化けせずに表示できている方いらっしゃいますか? 若しくは、もしヒントとなる情報お持ちの方いらっしゃいましたら、どうかお助け下さい。 宜しくお願いします。
10 :
9 :2008/12/08(月) 11:13:42 ID:j23sMbCH
文字エンコードをShift_JIS→UTF-8に統合してみました。 すると、文字化けが解消しました! (ファイルの自体の文字エンコードをShift_JISから全てUTF-8に、 htmlの文字エンコード指定も全てUTF-8にしました) お騒がせしました。
まず取得した文字列の文字エンコードを調べる作業に入るんだ
No more Multibyte Character !!
前スレの方へ >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もあるので残念ながら短絡すぎ
何この粘着ぶり だからechoやprintは関数ではないってちゃんと書いてるじゃん。 arrayはそこまで言い切ってないでしょ。 往生際悪過ぎ
いちいち前スレから話題ひっぱってくんなよ どうしてもその話題したいなら揚げ足じゃなくて Array()が関数じゃないという証明にしてくれ
今後、「array()が関数」の話題を続けたい人は隔離スレ立ててくれ。 まぁ、俺が結論だしてもいいけどww
冬休みが近づいてくるとキチガイが表れるよな
19 :
nobodyさん :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になると思います。
>>18 粘着*2 乙
問題の正誤は問題にしてない。ここはクダスレ。
arrayの議論スレじゃないんだよ。
前スレで退廃した話題を引っ張ってくるなと。
>>18 日本語わかんねーのかよ
お前がキチガイだって言ってんだよ
>>18 貴様の正論は公式で開発してる人達に通じるのかメール送ってみればいいじゃん
ここで吠えてんじゃねえぞ負け犬
>>19 csvでサーバー上のデータベースを更新するのは難しくはないけど、
今PHP本見てるレベルで安全に実装するのは大変かもね。
大本がFileMakerを管理してるマシンで*AMP環境を構築して、ODBCでFileMakerDBに接続、
*AMPのPHPからクエリを発行してリモートのMySQLを更新とかのほうが簡単な気はするけど。
>>20 なんで前スレの話題を続けちゃいけないの?
言論封殺?
引っ張ってこられると都合が悪いから?
>>21 なぜに?理由を示してください
>>22 俺別に何とも戦ってないよ。
ただ括弧つけてコールしたからといって必ず関数とは限らないよって示しただけだよ。
うるせーこれ以上やるなら専用スレ立てるから覚悟しろ!
相手しなければいいだけだよ
>>25 サービスだ、1回だけ教えてやる
>
>>20 > なんで前スレの話題を続けちゃいけないの?
質問でも回答でもないからだ。
お前らがやってるのはドキュメントレベルとシステムレベルを混同してる不毛な議論
30 :
nobodyさん :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)) { は要らないのでは?と思ったのですが 必要なのでしょうか?
>>30 未定義の変数を関数に放りこみたいか?
非推奨だからNOTICEが発生する
>>30 本来は必要ないはず
必ず変数は初期化するよう心がける
初期化しない変数は使わない
これ基本
しかし、酷いサンプルだね。そんな本捨てちゃえ
>>29 回答が間違ってることの指摘だよ
もしくは回答に関連した議論の続き
自分が嫌だから他人に書き込むなって強制するのは子供だよ
>>34 お前以外の全員が、お前の粘着を嫌がってるのに気付かないのか。
かわいそうに・・・唯一の味方の
>>29 まで失うのか。
この上は自作自演でもして盛り上がってくれよwww
いい加減スルーしろよ
えっと、誘導先のスレに行ってくれるかな
38 :
30です :2008/12/08(月) 14:53:53 ID:CarXFmyd
39 :
30です :2008/12/08(月) 14:55:44 ID:CarXFmyd
>
>>30 > いまいち理解できませんが、意味は分かりました
×30
>>32 の間違いでした
33だけど、コーディング覚えるのに本ってどうだろうな。 いまどきならPHP5ベースのフレームワークのソース呼んだ方がいい。 が、質問の趣旨に答えとくと、一応これをお勧めしとく[初めてのPHP & MySQL] あのソースがなんで酷いか。 $keyがセットされてるかどうかもわからない状況で エスケープもクォートもせずにWHERE句に文字列を突っ込んでる点。
42 :
30です :2008/12/08(月) 17:00:55 ID:CarXFmyd
>>40 どうもです
サンプルにはちゃんとエスケープ処理してあります
今回は、引用を短く書きました。失礼しました
自分はprepare メソッドに書き換えています
>>42 そういうことね。了解。
エスケープって、こんなかんじ?
$key = is_string($key) ? "'" . mysql_escape_string($key) . "'" : "''";
その文脈で来てて、issetとかおかしいし、strlenもいらねぇよな。やっぱり変。
あぁ、ごめ、SQLiteだね。
45 :
30です :2008/12/08(月) 17:46:53 ID:CarXFmyd
addslashes を使ってあります ちょっとソースが長いので省略しますが $sql="SELECT * FROM usr"; if (isset($key)) { $sql .=" WHERE uid = $key"; 大体こんな感じです $key はPOSTされてきます なんか記述がショボイ(洗練されてない)なぁとは感じています
46 :
nobodyさん :2008/12/08(月) 18:23:33 ID:t7PZq5hY
>>24 ありがとうございます。
*AMPはMacなのでMAMPをインストールしています。(ということですよね)
提示されてる内容がいまいち把握できてませんが、調べてみます。
ODBCという名前にまったく関心がなかったので忘れてましたがFM9からは
「外部SQLデータソースに接続できる」だそうでこれが旨く使えればいいんですが。
>>45 やるなら
if(isset($_POST["key"])){
$key = (int)trim($_POST["key"]);
}else{
$key = 0;
}
$sql="SELECT * FROM usr WHERE uid = ".$key;
でいいんじゃないの?
arrayは関数です
>>45 ,47
まさか、uidって整数なの?strlenで比較してるのに?
>>50 47だがシングルクォートないからINT型かとエスパーしたわけだが
実際にintかどうかはしらん
てかよくみたらだめぽなので修正
if(isset($_POST["key"])){
$where = WHERE uid = ".(int)trim($_POST["key"]);
}else{
$where = "";
}
$sql="SELECT * FROM usr ".$where;
arrayは関数です
53 :
nobodyさん :2008/12/08(月) 20:28:57 ID:wAMJwI03
55 :
nobodyさん :2008/12/08(月) 21:27:21 ID:tNwQhygu
こんにちは file_get_countentsの参照先が、gzip転送対応必須となっています 見に行かせると「ブラウザ設定のHTTP1.1を〜」など警告が出ます この場合phpに取得させるにはどうすればよいのでしょうか? よろしくお願いいたします
56 :
nobodyさん :2008/12/08(月) 23:21:48 ID:E0jjD+uU
<?PHP これって、PHP、の部分を大文字で 書いても、いいの?
やってわかることはやってから質問しろ
58 :
nobodyさん :2008/12/08(月) 23:22:56 ID:E0jjD+uU
質問 varって予約語?
態度をわきまえて質問しろ!
おっと、ゆとりに熱くなってしまった^^;
varって変数を定義するときに使うのか。 おまいら、そんなカンタンなことも答えられないのか。
<?php $a=array('aaaaaa',55,5.876,NULL,FALSE); var_dump($a); ?> これ実行するとおもろい。 NULLはなんの型でもなくNULLなんだ、ってわかる
何をいってるんだお前は
FALSEはbool型だけど、 NULLjは、なんの型でも無い。
NULLはnull型という特殊な型です ていうか配列に異なる型いれるなよ気持ち悪い
NULLはNULL型だが?
68 :
nobodyさん :2008/12/09(火) 00:50:21 ID:AVrbWSbl
void flush ( void ) 関数の使い方のマニュアルの説明書きで、 ()の中が、voidって書いてあるのは、 何も入れるな、って意味?
すまんかぶったw
んでも
>>63 のコードを実行すると、NULLのところだけ、
型の指定が無い。これは
NULLだけ、なんの型でもないことを示唆している。
blogでだらだら書いててお世辞にも読みやすいとは言えない コードも初心者丸出し
75 :
nobodyさん :2008/12/09(火) 01:08:08 ID:4nXhjr9t
質問いたします。 mailサーバーにmailを送るのはsend_mail関数でできるのですが mailサーバーに送られたmailの添付画像をPHPで読み込むには 何関数を使えばよいのでしょうか? よろしくお願いします。
77 :
75 :2008/12/09(火) 01:54:40 ID:4nXhjr9t
>>76 じっくり見たのですが俺のバカな頭ではわからない orz
もう無理でしょうか?
* * * 無理です + n ∧_∧ n + (ヨ(* ´∀`)E) Y Y *
79 :
75 :2008/12/09(火) 02:24:53 ID:4nXhjr9t
無理は承知なのですがズバっとmailサーバーに送られた添付データを 読み込むにはPHPの何関数を使えば大丈夫ですか?
81 :
30です :2008/12/09(火) 06:29:29 ID:pNYuh3pR
>>47 ご丁寧にありがとうございます
この処理は一番最初の時点でも実行されます
(つまり$key にPOSTされていない)
その場合でも、書いて頂いた記述でいいのでしょうか
82 :
30です :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(*)
するのがアホらしいのですが
select count(*)は遅くないし
>>82 if (mysql_num_rows($res) <= 0) { return; }
この目的は行数を得ることですか?
行数を得る目的ならcount(*)が適切でしょう
しかし、結果セットがない場合はreturnだったら、
pdoのイテレーターでそのまま実装できるのでは?
SQL_CALC_FOUND_ROWS
>>83 count()は遅いぞ?
単体サーバーで500万件くらいいれると
どんなにフル最適化しても2〜5秒はcountにとられるぞ
ポスグレだけどな…
さっさと質問に答えろ屋!!
89 :
nobodyさん :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のセッションをクリアしてしまっているせいかも しれないです。 このようや事象を回避する方法はありますでしょうか?
90 :
30です :2008/12/09(火) 12:30:49 ID:pNYuh3pR
>>84 >if (mysql_num_rows($res) <= 0) { return; }
>この目的は行数を得ることですか?
行数把握が目的ではなく、結果セットが無い場合(該当レコードゼロ)
の場合の対処が目的です
>結果セットがない場合はreturnだったら、
>pdoのイテレーターでそのまま実装できるのでは?
ここが分かりません
どのような記述でしょうか?
>>89 究極の解決方法は
他人が作ったものを使わない!
それはさておき
確実に
session_start();
をよんでるからだろ…これをコメントアウトすれば?
あとセッションが利用しているかしていないかの判定入れて
利用してなければスタートするようにする
>>90 あんまスマートじゃないけど許してね
たとえばこんな感じ
$row = $stmt->fetch();
if (false === $row) return ;
do {
//処理
} while($row = $stmt->fetch());
93 :
nobodyさん :2008/12/09(火) 12:51:29 ID:6VdqcFEv
>>91 session_start でやはり初期化されるようですね。
おっしゃるとおりやってみます
サンクス湖
94 :
30です :2008/12/09(火) 12:56:02 ID:pNYuh3pR
>>92 ありがとうございます
fetchして判定しようとは思ったのですが
カレントレコードが移動してしまうのでどうしたら
いいのだろうかと模索していました
whileではなく、do while ですね
ありがとうございました
while ($row = $db->fetch()) { } してれば件数0の場合は実行されないからいいんじゃないの?
>>95 件数0件のときを別処理にしたいということじゃない?
じゃ$db->fetch()なり$rowなりで判定すればいいじゃない
回答をまとめてくれないとわからない件
>>94 日本語としては「じっぽん」が正しいが、レッドブックの「とおほん」(×とうほん)も間違いではない
ただ朝鮮人や一部の関西人が良く使う「じゅっぽん」は明らかに間違い
これを使っていると日本人である事を疑われるので気を付けるように
なんか変なのが沸いてるな
104 :
nobodyさん :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です。 解決策ありましたらご教授よろしくお願いします。
105 :
nobodyさん :2008/12/09(火) 19:21:43 ID:AVrbWSbl
少数は内部的に違う数値になっているから 少数の比較をしてはならない、 って、解説サイトに書いてあったんだが、そうなの?
少数X 小数○
質問者としての態度をわきまえろ!
∧∧ ∩ ( ゚ω゚ ) / ハ_ハ ⊂ ノ ハ_ハ ('(゚ω゚`∩ (つ ノ ∩´゚ω゚)') ハ_ハ ヽ 〈 (ノ 〉 / ハ_ハ ('(゚ω゚`∩ ヽヽ_) (_ノ ノ ∩´゚ω゚)') O,_ 〈 〉 ,_O `ヽ_) (_/ ´ ハ_ハ お 断 り し ま す ハ_ハ ⊂(゚ω゚⊂⌒`⊃ ⊂´⌒⊃゚ω゚)⊃
質問ないのか?まったく日々精進する気のねえ三流プログラマどもだな
110 :
nobodyさん :2008/12/10(水) 12:01:59 ID:6u+ZdXWj
こんにちは。PHPでMySQLのデータをエクセル出力したいです MySQLのデータを、PHPを用いて表示は出来ましたが、エクセルへ出力となると何から手をつけていいのやら… オススメの参考資料などありませんか? ググってもCVS出力というものばかりヒットします
公式マニュアルに書いてありますね
だったらそのマニュアルのリンクを張れ!!!
ぐぐれよ
webサイトの開発のテスト目的で 強制的にセッションを切断したいんだけど なんか良い方法ある?
ブラウザを閉じる
閉じても切れないんだよなこれが
>>114 サーバのセッションファイルを手作業で削除
>>116 ブラウザのクッキーをクリアしたらいいじゃないか?
119 :
nobodyさん :2008/12/10(水) 16:36:22 ID:AE/sV1ze
フォルダを圧縮して、ダウンロードさせにはどうしたらいいでしょう。 フォルダのなかに、ファイル(データ書込み)をつくり、 そのフォルダを圧縮します。 また、複数人がアクセスすることを考えると、 ファイルには乱数で名前をつける必要があるのでしょうか? 素人ですみませんが
圧縮してからうpればいいじゃん
121 :
nobodyさん :2008/12/10(水) 17:13:46 ID:AE/sV1ze
すみません。 WEB上から申し込んだ人に対して、 個別にファイルをTENPでつくり、 それを入れたフォルダを圧縮したいです。
圧縮関数なかったっけ?
124 :
nobodyさん :2008/12/10(水) 17:48:30 ID:IV3o+bU1
$part1から$part78まで、$_POST['part1']から$_POST['part79']までをそれぞれの変数に下記のようにセットしたいのですが、いちいち一列づつ書いていく意外に方法ありますか? $partO=$_POST['partO'];
125 :
nobodyさん :2008/12/10(水) 17:49:16 ID:IV3o+bU1
間違えました↑ $_POST['part78']までです
>>124 extractかregister_globalsか$_POSTのまま使う
>>124 配列にセットしたら?
$part = array();
for ($i = 1; $i <= 79; $i++) {
if (isset($_POST["part{$i}"])) {
$part[$i] = $_POST["part{$i}"];
}
}
128 :
127 :2008/12/10(水) 18:12:06 ID:???
あ、78までか $i <= 78か$i < 79ね
129 :
nobodyさん :2008/12/10(水) 18:14:47 ID:IV3o+bU1
>>126 ありがとうございます。
$_POST[]の部分に変数が入れられないと思ってましたが、ググってみたら"{}"で入れられるんですね。
130 :
nobodyさん :2008/12/10(水) 18:15:56 ID:IV3o+bU1
>>129 入れられるわ
$_POST[$key]
132 :
nobodyさん :2008/12/10(水) 18:19:47 ID:IV3o+bU1
別にシングルクオートでも $_POST['part' . $i]とかでもいいよ 柔軟に書けます
134 :
nobodyさん :2008/12/10(水) 19:22:10 ID:AE/sV1ze
アーカイブ+圧縮すればできそうだが
136 :
nobodyさん :2008/12/10(水) 20:01:42 ID:UV6BBIxz
質問 <?php for ($a=0; $a<3; $a++){ print ($a."<br />"); } ?> ↑これで、1行ずつ表示したいんだが、無理?
>>134 フォルダーの圧縮やってみました?
mkdirしてそこに必要なファイルをつっこんでそのフォルダを圧縮 チーン
139 :
nobodyさん :2008/12/10(水) 20:11:37 ID:UV6BBIxz
>>137 いや、だから、何を試すんだよ?
バカなのかお前
140 :
nobodyさん :2008/12/10(水) 20:12:12 ID:UV6BBIxz
>>137 1行ずつ、って
ゆっくり表示する、って意味だよ?
>>140 ゆっくり表示するって書いてくれなきゃわからないです。ごめんなさい。
田代砲でサーバ攻撃しながら表示すればOK
って、あぁぁ、送信つもりないのにエンター押しちゃったよorz.. flushとsleep使ったらどうかね
ローカルサーバにローカルから田代砲を試し打ちして しっかり守ってるかセキュリティのチェックがしたいのですが 田代砲って配布サイトで拾ってきたもの使っても大丈夫ですか?
145 :
144 :2008/12/10(水) 21:12:46 ID:yyzcwK8M
すいません144です
んなスクリプト3行ぐらいで出来るだろ・・・
田代砲ってDoS攻撃だろ・・・ セキュリティのチェックとか関係ない
作れるっていったら作るなら作れるって言ってあげるよ
151 :
nobodyさん :2008/12/10(水) 21:49:21 ID:AE/sV1ze
圧縮の件ですが、 1)ファイルを動的につくる 2)そのファイルを含む複数のファイルをまとめて圧縮する この2つをやる例文はないでしょうか? 素人なものですみません
>>149-150 とりあえず、
フォームで、「nの値を入力させる」
そんで、nが確定するから、
そのときの、出る目のパターンを、
全表示する、って、PHPでできる?
作者の宣伝乙
クッキーなんてあてにならんだろ
160 :
nobodyさん :2008/12/10(水) 23:36:40 ID:AE/sV1ze
圧縮の件 素人ですみません。 zlib というので、やりたいのですが、 フォルダにするやり方がどうしてもわからないので断念 zip関数というので、できそうな気がしましたが、 サーバーを調べるとPHP4だったので、たぶん使えないだとうと断念 Pear でやれるか検討中。 という感じなんですが、できるでしょうか?
やる気次第では?
市ね
163 :
nobodyさん :2008/12/11(木) 00:15:49 ID:2wImFGsH
質問 セッションは、 (1)セッション+クッキーで管理する (2)セッション+URLにセッションIDを埋め込む この2つしかやり方はない、であってる?
クッキーで管理するのも含めてセッションだから。。。 URL埋め込み以外にもフォームのhiddenの場合もあるし
165 :
nobodyさん :2008/12/11(木) 00:40:13 ID:2wImFGsH
(1)クッキー (2)URL埋め込み (3)hidden おおまかに言って、この3種類?
166 :
nobodyさん :2008/12/11(木) 01:13:02 ID:vCW1WzQV
>>166 これはおもしろいサンプルだ。
実行したら、パソコンの中にZIPファイルができた。
>>166 >乱数(時間?)の数字がつきます。
time()を外しゃいいのでは?
169 :
nobodyさん :2008/12/11(木) 02:16:43 ID:vCW1WzQV
レスありがとうございます。 time()を外すと、大丈夫でした。 あと、アクセスした人個別にファイルをつくり、 その個別ファイルをダウンさせたいわけです。 なので、同時にアクセスされると不具合が起きるような気がして ずっと心配しています。 そういう場合はプロの方はどうするのでしょうか? 同時に1人しかアクセスしないように制限するとか・・・
もっと詳しく説明してくんないと何とも言えない
アプリケーション番号みたいのを 付与したいんでないか?
172 :
nobodyさん :2008/12/11(木) 04:15:55 ID:2wImFGsH
質問 本や解説サイトによって、 関数の引数の 値渡しと、参照渡しで、 どっちが多く使われるか、 意見が分かれているのだが、 どっちがポピュラーなのか?
最近いないと思ったらまたお前か 理論的なことばっか質問するな 答えがほしいなら学校へ行け 技術的に詰まったら質問に来い
__、 ,r´⌒ヽ,⌒ヽ,ヽ (⌒)、 .人 λ\、 ._____ \. \ 、 ヽ./ ー ー\ |\ \ ヽ./ ( ●) ( ●) | \ \ / (__人__) \ はいはい、どーもすみませんでした |. \ | ` ⌒´ | . |. |.\_ノ\ / . |. | | \______/ . | ) .| . . ̄ ̄ . | | .| | |.| .| . | | .| .| / / / ヽ, (__ノ ヽ、__つ
今時そんな問題で悩むなんて・・・
まさに、タイトル通り、くだらねぇ
>>172 ポピュラーなんてない
考えるならどちらが最善なのかを状況に応じて考えろ
178 :
nobodyさん :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と簡単なのですが、 一つのデータが複数行になってしまっているので、処理が複雑になってしまいます。 何かよい知恵をお貸し下さい。お願いします。
3行ごとに分けてexplodeなりsubstrなり正規表現なりで好きなように切り取ればいいじゃない
>adfadfasdfasf2 356 Thu Dec 11 05:20 data2 悩むとするならこの行だろうけど、 項目が減ったり増えたりする訳じゃないのだから 頑張って正規表現だな。 まず、日付を先に取り出すのを考えて、日付取り出しちゃえば 後はすげー楽だと思う。 7種類の曜日のどれか、スペース、12種類の月のどれか、スペース 数字2桁、スペース… 正規表現に当てはめるのは簡単だけど、書くのは凄いめんどくさそうだね。
181 :
nobodyさん :2008/12/11(木) 22:37:36 ID:yxR9XmFM
>>179 >>180 アドバイスありがとうございました。
行での正規表現でのアドバイス参考になりました。
ただ、3行ずつ分けるって、結構大変そうですね。
やはりフラグを多用し、プログラムがぐちゃぐちゃになりそうなので、
そこはちょっと困ったところです。もう少し考えてみます。
どうもありがとうござました。
implode("\n", $text)やって $i = 0; $j = 0; foreach ($text as $line) { $block[$i][$j] = $line; $j++; if ($j == 2) { $j = 0; $i++; } } 的なことすればいいんでないの?
183 :
nobodyさん :2008/12/12(金) 02:00:06 ID:8m0qh2cG
phpでベンチマークで一回のPVで平均0.07秒掛かります。 一時間当たりのどれくらい処理できるかを考えるとき、 3600÷0.07=51,429PV処理できると考えて、ほぼ間違いないでしょうか? どれだけの処理能力があるかが分かると、どれくらいの負荷の時に、 サーバーを増やす必要があるかどうか分かるので、参考になります。 アドバイス下さい。
お前は何を言ってるんだ
186 :
nobodyさん :2008/12/12(金) 02:11:48 ID:8m0qh2cG
>>184 >>185 色々情報を書きすぎてすみません。
知りたいことは、一時間あたり「待ち時間なく」どれくらい処理できるか、ということでした。
そう考えたときに、51,429PVまでなら、待ち時間なく0.07秒で処理できるという認識で正しかったでしょうか?
ベンチマークの0.07秒とはユーザ秒?システム秒?
処理時間や負荷なんて同時アクセス数で増減する増えるわけで PVとかあんまり参考にするものじゃない
189 :
nobodyさん :2008/12/12(金) 02:31:04 ID:8m0qh2cG
>>187 はい。0.07秒は、リクエストを最初に受け取った直後から、
リクエストを返却してスクリプトを終了する直前までの時間です。
5万回リクエストテストをして得た数値です。
DB処理も絡むシステムなので、待ち時間が発生すると、DBのデータ不整合が発生する場合があるので、
できる限り待ち時間を発生させないのが課題です。
トランザクション使えよ
>DBのデータ不整合が発生する場合があるので、 いやいやいや・・・ トランザクション処理も知らないのか?
待ち時間が発生しようとも、 データーの不整合が発生しないように 組むのが普通だよね?
193 :
nobodyさん :2008/12/12(金) 02:45:54 ID:8m0qh2cG
>>190 >>191 トランザクションは、結構多いです。ですから、それで困っています。
そうなると、たまたま同じデータに更新処理しようとしたときに、微妙なタイミングでデータが破損することが分かっています。
これが原因だということを突き止めるのに結構時間も掛かりました。
以上の経緯から、システムを安全に運用するために、待ち時間を発生させる前にサーバー増設のタイミングを計ろうと考えているところです。
そのためのデータとして、一時間当たりの処理能力を測ることはできないでしょうか?
お前は何を言ってるんだ
ロックをかけたりするんじゃないの?
>>193 排他処理をすればいいでしょ。
処理能力を上げて待ち時間を無くして、DBを守るなんて無理。
昔、いい加減なCGIで作られた、超過疎のBBSでもログを飛ば
すことがしょっちゅうあった。
っていうか、何釣り?
頭がいいんだか、悪いんだか、、、 努力する方向を間違ってる人っているよな。
1時間あたり何PV処理できれば不整合が発生しないと考えてるのか気になる
そんなもん、同時にアクセスされたら終わるにきまっとる
201 :
nobodyさん :2008/12/12(金) 03:42:21 ID:8m0qh2cG
私の知識不足と説明不足で、色々考えさせてしまってすみません。
確かに、
>>200 さんが仰られているとおり完全に同時にアクセスされたら終わりです。
ただ、それは仕様として諦めるとしても、できるだけそのような状況を回避することはできないでしょうか?
たとえば、現実の話に喩えますと、店のレジが一個しかなくてレジ係の人が1時間で100人しか人をさばけないとします。
その時、一時間平均100人を超える人が並ぶことが予め想定されるならば、レジを増やすなりの必要があるのではと考えています。
単純に、一時間200人の客がくれば、一時間で100人の待ちが発生し、10時間後には1000人の待ちが発生します。
もし、この店が24時間営業ならば、この待ちは永遠に解消されません。
サーバーの話に戻しますと、永遠に解消されない待ちは、いずれシステムダウンに繋がるのではと思っています。
どのような動作になるのかは、知識不足で分かりませんが、そのような状況を回避するために一時間当たりの処理能力を測る手立てというものはありませんでしょうか?
長文ですみません。
意味がわからん ファイルロックとかしてないの?
客の数を減らしたいなら 有料にすればいいのに。
205 :
nobodyさん :2008/12/12(金) 03:57:29 ID:8m0qh2cG
ん、話が全然かみ合わないですが、 phpの話というよりweb全体の話ということで、スレ違いなのでしょうか? ちなみに、話題にあがっているロックや客の数を減らすというのは、 根本的な解決には全然ならないと思うのですが。 上のたとえで言えば、レジが処理できないので、客を外で待たせる、客を追い出すって話ですよね。 それはちょっと方法論として違うかと思います。
待ち行列理論というものがあってだな
>>205 話がかみ合わないんじゃなくて、わかった上でおかしいんじゃない?
ってみんな言ってるんだと思うけど・・・
さてと、その変なところをおいといたとして。
>>189 > はい。0.07秒は、リクエストを最初に受け取った直後から、
> リクエストを返却してスクリプトを終了する直前までの時間です。
> 5万回リクエストテストをして得た数値です。
その5万回を入れた単位時間は?
1リクエストで付随的に発生する関連リクエストはないの?
で、同時アクセスの偏りはどの程度と見積もってるの?
で、業務のクリティカル度は?
とまぁ、いろいろ考えてからベンチを取らんとねぇ。
低負荷状態の処理時間なんて飾りです。
同時アクセスが継続した場合にどうなるかをチェック汁。
というわけで、
>>183 > 3600÷0.07=51,429PV処理できると考えて、ほぼ間違いないでしょうか?
ほぼ、間違いです。
リクエストが均一に来るわけないし、
ちょっと重くなるとF5アタック来るし、
ていうか個人レベルならともかく業務レベルならコンサルに聞けよ 掲示板で解決しようってのがそもそもの間違い
web制作管理板であっち行けされましたので、こちらに投稿します。 裏でDBを動かして、PHPでアンケート画面を作るとします。 アンケートの項目が多くて1つの画面で収まらない場合があるけど、 一覧性というか視認性を下げたくないからスクロールは使わないと します。 当然アンケートが複数のページにまたがる形になりますが、こういう 場合はcookieで、前のページの情報を持つのが普通なのでしょうか? あまり調べては居ませんが、PHPでテンポラリファイルを作成、或いは cookieでアンケートのデータを保持するなどして、アンケートのいずれ かのページにある登録ボタンが押されたらDBにデータを書き込む、 別のページに移動しようとしたら、キャンセルするかどうかの確認 ページを出す、ようにすることが可能でしょうか? 参考になるサンプルページがあるとよいのですが。 javaでクライアント側を作り込んだほうがよいのかもしれません。
>>209 PHPで普通に可能
Javaですか、JavaApplet?JavaFX?それもいいんじゃない?
211 :
209 :2008/12/12(金) 08:09:31 ID:???
>>210 レスサンクス。
せいぜい数クライアントしか繋がないので、応答速度重視ではありません。
開発速度は必要です。
テキストを結構含むことになるので、クッキーだけでは追いつかない
かもしれず、PHPでテンポラリファイルを使うことになるのかなー、と
思ったのです。
213 :
nobodyさん :2008/12/12(金) 14:32:13 ID:3H8K5DfD
PHPでテキストファイルから1行読み込む時、 fopenでファイルを開いてwhileで回しながら fgetsで1行ずつ取得できます。 それで質問ですが、指定行を読み込む事って出来ないのでしょうか? 全ファイルを出力するとファイルサイズによっては処理が遅くなるので 特定の文字列が一致する行だけ取得できればと思っています。
>>213 行のデータサイズが固定など、行の始まりの位置がわかれば特定の行だけ読み込むことも可能です。
218 :
nobodyさん :2008/12/12(金) 21:09:44 ID:N5GIYx97
質問 教科書を読んでたら、 「ファイルを読み込む処理をするときには、 is-readable関数を使って、 そのファイルが本当に存在するかどうか、 あらかじめ確かめないといけません。 この処理を忘れたときには、noticeが出ます」 って書いてあるんだけど、自分で書いたプログラムで、 テキストファイルをf_openで読み込む部分があるんだけど、 そこで別に、is_readableとかで、ファイルの存在とか、確かめなかったんだけど、 それで別にNoticeとか出なかったんだけど、これでいいのかな? それとも、通常実行時には何もエラーが出なくて、 ファイルが存在しなかったときにだけ、エラーが出るって意味なの?
220 :
nobodyさん :2008/12/12(金) 21:24:04 ID:N5GIYx97
質問 requireとかincludeとかの関連の質問です。 読み込むファイルの拡張子を.phpにしていると、 そのファイル単体を実行されてしまうかもしれないので、 拡張子を.incとかにしておくように、と 教科書に書いてあるのですが、そうなのですか?
>>216 保守だけが仕事の中年Perlerだろ
リストラしろ〜w
222 :
nobodyさん :2008/12/12(金) 22:14:09 ID:cYuXCaJp
すみません初心者です。 $this-> abc = このときの -> はどういう意味でしょうか? 連想配列ではないと思うのですが
223 :
nobodyさん :2008/12/12(金) 22:15:41 ID:cYuXCaJp
補足 コードを見ていると、 $this-> abc は $abc と同じではないかと考えているのですが まちがいでしょうか。
225 :
nobodyさん :2008/12/12(金) 22:43:09 ID:N5GIYx97
質問 htmlentities と htmlspecialchars の違いだけど、 htmlentitiesはバグがあって、シフトJISの半角かなを入れると、 本来変換すべきでない文字なのに変換してしまって プログラムが破壊される、という。 よってhtmlspecialcharsを使うべきである、 この理解であってる?
226 :
nobodyさん :2008/12/12(金) 22:56:48 ID:cYuXCaJp
>>224 むずかしくてわかりません。
もっとわかりやすいのはないでしょうか。
227 :
nobodyさん :2008/12/12(金) 23:00:38 ID:N5GIYx97
質問 「PHP 5以降、デフォルトで値はリファレンス渡しとなります。」 と書いてあるのだが、自分で実際に実験してみたら、 値渡しになっているのだが、これってどっちが正しいの?
228 :
nobodyさん :2008/12/12(金) 23:02:18 ID:N5GIYx97
>>226 デリヘル「おまんこクラブ」って店があったとして、
そこに登録している女の子が「みよちゃん」「あすかちゃん」「かなえちゃん」
だったとして、
「みよちゃん」を指名するのが、
$おまんこクラブ-> みよちゃん
229 :
nobodyさん :2008/12/12(金) 23:04:54 ID:N5GIYx97
>>227 ごめん、意味がわかった。
本来書くべき引数を、省略した場合に
どちらが使われるか、という意味なのね。
>>218 ,220
べつにis_readableしなくてもfopenにエラー制御付けてdieすればいいじゃない
.incにするというより外部からアクセスできなくする方がいい。
読み込みさせたくないファイルをexample.inc.phpとかにして.htaccessとかで
<FilesMatch "\.inc\.php$">
Order allow,deny
Deny from all
</FilesMatch>
って書いてあげればおk
つーか教科書ってなによ
231 :
nobodyさん :2008/12/12(金) 23:17:42 ID:N5GIYx97
>>230 「incフォルダ」というのを作って、
そこにincを全部押し込めて、そんで
そのフォルダのパーミッションごと、
ユーザーからは000にすればいいかな。
そんで、オーナーからのみ利用可能と。
ID:N5GIYx97
233 :
nobodyさん :2008/12/13(土) 01:00:18 ID:6CbaLDLd
質問 「メタタグで、ページのコードを指定しないと セキュリティ的に危険」 という記述を見つけたんだけど、そうなの?
234 :
nobodyさん :2008/12/13(土) 01:04:08 ID:6CbaLDLd
質問 htmlspecialchars で、 第三引数に、 mb_internal_encodingを指定するやり方と、 utf-8 を指定するやり方と、 2種類あるようなんだが、 これの違いはなに?
235 :
nobodyさん :2008/12/13(土) 01:08:01 ID:6CbaLDLd
質問 ユーザーが何か文字を入力するような フォームは一切置いてなくて、ただボタンを押す だけのプログラムなんだが、この場合でも htmlspecialchars等でサニタイズはしたほうがいいの? 「変数を画面に出力する場合には、 すべてサニタイズしたほうがよい」 って解説サイトに書いてあったので。 あと 「POSTでも攻撃はできる」 との記述もありました。
236 :
nobodyさん :2008/12/13(土) 02:21:17 ID:RdWJvdiT
別にしなくてもいいんじゃないかな? 「POSTでも攻撃はできる」は確かにできるけど、 それはあくまで変数を取得したときだから
なんで相手にするの?バカなの?
>>216 PHPのエンジニアの給料が安いのは、単純にエンジニアの数が多いから
市場原理で下がってるんじゃないかな?
>>219 perlのエンジニアの給料が高いのは、内容の難易度とは何の関係もなく
単に人がいないから市場原理で上がっているんだろうな。
<?php $a=10; function Test() { print "hello"; $a=$a-1; Test(); } Test(); ?> これを実行したらアパッチが死んだ。一瞬で。 怖いプログラムや。
言語で給料が決まるのか?Perlでも糞コードばかり書くプログラマなんか ざらにいるだろう?不思議だね
Googleが適当に巡回して適当に蓄積した適当なデータに基づいた適当な数値を出してるだけなのに 何を真剣に議論してるんだ Perlやってまーす今月のお給料は30万円でした!→Perl 給料 30万円 今回のプロジェクトはPHPです。今日は給料日でお昼にトンカツを食べたよ。600円だった。→PHP 給料 600円
243 :
nobodyさん :2008/12/13(土) 06:20:39 ID:6CbaLDLd
PHPは裾野が広いから末端の安さに引きずられて平均を押し下げてるってことだろう。 コーダーに毛が生えたレベルでできる案件でもPHPプログラマー募集だからな。 例のURLは米だが、 日本だと、本当にできるやつは限られてて、いくら積んでもあつまらないからね。 実力を証明できれば、月150は普通に行ける。
>>234-236 だめだめだね。
>>234 質問が不完全なのでマニュアルを読んで、どっちの引数に指定なのかぐらい書いてください。
>>235-236 「変数を画面に出力する場合には、
すべてサニタイズしたほうがよい」
表示するときにするのはサニタイズじゃなくてエスケープな。
XSSされてマルウエア撒く土台になっても問題ない、
何を実行されても変更するコードを含まないサイトじゃないかぎりアウト。
>>236 は釣りだろ。POSTだって全然だめこ。
スレ違い
247 :
nobodyさん :2008/12/13(土) 06:46:24 ID:6CbaLDLd
サニタイズという言葉を使うやつは信用しないほうがいい
249 :
nobodyさん :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()」と
どっちを書けばいいのだ?
>>249 日本語勉強汁
書いてあるまんまだろ
処理対象が内部エンコードじゃなかったら自分で指定しなきゃいかんわけだし。
>>247 第2引数が省略されて、アトリビュートをシングルクォートで出力すると
XSSが可能になる
文字コードを指定しないと、文字コードが違った場合に変換されない文字がある。
処理対象文字列が出力文字列と違う場合など、処理方法はケースバイケース
定式の対策ってのはサンプルでしかないって常識だから(カス以外)
pearからアク禁されたやつっている?
253 :
nobodyさん :2008/12/13(土) 08:58:20 ID:6CbaLDLd
DB.とMDB2で、 DBはもう古くて、 MDB2を使わないとだめなの?
>>253 なんで「質問」付けなくなったの?質問内容からなんとなく分かるけど念のため付けてくれ
だな。さもなきゃトリップつけたら?
さて、スパム質問がんがん続けてもらって結構だが、
>>1 を守って、最低限の情報は提示したらどうかね。
>>253 DB MDB2? 正確に何の何って書いてくれ。
PEARのことか、標準関数か、PDOかさっぱりわからねぇ
これからPHPを覚えて就職しようと思うのですが 就職のとき、どの程度のスキルがあればいいのかなどを教えていただけないでしょうか
GoFパターンを完全理解 各種フレームワークを使いこなす ある程度のDBチューニング、DHTML、Ajax技術の取得 くらい
258 :
nobodyさん :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の標準関数の中に上記の表記方法の違いを吸収してくれるものは無いでしょうか?
4種類の入力に対応させたいけど4種類の処理の実装がめんどいってこと?
260 :
258 :2008/12/13(土) 15:11:32 ID:eAoN+Tsu
>>259 はい、たとえば禁止リストの中に
>>258 のa)〜d)の表記が混在していても問題なく
対応できるコードを書きたいと思っています。標準関数等でその違いを吸収して
くれるものがあれば実装はぐっと楽になりますが、なければa)〜d)に関してこちら
で場合分けしてやらなければならなくなるわけです。
263 :
258 :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の区別まではつくてくれるわけではないので
場合分けは他の方法を考案しないといけないようです。
264 :
nobodyさん :2008/12/13(土) 19:16:22 ID:YPhOdbZ4
初心者です、 1個の処理が終わって、画面表示されるときはいいのですが、 そうでなく、どこかへ飛ばしたいとき、どうするのでしょうか。 PERLのようにGOTOは使っていないみたいですが、 どうすればいいのかわかりません。 初心者ですみません
<初心者> </初心者>
PerlなんてしらんがGOTO文は関係ないだろ・・・
268 :
nobodyさん :2008/12/13(土) 21:14:20 ID:YPhOdbZ4
初心者ですが、悩ましい
269 :
nobodyさん :2008/12/13(土) 23:46:10 ID:K82uEZY1
【OS名】winXP 【PHPのバージョン】php5.26 【連携ソフトウェア】mysql 【質問内容】 divでメニューとメインの左右2カラムに分けているのですが、メニューをクリックするとメインに対応したページ(hoge.html)を表示させるようにはできないでしょうか?
<a href="hoge.html">メニュー</a>
271 :
296 :2008/12/13(土) 23:51:07 ID:K82uEZY1
>>270 だとhoge.htmlしか表示されませんよね?
272 :
269 :2008/12/13(土) 23:54:29 ID:???
言葉が足りていませんでした。 【質問内容】 divでメニューとメインの左右2カラムに分けているのですが、メニューをクリックするとメインに対応したページ(hoge.html)を”メインのカラムに”表示させるようにはできないでしょうか?
<a href="hoge.html" target="_multiscreen">メニュー</a>
274 :
269 :2008/12/14(日) 00:12:57 ID:???
targetの _multiscreenという属性が見当たらないのですが・・・
javascriptで対応したページのデータを引っ張ってきてメインのカラムのコンテンツと置き換えれば?
276 :
269 :2008/12/14(日) 00:25:37 ID:???
>>275 JSを触ったことが無いので誘導若しくは記述していただけないでしょうか
ぐぐれ
278 :
nobodyさん :2008/12/14(日) 00:29:46 ID:wo5hksfa
【OS名】centOS 【PHPのバージョン】php5.26 【連携ソフトウェア】mysql 【質問内容】 顧客情報がMD5のハッシュ化されて保存されてしまいました。 どうやったら顧客名を復元できるか教えてください。
ムリポ
英数36文字の総当りプログラム書けばイケルポ
今、PHPの入門書読んでるんだが、 「理解できないほど難しい」 という個所はほとんどなく、 たいていの説明は理解できる。 Cと違ってとてもうれしい。 ストレスがたまらない。
> ストレスがたまらない。 ストレスがうれしいってマゾ
捜査幹部によると、勝木容疑者は物事を順序立てて話すのが苦手な様子で、 調べ官は、文字や絵を使いながら慎重に調べている。
糞ページの宣伝乙
>>284 今まで見たページの中で一番役立つと思った。
的確な解説と詳しい事例の紹介。特に、右側の本の紹介は最高。
さっそく何冊か買っちゃった。これは買いだよ。
自演アフィ厨乙
>>284 いや、俺が凄いと思うよ、このページ。
人によって色々意見があると思うけど、そこらの本では得られない情報が満載。
右の本の紹介も確かに参考になるね。ありがとう。
289 :
nobodyさん :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 ココを見ると、初期値ではタイムアウトが設定されている
となっているのですが、処理待ちしてくれません
どうすればいいのでしょうか
>>284 このページ最高。右の本もセンスが良い物ばかり、
先の人と同じで、私も早速注文させて頂きました。
2chでの営利目的な宣伝行為は禁止です
宣伝じゃないよ。まずページを見てから言えよ。
見た 初心者のまとめ用ノートに見えた 解説ページとしての出来は三流以下 本もどういった理由でお勧めかも書いていない ただのアフィ目的
295 :
289です :2008/12/14(日) 09:36:55 ID:cWESsLbm
>>289 の補足です
sqlite_busy_timeout()
これと同じ事をPDOでしたいのです
よろしくお願いします
>>295 エラーがどこで発生して何がエラー表示をしているかを調べてみたら?
エラーを捕捉したらそのエラー種を調べて、一定時間内であればsleepしてリトライ
>>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)
フ /ヽ ヽ_// フ /ヽ ヽ_// フ /ヽ ヽ_// フ /ヽ ヽ_//
>>289 PDO::setAttribute(PDO::ATTR_TIMEOUT, 1000);
は違うかい?
300 :
289です :2008/12/14(日) 17:37:24 ID:cWESsLbm
>>299 やっているんですけどダメなんです
トランザクション開始せずに、INSERT を実行するように
記述すれば正常に待ってくれますが
トランザクションを開始してINSERT をするようにすると
トランザクション開始の段階でdatabase is locked を出してくる
ようなのです
301 :
289です :2008/12/14(日) 17:50:52 ID:cWESsLbm
>>300 の補足です
端末A側で時間のかかるINSERTを実行すると同時に
端末B側でINSERTを実行する
→○端末Aの処理が終わるまで待ってくれる
端末A側でトランザクションを開始してからINSERTを実行すると同時に
端末B側でトランザクションを開始してINSERTを実行する
→×一切待たずにdatabase is locked エラー
>>301 > ×一切待たずにdatabase is locked エラー
そのエラーはDBが吐いてるのか、PDOが吐いてるのか確認した?
タイムアウトはPHPがクライアントとしてどんだけ待つか?という設定。
DBからエラーが帰ってきたら、待つわけがないんで、
コマンドラインでトランザクションが重複したときの挙動を確認してみて。
もし、SQLiteの挙動として、トランザクション処理が二重になると
「database is locked」が返ってくるようなら自前でリトライするしかない
バグかもしれないから、PDOのコンストラクタで指定してみるっていう 手はあるかもね。 あるいは、ステートメントでsqlite_busy_timeout(100000) を発行する
304 :
nobodyさん :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件ずつ表示させたいです。 よろしくおねがいします
die(print "ファイル開けませんでした。"); なにこれ、裏技?
目から牛乳
310 :
nobodyさん :2008/12/14(日) 21:54:06 ID:w3Pugtuv
お助けください。 wordpressでつくったサイトのトップページに、 ブログの更新情報をPHPで表示したいのですが、 2008.12.14 ブログの更新情報 2008.12.14 ブログの更新情報 2008.12.14 ブログの更新情報 という風に表示するには、どういう記述をしたらいいのでしょうか。 詳しい方お願いします!
マルチ乙
312 :
nobodyさん :2008/12/14(日) 22:34:56 ID:2jbmy5jI
【OS名】CentOS4.6 【PHPのバージョン】php4.3.9 【連携ソフトウェア】apache 2.0 【質問内容】 php5.2.3以降を入れたいのですが、どのような方法があるでしょうか。 Jason氏のレポジトリを使うという方法もあるそうですが、評判はどう なんでしょうか。
>>312 php4を消してphp5をインストール
>>312 ソースから入れれば?
もしくはどこかの誰かが作ってるかもしれないRPM入れるか
最近わかったこと。 変数の名前を「aaa」とかにすると 後から読んでわけわかんなくなる。
317 :
nobodyさん :2008/12/15(月) 02:37:19 ID:Y6XF9DXs
質問 ファイルを読み込むときに、 そのファイルがなかったときは、 どのように処理するのが適切か。 「ファイルが存在しません」 とエラーメッッセージを出して、 止めるのが正解か? そのとき、 「エラーです」 とだけ表示するか、 「ファイルが存在しません」 と、「理由」も表示するべきか、 「abc.txtが存在しません」 と「ファイル名」も表示するべきか?
318 :
nobodyさん :2008/12/15(月) 03:20:56 ID:/Qwgx48G
昔アフリカに青年海外協力隊?が行って避妊、ゴムの付け方を教えたそうだ。 言葉が通じないから木の枝にゴムを被せるというジェスチャーで何とか教えたという。 それから何年かしてアフリカに行ってみたら子供は減るどころか逆に増えてたんだ。 おかしいと思って夜民家の近くに行ったらなんと木の枝にゴムが被っていてジェスチャーで教えたそのまんまだったそうだ。 現地の人は木の枝にゴムを被せたら妊娠しないというおまじないだと思ってたそうな。
php板やプログラマー板に入り浸ってる人間ってのは 基本的にリアル対人能力は無いneet達なんだから 普通の交流しようとしても無駄だし 関わってもキチガイ人間っぷりにうんざりするだけ 普通にコミュニケーション力鍛えて 普通の世界に入った方が圧倒的に人生楽しめる
321 :
nobodyさん :2008/12/15(月) 06:07:13 ID:Y6XF9DXs
だれか助けてくれ、、、 あまりにもナゾなバグが出た、、、 「ボタンを押すと数字が1減る」 ってプログラムを書いたんだが、 なぜか10から1減らすと90になる。 何を言っているかわからねーと思うが こっちもわからない。 だってそんなロジックは入れてないんだから。 なんで?
322 :
nobodyさん :2008/12/15(月) 06:08:12 ID:Y6XF9DXs
13→12→11→10→90→89→88→,,,, こういう動作になってしまっている。 もちろん、こちらが希望する動作は 13→12→11→10→9→8→ なのだが。なんで増えるの??
323 :
nobodyさん :2008/12/15(月) 06:17:45 ID:Y6XF9DXs
もしかして10の左の1を消して、 9を書き込んでるから、 90 になってるの? でもなんでそうなるの?
>>321-323 釣られてみるが、その下らないプログラムをエスパーしろと?
むしろはっきりこう書いたらどうだ。
一見、Aの動作を期待しているように見えるコードで
Bの結果が得られるコードを示せ。
A 13→12→11→10→9→8→
B 13→12→11→10→90→89→88→,,,,
| | | | /V\ ,J /◎;;;,;,,,,ヽ _ ム::::(;;゚Д゚)::| ジー ヽツ.(ノ::::::::::.:::::.:..|) ヾソ:::::::::::::::::.:ノ ` ー U'"U'
得られるものがないんだから回答者は相手にするなっての いい加減学習しろ
328 :
289です :2008/12/15(月) 09:02:53 ID:7RJYXvH2
いろいろ試してみた? うーん、そりゃはじかれるだろ。 ただ、はじかれましたで、何かが得られたりはしないと思うし、 どう試して、どういう結果になったのかがわからなきゃフォローのしようがない
330 :
289です :2008/12/15(月) 10:41:07 ID:7RJYXvH2
>>330 その参照先には何も理由とか、無理とか書いてないよな?
だいたい、beginでエラー返してくれるんだったら、何も問題ないわけだが
あきらめたらそこで試合終了だよ(AA略
年がばれますよおっさん乙
334 :
 ̄ ̄ ̄ ̄ ̄)/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ :2008/12/15(月) 15:11:35 ID:vRJjZHan
/⌒ヽ / ^ ω^j、 _, ‐'´ \ / `ー、_ / ' ̄`Y´ ̄`Y´ ̄`レ⌒ヽ { 、 ノ、 | _,,ム,_ ノl 'い ヾ`ー〜'´ ̄__っ八 ノ \ヽ、 ー / ー 〉 \ \`ヽ-‐'´ ̄`冖ー-く || \ \ \ ∧_∧ || \ \ \ ( ´Д`) オイ、なんか変なのがいるぞ || \ \ \ / ヽ || \ \ / | | | || \ \∧_∧ (⌒\|__/ / ヽ( )絶対目合わせるな ∧_∧ / く \ ( ) うわー、なんか言ってるよ | \ \/ ヽ
AAオタク乙
336 :
nobodyさん :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ってどういうソートを行ってるんでしょうか。
>>336 5.1.でも同じ現象だった
バグじゃね?
>>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',
)
連想配列のときに数字と文字をごっちゃにしたらソートできないわな
340 :
nobodyさん :2008/12/15(月) 18:47:16 ID:6UH6h1c5
バグっぽいですか。ありがとうございます。
>>339 sort asort あたりだとデフォやREGULAR指定でも問題ないんですけどね。
ksortのときだけSORT_STRINGにでもしておかないと場合によっては想定外の動作しそう。
341 :
nobodyさん :2008/12/15(月) 22:10:30 ID:Y6XF9DXs
質問 アクセスカウンタ関係とか、 ファイルロック関係とか、 ライブラリみたいな形で まとまってるものってないの?
342 :
nobodyさん :2008/12/15(月) 22:18:16 ID:Y6XF9DXs
質問 解説サイト見ると、 「ファイルがロックされているかどうか、 返り値をみて確認したほうが良い。 ファイルがロックされていないのに ロックされていると勝手に決め付けて 処理をすすめてしまう可能性がある」 と書いてあるのですが、これって本当に いちいち確認したほうがいいの? ロックが取得できなかったときは、 そのまま待機に入るのではないの?
通常の配列と連想配列がごっちゃになったデータのソートなんて、未定義なんじゃねーの? 個人的にはNotice出してくれてもいいくらい
>>342 文章は読む気がしないからコードを書いて質問したまえ
素朴な疑問なんですけど、phpってやっぱり小規模WEBシステムにし か向かないのでしょうか?大規模サイトだとパフォーマンスが悪いのですか? ただ、mixiとかの大規模システムでもphpで運営してるそうなのでその辺りの関係がいまいち分かりません。 そもそもどんな言語で開発をしたとしても最終的に実行される時には、 機械語に翻訳されて実行される訳だから速度なんて変わらない気がするのでが実際のところどうなんでしょうか?
◆質問する時の注意 ・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
IDも出せないチキン野郎はおとといきやがれ!
351 :
345 :2008/12/15(月) 22:41:53 ID:???
チキンは嫌い!! 俺から逃げるな!!
352 :
nobodyさん :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をインストールするには どういう手順になるのですか?
解凍する→適当な場所に置く→それをincludeする
355 :
352 :2008/12/16(火) 00:14:38 ID:p4XUaZgR
>>353 えっ?それだけ?
眠いので明日起きたら実験してみます。
356 :
nobodyさん :2008/12/16(火) 00:17:52 ID:1rcPvBlh
どうしても楽天APIがやりたいのですが、PHP全く初心者です。何も知りません。 楽天APIのブログのをコピペして使おうと思ってます。 まず必要なものは、パソコン、サーバー、ドメイン、terapad、ホームページビルダーのほかに何がありますか? terapadで保存したものをサーバーにアップしましたが、保存の仕方が間違ってたのか、うまくいきませんでした。 言語はUTF-8、形式は何で保存したら良かったんでしょうか? よろしくお願いします。
>356 うまくいきませんでした、じゃエスパーが来るまでお待ちいただくことになりますが。 エラーの内容をどうぞ。
358 :
nobodyさん :2008/12/16(火) 00:30:40 ID:xUK+da4V
>>354 (1)ファイルが存在するかどうか、確認する
(2)もしファイルが存在していたら、次の処理に進む
(3)もしファイルがなかったら、「指定されたファイルが存在しません」と
表示して、プログラムを止める
(4)ファイルが読み込み可能かどうか調べる
(5)もし読み込み可能なら次の処理に進む(だめならエラー)
(6)ファイルを読み込みモードでオープンする
(7)ファイルをロックする
(8)ファイルからデータ-を読み込む
(9)データ-を1プラスする
(10)ファイを書き込みモード(ファイルの内容クリア)でオープンする
(11)ファイルにさっき1プラスしたデータ−を書き込む
(12)ファイルをクローズする
こういう、一連の動作をまとめた
ライブラリとかってないんですか?
>>358 そんな単純な処理ならば自分で書いたほうが早いし勉強になるよ。
360 :
nobodyさん :2008/12/16(火) 00:33:49 ID:xUK+da4V
早いか遅いかなんて聞いてません ライブラリとかでまとまってるのが ないかって聞いてるんです
>>360 ライブラリならPEARとか
あとはZend Frameworkをライブラリとして使うかかな
一応FFrameworkとなってはいるが
単体でも使えるように設計されてた筈
まぁどちらを使っても
>>358 に書いてある
一部の手続きしか行ってはくれないがな
>>356 もうちょっとPHPとは何かを勉強した方が良い
>>356 API見てきたがPHP無くてもいいぞ
JavaScriptだけでもできる
>>361 ない。
他人の作ったライブラリなんてどうやったってかゆいところに手の届かないとこでてくる。
仮に近いライブラリあったとしても手順4がないとか5の間に別のいらない処理入ってるとかで満足いかんだろうな。
正式に依頼して作ってもらうか、自分で作るしかない。
365 :
nobodyさん :2008/12/16(火) 04:51:23 ID:xUK+da4V
質問 ファイルが存在するか、確認する、という手順。 これをやったほうがいいのか。 あるいは、@をつけて、エラーメッセージをスルー したほうがいいのか。意見を述べてください。
◆質問する時の注意 ・ 質問者として、態度をわきまえること。
367 :
nobodyさん :2008/12/16(火) 04:53:37 ID:xUK+da4V
ちなみに、@でエラーメッセージを出さない方法、 これってエラーが出ないっていうだけで、 スクリプトの実行は中断されず、 実行が進みますよね。 これってまずくないですか?
368 :
nobodyさん :2008/12/16(火) 05:00:26 ID:xUK+da4V
もしかしてデーターベースであれば、 ファイルロックの仕組みが最初から 備わってるの?
>>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-イ::::::::::|]::::::!} ヽ. |
ほんと人の話を聞かないバカだな なんで質問してるのかがとても不思議です
373 :
nobodyさん :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); }
374 :
nobodyさん :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 />"; } } }
375 :
nobodyさん :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); } } ?>
376 :
nobodyさん :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>
377 :
nobodyさん :2008/12/16(火) 09:38:28 ID:7CqC2LzI
<?php //ここでログファイルの読み込みを行い日時・ファイル名・ファイルへのリンクを表示させる処理を行う ?> </body> </html> 以上になります。 よろしくお願いします><;
長くて読む気にならないので適当にレス ログ形式は適当なデリミタを使って(とりあえず<>にする) 日時<>ファイル名<>コメント\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>"; } 見たいな感じで表示する
379 :
nobodyさん :2008/12/16(火) 10:15:16 ID:7CqC2LzI
>>378 すごいです!!
ありがとうございます!!!!!
380 :
289です :2008/12/16(火) 10:33:55 ID:mtsIGhc+
じゃ英語翻訳スレ池
383 :
nobodyさん :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までなのでしょうか?
php.iniの設定とかまったく同じになってるのか確認しれよ
385 :
nobodyさん :2008/12/16(火) 19:05:26 ID:DMBjIVd3
素朴な疑問なんですがprintとechoの違いってなんですか?
テンプレ
387 :
nobodyさん :2008/12/16(火) 19:18:44 ID:DMBjIVd3
基本的なことではなくて厳密な違いが知りたいのですが・・・
じゃソース見れ
答えられない池沼は黙ってろ!!!!!!!!!
んなくだらねぇこと考えてる暇があったら他のこと勉強しろ
>>385 ,387
"厳密な違い"とはどのレベルのものか、質問の趣旨が不明確。
まずは、マニュアルを引用して、どこが疑問なのか明確にしてくれ
違いがわからないから答えられないんだろ ヘボはでてくんなっ!
違いがわからないなら「厳密」とか書いてんじゃねぇよっていう突っ込みをしてるわけだろ。 「基本的なことではなく」って書いてるけど 「基本的」な違いはわかってて、「厳密」を論じるなら、 「厳密な違い」とはどのスコープなのかが書かれなきゃ言及のしようがねぇだろ
カスはひっこんでろや
おいおい、釣りなら釣りらしく言い返せよ
396 :
nobodyさん :2008/12/16(火) 21:39:17 ID:mtsIGhc+
printは印刷 echo は叫ぶ
,..、_ _ __ ..,,__ 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、 `''“ ̄ ゙゚゙゙゙゙゙゙゙゙゙゙゜ : ` ``
398 :
nobodyさん :2008/12/17(水) 00:20:37 ID:Q+ZHoejC
質問 セッションってページの一番上に 書かないとだめって教科書に書いてあるけど そうしたら、無料のレンタルサーバーとかで ページの一番上に自動的に 広告が挿入されるタイプのサーバーだと 「ページの一番上にsession()関数を挿入する」 ってできないから、そういうタイプのサーバーでは セッションってつかえないってこと?
>>398 HTMLヘッダがsession_start();以前に送られてるとダメ。
ただ無料鯖で試したことないから一概に無理、とは言えない。
試してみてダメなら、管理者に手動で入れたい、って問い合わせてみたら?
400 :
nobodyさん :2008/12/17(水) 01:07:35 ID:Q+ZHoejC
質問 解説サイト読んでると、 「読み込みをするだけでも、共有ロックをかけろ」 と書いてあるんだが、本当にそうなのか? (1)ファイルをオープンする (2)共有ロックをかける (3)数値を読み取る こういう順番にしろ、と書いてあるんだが、本当にそうなのか? (1)ファイルをオープンする (3)数値を読み取る これだとだめなのか? (2)のときに、他のユーザーがアクセスしてきて、 割り込んで書き込み処理をしようとして 排他ロックをかけると、何か問題がおこるとか?
>>400 よっぽどでかいファイルでもなきゃそうそうないだろうが
ファイル書き込んでる最中に、他の人のファイルを読み込む可能性がある。
あんまり起きないからいらねーやってんなら好きにすればいいがやんないよりはやっといたほうがいい。
403 :
nobodyさん :2008/12/17(水) 01:23:16 ID:Q+ZHoejC
>>402 Aがファイルを書き込みしている途中で
Bがその、中途半端なファイルを読み込んでしまう
可能性があるという意味?
404 :
nobodyさん :2008/12/17(水) 01:25:48 ID:Q+ZHoejC
(1)Aがファイルをオープン (2)Bがファイルをオープン (3)Bがファイルを排他ロック (4)Bがファイルに書き込み開始 (5)Aがファイルを共有ロックしないで読み込み開始 こうなった場合、(5)でAがファイルを読もうと思っても、 (3)で、Aに排他ロックをかけられているのだから、 読み込めないのでは? それとも、ロックの概念の理解が間違ってる?
405 :
nobodyさん :2008/12/17(水) 01:34:21 ID:Q+ZHoejC
質問 ファイルをオープンしてからでないと ロックはできないの? 先にロックしてから ファイルをオープンしたほうが 安全でいいと思うのだが?
データーベースとか、 ファイルロックとか、 ロールバックとか、 トランザクションとか、 の勉強をするのは、 ものすごくおもしろいね!
ん? 1.排他ロック 2.ファイルオープン 3.読み取りOR書き込み 4.排他ロック解除 だと思うんだが。
408 :
nobodyさん :2008/12/17(水) 01:42:02 ID:Q+ZHoejC
>>407 いやいや、、、
私が読んでる教科書や、解説サイトでは、全部
(1)ファイルオープン
↓
(2)ファイルロック
この順番ですよ。
>>407 それはロック用ファイルが別の場合ってとこか
>>408 あぁわかった。
flock()使う場合は
たしかにファイルオープン→ロック→処理→ロック解放→ファイルクローズだね。
>>409 そそ。
ロック用ファイルなりディレクトリなりをフラグにするなら、
ロックが先でしたってことです。
すまそ。
412 :
nobodyさん :2008/12/17(水) 01:50:26 ID:Q+ZHoejC
ああ ロック用ファイルを別に用意して、 そのファイルをロックする方式もあるよね。 どっちを使えばいいのかわからんのだけれども。 「こういう方法もあります、 またこういう方法もあります」 って書いてあるだけで、 「どっちを使え」 とは書いてないから。
413 :
nobodyさん :2008/12/17(水) 01:51:21 ID:Q+ZHoejC
(A)書き込むファイルそのものをロックする場合 (B)ロック用のファイル、ディレクトリを別途用意して、それをロックする場合 この2方式があって、話すときは、どちらなのかを 明確にしないと混乱するね。
>>412 PHPならすなおにflock()使うのがいいよ。
ちなみに、fopen()は厳密にいうとファイルを開いてるわけじゃない。
ファイルハンドラを返してるだけ。
だから、ロックがあとでも大丈夫なんだ。
flock()でfopen()で返されたファイルハンドラを指定してるでしょ?
例えば、fopen()してからsleep100秒経過後、fread()したとする。
取得したデータはfopen()した時(100秒前)のデータじゃなくfread()した時のデータになる。
perlだと開いた後のflockは微妙だったと思ったけどphpなら大丈夫なのかな。 あんまり厳密に調べたことないからわからんが。
つうか毎度思うんだかつきつめて質問するなら金払ってどっかで学べよ いい加減迷惑
>>417 何を勘違いしてるんだ?
どっちがいいの?何が一般的なの?
は好きにしろで完結するのがこのスレ
それ以上のものを求めるなら代価を支払え
下らない議論につきあってる必要もないし他の質問者にも迷惑
別に代価は支払わなくていいけど ブログなりHP開設してそっちでおおいにやれって感じだな それかそういう話題の好きな人のHPに積極的に行ってフォーラムに参加するとか 質問もしっぱなしで次から次と質問を変えてくる どんどん進化する分野でいちいち疑問をもってるようじゃ向いてない プログラマーは工数を踏んで対処法のノウハウを蓄積するもの このへんはGoFもそう言っている 頭で考えてるうちは肝心なことはなんも身につかない 態度も悪いしそんな人間には誰も投資しないよ プログラムのなんたるかを勉強したいなら まずPHPでやろうというのがそもそもの間違い 適当な言語だから適当にしろとは言わないが PHPはセキュリティだけに気を払えば後のことはぶっちゃけどうでもいい もともと性能任せにしたゆとり向けの言語なんだから ちゃんと学びたいならまずCからやるべき
>>418 付き合わなければいいのになんでわざわざ首を突っ込むの?
それとなんで代表者きどり?
個人的には自治厨のほうがよっぽど迷惑なんだけど
421 :
nobodyさん :2008/12/17(水) 04:18:47 ID:+p3m0j6L
POSTされた値を変数で保持しようとするときに、 保持できるのは次のページの更新があるまでですよね? ページの更新があっても変数を保持し続けたい(というより更新したい) のですがどのようにすればいいのでしょう? 例えば$aと$bという変数があって、 1回目のページ送信の時に$aを変更したあと、 2回目のページ送信の時に$bのみを変更した場合、 1回目に送った$aは初期化されてしまいますが、 この$aも保持し続けたいということです。 条件としては、 外部ファイルやhiddenフィールドやCookie(セッション)に持たせる以外の方法で、 何か方法があれば教えてください。
>>420 テンプレ守らない質問者に回答者が回答した結果がスレ分断した原因なのだが
それを知らないなら質問質問連呼してるバカと一緒にあっちのスレ行ってくれ
>>421 GETかPOST
云々以外の方法って何で?
424 :
nobodyさん :2008/12/17(水) 05:42:33 ID:Q+ZHoejC
>>414 なるほどね!
それですっきりわかったわ
そういう冴えわたった回答がほしかった
あなたは教え方うまいので
次からも教えてもらえますか?
去年あたりからか、メールとかの内容で分からない事があっても 疑問にも思わず平気でスルーする奴が多くなった。 今期に入ってからの3時間以上残業した日に、何で残業したのか 報告しれっていう指示メールに対し、「今期」が何を意味するのか わからないからとノーアクションだったり。 ちなみに「今期」について聞きもしなければググりもしていない。
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 がファイルのロックを開放」
説明なんて必要ないだろ こういうケースはこう対処すればいいと覚えればいいだけ 動作の様子や原因をつきつめていきたいならアセンブラでもやれ 逆にいうとアセンブラが理解できないのなら 本質的な部分は到底理解できない だからPHPのみをやってるうちは気にするだけ無駄
428 :
nobodyさん :2008/12/17(水) 07:16:38 ID:Q+ZHoejC
fwriteなんだけど、 ファイルの中味が 「1234567」 のとき、fwriteで「9」を書き込むと 「9234567」 になってしまうんだけど、これで 「正しい動作」なの?
429 :
nobodyさん :2008/12/17(水) 07:17:19 ID:Q+ZHoejC
先頭の1文字だけ上書きされてしまうんだよ こっちの希望の動作は、 「1234567」 が全部消えて、 「1」 だけが書き込まれるということなんだけど。
まちがえた、「9」だけが 書き込まれて欲しいってこと。
431 :
nobodyさん :2008/12/17(水) 07:30:31 ID:Q+ZHoejC
ファイルの中味を削除する関数が必要なんだが、どこで売ってるんだ?
ID:Q+ZHoejC
そろそろコテつけてくんないかな? 毎日NGIDにするのはだるいわ・・・。
>>433 , ,:‘. 。 + ,..
’‘ + ,.. . ..; ', ,:‘
. .; : ’ ' ,:‘.
あ あ ,:‘. +
.. ' ,:‘. . ...:: ’‘
’‘ .; こ ん な に お 断 り し た い
。
. 。 気 持 ち に な っ た の は ,:‘. 。
'+。
初 め て で す .. ' ,:‘.
:: . .. .. ' ,:‘.
ハ,,ハ
( ゚ω゚ )
俺の隣に座ってるやつがさ、ID:Q+ZHoejCと似たようなタイプなのよ。 調べればわかることを調べず、どうでもいいことにこだわってるわりに、 人が丁寧に質問してやっても礼の一つも言ったためしがない。 世の中にこういう奴が結構いるのは仕方ない、採用しちまった人事の責任って チーム一同ハブにしてるけどね。 だから、なおさら構ってちゃん質問が増えるんだけどさ。 なんていうの?こういうの、世の中の不純物 ID:Q+ZHoejCちゃんはどうかわからないけどね。
なるほど 人事権の無いやつが文句言ってるのか
どうみてもただのゆとりだなw 時間の無駄にも程がある
1つわかったのは都合が悪くなるとID消して煽りにきてるんだな・・・
人事権の無い人は 今後書き込まなくていいですからw
人事権が無いだけじゃないよね 席順を決定する権利すらも与えられてないんだろう?
「ぼくたち人事権無いよ〜 キライなヤツを辞めさす権利無いよ〜 それどころか、席順を決定する権利もないよ〜 座りたい席にも座れない〜 キライなやつの隣に座らされてるよ〜 これってイジメだよ〜 いじめるなよ〜いじめないでくれよ〜 でも!2ちゃんではえらそうに他人に指図して 命令するよ!やったね!」
何この必死ぶり
http://nyx.pu1.net/practice/file_ope/file_ope5.html ついに見つけた!ついに見つけたぞ!
ちなみに「r+」というモードがあり、こちらは
「上書きモード」って意味合いになるかな。
「r」は読み込みのみ可能でしたが、「r+」は
読み込みと書き込みの両方が可能です。こ
ちらもファイルポインタが先頭に置かれます
。ファイルに文字列があった場合は上書きし
ていきます。「w」との違いは、「r+」はファイル
を空にせず、元のデータ上に上書きしていく
という点です。「r+」モード君は指定したファイ
ルがなくても新規作成はしてくれず、無慈悲
にエラーを出力してきます。
ファイルを開いた時点では元のデータが残っ
ているので一見こちらの方が良さそうですが
、不便なところもあります。書き込みたい内容
が、ファイルに既に書き込まれている文字列
より短い場合には変なゴミがつきます。変な
ゴミ、と言いましたが、元々ファイルにあった
文字列が残ってしまうって事です。先ほどの
サンプルのようにシングルバイト文字(英数
字)を使ってた場合なんかはそのおかげで
文字化けしたりします。サンプル出しておき
ますので動作の違いを試してみて下さい。
ブログかハテブにでも書いとけよ
キライなやつの隣に座らされる感想はどうだ?
スレチ持ちだしたカスとそれに乗ってる奴、去れ
いやいや、俺の隣の奴さ、もしかして本人?
やっぱこうなったかw だから相手にするなと口をすっぱくしていってきたのになぁ ID消してるが特徴丸出しだからわかるだろう? 今後はちゃんと答える相手を選んでそれ以外はスルーしような? わかってて答えてるなら荒らしに加担してるようなものだ 荒らしたくないのなら次長してくれ 相手にすると喜ぶタイプだから独り言を言わせておけばOK そのうち飽きていなくなる
>>444 で、おまえさんは、質問者なの?回答者なの?
質問者じゃないんなら、ひどくはしゃぎすぎな気がするが・・・
>>450 自作自演で連投してたから、ID出し忘れた困ったチャンだよ
煽ってくれるな。もうスルーしようぜ・・・ 流れ読めば誰がどれ書いてるかわかるしもうそっとしといてやろう。
怒らないでマジレスしてほしいんだけど なんでこんな時間に書き込みできるわけ? 普通の人なら学校や会社があるはずなんだけど このこと知った親は悲しむぞ? 現実見ようぜ
>>453 怒らないでマジレスしとくけど、
おれは、全社的にPHPを採用してることで有名なYa○○○に入社して5年のPM。
会社まで5分の距離にマンション持って暮らしてる。当然人事権はない。
自己紹介乙
ども
457 :
455 :2008/12/17(水) 09:54:08 ID:???
>>454 じゃなくて
>>453 に言ったのね
ちなみに俺はフレックスで11時までに出勤すればいいのでそろそろだな
どこまでコピペ?
ID:E0jjD+uU ID:UV6BBIxz ID:2wImFGsH ID:N5GIYx97 ID:6CbaLDLd ID:Y6XF9DXs ID:xUK+da4V ID:Q+ZHoejC 他、ID無しでの煽り多数、D無しでの質問前後の意味のわからないぼやき、 ID無しでの唐突な話題多数。 9割型IDのない変な書き込みは全てこいつです。
つか、質問をするのにいちいちIDを出せ! ってスレを立てた「1」が一番の問題だと思うぞ。 なんでいちいち質問をするのに出さねばならない? 頭オカシイんじゃないか?「1」よw
粘着質問者はさ、ID出し忘れて罵られて逆上して
たたり神になっちまったんだろうなぁと。
だから、スレタイトルも見ないで迷いこんでくる
>>460 みたいのを早目に駆逐しとかないとw
相手をしなければいいだけ。
確かに誘導しても行かない相手には無視するしかないね 質問しまくって無駄に伸ばしてスレ荒らしするだろうけど こっちも反応して書き込むと無駄に伸びてしまう 無視をするのが一番
自治も態度悪いのも荒らしたいだけのもいらないが 出てけって言ったって出てくわけないからほっときゃいーさ。
>>383 preg_* はずっとPCRE、正規表現エンジンが変わったのは mb_ereg_*
UTF-8な文字列を扱うときは/u必須だ
PCRE_UTF8を有効にした上で結果が変わるようなら、
それはバグとして報告したほうがいい
>>421 永続化させたけりゃファイルシステムやらDBへの書き込みが必要
PHPのセッション管理もデフォルトじゃファイルで保存している
データが揮発してもいいなら共有メモリでも使え
467 :
nobodyさん :2008/12/17(水) 15:15:15 ID:7ilSy2El
mixiをphpスクリプトで作る場合何日ぐらいでクローンを作れますか?
君のレベルが不明なので回答不可
469 :
nobodyさん :2008/12/17(水) 15:19:37 ID:7ilSy2El
すいませんぼくは文法とマニュアル見てある程度できます ここの回答者様の力ではどれくらいで作れるのか教えてください
1日くらい
471 :
nobodyさん :2008/12/17(水) 15:21:11 ID:7ilSy2El
mjsk
472 :
nobodyさん :2008/12/17(水) 15:23:52 ID:7ilSy2El
ざっと見積もって作り終わるまでに何行ぐらいになりますかね?
設計次第だけど5000〜1万行くらい?
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上からデータ登録しようとしたら上記のようなエラー構文が出ました。原因を教えて下さい。
475 :
nobodyさん :2008/12/17(水) 16:43:03 ID:TGxtJ5tD
477 :
nobodyさん :2008/12/17(水) 16:58:59 ID:TGxtJ5tD
>>476 もう少し具体的には分からないでしょうか?
あなたのSQL構文でエラーが発生している、それは正しい構文を使用してMySQLサーバのバージョンに近くに対応するマニュアルをチェック byぐーぐる翻訳
>>477 エラーが出てる行で使用しているクエリを晒したら、
具体的な話もできるでしょう。
しかし、質問の質が低すぎるのは残念だ。
○○なふりしなくても、十分○○なんだからもう少しまともな質問してくれ。
構文エラーと言ってるのにコードも出さず具体的に教えろって エスパーでも無理だろw
>>474 よーしエスパーしちゃうぞー
文章型への挿入はポッチで囲めよ
>>474 まず、電源を疑った方がいい。
電源が力率改善型のコンデンサを積んでいるか、
電圧が綺麗な正弦波を描いているか、
そもそもコンセントの電源が101Vプラスマイナス3Vの範囲内に収まっているか?
そこを確認しなさい。
これらの話は、OSIでいうと物理層の問題。物理層は最下層であり、
何かトラブルがあったらそこから疑うのが基本。ちなみに、おれはCCNPホルダーだけどね。
484 :
nobodyさん :2008/12/17(水) 20:26:51 ID:+z5yJo1f
外部ファイルでロックするのは、 その関数がいきなりファイルオープンする 仕様で、ファイルロックすることができない場合。
correspond 一致する、相当する シス単p.115にのってる
はぁ?
>>462 32歳の中学の女性教師、温泉で"裸の指導"
http://tsushima.2ch.net/test/read.cgi/news/1229520201/1 「教育のため」?女性教諭、1万円盗む 宮城
温泉旅館の脱衣場で1万円を盗んだとして、宮城県教育委員会は17日、同県塩釜市立中学校の女性教諭(32)を
懲戒免職処分にした。「苦い思いをすれば不用心なことをやめるだろう」と、被害者への勝手な“教育的指導”から
盗んだと話しているという。
県教委によると、教諭は10月下旬、鳴子温泉まで日帰り入浴に行った。脱衣場のロッカーを開けると、岩手県一関市の
女性の財布などが入っていた。教諭には施錠せずロッカーに入れていた持ち物を盗まれた経験があるといい、
「全部取るとかわいそう」などと考えた末、ある程度の額を残し1万円札だけ抜き取った。
教諭は翌日、中に1万円札を忍ばせた封書を匿名で温泉に送付、おわびも添えた。結局、1週間後に警察に逮捕され、
罰金20万円の略式命令を受けることになった。
ニートって、 「ボクは本当はこんなに凄い人間なんだっ」 って根拠のない妄想で自己完結してるけど、 世間一般では「無能がなにほざいてんの?」といわれちゃう人達の事だよね? だから怖くて世間に出られないんでしょ? 肥大した無根拠の自己愛を満たすには、 自分の狭い世界の中で、自分を無条件に受け入れてくれるものと一緒に 夢の世界で暮らすしかないもんね でも、現実に接触すると、夢から醒めなきゃいけない 彼らにとってそれは、自分が目をそらし続けた無能な自分と対峙する瞬間だもんねぇ そりゃ苦しかろう逃げたかろう その結果出来たのが、いわゆる「ニート」とよばれる人達なんじゃないの?w
質問 なんでセーフモードのphpo.iniは magic_quote_gpcがOFFなの?
491 :
nobodyさん :2008/12/18(木) 00:19:33 ID:4FSaHF+d
確かに勉強にはなるが古くないか
>>459 >ID無しでの唐突な話題多数。
>9割型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は「この機能を使用しないことを強く推奨する」と警告して
いる。
5.2.8もう出ただろ
これ以上スレ違いなぼやきと自演レスを続けるのなら マジで頼むからコテをつけるかどっか行ってくれ 答えられるならコテかくして普通に答えてもいいから とにかく今の状態は本当に迷惑だ
>>497 ルルルル…
! ___
∧,,∧ ||\ \
(・ω・` ) || |二二|
( つつ ||/ /
|二二二二二二二二二二|
|| ̄ ̄ ̄ ̄|| ̄ ̄ ̄ ̄||
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧,,,∧ ガチャ
( ´・ω・)コ
( oロ.ノ ヱ
`u―u'~~~~'〔◎〕
"""""""""""""""
____________________
∧,,,∧ /
( ´・ω・)コ < <丶`∀´><マジで頼むからコテをつけるかどっ…
( oロ.ノ ヱ \
`u―u'~~~~'〔◎〕  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
"""""""""""""""
∧,,,∧ ガチャ
( ´・ω・) ミ
( oロ つΠ
`u―u' 〔◎〕
"""""""""""""""
匿名だからって少しは空気ぐらい嫁よ・・・
明らかに違うんだけど お前頭悪いな
知恵遅れとか 低学歴とか 奴隷体質とか 精神病とか 部落民とか 在日とか そんな奴等の集まり
504 :
nobodyさん :2008/12/18(木) 04:52:45 ID:vOfimxeh
ID出さないと、なにがまずいのかなぁとか聞いてみたりして。。 ここのルールなんだよ!じゃなくて なんでそんなルールがあるの?っていうとこ。。
成りすましが沸くらしい
506 :
nobodyさん :2008/12/18(木) 05:02:15 ID:4FSaHF+d
質問 文字コードをメタタグで明示的に指定しないと、 ユーザーがUTF-7を選んだり、 アタッカーがUTF-7になるように仕組んだりしたときに、 文字が変換されて、攻撃が可能になるような コードが生成される可能性がある、よって 文字コードはUTF-8などと、メタタグで 明示的に指定したほうがよい、 と解説サイトに書いてあったのですが、 これってそうなの?
過去ログみたら全てわかるから過去ログみれ いちいち新参のそんな質問に答えてやってもきりがない といいたいところだが簡単に説明すると まず第一の問題が偽者が出現する(自己解決しました) 第二の問題がIDを出さないことは匿名の性質を高めるので お礼がなかったり煽りかえしてきたり態度が横柄になったりと 心理的な影響が大きくなり荒れる方向に進む 最近いるID出して態度が横柄なのは例外(これはただの荒らしなのでどうしようもない) それともう1つスレをageて質問があることを知らせる役割もある(ブラウザから見てる人間もいる) IDは変えることが可能だがわざわざ変えてまで荒らそうとするのはそうそういない
>>506 ググってわかる質問はググレカス。
コードも出さないつまらん質問ばっか繰り返すな。
四六時中神出鬼没でニートで必死なのはわかったけど、
現状を打開したいのならWebからの情報に頼らずまず専門学校なり行きなさい。
お金がないならハロワ行ってその手の職業訓練校紹介してもらいなさい。
そのほうが君のためにはいい。
>>508 このスレってなんのためにあるの?
ググレ、ググレって覚えたての言葉をうれしそうに連呼する猿を見ると吐き気がする。
手元にある書籍で思いっきりひっぱたいてやりたい気分。氏ねw
日本のphpが終わってるのはコミュニケーション能力のないキモヲタしかつかわないから。
そういう豚は「ググレググレググレ」ばっか。だからユーザーが育たない。
>このスレってなんのためにあるの? 少なくとも態度のでかいお前のための人力検索スレではない コードを書いて行き詰った人やエラーの原因が特定できないなど 技術的な問題に行き当たった時に質問するようなスレで それ以前の理論的な話題は議論するだけ無駄なので扱ってない ようするにどっちがいい?この説明は正しい?とかそういう質問はやめろ 人に聞けば何でも解決すると思ってるバカをこんな匿名掲示板で育ててやる義理はない 少しは自分でどうにかしろ それかできないのなら金払って学校行くか就職して会社で育ててもらえ そんなに議論したければ登録制のフォーラムに参加するか サイトでそう説明してるならそこの管理人に聞け
>>506 正しい質問の仕方
こういうコードを書いたのですが、
ある解説サイトではこういう危険性があるということで、
こういう風に書き換えました。
しかし実際に動かしてみてどう危険なのか理解できません。
どうしてこのコードが危険なのでしょうか?
実証できるテスト方法などもあったら教えてください。
超便利なスクリプト書いたよ フォームから入力した文字の バイト数をカウントして表示してくれるんだ! 下記のソースを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); } ?>
一見同じように見える「あ」も シフトJISのときは2バイト、 UTF-8のときは3バイト、と 違っているのが実際に確認できる。おすすめ。
514 :
nobodyさん :2008/12/18(木) 07:16:01 ID:4FSaHF+d
質問 htmlspecialcharsの第三引数を UTF-8等と指定しろ!と書いてあるサイトと、 そんなん、指定しても意味ないけどねー。って 書いてあるサイトとあるんだけど、 どっちが正しいの?
文字コードもきちんと指定した完全版はこれだ <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>
http://d.hatena.ne.jp/teracc/20070415 このページでは、「第三引数を指定しても
まったく意味がない」と書いてある。
「htmlspecialcharsの第三引数は、今のところ指定するメリットは無い。」
「補足すると、意味的には指定したいところです(何の効果もありませんが)。」
「意味的には第三引数に文字コードを指定するのが正しいですが、指定しなくても実のところ問題はありません。
ネット上には「不正な文字を利用したXSS攻撃*1を防ぐために、
第三引数を指定する方がよい」というような記述もありましたが
、これは日本語用の文字コードを使う限りは正確ではありませ
ん。文字コードを指定したところで、関数の出力結果は何ら変わ
りません。攻撃を防ぐ効果はないのです。」
ほうほう、どっちが正しいの?
521 :
nobodyさん :2008/12/18(木) 08:19:41 ID:4FSaHF+d
523 :
nobodyさん :2008/12/18(木) 08:56:59 ID:4FSaHF+d
臨機応変 適材適所
526 :
nobodyさん :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; // カウント値出力 ?>
>>523 カウントアップするアクセスカウンターを前提に話しているモノに、カウントダウン時の不整合を指摘してもしょうがなかろう。
それは【難癖】という
>>527 しかしそのままCGIゲーム等で
敵のHPを減らす等の処理に流用する人がいるかもしれない
そういう時に困るだろ?
そうですねそのとおりですね
>>528 頭固すぎ
REMAIN = MAXHP - DAMAGE
途中で書き込んでしまった… REMAINをいちいち書き出したりはせずメモリ上で処理すれば 問題ないだろ?
>>528 そういう場面に出くわしてから初めてこのスレをご利用下さい
次の患者さんどうぞ
533 :
nobodyさん :2008/12/18(木) 14:30:41 ID:zC30MAtd
仕切り厨乙
534 :
nobodyさん :2008/12/18(木) 16:16:01 ID:0JPteQZ9
headerで飛ばしたらとれないにきまってるじゃん
536 :
nobodyさん :2008/12/18(木) 16:44:33 ID:0JPteQZ9
>>535 えーそうなんだ、出来る風に書いてあると思ったんですけどね
そしたら質問を変えまして
自動でジャンプできてリファラーも取れる方法をなんか知ってたら教えてください。
つセッション
539 :
nobodyさん :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");
?>
なんか気持ちわるい書き方だな
541 :
nobodyさん :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); これはちゃんと動作しました。
542 :
nobodyさん :2008/12/19(金) 01:02:27 ID:LlHxV6ok
>>516 これって
変数を初期化していないから、
セキュリティ上、問題ある?
変数を初期化しないとセキュリティに問題があると思った理由は?
>>541 こうじゃだめ?
$str = preg_replace("/<BODY (.*)?>/","",$str);
たぶん、eregi_replace("<BODY (.*)?>","",$str);
でも動く。たぶん。
545 :
544 :2008/12/19(金) 01:13:48 ID:???
.*?>の最短マッチはPerlの記法だからたぶん他では使えないから [^>]*>とかのほうがいけそうだが
Perl系ならこんな感じで。 <?php $str = '<head><body>'; $str = preg_replace("/<BODY( .*)?>/i","",$str); echo htmlspecialchars($str);//<head> ?>
548 :
541 :2008/12/19(金) 01:21:54 ID:QvofKKAh
>>544 レスありがとうございます!
あなたのレスにヒントを頂き、
$str = preg_replace("/<BODY(.*)?>/i","",$str);
と書いたところ思い通りの動作をしました。
$str = eregi_replace("<HEAD>(.*)<\/HEAD>","",$str);
↑これが動作しない理由はまだ謎ですが、とりあえず解決したので良かったです。
どうもありがとうございました!
549 :
541 :2008/12/19(金) 01:23:35 ID:QvofKKAh
>>546-547 なるほど、Perlの記法だったんですか!
どおりで動作しない訳だw
どうもありがとうございました!
>>548 いいならいいけど、それだと<body>の後ろも消えないかい?
551 :
541 :2008/12/19(金) 01:43:03 ID:QvofKKAh
>>550 最短一致なので消えないと思ったんですが
違いますか?
552 :
nobodyさん :2008/12/19(金) 02:30:02 ID:ZfofV50h
553 :
にゃあ :2008/12/19(金) 02:59:14 ID:Uk1GMt1i
初めて書かせていただきます!! 関係なかったらごめんなさい。 プログラミングjavaの課題がわららないのです↓↓ 5問ほどあるのだけど・・・ どなたか答えてもらえますか?? 今日中なんです↓ おねがいします!!
いいよ
556 :
nobodyさん :2008/12/19(金) 03:36:16 ID:LlHxV6ok
質問 PDOっていうのは 複数の種類があるの?
557 :
nobodyさん :2008/12/19(金) 05:47:34 ID:LlHxV6ok
質問 allow_url_include これってオフにしないと、やばいの?
「allow_url_include 危険性」
560 :
541 :2008/12/19(金) 06:45:34 ID:QvofKKAh
>>552 ぎゃあああほんとだ
どうしてですかorz
ONにすると危険なphp.iniの設定一覧 allow_url_fopen allow_url_include register_globals これらの設定は必ずOffにしておきましょう!
>>559 ぐぐれるなら自己完結できますね
これからもそうしてくださいね
>>562 NO
そうしたら有用な情報が拡散しない
問題が発生したらキサマが責任を取るのか?
はっきり言って自分の方が身分が高いし 人間としての格もこちらの方が上なのです。
>>564 ×有用
○余計
別にこんな所で拡散させなくていいです
布教ならブログでも開設してそちらでどうぞ
友達いないの?
PHP_SELFって危険なの?
使い方によって危険
>>571 は知識がないからこういう返答しかできないのでスルーでいいよ
>>573 調べた情報が信用できなくて
こんな匿名掲示板のレスなら信用できるんですか?
$_REQUEST って危険?
>>577 なぜ関係ないんですか?
関係ないならそもそも質問する意味がないですよね?
情報の出所が関係ないのと質問する意味がなくなるのか意味がわからない 説明よろ
その人のためを思ってるなら、何も答えないでおけばいいのに。
>>577 あなたは一体何を期待してるのですか?
ここで嘘や適当な返答をしても真に受けるのですか?
顔や経歴の見える相手と面と向かって然るべき場所で教えてもらえば
その情報は少なくてもここよりは信用できるわけですから
情報の出所は重要ですよ
コードでわからないところがあればさらりと書けば解決なわけですが
そういう漠然とした質問はこの掲示板向けではありません
あまりにも求めてるものが大きすぎます
そんなに教えてほしいのなら私が家庭教師として教えてさしあげますよ
>>579 たとえるなら中国の胡散臭い店舗で100万するロレックスの時計が
10万でといわれて信用できないならおとなしく
日本代理店でサービス価格の95万では買えという事だろ
質問してるのはいつものバカでしょ?
それを追い出すためなんだろうが結局スレが伸びて迷惑になるから、
おとなしく
>>581 も無視を決め込んでくれ。
584 :
nobodyさん :2008/12/19(金) 09:49:54 ID:LlHxV6ok
質問 グローバル変数が初期化されていないときに エラーを出すようにしたいんだが、どうやるの?
>>581 はどうせXOOPS CUBEとかやってるキチガイだろ
ID隠した質問や煽りの直後にこいつのID出した質問が毎回来るなw 人をニートだのこんな時間に何してるの?と言ったり、 俺はお前らより身分が高い(笑)とかわけのわからんこと言ってるわりに、 昼夜逆転の生活を送ってるようですねwww 夜のお仕事ですか?wwwww毎日がホリデー(笑)ですか?wwwww まぁなんとでも言い訳できるけどいい加減気持ち悪いよ^^;
>>581 >ここで嘘や適当な返答をしても真に受けるのですか?
情報の出所が重要ならこんなスレいらないってことだよな
今度は必死に
>>581 叩きを開始したようですwww
醜すぎる><
>>586 怒らないでマジレスしてほしいんだけど
なんでこんな時間に書き込みできるわけ?
普通の人なら学校や会社があるはずなんだけど
このこと知った親は悲しむぞ?
現実見ようぜ
最近脱線が多いのな。
煽ったりキチガイ演じたりコピペしたり忙しいな
593 :
586 :2008/12/19(金) 10:04:26 ID:???
>>590 定型文乙wwwww
マジレスすると、俺先月失業して今夜の仕事してんだよ。
ていうか必死に質問してるやつも同じ部類だろ?
必死にPHP習得して転職でもしようと思ってるんだろうけど、
そんなことよりハロワでも向かったほうがいいぞ。マジで・・・
いまどき学校と会社が昼間しか動いてないと思ってる奴いるとは・・・
>>594 会社や学校自体はほぼ100%近く昼間しか動いてないだろ
夜間学校なんてそんな多くないし(そもそも夜間のやつは昼間働いてる)
研究室に篭ってるならこんなとこに書き込んでる暇もない
会社は夜は機能しない
24時間監視しないといけないような業種も会社として動いてるわけではない
トラブルがあったらその場は個人やチームで対応して
対応しきれない場合は責任者や専門家を叩き起こしてどうにか対応する
会社としての事後処理は昼間だ
夜に飲食店や風俗嬢向けのアパレル・宝石店・不動産屋なんかもやってるがあれはまた別な
なにこの必死な人wwwwwwwwwwwwww
社会人とニートの認識の差です
598 :
nobodyさん :2008/12/19(金) 10:36:32 ID:LlHxV6ok
質問 グローバル変数を初期化しないまま 使ったとしても、 register_globals=offであれば、 セキュリティ上の問題は生じない?
PHPSecInfo
PHPセキュリティ・コンソーシアム(PHP Security Cons
ortium)から無料で入手できるPHPSecInfoというツー
ルは、構成を分析して可能性のあるセキュリティの落
とし穴をレポートしてくれます(図2)。PHPSecInfoは実験
的なツールです。その推奨事項は一般的なものであり
、やみくもにそれらを適用すべきではありません。それ
でも参考にはなりますので、phpsec.org/projects/phps
ecinfoからダウンロードしてみる価値はあるでしょう。
http://phpsec.org/projects/phpsecinfo/
だからそういうことは自分のブログでやれっての 回答がこないとどうでもいい話題ばっかしやがって スレ違いもいいところ
>>600 いや
>>599 は
>>598 に教えてやってんだろ
>>598 よかったな
これでお前もこのスレとはお別れできそうだな
ちなみに評価ソフトウェアは他にもたくさんある
XSSやSQLインジェクションの評価にはParosなんてのもある
まぁそういうの使ってがんばれや
603 :
nobodyさん :2008/12/19(金) 11:35:44 ID:/xkb1uRj
if(---) { if (---) { 通常処理A(); } else { エラー処理A(); } if (---) { 通常処理B(); } else { エラー処理A(); } } else { エラー処理A(); ] よくこういう形になって、エラー処理Aがたくさんでてきてしまうんですが もっとスマートにかける(エラー処理Aを1つの箇所にまとめられる)方法があればアドバイスください
if (a && b) { } else if (a && c) { } else if (a && d) { } else { エラー処理 }
>>604 aの条件が何度も出てスマートじゃないです><
今日はキチガイが一名沸いたな
>>605 ifで無理にネストするよりelseif使ったほうが自然だけど?
ネストした場合は必ず実行するなんかしらの処理を行うのが自然
if () {
if () {
} else {
}
処理
} else {
処理
}
609 :
nobodyさん :2008/12/19(金) 15:19:20 ID:yzWk+963
おねがいしまーす 1.$_SERVERの値を書き換える事ってできませんか? 2.変数名の「名前」を取得する関数はありますか? 例) $test = 'test'; echo get_variable_name($test);//←みたいな関数で、出力結果が $test みたいな感じ
>>609 > 1.$_SERVERの値を書き換える事ってできませんか?
もっと具体的に
> 2.変数名の「名前」を取得する関数はありますか?
ない
ある値が入ってる変数名を取得とかならわかるけど
変数名から変数名を取得するなんて発想が変だよ
結局変数名がわかってるからそのまま
echo "\$test"とやればいいのでは?
>>609 ローカルで試してみたら?
<?php
echo $_SERVER["HTTP_HOST"]."<br>";//そのまま
$_SERVER["HTTP_HOST"] = "test";
echo $_SERVER["HTTP_HOST"];//test が表示される
?>
うちの環境では一応できたが、こういうことがしたいの?
何に使うんだ。
612 :
nobodyさん :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は何に使うのか不思議な関数が盛りだくさんなので、ありそう。
>>612 >1
それってFWの設定で解決できるんじゃないの?
てかDBなんてコマンドでたたけよ…
>2
その程度のことを煩わしいというならセッションかグローバルに
値ぶち込んでキーを渡すようにしたら良いじゃん
コマンドでとか効率も悪いだろうにw
>>612 1.$_SERVERはただのグローバル変数なので611の方法で可能
2。知る必要あるの?デバッグ関数とかでも作りたいの?
debug_backtraceとか使えば一応取り出せるけど
与える変数名ごとに場合わけしたいんだろ func_hoge($add) func_hoge($view) func_hoge($delete) とか アホの極みだが
トリッキーなコードを書くやつはいっぺん死んでくれ。 処理速度アップとか理由があるならともかく。
たとえばどんなコード?
PHPにトリッキーな書き方あるならおれも知りたい 載せてよ
別にPHPだからどうとか言うことは無いんだが、 複雑な条件式を無理に1文に詰め込んだりとか、 評価戦略を駆使したアルコリズムを書いたりとか。 しかもそのくせコメント残してなかったり。 とにかくメンテナンスしにくいのが嫌だ。
どうせ三項演算子とか言っちゃうんだろ
参考演算子を入れ子にするやつは死ねばいいよ
自分ねちっこくて陰気だから 気に入らない相手をどん底に落とすことしか考えてない。 相手の落ち度を見つけたら 大袈裟に且つ広範囲(関係者だけでなく社員全員をCCに付けて)に告知。 しかしねっちこい性格だから自分は社員全員から嫌われている。 台風のような扱いをうけてるよ。
大規模WEBシステムの構築にphpって向いてないのでしょうか?
627 :
nobodyさん :2008/12/20(土) 01:22:07 ID:BBPvbgE4
変数名を知りたいとか素人発想だな そんな謎システム組むなよ フレームワークにはそもそもデバッグモードがあるだろ
PHP+MySQLの話は どこの板のどこのスレでするのが 適切かな?
>>631 SQLの質問ならDB板
SQLが出てくるが質問内容がDBを扱う関数のことなどPHPのことならここでOK
>>625 そんなことないと思うよ
ようは何で作るか、では無く、どう作るか?
だと思うけど。
取り合えずオブジェクト思考は勉強したほうがいいよ。あとはDBのレプリケーションとかスケーリング関係かな
質問 「あめぞうウイルス」とはどのようなものだったのか?
>>634 なんでここで聞くの?スレタイ見えないの?バカなの?
餌をやるな
はてなの障害、TITLEのエスケープ漏れだったようだね。 TITLEの中に入れられたすべてのタグが 全部チェック無しで流通してしまったようだ キサマラが「エスケープやサニタイズの話をさせない」 雰囲気を作った結果がこれだ。 責任取るんだろうな。賠償金1億でも2億でも 払ってもらうぞ。
セキュ板でやれ無能
それエスケープって言うのか?
はてなの障害と関係あるのか?
放置しろよ
2008年4月、クエリー・ストリングの中に SQL の列の 名前が使用されていたことによって、米国のある州の Department of Corrections (刑務局) から機密データ が流出してしまいました。この漏洩事件では、悪意の あるユーザーが、表示させたいデータベースの列を選 択するようにして、そのページを送信することで、その データを取得することができたのです。この漏洩事件 によって、アプリケーション開発者がまったく予期しな かったような入力をユーザーが考え出して実行する手 口が明らかになり、SQL インジェクション攻撃に対して 慎重に対策を施す必要があることが改めて示されまし た。
バイナリセーフではない関数の一覧 これらは危険 ereg_replace(), eregi(), eregi_replace(), split(), spliti(), include(), include_once(), require(), require_once() fopen(), file_get_contents(), readfile(), basename()
一切触るな
>>633 そうですか。ありがとうございます。
@ITかどこかのサイトで以前に大規模WEBシステムをphpをで組むのは危険とかなんとか
いう記事を見た事がありましたので書き込みさせて頂きました。
自分で経験してない情報をなんでも鵜呑みにするのはよくないぞ
その話って高負荷分散のケースだね
↑ じゃやっぱりphp大規模WEBシステムには向いてない?って事でFA?
大規模になりやすいシステムの分野がphpに向いてないというか。 銀行系とか。
銀行とか交換機はそもそも別クチだろう
Webシステムに大規模って存在するのかねぇ 見たことないんだが・・
開発者人数が多い、という意味で大規模な開発の場合、静的型付け言語の方が圧倒的にやりやすい。 となると、実際問題Java一択になるわけだ。 PHPで開発してもJavaっぽい書き方になる事が多いので、PHPのメリットが活かせないし。 捌くリクエスト数が多い、という意味で大規模ならば、実行速度の面でやや不向き。 だけど、これははっきり言って誤差の範囲。DB方面とかUIの出来のほうがよほど影響が大きい。 ひたすらに画面数が多く、しかも互いに独立性が高い場合、phpはむしろ向いている。
でもPHPのインタフェースのページってもっさりして重くね?
>>603 if(!---){
return エラー処理A();
]
if (!---) {
return エラー処理B();
}
if (!---) {
return エラー処理C();
}
if(---){
return 通常処理A();
}else{
return 通常処理B();
}
ファウラーの『リファクタリング』「ガード節の導入」を参照。
即returnしちゃまずいっていうなら、即returnできるような形に処理を関数として切り出しておく。
こういう処理を振り分ける部分には、実際の処理内容は一切書かず、こういう風に判定ロジックだけを残したほうが見通しがスッキリする。
意味が分からなくとも、「ifの論理判定を逆転すれば、エラー処理を先に、通常処理を後に書ける」ってのは便利。
可読性が若干落ちるが、エラー処理って大抵数行で終わるしな。
最初のifに対応するelseが1画面に収まる範囲内に無いと、可読性が急激に落ちる。
ヤフーの社員だけど普通にPHPで大規模なことやってますよ
だから開発人数の話だって言ってるだろうが落ち目会社!
661 :
nobodyさん :2008/12/20(土) 16:21:34 ID:5J5Av4Jf
みんな話が混乱しているから、俺が整理するけど。 web開発の現場で使われることがphpとJavaが多いのは、 技術者の数を確保しやすいため。 マイナー言語だと、募集しても集まらないし保守の時も困る。 大規模案件でphpよりJavaが多いのは、一言で言えば安全だから。 大規模ということは、関与する技術者も多い。そして得てして混交玉石。 その中で一定の質を上げるには、型チェックが厳しくコンパイルレベルでエラーが検出できるなどの メリットがあるJavaの言語仕様の方が向いている。 処理速度については、処理を速くする機構を使えば、Javaもphpも体して変わりない。 総括すると、大規模な案件は単価が高い。単価が高いからみんなやりたがるし、競争も激しい。 よって、「全体として」Javaの技術者の方がphpのそれよりも単価が高いし、技術力も高い。 あくまで、これは一般論。
型チェックができることがそんなに有利なの?
>>661 Javaの人はしっかりしてる人が多いもんな。
V2Cの作者とか。
それに比べてphpはバカが多い
XOOPS CUBEやってるやつとか。
女性にストーカーして警察に呼び出されて
注意された連中って、あいつらくらいだろ?
664 :
nobodyさん :2008/12/20(土) 16:30:38 ID:5J5Av4Jf
>>662 Javaの大規模案件を一回やってみれば分かるよ。
型チェックがあることが、どんなに有り難いことか分かるから。
オブジェクト思考がない奴が開発に入ると、どうしてその型が使っているか分からずに、
型でまず苦労するが。
やれば分かるじゃなくてできたら言葉で説明してくれ
昔からやってる人なら、 型あり言語としてC、 型なし言語としてBASIC をやってるから、説明しなくても通じるんだけどねー
ついでに聞くけど、ネットワーク版で、 web屋は馬鹿でもできるけど、ネットワークエンジニアは馬鹿じゃできない、 っていっていたけど、何? web屋だって馬鹿じゃできないでしょ。ネットワークエンジニアがweb屋より優れている点って何?
javaなんてもう廃れ始めてるじゃん 今はどこも.NETだよ
ちょっとミスしたら5万人の回線が止まったり するんですよ
>>660 氏ねコノヤロウ!
ヤフーの正門もくぐれない・就けない・仕事がない(笑)ぐらいの分際で!
あいつらがWEB屋って言ったら 「インターフェースの画面作るだけの人」 くらいの意味で言ってる
>662 一言で言うと、静的型付け言語の方がルールが多く、ルールに沿った書き方しかできないようになっているから、 たとえばPHPのような動的型付け言語は、ルールを無視してstringを要求する関数にarrayを渡したりできるわけだが、 静的型付け言語で同じ事をしようとすると、普通はコンパイル時、最悪でも実行時にエラーになる。つまりそういうルール違反が出来ない。 「こういう変数を渡しましょうね」とコメントに書くより、特定の型のオブジェクトしか受け取れないようにした方が確実だろ? そういう、言語レベルで他人に何かを強制する仕組みは、Javaのような静的型付け言語の方が圧倒的に強力。 まあ、その代償として、Hello, worldを出力するのにクラスが必要、みたいな大仰な事になるのだが。 動的型付け言語と静的型付け言語のプロジェクトの効率は、 「コーディング規約」「ファイル名などの命名規則」がないプロジェクトとあるプロジェクトくらい差がある。 小規模なプロジェクトなら無いほうが効率がいいが、関わる人数が増えてくるとこの差は致命的に効いてくる。
674 :
nobodyさん :2008/12/20(土) 17:45:38 ID:pE0RX0hB
わるい。 php5からサイトのヘッダーあたりが一発で取れる関数があったはずだが なんだっけ?
頑張ってJava勉強したけど、PHPを新たにやらなきゃいけなくなった奴が 発狂してんのか?
>>673 PHPにだってタイプヒンティングがあるのでは?
677 :
nobodyくん :2008/12/20(土) 18:31:55 ID:tNhejazT
>676 ちなみに俺は>656=>673。>661は別の人。 タイプヒンティングは本質的に「静的型付け言語っぽい考え方」なんだよ。 だから、そういう方向に進んでも「静的型付け言語の劣化版」にしかならない。 そもそも、どんな型でも渡せる、型に縛られないというのが動的型付け言語の強み。 タイプヒンティングの考え方は、その強みを消してしまう。 たとえばPHP6では戻り値のタイプヒンティングが有効になるのだが、開発者はこれを「It's not PHP way」と断言している。 できないとは言っていない。>656でも書いたが、あくまで「(言語として)向いていない」っていうのが俺の主張。 Javaが依存性注入とかチマチマやってる中、動的型付け言語はダックタイピングで型に縛られない書き方が出来るし、動的にクラスを生成する事だって自由自在。 それはそれで強み。それで開発効率が上がる事だって多いし、自分ひとりならその方が快適。 だけど、その柔軟性が足かせになる事だってある、って話。 ま、開発言語が自由に選べるなんて幻想だけどな。俺も32bitOSじゃ扱えない額扱うPHPシステム開発やった事あるし。
なんでPHPでも静的型付け言語と同じことができるのにJAVAのほうが強力なの? どちらもできるんなら用途に応じて使い分ければいいじゃん
680 :
nobodyさん :2008/12/20(土) 19:23:22 ID:VXNsKNQ0
動的型付けて単なるスクリプトのことだろ?rubyはチーム作業できにくいのかよ。しんだほうがいいよ
>>680 君のような短絡思考の奴が一番チーム作業ができにくいw
682 :
nobodyくん :2008/12/20(土) 19:53:44 ID:tNhejazT
誰か教えてくれw
>679 2行目には同意。 そもそも、静的型付けってのはできる事を制限する思想だから、「できる事が多い」は別にメリットではない。 という前提で。宗教論争になるから機能比較はしたくないんだが。 ・引数の型によって同名の別関数を呼ぶ、という事ができない。 同様に、引数の数だけが違う同名の関数を定義できない。 ・整数をタイプヒントに使用できない。 これは早晩解決されるだろうが。 ・配列などの宣言時に、中に入る型を指定できない。 ・そもそも実行時までタイプヒントに違反している事を検出できない(関数がどの型を返すか明示できないため)。 PHPしか触れてない奴にも容易に想像が付くものだとこの程度。 総じて「型があるからこそ使える便利な機能」は抜け落ちている傾向がある。 これは言語仕様として型を動的に扱う以上、埋めようがない差異。埋めたら別言語になってしまうし、性能がガタ落ちする。 恐らくこういうのが「It's not PHP way.」という発言の真意だろう。 型を使ってプログラマを制約するのは、PHPの得意分野ではないし、PHPの目指す方向でもない。
>>679 強力という言葉が果たして合うかはわからないが信頼性は高いよ
静的型付けはコンパイル時と実行時の2回チェックが行われる
対して動的型付けは実行しないと問題点がわからない
もう1つ静的型付けにすることによって最適化が図れる
型の定義というのはメモリの確保であるから
書き手が意識して書くことができる
> 型を使ってプログラマを制約するのは、PHPの得意分野ではないし、PHPの目指す方向でもない。 目指す方向について詳しく。
型の制約から開放されたという点で明らかにPHPのほうが優れていると思うんだが
> 型の制約から開放されたという点で明らかにPHPのほうが優れていると思うんだが どういう観点から明らかなの?
>689 型が静的だと、変数が確保する領域のサイズがコンパイル時に分かる。 動的だと実行時まで分からない。後は分かるな。 静的言語に静的型付けを持つものが多い理由のひとつがここ。
692 :
nobodyさん :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 なぜでしょうか・・・・
>>692 $rsLocationsの中身を確認しましょう
$rsLocationsの中身がMySQLが返すリソースじゃないから
怒られてます
>>ヤフーの人 なるほどある程度の大規模システムでもphpでパフォーマンスを損なう事無く 構築する事は可能なんですね。 ヤフー関連のWEBシステムでそんなに思いと感じる事は無いですしね。 >>java と phpを比較して解説してくれた人 @ITのなんちゃって記事を書いている人より分かり易かったです。 それはそうと、自分は.NETマンセーな人間なので、個人的にはWEBシステムは ASP.net一本にしてくれればなぁ、と思ってます。 まぁ、WEB系+クラサバも全て.NET一本にしてしまえば色々とメリットがあると思うんですけどね。 俺の好きな言語の順序 ASP.net >> php >> Java
ASP.netのいいとこってどこら辺なん? 環境構築にもコード書くにもやたら面倒そうな印象だったんだが
ようは ASP.net しか知らないって事だろ?w
昨日からPHP5を始めた者です。くだらない質問をさせていただきま。 if($hen != "")ってあるんですけど、これって=の時?それとも=で無い時?どっち? !って良く解らないです。ビックリしてるわけじゃないと思いますが。
>>701 ここphpのレスじゃないんでしょうか?
> 生産性が全然違うよ。 詳しく教えて欲しい。
また荒れそうな話題だな
ASP.netってWindows環境でしか使えない。 処理のパフォーマンスを重視するなら、あり得ない選択。
PCユーザの何割がWindowsを使ってると思ってるんだ。↑
>>706 すごく突っ込みたいが触れないほうがいいんだろうか。
706 名前: nobodyさん [sage] 投稿日: 2008/12/21(日) 00:39:16 ID:??? PCユーザの何割がWindowsを使ってると思ってるんだ。↑
型に自由度あるphpやperlの適当さはそれはそれでメリットあるけど安全な開発目指すなら逆方向だしな。
いけねリロードしてないせいですでに終わった話題だったか。
>>699 それバグじゃない?
==ってしないと比較はできないよ
=だと代入になってしまう
お前は何を言ってるんだ
a==b これは比較 a=b これは代入
PHPのマニュアルもあんまりよくないと思う。 * セキュリティに関する大切な警告なのに、マニュア ルの後ろの方に書かれている。サンプルコードより前 じゃないと気がつかない人が多そう * 「なぜ使用してはいけないか」が書かれていない。 なので、対策を読んでも OK の場合と NG の場合の 区別がつかない
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 を使いましょう、
と言っているような気がします。一方日本でもこの現象
について触れている文書があります。
結論から言うと、 Shift_JISを素直に使っている限り、 addslashes()は駄目(Chris Shiflett氏)、 mysql_real_escape_string() は駄目(Ilia Alshanetsky氏)、 一部のPrepared Statements すらも駄目(id:jrofbyrsさん)、 ということらしいです。
シフトジスなんて使うバカまだいたのか 大手のケータイサイトでさえEUCで作って鯖でシフトジスに変換して出力してんのに 貧乏鯖でしか借りれない人達はがんばってシフトジス(笑)で年越してくださいな
mysql_real_escape_string()でも SET NAMES sjis;等を実行した後に使うと 2バイト目の0x5C文字がエスケープされない
マスコミの記事でよく見かける表現に、「完全に○○ない わけではない」というものがあるが、これは断定できない ことを言うときの逃げ口上だってことを知っておいたほう がよい。マスコミには許されるが、技術文書には許されな い。技術文書なら、前提を明らかにした上でその前提の 上で何が言えるかを書くのであって、例外があるなら例 外を書くようにする。 セキュリティの解説で「どれも完全じゃないからいろいろや っておこう」という表現が出てきたら、その著者は信頼す るに値しないと判断してよい。書いてる当人がわかってい ないから、問題を整理できていないから、そういう表現が 出てくる。
情報に流されやすい人間はプログラム向いてない さっさとやめろ
文字コード勉強すれば回避できることを長々と・・
元から貧弱性のある文字コードを使う時点でバグが入る率も高まるというのに長々とsjisに拘る貧乏人(笑)
723 :
nobodyさん :2008/12/21(日) 10:51:21 ID:pZUxQjb7
UTF-8にしろって言いたいんだろうが、 UTF-8は、全ての文字が3バイト掛かるんだよ。 サーバー負荷が大きいサイトなら、メモリーが圧迫されることになる。 インフラも含めてプログラミングするのは、真のプログラマーだろ。 そういう視点が抜けているように思うが。
725 :
nobodyさん :2008/12/21(日) 10:54:28 ID:pZUxQjb7
>>724 今更、EUCって何だよ。俺はCCNPだぞ。もっと考えろよ。
CCNPごときがこんなスレにはりつくんじゃねえよ
>>719 >技術文書なら、前提を明らかにした上でその前提の
>上で何が言えるかを書くのであって、例外があるなら例
>外を書くようにする。
これの根拠が示されておらず勝手に決め付けてる。
728 :
nobodyさん :2008/12/21(日) 12:30:16 ID:VviuyWm4
<?php $a=" aaa "; $b=" bbb "; $c= $a.$b; print $c; print "<br>"; trim ($c); print $c; ?> なんかこれで、 全然トリムされてないんだけど???
>>728 アセンブラではないんだからw
$c = trim ($c);
730 :
nobodyさん :2008/12/21(日) 12:52:07 ID:VviuyWm4
>>729 あ、、、
代入しないとダメなんだ、、、
ありがと
マニュアル見れw
732 :
nobodyさん :2008/12/21(日) 13:06:16 ID:VviuyWm4
試せボケ
>>732 自分で試せば分かることをいちいち聞くなクズksgk!
この板は、精神を病んでる反応が多いねぇ。 やっぱ不景気でカツカツな人が多いいの?かわいそうに。
自己紹介乙
だれがどこで自己紹介してるの?
自己紹介乙
>>741 人にものを頼むときにそういう態度でいいのか?
745 :
nobodyさん :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(); /* どっちがいいの? */ } }
俺はつけてない
>>745 本当にそれが両方とも期待する動作をするかどうか確認してみ
ま、SJISは想定外のことをしかねんから使うべきでないってだけだし。 あと日本語のマルチバイトが3バイト使うってだけでUTF8の全てが3バイトじゃないよね? 信頼性と容量どっちを優先するかは好きにすりゃいい。 自分でよりよい案も出せず文句つけるだけの723には無理だけど。
11月末に契約更新に応じなかった派遣、とんでもない爆弾仕掛けていきやがった。 帳票出力アプリ任せてたのに、出力データ取得条件が絶対に1件も持ってこない条件だった。 引継ぎ資料には「帳票が出ないのは整合性の取れたデータが無いためです。アプリの動作は問題ありません」 エビデンスのデータで再テスト行っても出力されず。 技術が無くて作業が進まず、それを隠すために逃げたんだろうな
お前らって、グーグルの面接で 「ニューヨークにはピアノの調律師は何人いるか?」 って質問されたら、答えられなくて発狂するの?
なんで唐突にGoogleの話が出てくるんだか スレ違いな上に頭悪いな
お前らってグーグルで検索できない 質問されると発狂するじゃん
例えばどれ?
いつから人力検索スレになったんだよ はてなにでも池
757 :
nobodyさん :2008/12/22(月) 08:53:52 ID:Cwv0g3tM
通常、PDOって言ったら、それは PECL::PDOのことなの?
758 :
nobodyさん :2008/12/22(月) 08:59:25 ID:Cwv0g3tM
mysql関数と、 mysqliと、 pear::DBと、 PEAR::MDB2と、 PECL::PDOと、 どれを使えばいいの?
759 :
nobodyさん :2008/12/22(月) 09:04:29 ID:Cwv0g3tM
mysql関数と、 mysqliと、 pear::DBと、 PEAR::MDBと PEAR::MDB2と、 PECL::PDOと、 どれを使えばいいの?
動作効率を求めるならネイティブ関数 使いやすさや開発の効率など機能の利便さを求めるならライブラリ
761 :
nobodyさん :2008/12/22(月) 09:20:53 ID:Cwv0g3tM
PDOだけでおk
763 :
nobodyさん :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 不要
=--------------------------
この理解で合ってますか?
あってるよ
765 :
nobodyさん :2008/12/22(月) 09:57:50 ID:Cwv0g3tM
「データーベースに格納するときは htmlentitiesを使ってエスケープする」 という記事を読んだことがあるのですが、 これってマユツバですか?
>763 あってる。というか、可能な時はいつでもprepareを使え。 DB接続のパフォーマンスがどうしても問題になる場合のみ、しぶしぶmysql関数。 それ以外の場合はPECL::PDO(現在はPECLではなく標準ライブラリ)。 きちんとクラス構成ができていれば、書き換えはそれほど手間ではないので、迷ったらとりあえずPDOで書く。
>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権限を奪取される事もじゅうぶんあり得る。
>>765 目的がSQLインジェクション対策でないからしなくていい
DBには生のデータを入れるのが基本
XSS等を意識するのは取り出す時
取り出す時に忘れるかもしれないから入れる時にエスケープする人もいるが
取り出す時にエスケープするのは当たり前なので
穴を防ぐ目的としてはいいかもしれないが根本的な解決にはなってない
>>765 それはPHPが進化する過程の中での話し
マユツバってなに?
771 :
nobodyさん :2008/12/22(月) 11:27:37 ID:YHC8UPCZ
一つ質問させていただきたいんですが 画像キャプチャによるフォームの認証のセキュリティについて 画像キャプチャの下にhiddenでその画像キャプチャの値を設定し 認証の時にユーザが記述した値とhiddenの値を照らし合わせるという やり方はセキュリティー的に問題がありますか? 以前どこかのサイトで 生成された画像キャプチャの値とidを一度データベースに書き込み hiddenには値ではなくIDを設定、 認証時にそのIDからデータベース検索を行い認証するやり方 を目にし上のやり方はセキュリティ的に問題あるのかなと ずっと気になっています。 わかりにくい説明ですいませんがアドバイスよろしくお願いします。
>>771 hiddenの値はHTMLのソース見れば
誰でも見れるよね。
つまり、スクリプト等でhiddenの値を
自動的に読み取るようにして、その値を
連続でぶちこまれたら、アカウント10万個とか
取られてしまうのではないかな?
>>771 金庫に鍵をさしっぱなしで一緒に置いておいても
問題がないならいいんじゃないの?
俺ならhiddenにいれずに簡易に済ませるならセッションに入れる
でもセッションの値ってたいてい クッキーにも書き込んでるよね。 クッキーの値はクライアント側から読めるわけで、 もしアタッカーが、クッキーの値を読み取って、 自動的に連続入力するスクリプトをrubyで書いたら やっぱりアカウント10万個とか取られてしまう。のでは?
>>775 クッキーに記録しなければいいだけじゃん
>>775 すまん、高度すぎて言ってる意味が分らん
クッキーに入ってるのはセッションIDだろ?
画像チャプタってたいがい都度生成だろうからその都度ID変わるし
都度セッションに値セットするなら仮に違うセッションID使われたとしても
セッションの参照先に値が無いからとおらないだろ
SIDやhiddenによるIDがそのまま認証鍵だと思い込んでいるのでしょうね だから安全性に問題があるとは書いている
つかなんでルビー?
780 :
771 :2008/12/22(月) 12:01:59 ID:???
>>773 >>774 たくさんのアドバイスありがとうございます!
今独学でPHPを勉強してるんですが
アプリケーション作成時にXXSやSQLインジェクション、XSRFなど
どんな時にセキュリティを施せばいいかがすごい難しかったりします。
もう少し頑張って勉強してみます。
本当にありがとうございました!
いや、そのhiddenの値は、 ユーザーが手で入力すべき値と 同一なの?
782 :
nobodyさん :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( '北海道', '青森県', '秋田県', … : : … '宮崎県', '鹿児島県', '沖縄県' ); といった感じです。 一体なぜでしょうか? 毎回出るわけじゃなく、アクセスすると条件不明でたまに出るのです。
わからんから、とりあえず 配列の要素を1万個に増やして F5しまくって実験
CAPTCHAで「12345」と出るとしよう。 hiddenに入れる値(以下、キー)に「12345」としたら何の意味もない。これは論外。 じゃあ、推測困難な計算方法で「12345」が導けるようなキーはどうだろう。 たとえば「23456」とか(これだと推測容易なんで、実際はもっと難しい計算を使うべき)。これは悪くない。 これを発展させて、crypt($salt . '12345')とかをキーにする。これも悪くない。まず破られないだろう。 ベストは、キーには「12345」とはまったく無関係の値を入れておき、キーと「12345」の関連付けはDBなどで行なう方法。 これだとDBのデータを知らないと絶対に両者を関連付けられない。 セッション・キーを発行しているなら、もうキーにできる値はあるので、新規に発行する意味もない。 キーとしてセッション・キーを使い、CAPTCHA生成時に「12345」をセッション変数としてサーバーに保存しておけばいいわけだ。
ちょい説明が足りなかったかな。 > これを発展させて、crypt($salt . '12345')とかをキーにする この場合、キーから'12345'は算出不能になる。 答え合わせは、ユーザーの入力した「12345」を同じ方法でcryptして、両者が一致するかで行なう。
>782 Shift_JISでプログラムを書くな。
>>786 でも文字コードが原因だったら
「毎回」エラーが出るのでは?
788 :
nobodyさん :2008/12/22(月) 12:38:02 ID:e1MSnnKM
789 :
nobodyさん :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で返ってくるかと思ったのですが。
var_dump($dbh);
791 :
nobodyさん :2008/12/22(月) 12:56:27 ID:Cwv0g3tM
>>790 やってみたら、
object(PDO)#1 (0) { }
って返ってきました。これって、(0)の部分を
見ればいいの?0ってことは失敗してる?
794 :
771 :2008/12/22(月) 13:29:14 ID:???
>>781 そう考えてました。
掲示板の新規登録のところを作ってたんですが
個人情報を扱う場所じゃないから
そこまで厳しくしないでいいかなと思ってました・・
明らかに無知ですよね・・
もう少ししっかり勉強します。
>>784 丁寧な説明本当にありがとうございます!
色んな方法があるんですね。
アプリケーションでも様々な物があり
個人情報を登録してもらうフォームや掲示板の新規登録のフォームなど
各々でどこまでのセキュリティを施すべきかの判断が
本当に難しく感じます。
しっかり勉強しようと思います。
ちなみにどうやって?
796 :
771 :2008/12/22(月) 13:48:07 ID:???
>>795 先日PHPサイバーテロの技法という本を買って
今それを読みながらwebで一つ一つを調べています。
XSSにしてもXSRFにしても言葉と意味はなんとなく理解できたんですが
ただどんな状況下でそういった事が起こりえるのかが
理解できにくく苦労しています。
私自身以前はwebデザイン関係で働いてましたので
情報漏えいに対する危機感は理解しているつもりです。
それで今いい勉強の仕方を考えているんですがなかなか難しいですね。
私事ですいません。
>>797 seoのために2ちゃんで宣伝ごくろうさまです作者様
> その本を燃やせ。というか、出版社を燃やせ。 精神に障害かかえてるのなら、病院行けよ。
最初からそういう画像だったのね
休みに入りましたからね 大人しく本を買って来て読めw
It Works! だったら動いてるんじゃないの?
810 :
nobodyさん :2008/12/22(月) 15:29:24 ID:AQe0W6WJ
すいません、表示してませんでした ちなみにxpのsp3です
Apacheのエラーログを読め。 原因究明に必要な事はすべてそこに書いてある。
どうせphp5ts.dllとかその周りのdllを入れ替えてないんだろw
xamppにすれば?
2.2だったら2.2用のDLLじゃないとだめじゃん
>>775 自動化してアカウント取るなら別に他人のクッキー読むとか関係なくね?
>>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();
> }
>>818 普通にifのほうが初心者向きなんじゃ・・
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 系を発行するのはよくないと聞いています。 では何を使って解決すればいいのでしょうか。 よろしくお願いします。
821 :
nobodyさん :2008/12/22(月) 17:09:03 ID:Cwv0g3tM
>>820 skip-character-set-client-handshake
822 :
nobodyさん :2008/12/22(月) 17:10:31 ID:Cwv0g3tM
default-character-set = utf8
824 :
820 :2008/12/22(月) 17:41:45 ID:mD1ma74F
>>823 出し忘れてました。すみません。
>>821-822 ローカルではその方法で可能なのですが、本番のサーバーはレンタルなので、権限がないのです。
query メソッドで SET NAMES 系を発行する場合はやはり、プリペアドステートメントを使わないと問題ありますか?
データ検索のアプリケーションのため、SQLの条件節がリクエストされてからでないと確定せず、使いにくそうなのですが。
php.iniを書き換える権限が無いってこと?
my.cnfだっけ?
827 :
820 :2008/12/22(月) 17:48:25 ID:mD1ma74F
>>825-826 はい。
my.cnf は通常のレンタルサーバーでは書き換えできないですよね。
mysql_set_charsetを使う
前、mysql_set_charsetで指定しても効果なかった経験あるけど今はそれで設定できるの?
830 :
820 :2008/12/22(月) 17:54:35 ID:mD1ma74F
>>828 調べてみたのですが、どうも、mysql_connect();でオープンする必要があるみたいです。
PDOを捨てる or query()を使わずにプリペアドステートメントを使うか、の二択でしょうかね。
831 :
820 :2008/12/22(月) 18:05:57 ID:mD1ma74F
どうにも解決策が見つからないので、とりあえず頭のほうで $pdo->query("SET NAMES UTF8"); で設定しておいて、 以降のクエリの発行はすべて、プレペアドステートメントを使ってどうにかすることにします。 答えてくださった方、ありがとうございました。
832 :
nobodyさん :2008/12/22(月) 18:14:09 ID:AQe0W6WJ
834 :
820 :2008/12/22(月) 18:38:27 ID:mD1ma74F
>>833 SET NAMES 使っちゃうと、もしかしてプレペアドステートメントも使えませんか?
そうなると、mysql_set_charsetを使うためにmysql_* で自作クラスを組むしかないのでしょうか。
836 :
nobodyさん :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); にしたらダメ。どーなのこれ。
>836 ereg関数はマルチバイトに対応していない。 つうか、pregが完璧に上位互換だからpreg使え。eregはPHP6で標準関数から削除される(PECLへ格下げ)。
ってmb_eregか、ロクに読んでなかった
839 :
836 :2008/12/22(月) 21:27:41 ID:b0EzUWOb
そうそう。個人的にはpregの方が好きなんだけどね。マルチバイト使う時はしょうがなくmb_ereg。 ローカルルールがよく分からんけど、まだage続けたほうがいいのかな? そちらでは正常に動きますかい?
この板には基地外しかいないから、ルールとか気にしたら負けだよ。
841 :
836 :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
842 :
820 :2008/12/22(月) 21:40:42 ID:???
しつこくてすみません。 いろいろ調べました。 結果、PDOには文字セットの変更は伝わらない、伝える手段がないようです。 (SET NAMES しちゃダメってこと……だと思う)。 おとなしく、mysql_* なり mysqli 系にします。 お騒がせしました。
843 :
nobodyさん :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のところに引っ越したほうがいいのでしょうか?
予期せぬ)って書いてあるじゃん そこのカッコの数があってたら、前の部分でカッコの数があってない
845 :
nobodyさん :2008/12/22(月) 22:12:22 ID:UijRZ2Ey
レスありがとうございます。 ローカルでは動いているので、カッコは合っていると思うのですが。 それなのにエラーが出るのは、 php4ではダメという意味かなと推測しましたが、勘違いでしょうか?
予期せぬ)って書いてあるじゃん そこのカッコの数があってたら、前の部分でカッコの数があってない
>>845 勘違いも何も、まったく関係ないエラーメッセージが出てるのに「PHP4ではダメなのかな」っていう発想がずれてる。
出るとしたら Undefined function 〜 とかだよ。
848 :
nobodyさん :2008/12/22(月) 22:27:31 ID:UijRZ2Ey
すみません 135行目の数行前に $zip = new ZipArchive(); これがありますが、これが悪いのでしょうか?
このスレにエスパーはいないので、スクリプトを全うpすればいいと思うよ。
とりあえず、zipが使えるのかphpinfoで確認したら?
851 :
nobodyさん :2008/12/22(月) 22:32:53 ID:UijRZ2Ey
すみません。 その前に、圧縮ファイルの中に書き込むデータを記述するところがあって、 そこが悪いことがわかりました。 $data = <<<MESSAGE なんたらHTML MESSAGE この表記に何か問題あるでしょうか?
853 :
nobodyさん :2008/12/22(月) 22:36:40 ID:UijRZ2Ey
たびたびすみません $data = <<<MESSAGE なんたらHTML MESSAGE の中に、変数を入れているのが悪いのではと推測しますが、 HTMLのなかに変数を入れる場合、変数を""で囲むのでしょうか? 初心者ですみません Perlでは囲まないような気が
エラーメッセージ読んでる? Parse error: syntax error, unexpected ')', expecting '(' in /〜〜〜〜.php on line 135 '('があるべき場所に予期せぬ')'があります。
MESSAGE; 最後はこうだろ
858 :
nobodyさん :2008/12/22(月) 22:53:14 ID:UijRZ2Ey
レスありがとうございます。 MESSAGE; にしていました。 MESSAGEの中に、 <?php header("content-Type: text/html; charset=sjis");なんたら ?> これがあるのが悪いみたいです。 これ(<php? ?>)は、どうやって入れたらいいのでしょうか? 外部のテキストデータを読む?
そのレベルで、スクリプト動的生成とかどうみても危険すぎて笑えるw
x-sjisかshift_jisじゃない?
862 :
nobodyさん :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がダメみたいですね。うーん
>>862 君には才能がないから他の道を行くといい。
864 :
nobodyさん :2008/12/22(月) 23:19:27 ID:UijRZ2Ey
"をエスケープしたらいいような気がしましたが。 これでいいでしょうか?
そんな調子じゃソースさらさない限り前に進まないと思うぞ そのつもり無いならとっとと失せろ
人の話を聞かない奴多すぎw
つまり、こうなってんの? $data = <<<MESSAGE <?php header("content-Type: text/html; charset=sjis"); ?> hogehoge <b>hogehoge</b> MESSAGE;
868 :
nobodyさん :2008/12/22(月) 23:36:55 ID:F+ur7gRG
久しぶりに来たけどなんでこんなに乱立してるんだ
869 :
nobodyさん :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使った失敗談とか教えてくれたらうれしいのですが・・・
なんだあのコード あんなの動くのか
人の話聞かない質問者のひとは egachan か? うざいから、どっか消えろよw
>>869 環境は違うが。
<?php
$data = <<<MESSAGE
<?php
header("content-Type: text/html; charset=sjis");
?>
hogehoge
<b>hogehoge</b>
MESSAGE;
echo $data;
?>
エラーなし、hogehoge って出たぞ。
出るエラーメッセージは何よ?
874 :
nobodyさん :2008/12/22(月) 23:49:50 ID:i5NpGqPt
\(´・ω・`)\ チョキーン
もしかして$dataにheaderが入るとか信じてる?
もちろんZipモジュールインストールしたんだよな?・・・な? リンク先にちゃんと書いてあるし
877 :
836 :2008/12/22(月) 23:51:52 ID:???
流れぶった切って悪いが、
>>836 はどんなかんじ?
SJISの関係かしら。
878 :
nobodyさん :2008/12/23(火) 00:00:12 ID:59V79J7s
皆様すみません 自鯖ではないので、インストールできません。 やはり、原因はZip関数が使えないのだと思います。 ローカルでは動いていますので。 そういう場合、どうすればいいのでしょうか?
首釣って氏ぬ
他人の話を聞かない典型だな
この板は、基地外と話聞かないアホしか来ないのかw
釣りだとしたらつまんないし 本気だとしたら本人の頭が改善できないから無理だな。
よくわからないまま勝手に解決したあとで、釣りでした宣言来そうだなw
884 :
nobodyさん :2008/12/23(火) 01:33:38 ID:59V79J7s
すみません、圧縮の件、初心者です。 検索すると、PECLというのは、PEARとちがって コンパイルする必要があると書いてあります。 それって、自分でレン鯖に入れることできるのでしょうか?
885 :
nobodyさん :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 ); などとなっていると、さらに厳しいです。 これを鮮やかに取り出す方法はないでしょうか? よろしくお願いします。
>>885 pukiwiki のソースでも読んでろ
本気でやるなら、適当なlexerなりHTMLとかのパーサーなりの実装例を読むのが近道かもな。 正規表現一発では無理、仮に出来たとしてもかえって難しい。 状態を持つ再帰構造で頑張るか、ツリー型のデータ構造(Interpretorパターン)を自前で実装する必要がある。
日常五心 「有難う」と言う 感謝の心 「すみません」と言う 反省の心 「おかげ様」と言う 謙虚な心 「私がします」と言う 奉仕の心 「はい」と言う 素直な心
889 :
nobodyさん :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)) { ※同じ値なので二重投稿として判定 } この方法はあってますでしょうか?
何十メガのデータでも、すでに公表されてる例以外には、あんまり衝突することないと思うよ。
md5変換のオーバヘッドの方が文字列の直接比較より大きくないか?
>>889 MD5 に限らずハッシュ関数ってのは特徴を求めるための関数
一意性を求めるための物じゃないので衝突は絶対に発生する
データベースにデータとそのハッシュ値を保存しておいて、
最初にハッシュ値でざっと比較し、その後精査てな感じで利用される
ちなみに書いてくれた方法だとハッシュ値なんて得ずにそのまま比較するだけでいい
893 :
889 :2008/12/23(火) 04:27:42 ID:6F++HAzm
>>890-892 ありがとうございます。
教えどおり直接比較してみることにします。
ちなみに画像データは
hash_fileで比較しようとしてたのですが、これも直接比較する方法があるのでしょうか?
バイナリで比較すりゃいいじゃん
895 :
nobodyさん :2008/12/23(火) 05:08:34 ID:KPRHaWl+
もう一個下の例なら
4だからだろ
>>893 string 型はバイナリセーフなので比較演算子 == が使える
二つのファイルを fread() 等で読み込んで比較するだけ
I/O に掛かる時間は馬鹿にならないから直接比較する機会は減すよう、
それこそハッシュ値やメタ情報(ファイルサイズetc)を活用するといい
PHPのオブジェクト指向の一番カンタンな例 <?php class aaa { var $bbb="はじめまして"; } $ccc = new aaa(); echo $ccc->bbb; ?>
var って必ず無いとダメなのかなぁ?と思って、 <?php class aaa { $bbb="はじめまして"; } $ccc = new aaa(); echo $ccc->bbb; ?> って、「var」を削って保存して実行してみた。 結果、問題なく表示される。varいらないジャン?
それは良かったね
ごめんvarが無いとエラーになった まちがえてたごめん
903 :
nobodyさん :2008/12/23(火) 10:51:31 ID:gaPLrdeb
CackePHP使ってる人っているんですか?
varなんてどうせ使わないから問題ない。 全部privateが基本だからな。
まだPHP4も現役だぜ?
907 :
nobodyさん :2008/12/23(火) 11:43:13 ID:gaPLrdeb
個人サイトで使ってる人って少ないですよね
4も5も通用するvarを使う以外にありえん
php4をいつまでも考えてるから世間は移行しない
何を言ってるんだお前は
>>907 普通個人サイトつったら簡単な処理にphp入れてるぐらいだからな
例えば背景をランダムで出したり今日の日付出したり
ブラウザで条件分岐したりとjavascriptでできるようなことをやってるのが多い
掲示板などのWebアプリケーションにしても
わざわざ自分で作って運用してるほうが稀
新しいシステムを作るのにいまさら4はあり得ないだろ。 既存システムの保守/拡張のために使わざるを得ない時にしぶしぶ使うのが4。 まあ、いまだにPHP4のシステムを何の移行計画もなく運用してる所なんてクズ企業だけだろうが。 (移行しない=機能拡張しないor使い捨てる、というのまで計画に含めての話) >907 Cakeに限らず、フレームワークを個人で利用する意義はかなり薄い。 覚えるまでのコストが高いからな。設置も難しいし。 どっちかっつーと大量のプログラムを作るプロ向け。技術的な難度というよりも、性質上そういうもんなんだよ。
913 :
nobodyさん :2008/12/23(火) 13:14:45 ID:gaPLrdeb
914 :
nobodyさん :2008/12/23(火) 13:39:36 ID:KPRHaWl+
予約語の取り扱いの定義がいまいちアイマイだな 「予約語は、関数の名前として使用できません」 と書いてあるのもあるし、 「使用できますが、混乱を招くのでおすすめできません」 と書いてあるのもあるし。 マニュアルによって、言ってることが違うんだよな。
後者言ってるページてどれ?
916 :
nobodyさん :2008/12/23(火) 13:53:03 ID:KPRHaWl+
どこに使用できるなんて書いてあんの?
919 :
nobodyさん :2008/12/23(火) 15:07:29 ID:KPRHaWl+
OOPなんだけど、 newしたら、必ずメソッドを呼び出して 使うというのがノウハウというか、 通常の流れなの?
"必ず"ではない
921 :
nobodyさん :2008/12/23(火) 15:25:29 ID:KPRHaWl+
でも初心者向けのサンプル見ると、 ほとんど全部そういう流れなんだよね。 クラスを定義して、 そのクラスの中でメソッドを定義して、 そんでnewして、メソッドをよびだして、、、て流れ。
まじでか
923 :
nobodyさん :2008/12/23(火) 15:34:12 ID:KPRHaWl+
OOPなんだけど、OOPって、言語によって、主に、 (1)多重継承できるOOPと、 (2)多重継承できないOOPと、 2種類あるようなんだが、この理解であってる? ちなみにリサーチには5分かけました。
クイズか? 2元に分けたいかどうかは自由だが、 普通、できるかできないかのどちらかだよな?
927 :
nobodyさん :2008/12/23(火) 15:42:27 ID:KPRHaWl+
ちなみに、PHPのOOPは多重継承できないみたいですが、 どう考えても多重継承できた方が便利だと思う夕暮れなのですが、 皆様いかがお過ごしでしょうか。
暇つぶしに答えてるんだが、もちっとおもろいネタ考えてくれ。 だいたい、テンポ遅い。もうすこしがんばれ
929 :
nobodyさん :2008/12/23(火) 15:43:27 ID:KPRHaWl+
すいません、多重継承って言葉の意味がわかってませんでした。
930 :
nobodyさん :2008/12/23(火) 15:44:07 ID:KPRHaWl+
「単一継承では,あるクラスのスーパー クラスは簡単に決まります。直接上のス ーパークラス,そのスーパークラス,その またスーパークラス,…と一列に並ぶ単 純な関係です。」 ↑これが多重継承だと思ってた
ルーズに多重継承出来た方が便利という奴と、 多重継承を制約しておいた方がクリーンな実装ができるという奴がいる。 おれは後者、あなたは前者。
多重継承を多用するやつは、interfaceとコンポジッショの使い方がへぼいのな
934 :
nobodyさん :2008/12/23(火) 15:51:33 ID:PHOPDLlW
配列に特定の文字があるか調べたいと思います。 $array = array("今日は晴れです"); if(array_search("晴れ",$array)){ echo 1; } としたのですが、1が出力されません。 in_arrayだと完全一致になるし、forで配列を1つずつ読み込みながら 確認するのも負荷がかかりそうです。良い方法はないでしょうか?
> forで配列を1つずつ読み込みながら > 確認するのも負荷がかかりそうです 負荷の話はやってみてからにしようぜ array_map preg_match を組み合わせてもいいが一緒
つ preg_grep
937 :
nobodyさん :2008/12/23(火) 16:01:41 ID:KPRHaWl+
そういうときって正規表現使うのが一般的なんじゃないの?
938 :
934 :2008/12/23(火) 16:01:47 ID:???
>>935 「禁止単語の指定」なるものを作っているのですが、
入力項目1つに対して、調査する検索単語分のforが必要になると
負荷がかかると思うのです。実際にやっても少し重くなりました。
>934 array_searchは「配列の中に"晴れ"が存在するか?」であって、「配列の中の文字列に"晴れ"が存在するか?」じゃないからな。 使うのはarray系のメソッドじゃなくて、文字列検索系のメソッドだ。 お前のやりたい処理は本質的に「配列を1つずつ読み込みながら確認する」事なのだから、コードがそうなるのはむしろ自然。 それと、負荷問題を想像で語るな。 遅くともいいから動くものを作って、それから速度を気にしても遅くない。
なんか、異次元のソースだな
941 :
934 :2008/12/23(火) 16:04:59 ID:???
>>936 preg_grepで出来ました!ありがとうございます。
>>939 負荷云々は実際にやった上での意見ですから・・。
942 :
nobodyさん :2008/12/23(火) 16:06:04 ID:KPRHaWl+
>>938 それって掲示板とかで
「アホ」とか「死ね」とかって書けないようにするとか
そういう処理だよね。だったらやっぱり正規表現じゃないの?
perlのスレだったら2分でコード出してくるよ
>>935 (なぜ、ID出さん?)
それは設計の問題だろ
> 入力項目1つに対して、調査する検索単語分のforが必要になると
> 負荷がかかると思うのです。
検索単語分のforが必要になるとか、どうかしてる
ああ、目視とはいえ負荷のチェックはやってるのか、失礼。 検索対象が複数あるような状況でpregを使ったら死ぬほど遅くなるから、文字コードを揃えてからstrposないしstr_replace使え。 それ以上の高速化は転置インデックスでも生成するしかないが、よほど大量に処理するのでなければ生成のコストのほうが高い。 何より、コードが読みづらくなる。
そうそう、配列を育成するとかいう段階でなんか間違ってると思え
負荷の話なんて、 プランA、プランBがあって、相対的にどちらが重いから良い方を選択する。 動かないソース提示しといて、負荷計測しましたってなんだよそれ
次、行ってみよう
forもおちおち使えない糞マシンっていつの時代の遺物だよw
ブラウザー(笑)
環境によってはエラーがディスプレイに出力されないから気付かない人もいるだろうね
そりゃ自分のphpの設定次第だろ
>>936 で答えが出てるのに、なんでみんなそんなに燃えてるの?
それとも一人だけ?
↓こいつだけ
お、おれ?
i⌒ヽ;;|. -=・=‐ .‐・=-.|
文字列中に特定の文字があるかどうか調べるならstrposでいいだろ 何でもかんでも正規表現使う奴は頭悪いよなー それしか知識の引き出しがないんだろうなー
学校が休みに入ると毎回こういう流れになる あつくなる奴は学習能力ないのかw
いや、たぶん、掲示板のNGワード実装だと、 NGワードが大量にあって、対象文字列も長い。 そうすると、単純にstrposは使いづらいってことだろう。 でも、配列ってのは頭使わな過ぎ。
preg_grepは入力が配列で、その各要素に対する検索が正規表現だろ? そもそも投稿記事が配列というのが謎
謎ではなくて単に関数の用途を理解してないだけ
関数の用途を理解していないのではなくて単に入力のデータ構造を理解してないだけ
>文字列中に特定の文字があるかどうか調べるならstrposでいいだろ どうしてこういう結論を出したかkwsk聞こうか まさか思いつきとかなんとなくで書いたわけじゃないだろうな
4年目の奴、知識だとか資格はすごい多いんだわ。 それだけで天狗になっちゃってる感じ。 知識とスキルは違うんだよ。仕事ってのは学校の試験と違って わかるところから片付ければ良いわけじゃないし、最後には 百点の状態にしなければならないんだってのが理解できないらしい。
お前よりは出来ると思う
無職必死だなw
休みパワーってすごいな 1日ぶりにみたらこんなスレ伸びててビックリだ
なんかFireFoxだと普通に見れるんですが、IEだとリダイレクト繰り返して Internet Explorer ではこのページは表示できません ってでてくるんですが、 Header関数使ってないのにリダイレクトしまくるって事あるんでしょうか?
IE7.0.5730.13です
>>972 ブラウザのバグかも。PHPに関係なくブラクラっぽくなるw。
976 :
nobodyさん :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; ?> なんかこれでエラーなるんだけど??
ヴぁーじょんぐらい書けや
マルチ乙 > エラーなるんだけど?? だからなに? エラーが出たらエラーメッセージとphpのバージョン必須
979 :
nobodyさん :2008/12/23(火) 18:43:51 ID:KPRHaWl+
Parse error: syntax error, unexpected T_SL in PHP5
php5ってw なぜ省く
マニュアルくらい見ろ
982 :
nobodyさん :2008/12/23(火) 18:47:10 ID:KPRHaWl+
もしかしてNowdocって5.2.6では使えない?
983 :
nobodyさん :2008/12/23(火) 18:47:45 ID:KPRHaWl+
「PHP 5.3 α1に実装」とかって書いてある 実装されてない機能の解説記事を書くなよ
文字通りPHP 5.3 α1に実装されてるが
> 「PHP 5.3 α1に実装」とかって書いてある ID:KPRHaWl+って日本語読めるのか、知らなかった
MLに参加して、予定している機能はドキュメント化するなって要望を送ればいい。 一人を除いてみんな知ってる話だからな。
Nowdoc ・・・
注意: Nowdoc のサポートは PHP 5.3.0 で追加されました。 古い記事見てるんだな、α1とか
5.2.8が最新版なのか 入れたほうがいいのかな? でもxamppに入れてくれないと インストールできない、、、
xampp(笑)
xamppを初心者向けに解説してる本やサイトは罪を償うべきだな
どうやってだw 自業自得だからいいんじゃないの
埋め
1000ならphpは今後スタンダードになっていきrubyは滅びる
xamppはなんて読むの くっさープップッ?
メリークルシミマス
.
1000ならジュースでも飲むか
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。