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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2007/09/29(土) 18:35:56ID:YlkpEUW6
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

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

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

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

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

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


0002nobodyさん2007/09/29(土) 18:37:31ID:YlkpEUW6
■過去ログ
【PHP】下らねぇ質問はここに書き込みやがれ 53
http://pc11.2ch.net/test/read.cgi/php/1188047468/
【PHP】下らねぇ質問はここに書き込みやがれ 52
http://pc11.2ch.net/test/read.cgi/php/1186794483/
【PHP】下らねぇ質問はここに書き込みやがれ 51
http://pc11.2ch.net/test/read.cgi/php/1185521566/
【PHP】下らねぇ質問はここに書き込みやがれ 50
http://pc11.2ch.net/test/read.cgi/php/1184143801/
【PHP】下らねぇ質問はここに書き込みやがれ 49
http://pc11.2ch.net/test/read.cgi/php/1182794620/
【PHP】下らねぇ質問はここに書き込みやがれ 45 (※実質48)
http://pc11.2ch.net/test/read.cgi/php/1180181033/
【PHP】下らねぇ質問はここに書き込みやがれ 47
http://pc11.2ch.net/test/read.cgi/php/1180181033/
【PHP】下らねぇ質問はここに書き込みやがれ 46
http://pc11.2ch.net/test/read.cgi/php/1178955837/
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1178955768/
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1177635762/
【PHP】下らねぇ質問はここに書き込みやがれ 44
http://pc11.2ch.net/test/read.cgi/php/1176364487/
【PHP】下らねぇ質問はここに書き込みやがれ 43
http://pc11.2ch.net/test/read.cgi/php/1175368910/
【PHP】下らねぇ質問はここに書き込みやがれ 42
http://pc11.2ch.net/test/read.cgi/php/1174217841/
【PHP】下らねぇ質問はここに書き込みやがれ 41
http://pc11.2ch.net/test/read.cgi/php/1173163186/
0003nobodyさん2007/09/29(土) 18:38:21ID:YlkpEUW6
関連リンク
■本家マニュアル   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/
0004nobodyさん2007/09/29(土) 18:38:55ID:YlkpEUW6
【簡易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プログラムとして実行された結果になる。
0005nobodyさん2007/09/29(土) 18:39:41ID:YlkpEUW6
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に保存?
 → 好きにしてください
0006nobodyさん2007/09/29(土) 18:51:13ID:???
 \/: /: : : /: /: : : : : : /: /: : |: : : : l: : : ヽ}   \
  /: /: : : /: / : : : : :://://: :∧ : : : :|: : : : |     〉
 l: |: : :  |: /: : : : :/ /" /: :/  \: : :.|: : : : |   /
 |: :ハ: : : |: |二ニ==ェニフ´   /, へ、____>':「: |: : : レ'
 ヽ:|∧: : |: |く/フこ^ヽ\ /   / _ェ‐‐、=、`|: : |: : l: :|
  ∧ヘ: : |/ |r^{:::}゚ |  "      |^{;:::}r^} 〉 |: :/: : l: :|
  /: : |\: |ヽ >ー‐'        ヾ_こ_ソ  /:/: : :/ /|
 / : : {. \ヽ :::::::     ヽ     `ー―' /イ: :/ /: |
./: : : ∧  ト >   , へ、___   :::::/ /: ///: l: |
 : : : i^ヽ *\    / /´    :::::ヽ    // ノ/: : l: |  下らねぇ質問はここに書き込みやがれ
 : : /レ⌒ヽ、.  ヽ、 ヽ、_     :::ノ  , イァー‐く`¬ : l::|  って言ってるですぅ。
 : / / / ,へ. l| ` 、    ̄ ̄ ̄, ' rーく \.  |` ト、:.l::l
 ::/ .| '  / /ヽ|    >= ァ  ̄  /^ヽ  ` ヽ. | 〈 ヽ::|
: /  |       / |  /⌒/L「\.   |       ./ /  | |
0007nobodyさん2007/09/29(土) 22:12:08ID:m/9bviMM
お手数ですがみなさんの力を貸してください。
dat.txtにaというテキストが入っていたとしてこれを取得してaと同じならば
等しい、それ以外ならば等しくないと表示させたいのですがうまく行きません。
何か良い方法はありますか?

$fp=@fopen("dat.txt","r") or die("ファイル読み込みオープンエラー");
while(!feof($fp)){
$line=fgets($fp);

print $line."<br>";

if("a"==$line){
$error="等しいです";
}else{
$error="等しくありません";
}
}
fclose($fp);
0008nobodyさん2007/09/29(土) 22:35:37ID:???
>>7
改行コードじゃないかな
0009nobodyさん2007/09/29(土) 22:39:46ID:m/9bviMM
>>8
アドバイスありがとうございます。
早々アドバイス通り比較の部分にも改行コードなどを付加する等の処理を施しましたが、上手くいきませんでした。
ウインドウズ環境なので改行コードは\r\nにしました

if("a"."\r\n"==$line){
$error="等しいです";
}else{
$error="等しくありません";
}
0010nobodyさん2007/09/29(土) 22:41:00ID:???
trim($line)
0011nobodyさん2007/09/29(土) 22:41:37ID:???
>>7
<?php echo '等し'.(@file_get_contents('dat.txt')=='a'?'いです':'くありません');
0012nobodyさん2007/09/29(土) 22:44:39ID:???
>>7
echo $error
0013nobodyさん2007/09/29(土) 22:50:34ID:???
>>7
echo bin2hex($line);
を見てみ。

ファイルを読み込むのは、file_get_contents() でもできるよ。
文字列比較は、strcmp() を使う方がいいかな。
0014nobodyさん2007/09/29(土) 22:55:14ID:vw2Lts3b
>>7
$errorの中身を表示するコードが書かれていないからです。
0015nobodyさん2007/09/29(土) 22:56:39ID:vw2Lts3b
おっと、 >>12が先に言っていた。
0016nobodyさん2007/09/29(土) 22:57:44ID:m/9bviMM
もうしわけありません。
print $error;が抜けておりました。しかし、これを付け加えても
等しくありませんとなってしまいます。
file_get_contents()で検索してみたのですが、これはファイル内容を
全て読み込む関数でよろしいですか?
その場合、テキストに改行して書いてあった場合その通りに表示するには
またこれ用の関数があるのでしょうか。。。
0017nobodyさん2007/09/29(土) 23:00:29ID:vw2Lts3b
>>13
> 文字列比較は、strcmp() を使う方がいいかな。

なぜですか。
0018nobodyさん2007/09/29(土) 23:01:13ID:YnYts4Cn
一気にやろうとするなよ
・まずファイルの中身を読み取って出力させる
・次に1行ずつ文字列と比較して真偽を見る
とか順序だててやらないとウンコ漏らすことになる
0019nobodyさん2007/09/29(土) 23:03:03ID:m/9bviMM
やはり8さんがおっしゃっていた改行コードの問題なのでしょうか。
dat.txtにa一文字だけ書いて比較すると正常に等しいとなるのですが、
a
b
c
d
e
としてdat.txtに書き込んだ場合、aがあるにも関わらず等しくないとなるのです。
0020nobodyさん2007/09/29(土) 23:05:14ID:???
\r\nでだめなら\rにしてみな!
0021nobodyさん2007/09/29(土) 23:05:41ID:YnYts4Cn
$logs = file(ファイルへのパス);
foreach ($logs as $log) {
$log = rtrim($log);
if ($log == 'a') {
$print = '等しい';
} else {
$print = '等しいわけない';
}
}
print $print;

でやってみて
0022nobodyさん2007/09/29(土) 23:07:00ID:m/9bviMM
>>20
それも試してみましたが、うまくうごきませんでした。
printでも改行コードまでは表示されないので、どう比較していいか悩んでいます
0023nobodyさん2007/09/29(土) 23:08:02ID:m/9bviMM
>>21
丁寧なアドバイスありがとうございます。
早々試してみます。
0024nobodyさん2007/09/29(土) 23:08:19ID:???
さっき書いたけど。
echo bin2hex($line);
を見たら改行コードが入ってるのが分かるんだけどな。
'0a' とかみたいに16進数で表示されるから。
0025nobodyさん2007/09/29(土) 23:09:26ID:YnYts4Cn
>>23
もちろんログファイルの中身は>>19
0026nobodyさん2007/09/29(土) 23:13:05ID:m/9bviMM
>>24
ありがとうございます。無知ゆえ、改行コードが16進数で表示されるとはわかりませんでした。
そちらも視野に入れて色々じっけんしてみます。
0027nobodyさん2007/09/29(土) 23:16:24ID:m/9bviMM
>>24
改行コードは見えたのですが、行数によってコードが違うので比較できそうにないのですが、
これは比較の方法があるのですか?
0028nobodyさん2007/09/29(土) 23:18:17ID:m/9bviMM
>>21
ためしてみましたが、やはり19と同じ模様です。
一行だけaが記述されていると等しくなるのですが、
a
b
c
とかってして読み込んで比較すると等しくなりませんでした
0029nobodyさん2007/09/29(土) 23:18:25ID:???
一流のハッカーならやって見せるさ。
0030nobodyさん2007/09/29(土) 23:18:43ID:???
>>17
今回の場合だといいかもしれないけど、PHPだと、

if ('2a' == 2)
が真になってしまうから。

=== を使うか strcmp() を使う癖を付けないと危険。
0031nobodyさん2007/09/29(土) 23:19:55ID:???
> if ('2a' == 2)
> が真になってしまうから。

なにこの糞言語www
0032nobodyさん2007/09/29(土) 23:20:11ID:vw2Lts3b
>>21
$printの中身を表示するコードがforeachループに外にあるのは間違いでしょう。
0033nobodyさん2007/09/29(土) 23:24:10ID:???
30の続き。
以下の記事に詳しく書いてある。
ttp://d.hatena.ne.jp/gallu/20061108/p1
0034nobodyさん2007/09/29(土) 23:24:53ID:m/9bviMM
>>32
21のアドバイスでも32のアドバイスもよいと思いますが、私は等しくないと何度も付加したくないので
(foreachの中にプリント入れると全ての処理に対して等しくないをつけてしまう)21のアドバイス
で納得しました
0035nobodyさん2007/09/29(土) 23:28:38ID:m/9bviMM
>>33
へぇーこれは驚きですね。今までならってきたifの概念からすると比較できそう
にないとおもってしまいますが、こういう事実もあるのですね。
0036nobodyさん2007/09/29(土) 23:28:57ID:vw2Lts3b
>>30
そうですね。
1つ気を付けることは、 ===演算子で比較した場合は、 同値の時にTRUEを返すのに対し、
strcmp()関数を使った場合は、 同値の時にFALSEと評価される0を返すということです。

同値かどうかを判断するなら、 ===演算子の方が分かりやすいでしょう。
0037nobodyさん2007/09/29(土) 23:31:02ID:YnYts4Cn
>>32
スタックしてた
脳内で
吊って来る
0038nobodyさん2007/09/29(土) 23:35:00ID:vw2Lts3b
>>34
$printの中身を表示させるコードをforeachループの外に書いてしまうと、
最後の行が "a" と等しいか等しくないかしか分かりませんよ。

>>21の言いたいことは、 trimを使って改行を削除せよということでしょう。
0039nobodyさん2007/09/29(土) 23:35:39ID:m/9bviMM
しかし、あれやこれやと試しているのですが、なかなか上手くいかないですね・・・。
例えばパスワード登録フォームってありますよね。他の人と同じパスワードを登録
しようとすると、現在そのパスワードは使用中ですとかって出ますよね。
そういうようなプログラムを実現したいのですが、素人目の判断ではなく実際の現場では
どのように記述されているのでしょうか
0040nobodyさん2007/09/29(土) 23:37:03ID:m/9bviMM
>>38
どうやら私の解釈がまちがっていたようです。失礼いたしました
0041nobodyさん2007/09/29(土) 23:40:58ID:m/9bviMM
あ、でもまだクラスとかよくわかってない私が現場のスクリプトを聞くなんておごまかしいことでしたね(笑)
0042nobodyさん2007/09/29(土) 23:41:47ID:???
>>39
> 実際の現場では

実際の現場?
パスワードを入力されたらそれをMD5などでハッシュ化しデータベースに保存。
チェック時は入力されたパスワードを再度ハッシュ化しデータベースを検索。
0043nobodyさん2007/09/29(土) 23:43:11ID:m/9bviMM
>>42は業界の方ですか?
やっぱりパスワードとか扱う場合はテキストファイルじゃなくてデータベース使うんですね。
自分はMySQL入れています
0044nobodyさん2007/09/29(土) 23:45:09ID:???
パスワードとか扱う場合だけじゃなくて、
ほとんどの場合データベースを使う。
テキストファイルはログ吐くぐらいにしかつかわない。
0045nobodyさん2007/09/29(土) 23:47:40ID:???
こういう判定の仕方もある

if(strstr($line, "a") === false){
 print "等しくない";
} else {
 print "等しい!";
}

今回は一文字だけど特定の単語が含まれるかどうかの判定もできる
0046nobodyさん2007/09/29(土) 23:49:28ID:m/9bviMM
なるほど。なるほど。
みなさんありがとうございます。今日はもう休みますが、明日また続きを
やりたいとおもいます。
0047nobodyさん2007/09/29(土) 23:55:23ID:???
次の患者さんどぞ〜
0048nobodyさん2007/09/30(日) 00:04:09ID:???
>>27の意味がよく分からなかったけど、聞くのを忘れてしまった。
0049nobodyさん2007/09/30(日) 01:22:21ID:???
>>7
>>19
実はprint $error;をループの外に置いてて
ファイルの最後の行の結果で上書きされてた
ってオチじゃないの
0050nobodyさん2007/09/30(日) 01:35:44ID:vTnMvhRC
スレッド式掲示板をつくりたいと思ってます。ログの分け方なのですが、
1スレッド1ファイルにするのと、1ファイルに全部まとめるのは
どちらがいいでしょうか?

ファイルが大量にあると鯖の動作にも影響でそうな気もしますし、
ログを1つのファイルにまとめると読み込むときに負荷が気になります。
0051nobodyさん2007/09/30(日) 01:55:03ID:???
やってみればいいだろが
0052nobodyさん2007/09/30(日) 02:34:19ID:???
>>50
DBに格納するのがいいと思う
0053nobodyさん2007/09/30(日) 02:56:59ID:???
>>50
一般的な個人のページだと、
スレッド式にしたところで年間に書き込まれる数なんて合計100レスいくかいかないだろ?
だからあんまこだわらなくてもいいんじゃないかね。
とはいえやっぱファイルを分けたほうが管理しやすいだろう。
保守性を考えた組み方をしたほうがいいよ。
まぁDBを使えないとか特殊な環境以外ではDBでやったほうがいいけど。
0054nobodyさん2007/09/30(日) 03:25:14ID:???
>>50
そのスレッドって各スレをageたりsageたりできるの?
1ファイルでやるとスレの順番の入れ替え表示は手間になるよ。
ログファイルを丸ごと配列に読み込める程度の量なら簡単だけど、
かなり分量が増えることを想定してるんでしょ?
あと、レスデータってスレごとにまとめるの?それとも行の頭にスレNo.でもつけて
単純にファイル末尾に付け足して表示のときにスレごとに集めるの?
レスの書き込みはやっぱ末尾にappendでやった方が簡単だし
出力時間が短くなる分、ファイルのクラッシュ率も低くなるけど、
スレのデータがファイル中に分散してると表示に手間食うよ。
0055nobodyさん2007/09/30(日) 15:38:25ID:aR8s0UFr
phpをコマンド実行すると以下のエラーが出てしまいます。

$ ./hoge.php
hello
Abort trap (core dumped)

hoge.phpの中身は以下のとおりです。
#!/usr/local/bin/php
<?php
echo "hello\n";
?>


"Abort trap (core dumped)"が出ないようにするためにはどうすればよいのでしょうか?

OSは、
$ uname -r
5.4-RELEASE-p6
です。

よろしくごきょうじゅ願います。
0056>>552007/09/30(日) 15:53:22ID:aR8s0UFr
すいません、OSの種類かいてませんでした。。。orz

FreeBSD

となります。

0057nobodyさん2007/09/30(日) 16:04:23ID:hOfwjY6s
こんにちは昨日質問させて頂いた7です。
皆さん昨日はありがとうございます。今日も挑戦したいとおもいます。

$logs = file("dat.txt");
foreach ($logs as $log) {
$log = rtrim($log);
print $log;
if ($log == 'd') {
$print = '等しい';
} else {
$print = '等しいわけない';
}
}
print $print;

rtrimが入っているので前後の改行・空白は取り除けているはずなのですが、
比較するとどうも等しくないと出力されてしまう症状は変わりませんでした。
引き続きアドバイスをよろしくお願いいたします。
rtrimでは取り除けない改行文字が存在するということなのでしょうか?
0058nobodyさん2007/09/30(日) 16:10:01ID:???
ごめん、昨日の21だけどprint文をループの中に入れて
0059nobodyさん2007/09/30(日) 16:11:10ID:???
>>57
rtrimって後ろの空白文字だけ削除でしょ。文頭に空白文字入ってるとか。
print "[".$log."]\n";
で$logの中身見れば?
もしくは$logの中身が'd'じゃなかったりw
0060nobodyさん2007/09/30(日) 16:14:30ID:hOfwjY6s
>>21
はい。いまちょっと進展があって理由はわからないのですが、なぜかこうすると正常に判断されます。
if(isset($_POST["md5"])){
$passwd=crypt($_POST["md5"]);
$input=htmlspecialchars($_POST["md5"]);
}else{
$_POST["md5"]="";
$input="";
$passwd="";
}
$error="";
print $input."<br>";
print $passwd."<br><br>";
$dat=$input."\r\n";
$file_handle = fopen("dat.txt", "r");
while (!feof($file_handle)) {
$line = fgets($file_handle);
echo $line."<br>";
if($line==$input){
$error="error";
}
}
fclose($file_handle);
if(!$error){
$file=@fopen("dat.txt","a") or die ("ファイル書き込みオープンエラー");
flock($file,LOCK_EX);
fwrite($file,$dat);
flock($file,LOCK_UN);
fclose($file);
}else{
print "使用中のパスワードです";
}
0061nobodyさん2007/09/30(日) 16:15:48ID:hOfwjY6s
>>59
失礼しました。両方の空白はtrimでした。
0062nobodyさん2007/09/30(日) 16:18:08ID:hOfwjY6s
どこでどう等しいと判断されたのか謎ですが、textフォームからとってきたものを
dat.txtとひかくして等しくなければ書き込み処理を行うとすると正常に動作します。
0063nobodyさん2007/09/30(日) 16:56:33ID:hOfwjY6s
みなさんありがとうございます。悩んだ挙句何とか解決しました。いまいち釈然としませんが・・・。
私の書いたものは動き的には21と大差ないとおもうのですが、なぜ21の文法で動かないのか理解出来ませんでしたが。こうしたら等しいと出ました。
dat.txtに改行して
a
b
c
d
e
f
g
と入れます。そしてcを比較すると等しいですと出ました。

$dat="";
$fp = fopen("dat.txt", "r");
while($str = fgets($fp)) {
// 文字列比較
$str = trim($str);
if ( $str == "c" ) {
$dat="等しいです<br>";
}
}
fclose($fp);
print $dat;

0064nobodyさん2007/09/30(日) 17:00:01ID:hOfwjY6s
因みに参照したHPはここです。
http://ml.php.gr.jp/pipermail/php-users/2004-April/021654.html
fileで一行ずつ取得しようが、fgetsで取得しようが動きは同じだと考えていたのですが
取得したときになにかあったのでしょう。(それが何かはわかりませんでしたが)
0065nobodyさん2007/09/30(日) 17:35:07ID:Uem6Q7XY
phpでJavaのEL式みたいに書くのって${〜}だけじゃいけませんでしたっけ?
例で言うなら
<?php define("NAME","test") ?>
<html>
<body>
${NAME}
</body>
</html>
みたいな感じで。
0066nobodyさん2007/09/30(日) 17:35:09ID:???
>>63
>>21の、rtrimをtrimに、上書き防止用にelse文以下を削除、してもダメだった?

$msg="";
$logs = file(ファイルへのパス);
foreach ($logs as $log) {
$log = trim($log);
if ($log == 'a') {
$msg = '等しい';
}
}
print "[".$msg."]<br>\n";

>>18氏の書いてるように段階的にとにかく出力させて確認した方がいい気がする
0067nobodyさん2007/09/30(日) 17:40:48ID:???
trim使うと前後のスペースが強制的に取り除かれる。
つまりスペースを使ったパスワードに問題になる
0068nobodyさん2007/09/30(日) 17:45:27ID:hOfwjY6s
>>66
はい。66の通り試してみたのですがうまく動作しませんでした。
とりあえず、動いたので今度は暗号化したものをテキストファイルに書き込んで
パスワードの妥当性チェックに挑戦したいと思います。
0069nobodyさん2007/09/30(日) 17:52:46ID:???
>>67
前後に空白入りのパスワード使わせるの?
それだと空白行チェックも必要にならないかい?
0070nobodyさん2007/09/30(日) 17:53:27ID:hOfwjY6s
素人目の判断なのでこういう記述が正しいのかわかりませんが、とりあえず形になったので書きます。
これでパスワードをmd5ハッシュで暗号化してテキストファイルにかきこみ、これを比較することで使用中のパスワードか比較することができました。*まだサニタイズ等してないので当然このままのスクリプトでアップすることはできませんが。。。
//pass.phpから比較対象のパスワードを取得
//もしこのファイルが直接読み出された場合に$_POST["md5"]はなにもはいってないので初期化
if(isset($_POST["md5"])){
$pass=$_POST["md5"];
}else{
$_POST["md5"]="";
$pass="";
}
//変数の初期化
$error="";
//テキストファイルからデータを一行ずつ読み込み
$fp = @fopen("dat.txt", "r") or die("読み込みファイルオープンエラー");
while($str = fgets($fp)) {
// 文字列比較(trimで空白を削除)
$str = trim($str);
if ( crypt($pass,$str) == $str ) {
$error="error";
}
}
fclose($fp);
//もし$errorにerrorが入っていればそのパスワードは使用中。それ以外ならば使えるパスワード
if($error){
print "現在使用中のパスワードです<br><a href=\"pass.php\">戻る</a>";
}else{
//if条件を満たしていればファイルにパスワードを書き込み
$fp=@fopen("dat.txt","a") or die("追加書き込みオープンエラー");
fputs($fp,crypt($pass)."\r\n");
fclose($fp);
print "パスワードが登録されました<br><a href=\"pass.php\">戻る</a>";
}
0071nobodyさん2007/09/30(日) 18:05:02ID:???
>>70
$_POSTの$pass代入時にtrimしないと$str = trim($str)と整合取れない可能性あり。
$pass=trim($_POST["md5"]);

それと$_POST に代入させるのは止めた方がいい。
以後使用するなら移した$passで。

あと多分判ってるだろうけどパス未設定ならメッセージ出力して終了
0072nobodyさん2007/09/30(日) 18:23:20ID:hOfwjY6s
>>71
おおっと、ナイスアドバイスありがとうございます。
$_POSTの$pass代入時にtrimしないと$str = trim($str)と整合取れない可能性あり。
$pass=trim($_POST["md5"]);
の件については知りませんでしたので助かりました。
0073nobodyさん2007/09/30(日) 19:03:56ID:hOfwjY6s
>>69
勿論このままだと空白もパスワードとして登録されてしまいすので、空白は入らないように
しますよ。
0074nobodyさん2007/09/30(日) 19:05:07ID:???
>>55
その程度のスクリプトでcoreを吐くようじゃ環境に依存しているんで
自分で原因を追究するしかないんじゃないの?

#つか、これだけでわかる奴いるのかよ…
0075nobodyさん2007/09/30(日) 19:18:44ID:???
>>21の処理が理解できてなさそうな発言といい、自分で書いたスクリプトの
動作を把握できてなさ具合といい、プログラミングの基礎を固めるところから
やらないと後々苦労するんじゃないかと他人事ながら心配になる
0076nobodyさん2007/09/30(日) 19:41:18ID:a9TKVxAS
Vistaにxamppを入れたんですけど、
phpでcURLというのが使えないんです。
どうやってインストールするのでしょうか?
0077nobodyさん2007/09/30(日) 19:51:53ID:???
>>76
>>1にも書いてあるけどマニュアルをまず読め
該当するページを読め
http://www.php.net/manual/ja/ref.curl.php
0078nobodyさん2007/09/30(日) 20:56:19ID:a9TKVxAS
見てもよくわからなかったんですよ。
xamppでインストールされたのでphpのコンパイルって
どうやってやるんだろ?みたいな。
0079nobodyさん2007/09/30(日) 21:36:10ID:4K+ZGFPD
すみませんbmpからjpgへの変換はどうすればいいんでしょうか?
GDでは出来ませんでした。
imagemagickはレンタル鯖なので使えません。
教えてください。お願いします。
0080nobodyさん2007/09/30(日) 21:38:44ID:???
>>79
GDで出来ます。コードを晒せば間違いを指摘してくれる素敵な人が現れるでしょう。
0081792007/09/30(日) 21:43:46ID:4K+ZGFPD
>>80
すみません。もうできねえやってあきらめて試したスクリプト消してしまいました・・・
せめてどの関数使うかだけでも教えていただけないでしょうか?
0082nobodyさん2007/09/30(日) 21:52:06ID:???
間違えた答えは消さないで赤ペンで訂正って先生に教わらなかったかい?
0083nobodyさん2007/09/30(日) 21:52:32ID:???
>>81
内容まったく見てないけど、こんなんでてきた
ttp://www.dabun-doumei.com/topix/imageConvertSource.php
0084792007/09/30(日) 22:16:32ID:4K+ZGFPD
GDではbmpは使えないんです。
0085nobodyさん2007/09/30(日) 23:28:06ID:???
>>78
http://www.php.net/manual/ja/ref.curl.phpから抜粋
Win32 ユーザへの注意: このモジュールを Windows 環境で使用可能とするには、
libeay32.dll および ssleay32.dll が PATH の通った場所に存在する必要があります。

これが理解出来ない頭の構造ってのを見てみたい
PHP本家のwindows用配布物に両dllは含まれているのに何故コンパイル?
xamppには含まれないならそんな物に頼るな
0086nobodyさん2007/10/01(月) 10:43:50ID:nNJ7ChTV
メールをトリガーにしてメールの内容を解析しているのですが、
fopen("php://stdin", "r")
で、メールの内容を解析できますが、これは一体何なんでしょ?

メール送信しなくただ単にスクリプトを実行させただけでは、
中身が空っぽです。
ただ単にHTTPリクエストを受けたときに、その受けた内容を一時的に保存しているのでしょうか。
(それだと、普通にアクセスしても情報が残りそうですが・・・。)
0087nobodyさん2007/10/01(月) 10:50:10ID:i+Hfwjq6
>>86
それは標準入力取得。
スクリプトをSSHとかからコマンドで引数に何か与えて実行してみればわかる

php ./test.php "aiueo"

とかやれば"aiueo"が渡される
0088nobodyさん2007/10/01(月) 10:52:51ID:nNJ7ChTV
readfile("php://stdin");
って書いたらPHPが動かなくなったorz
0089nobodyさん2007/10/01(月) 10:56:16ID:???
>>86
標準入力です。
ですから何も入力が無ければ中身が空っぽなのは当然です。
0090nobodyさん2007/10/01(月) 12:16:45ID:???
PHPで文字列の複合可能暗号化はロジックを自作するしかないですか?
0091nobodyさん2007/10/01(月) 12:20:32ID:???
>>90
>>1
0092nobodyさん2007/10/01(月) 12:53:17ID:???
こんにちは
情報が欲しいログインするタイプのサイトへ
phpで自動化しようと思ったんですけど…

返ってきたHTTPレスポンスが
------------------------------
…サインインするには JavaScript が必要です
このブラウザでは JavaScript をサポートしていないか
現在スクリプトの使用が禁止されています。…
--------------------------------


これはもしかしてphpでは無理ですか?
0093nobodyさん2007/10/01(月) 12:59:35ID:???
>>92
>>1
0094nobodyさん2007/10/01(月) 13:03:59ID:???
なんでISOじゃないの
0095nobodyさん2007/10/01(月) 13:45:06ID:???
>>92
ログイン画面のJavaScriptで何やってるか解析すれば
0096nobodyさん2007/10/01(月) 13:53:58ID:???
>>91,93
>>1
0097nobodyさん2007/10/01(月) 14:23:07ID:???
>>96
>>1のどこを読めと?
0098nobodyさん2007/10/01(月) 14:29:23ID:???
>>97
ID表示とか環境晒すとか基本的なことじゃない?
0099nobodyさん2007/10/01(月) 14:31:45ID:???
>>98
それだったら安価先が違うだろ
0100nobodyさん2007/10/01(月) 14:40:06ID:MMTKck5h
get_magic_quotes_gpcのように、register_globalsの設定を取得したいのですが
phpinfoや設定ファイルを目視する以外にやり方ございませんか?
0101nobodyさん2007/10/01(月) 14:42:47ID:???
ini_get()
0102nobodyさん2007/10/01(月) 14:43:33ID:???
変数名いきなり使って受け取れてるかどうか試してみたら?
0103nobodyさん2007/10/01(月) 14:51:19ID:???
>>101
あたまいいな。

>>102
おまえはばか
01041022007/10/01(月) 14:59:24ID:???
>>103
設定を取得できたならいいけど。
0105nobodyさん2007/10/01(月) 15:20:50ID:???
>>100は例も言わずに消えたか
0106nobodyさん2007/10/01(月) 15:51:28ID:???
>>99
どこがちがうの?
>>1のテンプレに入ってるのにわけわかんね

だいたい質問以前の基本的なことができてないのに相手してもらえるわきゃないわな
0107nobodyさん2007/10/01(月) 15:55:36ID:???
>>106
だから、>>96の安価が>>91>>93になってんだよ
それくらい見たらわかるだろ
0108nobodyさん2007/10/01(月) 15:59:45ID:???
>>107
おまえ頭固いな〜
こいつら全員基本的なことができてないだろーがよ
「おまえらまとめて>>1の基本的なことやってから質問しろ」って意味じゃねーの?
もうちょっと自分で考えてみろよ
0109nobodyさん2007/10/01(月) 16:03:53ID:???
>>108
論破されて悔しかったの?wwwwwwwww悔しかったの?wwwwww
0110nobodyさん2007/10/01(月) 16:07:05ID:???
どうせ>>109=>>107 だろ
どこが論破なんかと小一時間(ry
こんな基地外どうでもいいわ
0111nobodyさん2007/10/01(月) 16:12:58ID:???
どうでもいいのにわざわざレス返す>>110は何がしたいんだろ・・・
0112nobodyさん2007/10/01(月) 16:26:07ID:???
>>111
お前も答えてもらえなかったからって粘着するなボケ
0113nobodyさん2007/10/01(月) 16:29:50ID:???
>>112
勘違いしてるかもしれんが
俺の質問は答えてもらってるわけだが

ID見えないのに特定しちゃったフリですかwww
0114nobodyさん2007/10/01(月) 16:38:03ID:???
>>113
はあ?
しかし、反論できないと笑ってごまかすんですね
0115nobodyさん2007/10/01(月) 16:41:00ID:???
>>114
何?お前の書いたレスに反論されるような文章書いたつもりなの?www
ただの煽りなのにwwww
0116nobodyさん2007/10/01(月) 16:42:22ID:???
基地外がいると聞いて飛んできました!
0117nobodyさん2007/10/01(月) 16:58:44ID:???
>>115
日本語でおkですよ^^
0118nobodyさん2007/10/01(月) 17:06:53ID:???
自演粘着うざい
0119nobodyさん2007/10/01(月) 17:07:01ID:???
無駄にレスの進行が早いなw
0120nobodyさん2007/10/01(月) 18:14:33ID:???
>>108
なんで回答側までID出さなきゃいけないんだよ
91と93はID出す必要ないだろ
0121nobodyさん2007/10/01(月) 19:27:40ID:???
>>120
>「おまえらまとめて>>1の基本的なことやってから質問しろ」って意味じゃねーの?
0122nobodyさん2007/10/01(月) 19:28:37ID:???
質問と関係ない話題でレス消費するなよ
0123nobodyさん2007/10/01(月) 19:40:00ID:???
>>122
自演乙
0124nobodyさん2007/10/01(月) 19:46:58ID:???
>>121
だから質問してないじゃん。
ID出さないで質問したやつに>>1嫁って指摘しただけじゃん。
0125nobodyさん2007/10/01(月) 20:34:46ID:J4jr6C1B
久しぶりなのでID忘れていました。
情報が欲しいログインするタイプのサイトへ
phpで自動化しようと思ったんですけど…

返ってきたHTTPレスポンスが
------------------------------
…サインインするには JavaScript が必要です
このブラウザでは JavaScript をサポートしていないか
現在スクリプトの使用が禁止されています。…
--------------------------------
と、これはもしかしてphpでは無理ですか?

>>ログイン画面のJavaScriptで何やってるか解析すれば
まず有効無効のチェックに対して
phpではクッキーを持つぐらいしかできる事がありませんよね?
0126nobodyさん2007/10/01(月) 20:49:04ID:???
んなことはない。処理次第。
0127nobodyさん2007/10/01(月) 21:22:39ID:???
通常ブラウザで実行されているJavaScriptと同じ処理(入出力データだけでも可能かもしれない)
PHPなりRubyなり好きな言語でエミュレートしてやればいいが
JavaScriptで生成されるデータが多かったり、
セキュリティ上の制約に引っかかったりしたら難しいだろうな。
0128nobodyさん2007/10/01(月) 22:23:27ID:???
>>125
とりあえずJavaScriptが何をしてるのかを確認すべき。
普通、JavaScriptでログイン処理なんてやらない・できないので、
それは単にユーザI/Fを構築してるに過ぎないはずなのよ。
なので、最終的なログイン方法を見つけてそれをPHPで
処理してやれば、ちゃんとログインできるはず。
0129nobodyさん2007/10/01(月) 22:42:17ID:???
>>128
>JavaScriptでログイン処理なんてやらない・できないので
やらないのは確かだが一応できるよ
ただ非効率だしパスワードなんかもソース見れば丸見えだし
ユーザの追加やパスワードの追加は手作業で行うことになるし
(手作業でやらない場合PHP等を通すことになるのでJavaScriptでやる意味がない)
普通は誰もやらない
5年ぐらい前ならたまに見かけたけどね

>…サインインするには JavaScript が必要です
>このブラウザでは JavaScript をサポートしていないか
>現在スクリプトの使用が禁止されています。…

考えられるのはJavaScriptで取得したいなんらかの情報があるか
ログイン後の操作や処理にJavaScriptが必要だったりするからログイン前に警告出してるか
だと思う
0130nobodyさん2007/10/01(月) 22:48:33ID:???
ログイン自体は自動でできるようになるかもしれないが、
ログイン後のアクセスは結局JavaScriptが必要である可能性が高いよな。
0131nobodyさん2007/10/01(月) 23:00:27ID:???
JavaScriptって視覚効果を高めるための言語なんじゃないの?
0132nobodyさん2007/10/01(月) 23:09:23ID:???
>>131
(・д・)ぽか〜ん
0133nobodyさん2007/10/01(月) 23:30:45ID:6BDl/Ymp
凄くくだらないと思うけど質問させて
あのさ、県名で絞込みってのをフォームのプルダウンでやろうと思うんだけど、
valueの値を“北海道”と日本語にするのと“1”って数値にするのは
どう使い分けたらいいの?
DBが安定して日本語対応してたら日本語でいいのかな?
みんなはどうしてるの?
0134nobodyさん2007/10/01(月) 23:42:42ID:???
>>133
郵便局にあったCSVをDBにつっこんでつかってるけど日本語でやってる。
何から何までUTF-8に統一して設定してるからかもしれんけど特に問題はないよ
phpはEUC、DBはUTF8とかばらばらだったらPKつけてやった方が無難かもしれない
0135nobodyさん2007/10/01(月) 23:43:41ID:UmsoE0s2
>>133
「蝦夷」 から 「北海道」 に変わったように、 「北海道」 から別の名称に変わるかもしれませんので、
数値にすべきでしょう。
0136nobodyさん2007/10/02(火) 00:02:18ID:???
>>129
>やらないのは確かだが一応できるよ
>ただ非効率だしパスワードなんかもソース見れば丸見えだし
(・д・)ぽか〜ん
パスワード丸見えなのにログイン処理が「一応できる」と思ってるなんて凄いな。尊敬するよ。
0137nobodyさん2007/10/02(火) 00:03:46ID:???
>>134-135
なるほど  ありがとう
よくわかりました
0138nobodyさん2007/10/02(火) 00:20:34ID:???
>>136
技術的にどうかという問題なわけでセキュア云々ではない
セキュアだとやらないというだけで技術的にできることには変わりはない
気休めだが一応暗号化もできるしな
PHPでSQLインジェクション抱えてるようなサイトとたいしてかわらんだろw
0139nobodyさん2007/10/02(火) 00:24:01ID:???
もともとネットはスカスカだからな、SSLでカバーしてもサーバー側に悪い奴がいたらお終いw
0140nobodyさん2007/10/02(火) 01:05:03ID:ykBGND+D
東京都新宿区あああ1丁目2-3 101号室
大阪府大阪市中央区いいい2丁目3-4 202号室

こういう住所があるとして、「○○○号室」だけを取り出すには
どのように正規表現のコードを書けばいいのでしょうか?
0141nobodyさん2007/10/02(火) 01:14:12ID:???
preg_match('/[1-9][0-9]{2,3}号室/', $address, $matches);
0142nobodyさん2007/10/02(火) 01:22:06ID:???
なんでそんなことやりたいのか意味分からんが、それ以前に正規表現だけの話だったらスレ違い
0143nobodyさん2007/10/02(火) 01:48:53ID:???
正規表現の質問ならここかね?

正規表現道場
http://pc11.2ch.net/test/read.cgi/php/1168450843/
0144nobodyさん2007/10/02(火) 01:51:57ID:???
「下つき・ミミズ天井」とか「カリ太・右曲がり」とかだなそれ
0145nobodyさん2007/10/02(火) 01:53:07ID:???
…名器表現?
01461402007/10/02(火) 02:11:24ID:???
>>141
出来ました!非常に勉強になりました。ありがとうございました。
0147nobodyさん2007/10/02(火) 10:31:53ID:???
俺んちは「E号室」だけどなw
0148nobodyさん2007/10/02(火) 10:55:06ID:???
PHPからC言語のライブラリ関数をコールする事は出来ますか?
0149nobodyさん2007/10/02(火) 10:58:26ID:???
はい
0150phpでJSありのサイトへログイン2007/10/02(火) 11:05:23ID:NjRsQqKR
皆さんありがとうございます。
とりあえずJSの解読からはじめます。
01511482007/10/02(火) 11:10:47ID:???
>>149
もし良ければ、その方法を教えていただけませんでしょうか。
PHPのマニュアルを探しましたが、それらしき記述は見つけられませんでした。
0152nobodyさん2007/10/02(火) 12:17:34ID:???
Exceptionクラスはどのファイルに定義されていますか?
OSはFreeBSD 6.1-RELEASE
phpはPHP 5.2.0です。

この環境に限らずここら辺みろやっていうあたりでも教えていただけると幸いです。
0153nobodyさん2007/10/02(火) 12:42:31ID:???
>>148
マニュアルに書いてあるよ!
ttp://www.php.net/manual/ja/internals2.php

...けどmysqlとかのエクステンションを読んだ方が早いかもね。
0154nobodyさん2007/10/02(火) 12:45:27ID:???
>>150
そのJS必要なサイトを晒した方が早い気がするが反則?
0155nobodyさん2007/10/02(火) 12:54:05ID:???
>>152
多分ソースのext/spl/spl.php
0156nobodyさん2007/10/02(火) 13:08:56ID:sEvSh0XV
>>153
ありがとうございます。<(_ _)>
ちょっと読んでみます。
0157nobodyさん2007/10/02(火) 13:11:34ID:vuWCHJUh
MySQLでPHPの関数を(ry
01581522007/10/02(火) 14:10:05ID:???
>>155 ばっちり完璧にその場所へありました、ありがとうございます。
0159nobodyさん2007/10/02(火) 14:36:45ID:NjRsQqKR
>>154
それは…挫折してからにします。
0160nobodyさん2007/10/02(火) 16:13:41ID:vuWCHJUh
ISO-2022-JPって半角カナ対応してないの?
UTF-8から変換すると??になるんだが・・・
0161nobodyさん2007/10/02(火) 16:15:37ID:???
>>160
携帯で半角カナ使えるか試してみればわかる
0162nobodyさん2007/10/02(火) 16:17:23ID:vuWCHJUh
使えなかった
携帯で半角カナが使えないというのはこういうことか・・・
0163nobodyさん2007/10/02(火) 16:35:12ID:???
>>162
ISO-2022-JP=7ビットコード体系
使用可能=ASCII, JISX0201, JISX0208-1978, JISX0208-1983
除外=JISX0201(片仮名)
0164nobodyさん2007/10/02(火) 16:41:05ID:???
ISO-2022-JP-MS
0165nobodyさん2007/10/02(火) 16:41:05ID:???
うちではEUC-JPでdocomoの大抵の携帯なら文字化けなく処理できるけど
固体識別情報にezwebを吐く携帯が文字化けを引き起こしてる
mb_convert_encodingでEUC-JPにするも全くダメ
自分がその携帯を持ってないのでなんともむず痒い
0166nobodyさん2007/10/02(火) 16:44:44ID:???
>>165
携帯サイトでEUC-JP使ってるってこと?
いや、まさかそれはないよな
0167nobodyさん2007/10/02(火) 16:49:56ID:???
>>165
>うちではEUC-JPでdocomoの大抵の携帯なら文字化けなく処理できるけど

ありえない。
0168nobodyさん2007/10/02(火) 16:52:41ID:???
>>165
馬鹿すぎ
0169nobodyさん2007/10/02(火) 16:57:14ID:???
ありえない?馬鹿すぎ?なんで?
一応ここ2年以内に発売されたぐらいの携帯だときちんと見れるよ?
自分が持ってるdocomoでも見れるし投稿処理もきちんとできるよ
友人のvodaphoneでもいけてるしね
0170nobodyさん2007/10/02(火) 16:58:52ID:???
やべぇ、>>169真剣にアホス
何でEUC-JPで作ろうなんて思ったの?
0171nobodyさん2007/10/02(火) 17:05:40ID:???
とりあえず同じサイトを複数の文字コードで作ってみた
UTF-8、Shift_JIS、EUC-JPとやってみたんだけど、
Shift_JISは障害が多すぎて自分では手に負えなかった
んでUTF-8にしてみたんだけど原因は忘れたけど、これも問題出たからやめたはず
それに表示がEUC-JPやShift_JISに比べてなんか違和感あった
んでEUC-JPでやってみたらezwebの問題以外すべてクリアだったんでEUC-JP使ってる

なんで真剣にアホスなのか意味がわかんないので教えて
EUC-JPでいまんところそれ以外に問題なくて使えてるのにどこがいけないのかサパーリ
0172nobodyさん2007/10/02(火) 17:09:17ID:???
>>171
個人的なサイトなんだろ?なら好きにすればいいよ
仕事で作ったサイトの話なら、今すぐ職変えろ
0173nobodyさん2007/10/02(火) 17:11:06ID:???
>>171
別にinternalはEUC-JPで全然かまわないから
せめて出力は変換しとけ。
全機種対応してない文字コードで携帯サイトとかバカか。
0174nobodyさん2007/10/02(火) 17:12:07ID:???
待て待て皆、これは釣りであるこれは釣りである
0175nobodyさん2007/10/02(火) 17:12:58ID:???
むしろ、これから先がEUC-JPで統一されると見てEUC-JPを選んだかもしれないぞ!
0176nobodyさん2007/10/02(火) 17:13:56ID:???
個人で作ったサイトだよ
1日に50万アクセスぐらいあるけど、ezwebの問題以外特にクレームとかこないよ
自分で持ってる携帯からだとちゃんと狙った感じになってるから問題ないかと思ってた
METAタグでcharset設定したらちゃんと見れるから大丈夫だとおもったんだけどなぁ。。。
0177nobodyさん2007/10/02(火) 17:14:45ID:???
1日に50万アクセスwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
腹痛いwwww
0178nobodyさん2007/10/02(火) 17:19:10ID:???
EUC-JPでも絵文字って化けないんだ。それはちょっと驚き。
どんなコードで飛んでくるんだろう >絵文字
0179nobodyさん2007/10/02(火) 17:21:55ID:???
>>177
なにか面白いこと言った?

>>178
厳密には携帯専用サイトじゃなくて、普通のPCで見れるページを携帯用にも作ってる感じ
だから絵文字はPC用ページだと表示できないから排除するようにしてる
0180nobodyさん2007/10/02(火) 17:29:00ID:SNciDcYf
本当にくだらない質問で申し訳ないけどおねがいします
ポストバックによる処理をどこに入れるかだけど、今まではHTMLの最初の方にズラッと書いていました
どこかのサンプルソースを見てみたらFunctionを使いまくっていました
ひょっとして普通はFunctionを使いまくるのでしょうか?
0181nobodyさん2007/10/02(火) 17:47:09ID:???
>>180
し、信じられないかもしれないが有りのままを話す
何言ってんだかサッパリわからねぇ
俺もなんて答えたいのか俺自身にもわからねえんだ
0182nobodyさん2007/10/02(火) 18:39:43ID:eqW2/Vd2
includeパスっていっぱい通すと重くなるんでしょうか?
今3つ通してるんですけど、あと3つほどとうそうかと・・・
10万〜12万PV/日ぐらいのサイトで、そこそこ重い処理をしてるので、あんまり重くなるようなら考えます

3つを6つにしてもあんまり変わらないでしょうか?
0183nobodyさん2007/10/02(火) 18:42:20ID:???
>>178
全然問題なく化けないぜ

>>179
とりあえずお前はググる能力を身につけような
EUC-JPなんかじゃ、SoftBank(3G, SH系除く)は絵文字送信ができないぜ
0184nobodyさん2007/10/02(火) 19:12:06ID:???
>>182
includeする際の検索順序、ファイル分割する事によるメモリへの貢献、OS自身のディスクキャッシュ、HDD自体のキャッシュ etc.
色んな影響があるので、実際に試してみるのが一番いい。
0185nobodyさん2007/10/02(火) 19:21:42ID:???
>>183
179だけど、PCと同じページを作ってるから特殊記号入れられないように排除してるんだよ
だから絵文字の処理なんかは必要ない
ググってもShift_JISでないとキャリアが対応してないとか、絵文字がどうのとかしか
出てこないけど、今の時代Shift_JISでなくても閲覧できるし、絵文字とかわざと排除してるから
他に叩かれるような覚えはないんだよねぇ
それ以外でEUC_JPで作ってたら真性バカの烙印押される理由が知りたい
0186nobodyさん2007/10/02(火) 19:33:59ID:???
>>182
それでどこにも存在しないファイルを検索すると重くなると思うけど、
最初の方のパスで大半が検索Hitしてる分には特に重くならないかと。
でもパス6つくらいなら全然普通のレベルだと思うけどね。
0187nobodyさん2007/10/02(火) 19:35:32ID:???
>>185
とりあえずEUC-JP非対応のキャリア、機種くらいは判定して
そこだけSJIS出力に切り替えてやれば?
それしないで「一部機種が対応してるからそれで通す」はバカだと思うけど。
0188nobodyさん2007/10/02(火) 19:40:14ID:???
>>180
functionにするかしないかはシステムの規模によるかな。
あんまりにも小規模ならわざわざfunctionにしない。
でも中規模以上なら関数化しといた方が後で楽。
0189nobodyさん2007/10/02(火) 20:13:22ID:???
>>187
なるほど
つまりまともに閲覧できてない機種があるってことなんだね
docomoもvodaphoneも知人の持ってるauもいけてたから
見れてないのはないもんだと思ってたわ
html生成方式だからSJISにするのは簡単なんだけど、そういうことだったのね
でも本当に見れてないんだろうか?・・・
0190nobodyさん2007/10/02(火) 20:38:39ID:???
携帯サイト作るなら動作確認用の実機を揃えるくらいしろよ
0191nobodyさん2007/10/02(火) 20:44:22ID:???
>>190
お前携帯何個持ってんの?www
0192nobodyさん2007/10/02(火) 21:26:27ID:???
さては友達少ないなオマエ
0193nobodyさん2007/10/02(火) 21:31:10ID:???
はぁ?
0194nobodyさん2007/10/02(火) 22:01:44ID:???
>>189
自分で「見れてない機種なんて無い」と思えるなら無視すりゃいいじゃん
0195nobodyさん2007/10/02(火) 22:47:05ID:???
し、信じられないかもしれないが有りのままを話す
UTF-8からISO-2022-JPに変換すると半角カナが??なる
ってんで電子メイル絡みの話題かと思っていた
唐突に>>165がEUC-JPとか1日に50万アクセスとか言い出した
「なに言ってるんだ、こいつ?」
現れる必然性が俺には理解できねえ
まるで鈍器で頭を強打されたくらいの衝撃を受けた
で…ここはPHP絡みの雑談するスレだっけか?
どうも認知症の進行著しく自分がどこにいるのかもわからねえ
0196nobodyさん2007/10/02(火) 22:54:37ID:???
>>195
perlではShift_JIS使ってうまくいってたけど、phpではそんな不具合があって
ちょうどphpの文字コードの話が出たからなんかの足しになればと思って書き込んだだけだけど
それがみんなの気分を悪くしたみたいだね
もう書き込まないから安心してください、でわでわ
0197nobodyさん2007/10/02(火) 23:06:23ID:???
>>196
いや気分悪くなんてしてないから
釣りと間違われないよう華麗にリードすればいいから

では次の患者さん どうぞ
0198nobodyさん2007/10/03(水) 01:44:33ID:???
phpで恋人はどうやって作れば良いでしょうか?
0199nobodyさん2007/10/03(水) 01:58:21ID:???
>>198
mklover()
0200nobodyさん2007/10/03(水) 02:00:16ID:???
sage
02011982007/10/03(水) 04:20:36ID:???
<?php
echo mklover("美代ちゃん");
?>
上記のコードを実行させてみると以下のようなエラーがでました。

Fatal error: Cherry boy cannot use function mklover() in /var/www/html/cretateGirlFriend.php on line 2

どうすれば良いでしょうか?
0202nobodyさん2007/10/03(水) 04:25:56ID:???
>>201
エラーメッセージの通りです。
0203nobodyさん2007/10/03(水) 04:35:16ID:???
PHPで、アニメーションGIFを分解等せずにそのまま(ヘッダの中にあるdelay値も残したまま)
トリミングしてくれるライブラリや関数は無いだろうか?
一応、gdやImagick、MagickWandの関数を調べたり実際に試したりしてみたんだが、どうも見当がつかない・・・・・・
いったんjpgに分割してトリミング後に再結合とかはできるみたいだけど、
それだと結局、delay値取得するためにヘッダを解析しなきゃならなそうでなあ。

もし何か良い方法知っていれば教えて欲しい。
0204nobodyさん2007/10/03(水) 05:10:37ID:???
>>203
>>1
0205nobodyさん2007/10/03(水) 09:35:05ID:I/i9layb
<?xml version = "1.0" encoding = "utf-8"?>
を入れないとValidは通るのですが入れろといわれるので、入れると
エラーがでるのでechoに入れてみるとページすべてでエラーになります。
<?xml version = "1.0" encoding = "utf-8"?>の部分をヒアドキュメントに入れても
同じようにエラーが出ます。
phpページでValidを通す時みなさんはどうしてますか?

本体のページはTransitionalで
<?xml version = "1.0" encoding = "utf-8"?>はいれずに通ります。
問題があるのがCompact HTMLの携帯ようサイトです。
0206nobodyさん2007/10/03(水) 09:44:57ID:???
>>205
なんてエラーが出るのさ
0207nobodyさん2007/10/03(水) 10:02:24ID:???
echo "<"."?xml version = \"1.0\" encoding = \"utf-8\"?".">";
でダメだったって事?
0208nobodyさん2007/10/03(水) 10:10:37ID:???
拡張子がPHPだとPHPとして評価しようとするので
xml宣言の<?とphp宣言の<?がかぶってしまうため起こる問題でしょ?

<?php echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"; ?>
とviewの1行目に入れればいいんじゃない
0209nobodyさん2007/10/03(水) 10:26:22ID:???
>>208
それならechoやヒアドキュメントではエラー出ないだろ。
根本的にどっかPHPの構文間違ってるんだよ、多分。
0210nobodyさん2007/10/03(水) 10:37:07ID:xx+cFlmV
ここでお聞きして良いか分からないのですが、何かしらヒントを頂ければと思います。
PHPのmb_send_mail関数を使ってメール送信をしているのですが、届くドメインと届かないドメインが
あり困っています。
サーバーはロリポップを使っているのですが、
お聞きしたいのはメールサーバのログの見方です。
ググってみたりしたんですが、方法が良くわかりませんでした。。。

OSは、macOSX 10.4.10です。
どなたか、宜しくお願い致します
0211nobodyさん2007/10/03(水) 10:44:43ID:???
>>210
mail()のがよくね?
0212nobodyさん2007/10/03(水) 10:45:07ID:???
>>210
macってクライアントが?
クライアントは関係ないんじゃないの?
ロリポのメールサーバが何使ってるか知らないけど
サーバ側のシステムログなんてサーバ管理者しか普通見れないよ
0213nobodyさん2007/10/03(水) 10:53:12ID:xx+cFlmV
>>210
そうなんですね。ありがとうございます。
できればmail()の利点をご教示頂けますでしょうか。。。

>>212
クライアントがmacです。
ロリポップはqmailというメールサーバを使っている様です。
色々調べてみたら、メールが届かない時はとりあえず
メールログを見ろと書いてあるところが多かったもので。。。
0214nobodyさん2007/10/03(水) 11:06:01ID:???
xml宣言はシングルクォートで囲めばいいだけじゃん、
オッパッピ?
0215nobodyさん2007/10/03(水) 11:36:14ID:zZ6Mc9LX
質問させてください。
たとえばメニューを登録するプログラムがあって、 menu と priceの2種類のフィールドを
DBが持ってるとします(それと自動インクリメントのID)。
これに対して、登録用フォームで3つのメニューを一度に登録したい時、
どういう処理をしたらいいんでしょう?
メニュー1:<input type="text" name="menu"> <input type="text" name="price">
メニュー2:<input type="text" name="menu"> <input type="text" name="price">
メニュー3:<input type="text" name="menu"> <input type="text" name="price"> 

これじゃダメですよね?
それぞれにユニークのフィールドを持たせるのが一番無難かもしれないですが、
なんかイヤなので…(実際には3つでなく任意の数にしたいんです)
1メニューずつ追加登録してくのがいいんでしょうか?
それとも、上記のやり方でも解決できるPHPのくみ方があれば
教えて欲しいです。

よろしくお願いします。
0216nobodyさん2007/10/03(水) 11:40:53ID:???
>>215
menu[]
price[]
02172152007/10/03(水) 12:33:24ID:zZ6Mc9LX
>>216
ごめんなさい どういうことでしょう?
HTML側は上に書いた通りでよくて、PHPで用意したmenu配列とprice配列に
入れるってことですか?
DBへの登録はmenu[0]〜menu[N]までループで処理??
そんなことできるのかな? 大雑把にでも教えてもらえれば嬉しいです。
0218nobodyさん2007/10/03(水) 12:41:59ID:???
>>217
menu[0]〜[2]
price[0]〜[2]
みたいに振り分ければ?


>そんなことできるのかな?

プログラムは「できるかな?」じゃなくやってみるんだ
やるまえに「できるかな?」と尋ねると進歩しない
0219nobodyさん2007/10/03(水) 12:43:16ID:???
>>213
mb_send_mail()はmail()のwrapperだよ
mail()にマルチバイト文字変換処理を付加したもの=mb_send_mail()
よってメイル送信前の処理は全て自前で行わなければならない
0220nobodyさん2007/10/03(水) 12:45:37ID:???
>>219
いつも自分で変換して送ってたわ
ってか、そっちのほうが文字化けしたときとっさに対応できるからよくね?
0221nobodyさん2007/10/03(水) 12:47:42ID:???
>>213
レンタルサーバを利用している時点で貴方が掌握できるのは
PHPで作ったプログラム(フロントエンド)の部分だけ
バックグランドで何が起きているのか知る術は無いから諦めろ
0222nobodyさん2007/10/03(水) 12:58:51ID:???
>>220
そうだねぇ、自分で全て面倒みれる人ならmail()の方が良いかも

mb_send_mail()はSubjectと本文しか処理しないしね
例えば"おいら<me@example.com>"ってヘッダにつけると
"おいら"が化けるから予めMIME処理しなけりゃならん
結局、手間はたいして変わらなくなる
0223nobodyさん2007/10/03(水) 13:03:01ID:???
ってことはPEARのMail::sendも自動的に処理されてんのかな・・・
02242132007/10/03(水) 13:59:15ID:xx+cFlmV
>>219さん
>>221さん

ありがとうございます。大変勉強になります。

今ロリポップのサーバーからテスト運用しているのですが、
独自ドメインとgmeilの方へは送信できるのですが、
yahooアドレスや携帯のアドレスへ送信しようとすると
デーモンよりfailure noticeとして帰ってきます。

<=?ISO-2022-JP?B?省略==?=@sv390.lolipop.jp>:
Sorry, no mailbox here by that name. (#5.1.1)
と、宛先が文字化けしている様です。
02252132007/10/03(水) 14:02:17ID:xx+cFlmV
↓続き

以下にコード晒します。

mb_language("Ja");
mb_internal_encoding("UTF-8");
$mailfrom = mb_encode_mimeheader($name)."<".$email.">";
$mailto = mb_encode_mimeheader("example@yahoo.co.jp");
$subject = "WEBサイトよりお問い合わせです。";
$content = wordwrap($content, 70);
$header = "To: <{$mailto}>\r\n" .
"From: {$mailfrom}\r\n" .
"X-Mailer: PHP/" . phpversion();
$param = "-f" . $email;
if (mb_send_mail($mailto, $subject, $content, $header, $param))
{
echo("メール送信完了しました。");
} else {
echo("メール送信に失敗しました。");
}

$email,$nameはフォームからの入力値になります。
サーバーのphpはver.4.4.6となります。
宜しくご教示お願い致します。
0226nobodyさん2007/10/03(水) 14:21:34ID:???
どこかのサンプルスクリプトを丸々コピペしたような感じだな・・・
ヘッダーで文字コード指定してやれば?
02272132007/10/03(水) 14:25:09ID:xx+cFlmV
>>226さん

ありがとうございます。
おっしゃるとおりで、コピペです。。。
ヘッダーで文字コード指定試してみます!
0228nobodyさん2007/10/03(水) 14:35:21ID:???
>>225
$mailto = mb_encode_mimeheader("example@yahoo.co.jp");
こいつはMIMEエンコードをしないで$mailto = "example@yahoo.co.jp";

$header変数にこいつ→ "To: <{$mailto}>\r\n" を含めない
ヘッダにTo:句が重複して現れてないか?
02292132007/10/03(水) 14:47:29ID:xx+cFlmV
>>228さん

>>$mailto = mb_encode_mimeheader("example@yahoo.co.jp");
>>こいつはMIMEエンコードをしないで$mailto = "example@yahoo.co.jp";

これを試したら届きました!
本当にありがとうございます。
よく分からずにWEBで拾ったコードを信用していたのが原因でした。
やはりPHPマニュアル以外はあまり参考にならないのですね。

To:が重複していたのもおっしゃるとおりで、解決しました。

皆様ありがとうございました。
0230nobodyさん2007/10/03(水) 15:00:48ID:???
>>217
http://jp.php.net/html#faq.html.arrays
02312052007/10/03(水) 15:39:42ID:I/i9layb
みなさんありがとうございます。
index.phpの内容は
<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD Compact HTML 1.0 Draft//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>test</title>
</head>
<body>
test
</body>
</html>
です。このままだと、
Line 1, Column 0: end of document in prolog.
とでるので、<? echo '<?xml version = "1.0" encoding = "utf-8"?>'; ?>と修正すると
Line 1, Column 104: no system id specified.や
Line 3, Column 5: element "head" undefined.
などすべての行でエラーがでます。レスいただいた
<? echo "<"."?xml version = \"1.0\" encoding = \"utf-8\"?".">"; ?>
も試しましたが全く同じエラーです。
0232nobodyさん2007/10/03(水) 15:42:23ID:???
>>231
php.iniの設定でショートタグをオフにすればいいんでね?
0233nobodyさん2007/10/03(水) 15:43:55ID:???
ってか、エラー文くらい貼れよ
0234nobodyさん2007/10/03(水) 15:55:44ID:???
>>231
普通にこれで通らないか?
<?php
echo "<?xml version = \"1.0\" encoding = \"utf-8\" ?>\n";
?>
0235nobodyさん2007/10/03(水) 16:00:37ID:???
それPHPのエラーじゃないだろ
02362052007/10/03(水) 16:36:11ID:I/i9layb
.phpではなく.htmlにしても全く同じエラーになるようでphpの問題ではないようなので出直してきます。
それにしても、みんなどうやって通してるんだろ。
失礼しました!
0237nobodyさん2007/10/03(水) 17:17:34ID:???
>>236
XML使うときはshort_open_tagはOFFにする。
0238nobodyさん2007/10/03(水) 17:30:19ID:???
>>237 プッ
0239nobodyさん2007/10/03(水) 17:31:30ID:???
>>237
これ、そういう問題じゃないぞw
0240nobodyさん2007/10/03(水) 17:37:30ID:???
なんだ構文チェックが通らないって事かよ・・
0241nobodyさん2007/10/03(水) 17:40:55ID:???
>>231
これ、XHTMLなのかCHTMLなのかはっきりしろよ。
0242nobodyさん2007/10/03(水) 18:00:30ID:e5ck+SXs
配列同士(配列Aと配列Bの突合せ処理をして
配列Aだけにある値と配列Bだけにある値をとりたいのですが
どのように処理すればよいでしょうか?
0243nobodyさん2007/10/03(水) 18:07:51ID:???
array_diff
0244nobodyさん2007/10/03(水) 18:10:23ID:???
>>242
array_diff()
02452422007/10/03(水) 18:13:11ID:???
うあ、こんな便利な関数があったのですか・・・
どうもありがとうございました!!
0246nobodyさん2007/10/03(水) 18:32:30ID:oSSk/nfV
ふと疑問に思ったのですが、検索ページなど、POSTで受け取って
改ページなどはGETで行いますよね?
その際、以下のようにして検索対象となるWHEREの内容を、作成しています。

if($_POST["name"] ){
$name =htmlspecialchars($_POST["name"]) ;
}elseif($_GET["name"]){
$name = htmlspecialchars($_GET["name"]) ;
}
$search_set ="name='$name'"; //検索用のSQLを作成
$where = "WHERE $search_set"; //MySQLのWHEREに当てはめる

見たいな感じでやっているのですが、上記だとコードが長すぎますし、
正直無駄に感じます。みなさんはどのようにしているのでしょうか?
0247nobodyさん2007/10/03(水) 19:04:28ID:???
半角
abcdefg

全角
ABCDEF
0248nobodyさん2007/10/03(水) 20:02:08ID:???
>>246
HTMLエンティティ化はHTML出力に対して行うものであって入力値にかけるものではない。
それから初めのうちはコードの長さなんか気にするな。ロジックを気にしろ。

0249nobodyさん2007/10/03(水) 20:04:09ID:???
>>246
GET、POST両方で飛んでくるパラメータについては$_REQUESTで処理してる。
02502462007/10/03(水) 20:07:41ID:???
>>248
入力値にかけないと余計なコードを入力された場合、
対処出来ないのではないでしょうか?
>>249
REQUESTでも問題ないですかね。リファレンスでは「あまり使われていない」
って書かれていたので、上のようなコードにしていました。
0251nobodyさん2007/10/03(水) 20:12:04ID:???
>>250
htmlspecialcharsは「HTML表示の際」に必要なエスケープであって
SQLを組み立てる場合に必要なエスケープではないでしょ。
この場合は例えばmysql_escape_stringとかを使うわけだけど、
逆にSQL用にエスケープしたものをHTML表示に使えるわけでもない。
つまり、入力値はいきなりエスケープするものではなく(汎用のエスケープというのは無い)
何かの用途に使う時点で、それぞれの目的にあった形にエスケープしなきゃダメなのよ。
0252nobodyさん2007/10/03(水) 20:34:58ID:???
エンティティ化ってエスケープか???
0253nobodyさん2007/10/03(水) 20:44:52ID:L+I4Rl+L
一つの質問というわけではないのですが、
最近、PHPを勉強し始めました。
もし、アドバイスしてくださる方が居れば、こちらへ宜しくお願いします。
http://php121.blog121.fc2.com/
0254nobodyさん2007/10/03(水) 20:47:20ID:???
>>253
ここで書け
0255nobodyさん2007/10/03(水) 20:47:44ID:???
「実体参照」自体は方式を示すものだけど、使用目的はエスケープでしょ。
0256nobodyさん2007/10/03(水) 20:56:29ID:???
>>253 死ね
0257nobodyさん2007/10/03(水) 21:21:37ID:???
>>246
GET、POSTのどちらで来てもいいなら$_REQUESTだけど
どちらかしか認めないような場合(特にPOST)なら分けた方がいい。

>>246の場合ならDB用にSQLエスケープでいいけど
入力値によっては妥当な(期待している)値かのチェックは必須(数値や日付等)
0258nobodyさん2007/10/03(水) 21:48:26ID:???
>>246
POSTデータをセッションに入れるってレスがまだ出てないようなので一応書いておく
0259nobodyさん2007/10/03(水) 21:50:55ID:???
>>258
検索ページだとブックマーク入れる可能性ないか?
0260nobodyさん2007/10/03(水) 21:57:44ID:???
>>258
検索や改ページとかある場合だと複数ウインドウで別ページを表示する可能性が高いぞ。
0261nobodyさん2007/10/03(水) 22:01:19ID:???
> GET、POSTのどちらで来てもいいなら$_REQUESTだけど

気をつけろ! $_REQUESTには$_COOKIEも入ってくる。orz

あと$_FILESも
0262nobodyさん2007/10/03(水) 22:13:05ID:???
>>261
げ、マジですか! ジェットストリームアタックだw
優先順位はどうなってるのだろ? 当然高い方に上書きされるよね?
02632622007/10/03(水) 22:16:54ID:???
順序はvariables_orderディレクティブで定義できるようでした
0264nobodyさん2007/10/03(水) 22:19:10ID:???
そんなあやふやなもの使わないに越した事は無い。

バグ生む原因になるだけ。
0265nobodyさん2007/10/03(水) 22:40:04ID:gbZJiSoX
A.phpとB.phpに全く同じ関数 function hoge が定義されています。この状態で

include_once("A.php");
include_once("B.php");

とやってしまうと function hoge が二度呼び出されたことによりエラーが返されます。
なんとかうまくエラーが出ないようにする方法は無いでしょうか?

ちなみにA.phpかB.phpのどちらかから function hoge を消してしまうと他の部分で
エラーが生じてしまうのでできるだけA.phpとB.phpの中身には大幅な変更は
加えたくありません。
0266nobodyさん2007/10/03(水) 22:49:49ID:???
>>265
二重定義のエラーは回避できない。

つ[function-exists()]
http://jp.php.net/manual/ja/function.function-exists.php
0267nobodyさん2007/10/03(水) 22:50:18ID:???
>>265
function hogeをC.phpに移してAとBからincludeすれば?
0268nobodyさん2007/10/03(水) 23:18:29ID:???
マズい作り方したね。
0269nobodyさん2007/10/03(水) 23:26:48ID:???
まぁ最初の頃はありがち
02702652007/10/03(水) 23:31:05ID:gbZJiSoX
>>266
二重定義は回避不能でしたか・・・

>>267-269
今後プログラムするときは気をつけたいのですが>>267さんの言うとおり
関数は一つにつき一つのphpファイルの中で定義して使い回すのが
正しい作り方になるのでしょうか?
0271nobodyさん2007/10/03(水) 23:40:21ID:???
というか用途ごとだろ
0272nobodyさん2007/10/03(水) 23:44:19ID:???
>>267
それだと同じファイルからAとBを読み込んだ時点でエラーが生じるんでね?
0273nobodyさん2007/10/03(水) 23:47:35ID:???
何故メインのファイルにその関数を書かない?
0274nobodyさん2007/10/04(木) 00:36:17ID:2S6z8FqV
echoってなんなのでしょうか?
echo 1+2がなぜ3になるのですか?
echoは引数を評価する関数なんですか?
0275nobodyさん2007/10/04(木) 00:45:23ID:???
>>272
すまん。include_once(C.php)だ (だと大丈夫だよね?)

C.php -------------------------
function hoge(){}

A.php -------------------------
include_once("C.php");

B.php -------------------------
include_once("C.php");

Main.php -------------------------
include_once("A.php");
include_once("B.php");

$foo = hoge();
0276nobodyさん2007/10/04(木) 00:45:29ID:???
>>270
まぁ、普通は同じ関数を複数のファイルに記述したりはしないな。
0277nobodyさん2007/10/04(木) 01:00:55ID:???
>>274
つphp.net/echo
0278nobodyさん2007/10/04(木) 01:09:13ID:???
>>261
俺も$_REQUEST使ってた...。

じゃやっぱり$_POSTと$_GETを書いて、どちらか入力されているか
チェックして変数に入れる方がいいみたいだな。
0279nobodyさん2007/10/04(木) 01:27:57ID:???
関数名を重複させるなんて思考なかったぜ
0280nobodyさん2007/10/04(木) 02:02:54ID:???
prefixでも付ければ?
0281nobodyさん2007/10/04(木) 02:03:28ID:???
検索ページならGETのみでいいんじゃないかい?
URLをそのまま他人に教えたりできるし
POST なら前ページと次ページのみのフォームボタンにする
0282nobody2007/10/04(木) 02:08:25ID:wWWlpRkK
どうも、こんばんは。
早速質問ですが・・・
http://aki.adam.ne.jp/php/script/thumb.php
のサムネイルモジュールを使っているのですが・・・
thumb.phpで画像へのパスが設定されていませんとなってしまってサムネイル画像が×になってしまいます。

thumb.phpで画像へのパス設定って何行目ぐらいに書いてありますか?
ご回答よろしくおねがいします。
0283nobodyさん2007/10/04(木) 02:17:48ID:???
知るかボケ
0284nobody2007/10/04(木) 02:21:00ID:???
そうですか・・・ありがとうございます。
0285nobodyさん2007/10/04(木) 02:23:12ID:???
>>282
おいおい・・・230行足らずのスクリプトだぞorz
しかもしょっぱなにヒントあるのに。
ソース見たり調べてないだろ
0286nobodyさん2007/10/04(木) 02:33:58ID:VoLA0M9Q
<?php
$saza = ("$tekuno" and "$posh");
$saza1 = ("$tekuno" or "$posh");
$saza2 = ("$tekuno" != "$posh");
?>

<html><head>
<?php if ($saza){echo 'ああああ';} ?>
</head>
<body>
<?php if ($saza1){echo 'いいいい';} ?>
<?php if ($saza2){echo 'うううう';} ?>
</body><html>

これを
<saza>ああああ</saza>
<saza1>ああああ</saza>
<saza2>ああああ</saza>
と置き換えて反映させたいのですが
どうすればよいのでしょうか?

置換タグ等で調べましたがわかりませんでした。
深夜ですがよろしくお願いします。
02872862007/10/04(木) 02:36:00ID:VoLA0M9Q
<saza1>いいいい</saza> 
<saza2>うううう</saza> 

すみません間違えていました
0288nobodyさん2007/10/04(木) 03:28:51ID:???
>>286
変数名を取得って事だよね? 自分も調べたけど出来なかったような記憶がある。

変数名の取得関数getVarName()があったとして↓みたいになればいいって事でしょ?
$saza = ("$tekuno" and "$posh");
if($saza) {$var = getVarName($saza); echo "<$var>ああああ</$var>";}
# =>  <saza>ああああ</saza>


可変変数使っても無駄かな?
$sz ="saza";
$saza = ("$tekuno" and "$posh");
$sz1 = "saza1";
$$sz1 = ("$tekuno" or "$posh");

if($$sz) {echo "<$sz>ああああ</$sz>";}
if($$sz1){echo "<$sz1>いいいい</$sz1>";}
0289nobodyさん2007/10/04(木) 03:38:32ID:???
>>282
IDがすげえな
0290nobodyさん2007/10/04(木) 04:14:55ID:???
>>270
クラス化は一つの解決方法でもあるよね。本来は抽象化が目的だけど。
俺の作ったクラスには各クラスに必ずError()があるし。
逆に↑を非効率的だ!ってイライラする人もいるけど。
(コピペがそんなに面倒かね?)
0291nobodyさん2007/10/04(木) 04:17:11ID:???
>>278
つうかPHPって、hoge.php?test=1にpostすると、
$_GETと$_POSTの両方が取得できるよね。
02922652007/10/04(木) 04:17:26ID:cABdO5b9
>>290
> クラス化は一つの解決方法でもあるよね。本来は抽象化が目的だけど。

私の持っているPHPの本にはクラスのクの字も出てこなかったりしますorz・・・
おそらくクラスがPHPに策定される前に出た本を買ってきてしまったかと(´・ω・`)・・・
0293nobodyさん2007/10/04(木) 04:17:51ID:???
コピペの関数は最初が楽なだけで
仕様変更とか入ったときに恐ろしく面倒。
バグの元にもなる。
0294nobodyさん2007/10/04(木) 04:18:30ID:???
>>282
そのページの「設置方法」を100回読め
0295nobodyさん2007/10/04(木) 04:24:42ID:???
>>292
クラスなんてそんなに難しい概念じゃないよ。
まぁ概念を説明してる本を読むと難しそうに(高尚そうに?)書いてあるけど。
使い方は簡単。でも、思想を理解しないと、メリットや使い方を間違えると思うけどね。

>>293
コピペすることを前提に作ってる関数は、抽象化されてるからバグの温床になったことはないなぁ。
0296nobodyさん2007/10/04(木) 04:28:21ID:???
中途採用でスキル表にPHPが使えるって書いてある奴が
初日に -> ってなんですか?って質問してきた事を思い出した

入門書ってクラスの説明が少なかったり全く無い本が多い気がする
どうして駄目プログラマーを量産するのか
0297nobodyさん2007/10/04(木) 04:36:25ID:???
独り言はチラシの裏にでもかいとけ
02982862007/10/04(木) 04:48:11ID:VoLA0M9Q
>>288

case: $sazaの場合
<saza>〜</saza>で〜を表示すると言う事です。

質問の内容の書込みが全く間違っていました。
すみませんでした。

<html><head> 
<saza>ああああ</saza>
</head> 
<body> 
<saza>ああああ</saza>
</body><html> 
ああああを表示。

02992032007/10/04(木) 05:10:31ID:???
すまん、ID表示も環境記載もしてなかったな。
質問したGIFアニメをそのままの状態でトリミングする方法だけど

1.imagickでGIFアニメを読み込み(バージョンはimagick2のRC4)
2.リストの中に画像全てに対してトリミング処理
3.coalesceImagesで画像を結合
4.writeImagesで引数にtrueを指定して書き出し

としてみたら何とかなった。
俺と同じような事で迷っている人ここに来るかもしれないから、一応書き残しておく。
0300nobodyさん2007/10/04(木) 06:39:53ID:???
<?php
define ('HUGA','/tmp/huga');
if (($fp = fopen(HOGE, "w")) == FLASE)
exit;
sleep(100);
?>
というスクリプトで
自分としてはfopenの引数が違うので実行できないと思ったのですが、
なぜかエラーが出ないばかりか、
実行までできて、しかもsleepもしてしまいます。
どうしてでしょうか?
0301nobodyさん2007/10/04(木) 06:45:35ID:???
>>300
>>1
0302nobodyさん2007/10/04(木) 06:45:41ID:???
>>300
>自分としてはfopenの引数が違うので実行できないと思ったのですが、
間違ってないじゃん

fopen ( string $filename, string $mode [, bool $use_include_path [, resource $context]] )
0303nobodyさん2007/10/04(木) 07:21:11ID:???
>>300
flaseってなんだよfalseだろ

マニュアルちゃんとよめよ
>エラー / 例外
>オープンが失敗するとこの関数は FALSE を返し、 E_WARNING レベルのエラーを発行します。
て書いてあるじゃん

特に設定もしなければ表示はされないが
Use of undefined constant HOGE - assumed 'HOGE
ていうNoticeレベルのエラーがちゃんと出てる

あとソースの書き方が汚いのでどうにかしてちょうだい
0304nobodyさん2007/10/04(木) 12:54:21ID:???
>>298
オレだけかも知れないがいまいち質問がわからん。
何を作ろうとしてるの? 具体的なソース掲示した方がわかりやすいかも
0305nobodyさん2007/10/04(木) 13:10:09ID:???
>>304
相手にしない方がいい
自分の伝えたい事を正しく表現できない奴は人の話も正しく理解できない
03062982007/10/04(木) 14:36:56ID:r3u5qyzl
規制中なので携帯から

>>304
どうもすみません。

<saza>ああああ</saza>
<saza1>いいいい</saza1>
<saza2>うううう</saza2>
と書いておき
$saza = 1;の場合
いいいい
のみを表示したいのです。

実際
$saza = 1;
<?php if ($saza){echo 'ああああ';} ?>
<?php if ($saza1){echo 'いいいい';} ?>
<?php if ($saza2){echo 'うううう';} ?>
echo >>いいいい
で今は動作していますが、ページ内で記述が
ごちゃごちゃになるので
自分なりの置換タグが出来れば
楽かと思い質問しました。

>>305
確かに。
これで最後にします。
0307nobodyさん2007/10/04(木) 14:56:02ID:???
1.<>内の文字列を取る
2.その変数が1かどうかを判定する
3.タグで囲まれた部分を表示する
0308nobodyさん2007/10/04(木) 15:29:57ID:???
>>306
つりか?突っ込んでほしいのか?代入ってわかるか?
実際以降のスクリプトだと"ああああ"しか表示されないだろ?
0309nobodyさん2007/10/04(木) 15:33:00ID:???
コンパイルのときに configure に与えたパラメータを
phpinfo() で見ることができてたようなきがするんだが、
今見たら出力されないんだ。
俺の記憶違いかな?
確認する方法ってないのかな?

0310nobodyさん2007/10/04(木) 15:35:28ID:???
>>309
普通に書いてあるから、よく見れ
03113092007/10/04(木) 16:28:47ID:???
>>310
うううー
ttp://www.linux-user.de/ausgabe/2005/08/047-php/phpinfo.png
では、Build Date の下に Configure Command あるけど、
俺のところでは これが抜けてるんだ
トリはdebian etch
sargeのときは表示されてたような希ガス
03122982007/10/04(木) 16:32:00ID:r3u5qyzl
>>308
すいません釣りじゃないです。
$saza = $aa
でおねがいします。
0313nobodyさん2007/10/04(木) 16:35:36ID:WKEPKRFz
>>311
phpのバージョンとconfigureした時のオプションは?
0314nobodyさん2007/10/04(木) 16:41:17ID:WKEPKRFz
>>311
確認したいだけなら /usr/local/src/php-5.2.1/config.status とかで見れる。
これは俺の環境でだから自分の環境でソースまでのパスの下にconfig.statusがあるってことね
0315nobodyさん2007/10/04(木) 17:05:37ID:3TfT8CvK
質問します
会員管理システムで、ログイン後ユーザ情報編集画面に移るようにしたいんですが、
ログイン用のIDとPassは名前や電話番号などのユーザ情報テーブルの
中に入れてもいいんでしょうか?
それとも、ログイン確認用の専用のテーブルを持たせるべきでしょうか
みなさんはどのようにしていますか? 
だいたいこんな感じというのを教えてください。 よろしくお願いします
0316nobodyさん2007/10/04(木) 17:15:57ID:???
板違い
0317nobodyさん2007/10/04(木) 17:16:38ID:???
だいたいこんな感じ、でいいのか
0318nobodyさん2007/10/04(木) 17:17:50ID:???
PHPに関係ない
正規化について調べて、次からデータベース板で
0319nobodyさん2007/10/04(木) 17:19:39ID:???
>>298
$tekuno とか $posh が何なのかわからんし、書き込みの内容もいまいち理解できんのだが
本気で悩んでそうなのでなんとなくレスしてみる
見当違いの回答だったらごめんね
<?php
// $tekuno $posh が処理されていると仮定

$saza = ($tekuno && $posh) ? "<saza>ああああ</saza>" : "";
$saza.= ($tekuno || $posh) ? "<saza1>いいいい</saza1>" : "";
$saza.= ($tekuno != $posh) ? "<saza2>うううう</saza2>" : "";

echo <<< HTML
<html>
<body>
{$saza}
</body>
</html>
HTML;
?>
03203092007/10/04(木) 17:19:41ID:???
パッケージで入れたから
config.status
はないんだわ
ソースパッケージからみつけた
COMMON_CONFIG=--build=$(PHP5_BUILD_GNU_TYPE)-gnu --host=$(PHP5_HOST_GNU_TYPE)-gnu
--mandir=/usr/share/man --enable-memory-limit --disable-debug --with-regex=php
--disable-rpath --disable-static --with-pic --with-layout=GNU --with-pear=/usr/share/php
--enable-calendar --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-track-vars
--enable-trans-sid --enable-bcmath --with-bz2 --enable-ctype --with-db4 --without-gdbm
--with-iconv --enable-exif --enable-filepro --enable-ftp --with-gettext --enable-mbstring
--with-pcre-regex=/usr --enable-shmop --enable-sockets --enable-wddx
--with-libxml-dir=/usr --with-zlib --with-kerberos=/usr --with-openssl=/usr
--enable-dbx --enable-soap --enable-zip --with-mime-magic=$(MAGIC_MIME)
--with-exec-dir=/usr/lib/php5/libexec
0321nobodyさん2007/10/04(木) 17:37:46ID:???
>>315
いいんじゃない?
passはmd5でもしとけ
0322nobodyさん2007/10/04(木) 19:17:47ID:???
>>306
ますます何をしたいのかわからない。
そのソースは転載用に改造したものと思うけど処理の真意が伝わらない。
(>>319氏も書いてるが$tekunoも$poshも$saza*も変数名から推測できないし)
貴方の文章力だと処理をどうこうしたいじゃ理解できないから、こうしたいという具体的な目的とうまく動作しないソースを改変せずそのまま貼った方がいい。
言葉で表せないって事は当然プログラムに落とせないよ。

置換タグとはテンプレートを読み込んで置換したいのか?
「ああ」「いい」「うう」を併記しておいてその内1つだけを出力したいの?
if文かswitch文の分岐出力とも思えたりするのだが。
0323nobodyさん2007/10/04(木) 19:30:58ID:???
>>306
ようするにデータをXMLファイルで持っておいて、
任意のカラムのデータを取り出したい、ってことの気が…
それ、全然独自じゃないよ。
あと、あくまで独自のが作りたいんなら「自分で処理しやすい形式」にしましょう。
03243232007/10/04(木) 19:36:01ID:???
>>306
> 実際
> $saza = 1;
> <?php if ($saza){echo 'ああああ';} ?>
> <?php if ($saza1){echo 'いいいい';} ?>
> <?php if ($saza2){echo 'うううう';} ?>
> echo >>いいいい
> で今は動作していますが、ページ内で記述が
> ごちゃごちゃになるので

ちなみにこれ、普通は
$data = array(
  'ああああ',
  'いいいい',
  'うううう',
);
echo $data[$saza];
みたいに処理します。
0325nobodyさん2007/10/04(木) 19:37:16ID:???
>>321
ありがとうございました 一度そのやり方でやってみます。

>>316-318
済みませんでした、以後気をつけます
0326nobodyさん2007/10/04(木) 19:41:20ID:???
>>298>>306はきっとノーベル賞を狙ってるんだな・・そうとしか思えないカキコ内容
凡人の俺には理解不能だし・・
0327nobodyさん2007/10/04(木) 19:52:47ID:???
>>324
論理演算の結果(true/false)を$saza*に入れてるから配列はダメじゃね?
and、or、!=、の3つなら最低2つの変数は同じ値だし。
$saza = 1とか書いてるから難解になるんだよ。なぜ$saza = trueにしない

03283242007/10/04(木) 20:09:01ID:???
>>327
データを配列化した上で、$sazaとかの変数も処理しやすいよう
正規化してやるのが常道だと思いますよ。
>>306は文系脳な人なのかもしれないけど、データ構造・形式を疎かにして
アルゴリズムだけで何とかしようとするのはプログラムとは言えません。
03292982007/10/04(木) 21:58:38ID:r3u5qyzl
ttp://q.hatena.ne.jp/mobile/1190542039
この質問の、<h2>に条件を付けて表示できないかのような事
です。
条件1なら表示
条件2なら非表示という事です。

ただし、表示時に<h2>を残さないようにしたいのです。


下らない質問というより、わからない質問に真面目に答えてく
ださってる方、
どうもありがとうございます。


0330nobodyさん2007/10/04(木) 22:42:23ID:???
>>329
全然元の質問と違うーーー!!www
0331nobodyさん2007/10/04(木) 23:04:32ID:???
>>329
これはヒドイなぁ
自分で理解できてないものを情報小出しにして他人に聞くのはマズくねえか?
0332nobodyさん2007/10/04(木) 23:15:47ID:???
>>319 がまじめにレスしてるのに
無視するのはよくないぞ

↓じゃだめなのか?駄目ならその理由を第三者にわかるようかつ簡潔に述べよ。
<?php
$japanese = true;
$english = false;
?>
<html>
<body>
<?php if ($japanese) { ?>これはペンです。<?php } ?>
<?php if ($english) { ?>This is a pen. <?php } ?>
</body>
</html>

0333nobodyさん2007/10/04(木) 23:18:45ID:???
>>332
HTMLのど真ん中で条件判断させたくないって話だと思われ
0334nobodyさん2007/10/04(木) 23:28:57ID:3TfT8CvK
質問です。
会員システムで、ID(idhoge) と PASS(passhoge) に基づいて各ユーザの情報を管理してる場合でも
ブラウザ上では
profile.php?uid=10001 profile.php?uid=10002 
といった風に連番のパラメータを渡して各ユーザの情報を表示する場合があると思います。
もしこれが、ユーザ登録時のインクリメントの固有値を使ってるのだとしたら、
こういうのって、直接 profile.php?uid=idhoge としない場合にくらべてどんなメリットがあるのでしょう?
概念的というか、漠然とした質問かもしれないですがよろしくお願いします
03352982007/10/04(木) 23:30:24ID:r3u5qyzl
今、本を買ってきたので、もう一度自分で考え直してみます。
失礼しました。
0336nobodyさん2007/10/04(木) 23:30:53ID:???
>>329
えーと・・・・つまり、

はてなで紹介されてた手法を使うとHTMLの中にPHPコードを埋め込まなくても
自由に表示を制御できるらしいぞ!ってことは俺の;プログラムもPHPコードを
全部消してちょーシンプルにできるんじゃね?きゃっほー魔法みたいだー!
でも読んでもやり方さっぱりわからねー。ereg_replaceとかどこに書くんだ。
わっかんねーからくだ質で聞いてみるべ!

…と、こんな感じの話なんでしょうか?
とりあえず君はSmartyを覚えた方が幸せになれる気がするけど。
0337nobodyさん2007/10/04(木) 23:32:29ID:???
結局 >>298 が何を考えてたかを
エスパーできる奴はいなかったとさ
0338nobodyさん2007/10/04(木) 23:34:55ID:???
>>334
ユーザからの要望に応じて後から自由にIDを変更できる。
(特に複数テーブル間でIDを識別子に使ってる場合に重要)
IDに使用可能な文字や桁数を自由にできて融通が利く。
識別子は数字列にしといた方がDB上での検索が速くなる。
0339nobodyさん2007/10/04(木) 23:42:50ID:???
>>338
すごく納得できました
ありがとうございました
0340nobodyさん2007/10/05(金) 00:28:12ID:???
>>329
319だけどエスパーになりたいので再チャレンジするおw

<?php
$saza = 1;

$output = <<< HTML
<saza>ああああ</saza>
<saza1>いいいい</saza1>
<saza2>うううう</saza2>
HTML;

$saza_flag = array(0, 0, 0);

$saza_flag[$saza] = 1;

$pattern_array = array();

if ($saza_flag[0] == 0) $pattern_array[] = '(<saza>.*<\/saza>)';
if ($saza_flag[1] == 0) $pattern_array[] = '(<saza1>.*<\/saza1>)';
if ($saza_flag[2] == 0) $pattern_array[] = '(<saza2>.*<\/saza2>)';

$pattern = implode("|", $pattern_array);

$output = preg_replace("/{$pattern}/", "", $output);

echo $output;
?>
0341nobodyさん2007/10/05(金) 02:05:39ID:???
interface iAAA{}
interface iBBB{}
interface iCCC extends iAAA, iBBB{}

abstract class DDD implements iCCC{}
class EEE extends DDD{}


class DDDに インターフェイス iCCCを実装しているんですが、なぜabstractが必要なんですか?
abstract無しだとダメなんでしょうか?

また、class EEEには、abstractは必要ないんですか?
0342nobodyさん2007/10/05(金) 02:08:55ID:???
>>329
はてなのは絶対に削除で、>>329は条件付き削除(表示)、なら
preg_replaceを条件で分岐させればいいだけじゃないの?
(ソースはコピペなので未検証)

$html = <<< ENDHTML
<h1>hoge</h1>
<h2>hogehoge</h2>
<p>hogehogehoge</p>
<h2>hogehogehoge</h2>
<img src="hoge.src">
ENDHTML;

$mode = true;
if($mode) echo $html;
else echo preg_replace('!<h2>.*?</h2>\n*!i', '', $html) ;

2分岐なら$modeに真偽値で代入して上の処理、
多岐分岐なら==で比較しながら「if〜elseif〜」かswitch文
条件1ならh1表示、条件2ならh2表示、だと置換パターンも変える。

HTML側に変則的な文字列入れといて適当な文字列に置換って手もあるけどreplaceが2回必要になる。
0343nobodyさん2007/10/05(金) 02:16:51ID:zHZGL2zy
クラスってひとつごとに一つのphpファイルに格納していった方がいいと思う?
0344nobodyさん2007/10/05(金) 02:52:19ID:???
>>341
これphp?
複数のimplementsはできても複数のextendsはできんかったと思うけど

EEEと同じようなクラスが他にもいくつかあると思うけど
それらで共通の処理が必要なものをabstractに書いてたりすんじゃないかな

>>343
俺はhogehogeというクラスのファイルは
hogehoge.class.phpでクラス毎に1個1個作ってる
0345nobodyさん2007/10/05(金) 02:56:27ID:???
>>342
それ、2分岐くらいまでなら問題ないけど、質問主の要望みたいに
3、4分岐と増えるに従ってかなり面倒になるよ。
「1つだけ消す」のなら単純にelse条件を1つ増やすだけだけど、
「複数あるうち1つだけ残す(=3個とか4個とか消さないといけない)」なので。

で、そんなのいちいち条件判定しないで、正規表現に任すのがいいんじゃない?

$html = <<< ENDHTML
<sage1>hoge</sage1>
<sage2>hoge</sage2>
<sage3>hoge</sage3>
<sage4>hoge</sage4>
ENDHTML;

$sage = 2;
echo preg_replace("!<sage[^$sage]>.*?</sage[^$sage]>!", '', $html);
0346nobodyさん2007/10/05(金) 02:58:14ID:???
>>343
基本的には。

1つのファイルに複数クラスを入れるのはその両クラスがよっぽど関連が強くて
ほぼ確実にワンセットで使うだろう場合くらい。
03473452007/10/05(金) 03:07:52ID:???
おっと、>>329の要望だと<sage*>はユーザタグだからこれも消さなきゃいかんのか。
$html = <<< ENDHTML
<sage1>hoge1</sage1>
<sage2>hoge2</sage2>
<sage3>hoge3</sage3>
<sage4>hoge4</sage4>
ENDHTML;

$sage = 2;
echo preg_replace("!<sage[^$sage]>.*?</sage[^$sage]>|<sage$sage>|</sage$sage>!", '', $html);

ってとこかね。
これで
hoge2
だけ表示される。

あと$tekunoだかなんだかの話は、上記で$sage=2;にしてるとこを
if($tekuno and $posh) $sage = 1;
if($tekuno or $posh) $sage = 2;
if($tekuno != $posh) $sage = 3;
とすりゃいいんでしょ?
0348nobodyさん2007/10/05(金) 05:10:20ID:utkOd4pp
そろそろPHP熱が冷めてきて新しいこと始めたい今日この頃
Web技術のワンステップアップとしてPHPの次に.NETかServlet,JSPに触れたいと思ってます
Javaを理解している人間にとってPHPやC#はわかりやすいと聞くけど
逆にPHPからJava,C#を習得するのって困難ですか?
オブジェクトPHPを理解してる人にはある程度敷居が低いんでしょうが
自分はOOPは初歩程度の知識しかありません
みなさんはPHPからのステップアップとしてどういった技術を身に付けましたか?または身に付けようと思ってますか?
0349nobodyさん2007/10/05(金) 05:54:11ID:???
>>348
どれもコピペで実装しそうな雰囲気だな
全て中途半端で終わりそうw
0350nobodyさん2007/10/05(金) 06:34:13ID:???
>>348
とりあえずはPHP5でOOPを勉強してみりゃいーんじゃね?
0351nobodyさん2007/10/05(金) 06:50:35ID:???
PHPでOOPとか正気か?
0352nobodyさん2007/10/05(金) 06:58:58ID:???
Rubyでもやれってのか?
Smalltalk以外のOOP言語なんてどれも50歩100歩だよ。
形だけ学ぶならPHPで十分、十分。
0353nobodyさん2007/10/05(金) 07:49:36ID:???
OOPって概念がいろいろあるよね。
この辺のブログが役に立つと思う。

ttp://d.hatena.ne.jp/sumim/20040525/p1
ttp://d.hatena.ne.jp/JavaBlack/20070825/p1
0354nobodyさん2007/10/05(金) 08:03:17ID:???
>>352
正気でいってるなら恐ろしい
0355nobodyさん2007/10/05(金) 08:15:08ID:???
>>348のWeb技術ステップアップってのがどうもよくわからん。
Java,C#を学ぶのは他言語での記述力をつけるってことでいいかと。
OOP? OOPとWeb技術とどう結びつくのか不明。
0356nobodyさん2007/10/05(金) 08:17:05ID:???
いや、ステップアップのためにOOPを勉強したいわけじゃなくて、
ステップアップするならJavaかC#?でもOOP分からんから怖くて触れない
って言いたいんだろ。
0357nobodyさん2007/10/05(金) 08:17:15ID:???
>>354
正気じゃなくても恐ろしい
0358nobodyさん2007/10/05(金) 08:37:29ID:???
型無し言語から学び始めた人なら早目に型有り言語にシフトするのがいいかも
・宣言していない変数使おうとして怒られる
・異なる型どうしをキャストせずに代入しようとして怒られる
こんな些細なことで躓く子がたまにいるんだよね
0359nobodyさん2007/10/05(金) 09:03:26ID:???
まったく質問と違う流れになっててワロタ
0360nobodyさん2007/10/05(金) 09:21:33ID:???
型有無は結構おおきいね
Cをメインにやってたとき、型無し言語をしってびっくりしたぞ
0361nobodyさん2007/10/05(金) 09:35:51ID:OqMmbiqQ
高級言語で型を必要としてる時点で高級言語でないよね
0362nobodyさん2007/10/05(金) 09:37:56ID:???
変換する時にエラーを吐く理由がわかっているなら変換してくれよ!と思うw
0363nobodyさん2007/10/05(金) 10:03:51ID:???
CメインでもBASICの存在くらい知識に入れとけよ
03643602007/10/05(金) 10:24:41ID:???
型強制言語のメリットは
コンパイル段階でエラーつぶせる事だよね
error_reporting(E_ALL);
って必ず書くやつは、型強制言語出身の可能性大だと思うわ
0365nobodyさん2007/10/05(金) 10:29:15ID:???
PHPしかやったことない身からしたら
型付けってなんの意味があるの?って思っちゃうんだが
メモリを効率につかうためとかいう理由?
03663602007/10/05(金) 10:41:36ID:???
>>365
それもあるが、効率考えなくていいとこもあるから、
それはケース倍ケースだな
型強制言語から始めたものとしては、
宣言していない変数使おうとしてもそれなりに動いてしまう
のは脱力ポイントだな。
$hoge = 1
:いろいろ書いてて
echo $hogo; 変数名typo
とかやっても実行できてしまう。
Notice出すようにすればいいけど、実行しないと出ないでしょ。
型付けありだと、実行させなくてもコンパイル段階で
エラーでるからな。単純ミスは減らせる。
その分、ソースの記述は多くなるがな。

0367nobodyさん2007/10/05(金) 11:05:17ID:???
おれにはperlやphpは宣言しなくてもよくてコンパイルも
必要なく手軽に扱えるというのが好感触ポイントだけどな

なんかphpは下級言語で高級言語のC使えるやつや使ってる奴がえらい みたいな流れだな
嫌味くせえ
0368nobodyさん2007/10/05(金) 11:09:48ID:???
いやいやPHPは超高級言語だから
難易度が簡単なもの=低級じゃないよ
人間に理解可能かどうか
人間にとって難解であれば難解であるほど低級言語

低級←             →高級
機械語 アセンブラ C JavaやPHP
0369nobodyさん2007/10/05(金) 11:17:14ID:???
ところでPHPのソースってC++?
0370nobodyさん2007/10/05(金) 11:35:46ID:???
>>30-33の流れの話とか、>>33の飛び先の話とかデータ型を意識しないで
或いは意図的に避けて育っちゃうと理解できないと思うし、解決方法を
見い出すことすらままならないじゃないかな。
03713602007/10/05(金) 11:38:13ID:???
メリットデメリット両方書いたつもりなんだがな
嫌味に聞こえたなら悪かった
正直なところケースバイケースだと思う
>>348 の質問があったから、型なし言語の経験のみなら、
次やるとしたら型ありがいいんじゃない?っていいたかっただけ
php本体はCで書かれてるgccだから一部c++な機能つかってるかもだけど
ちなみに、機械語、アセンブラ以外は全部高級言語だよ
個人的には phpとかjavaとか無かった時代の言葉なので、今使うのは
時代になじまないと思う
0372nobodyさん2007/10/05(金) 11:38:20ID:???
>>369
CそれとAWKがちらほら
0373nobodyさん2007/10/05(金) 11:38:23ID:???
ORZ
0374nobodyさん2007/10/05(金) 11:43:28ID:???
Cは高級アセンブリ言語という位置づけでしょ
低級でもなければ高級でもないんじゃね?
中級ってところだと思うが
ポインタなんかもあるし
0375nobodyさん2007/10/05(金) 11:45:00ID:???
機械語を知らない奴がプログラムを語るなと某所で煽ってる奴がいたな

>>373
どうしたw
03763602007/10/05(金) 11:50:47ID:???
http://ja.wikipedia.org/wiki/%E9%AB%98%E7%B4%9A%E8%A8%80%E8%AA%9E
とかで判断してくれ
0377nobodyさん2007/10/05(金) 11:51:28ID:???
>>375
それ見たかもしれない。
どっかの会社の社長の日記だろ?はてなで見た気がする。
アセンブリ言語ならともかく機械語までさかのぼっちゃうのはどうなのよ。
古い人間の意見だと思いたいんだけど実際本当に機械語まで知る必要がある?
機械語世代の古参プログラマの方の意見を聞きたいね。
あったほうがいいっていうなら話はわかるけど必須っていわれると・・・
0378nobodyさん2007/10/05(金) 12:00:02ID:???
>>377
必要無いでしょ。CPU(MPU?)毎に異なるんだし。
機械語だってCPUに取り込まれてそのまま実行じゃなくて
さらに翻訳して…という行程を経るから意味無しじゃん。
0379nobodyさん2007/10/05(金) 12:06:36ID:???
PHPだけならアセンブリは不要
というのもPHPで大規模なものは作らないから最適化の必要がない
そもそもPHPでアセンブリを使えない(と思う)
03803752007/10/05(金) 12:09:16ID:???
まあ書いた人曰くエラーに強くなるとか何とか

LLのモジュールをデバッガで追いかけてバグの原因を探すとか
微妙に訳の分からん話をしていたな
0381nobodyさん2007/10/05(金) 12:11:09ID:???
>>378
機械語は唯一CPUが直接実行することができるんだよ
他の高級言語は最終的に全て機械語に変換されて実行される
0382nobodyさん2007/10/05(金) 12:20:59ID:???
>>381
アセンブリ言語をアセンブルした機械語をCPUが直接実行するんじゃなくて
CPUの中で機械語をさらに内部コードに展開して実行するという話でしょ
03833602007/10/05(金) 12:28:09ID:???
>>377
俺C世代だが、そのころはアセンブラしっておかないと。とかよく言われてたから
さわりだけかじったことはあるぐらい
>>378 がかいてるとおり、
今はさすがにそこまで知っておく必要性は薄れてきてるとおもう
linux kernel も アセンブラで書かれてるのは一部だしね
俺もその記事よんだが、メモリの使われ方とかイメージできない
やつが多すぎる。のようなこと書いてた点には賛同しちゃう
一生webしかやらないなら不要かもしらんが、負荷集中して
パフォーマンス出ない。unsetしたほうがいいんじゃないの?とか
phpソースレベルで詳細確認したいとかいう状況になる立場に
いるのなら知っておいたほうがベストではあると思う
もっともほかの言語に行く前に、
正規表現使えるようになっとけ
ってことかな応用きくしな
0384nobodyさん2007/10/05(金) 12:39:08ID:???
俺もアセンブリ言語覚えたいなー
やっぱりその辺から理解していると絶対楽しいと思うし

何よりデバッガ見てちゃんと理解できるのが羨ましい
0385nobodyさん2007/10/05(金) 12:44:06ID:???
>>382
そういう話だと思うが、分子=機械語、原子=内部コード
みたいなものだからどちらかというと分子の振る舞いを知る方が
化合物=高級言語のユーザには重要だと思う。
# 特にPHPって高級言語のなかでも素の部分は低級な作りだから。
0386nobodyさん2007/10/05(金) 12:47:09ID:???
PHP使いに機械語の知識は必要か?

Cの知識はあるべきだと思う。自称mysqlのモジュールでも読んで、
簡単なモジュールでも書けるようにしとけばなにかと役に立つ。
PHPなんて簡単過ぎてもう完全にマスターしちまったよ、
と思ったらCソースを読めるようにしとくと、ここでさらにデカい顔が出来る気がする。

アセンブラは...どうだろうね。俺は組み込みマイコンで遊ぶことがあるから
たまに書いたりディスアセンブルしたコードを読むことはあるけど、
PHPと関係するような場面で役に立つことはなさそう。
ただCの理解にはとても良い。すごく良い。

機械語は、たぶん必要ない。ただ自在に操るとカッコいい。

>>384
たいていはソースレベルデバッグで間に合うからCだけで大丈夫だよ。
0387nobodyさん2007/10/05(金) 12:56:51ID:???
昔、Z80のアセンブラに手を出し多倍長演算が面倒で投げ出した<駄目じゃん、俺
0388nobodyさん2007/10/05(金) 13:03:40ID:???
何か話が明後日の方向にすすんでるけど、
>>348の質問「PHPの次のステップアップ」は機械語でFA?
0389nobodyさん2007/10/05(金) 13:06:43ID:???
Cをマスターするのは良いかもねぇ。PECLで貢献できるかもしれないよ。

それはさておき>>348の欲望を満たすにはどうすんべ?
環境構築はWindows+IIS+.NETFrameworkでC#の方が間違いが少ない
どう転んでもこれで設定に失敗するってことはないと思うが
0390nobodyさん2007/10/05(金) 13:17:56ID:???
ただ>>348はPHP熱が冷めたから次ステップと言ってるからPHPを極めて次って訳じゃないんだよね。
PHPのOOPすらしてないみたいだし。
だから何やっても中途半端に終わる予感。
Web技術云々ならHTTP関係の勉強したら?と思った。言語はPHPのOOPでも。
0391nobodyさん2007/10/05(金) 13:24:29ID:???
>>389
確実にできるものだけ選択しててもレベルアップにはならんのでは?
環境構築だって立派なスキルだし、独学なら教科書読むより失敗から学ぶ方が身につく。
0392nobodyさん2007/10/05(金) 13:42:15ID:0zJjw8jk
国土交通省のサイトから
位置情報のデータベースをダウンロードして
MySQLに全部ぶちこみたいんだけど、
何せ量が多すぎる・・・

全部で1GBくらいになるんだが、レンサバじゃきつい
何かいい方法ないかな?
03933602007/10/05(金) 13:46:22ID:???
しつこいけど正規表現はおぼえとくべき
>>390 の書いたHTTPプロトコル勉強するのはいいね
セッションのしくみ知らない人多いとおもう
phpで書かれたフリーソフト読むとかでもいいかも
どっかのフレームワークとかいいんじゃね?

どうしても、
oopやりたいんならjavaとかC#のほうがいいとおもう
phpは標準でクラスライブラリないから
与えられる道具もクラスの言語の方が理解しやすいんじゃないかな
0394nobodyさん2007/10/05(金) 13:50:38ID:???
>>392
バケツの容量以上に水を入れたい
とかいわれてもいい方法などない
すれ違いだしな
0395nobodyさん2007/10/05(金) 14:10:05ID:yfT5K3xu
MySQLに入ったvarcher型データに改行されている文字列がありますが
そのデータを普通に取得しただけでは改行されませんよね
改行を<BR>に置き換えたいのですが、置き換える元(VBならvbcrlf)がわかりません
何になるのでしょうか?
0396nobodyさん2007/10/05(金) 14:13:41ID:???
>>395
nl2br
03973952007/10/05(金) 14:16:24ID:???
即レスありがとう
無事解決しました
0398nobodyさん2007/10/05(金) 14:27:04ID:???
-11.5478って型はfloatだっけ?
0399nobodyさん2007/10/05(金) 14:39:57ID:???
var_dump(-11.5478)
0400nobodyさん2007/10/05(金) 15:06:23ID:???
追記
gettype(-11.5478)
もやってみるとおもしろいよ
0401nobodyさん2007/10/05(金) 15:15:24ID:???
>>392
自宅にDBサーバー用意してリモートでそっちに接続。
0402nobodyさん2007/10/05(金) 15:24:44ID:OqMmbiqQ
>>392
国土地理院のやつかな?
あれは重複が結構あるね。
重複分を整理、都道府県名や市町村名など余分なものはカット。
これで半分ぐらいになる。
0403nobodyさん2007/10/05(金) 15:55:57ID:???
質問です。
if( ! is_array($hoge)){
$ tmp = array();
for($ i = 0; $i<strlen($hoge); $i++){
$tmp[$i] = substr($hoge, $i, 1);
}
$hoge = $tmp

if( ! is_array($hoge)){でhogeが配列でないことを調べているのに、
$hoge = $tmpで配列に変換しているということは、
左辺が変数で右辺が配列のとき値の代入すると、
自動で左辺の変数が右辺の方の配列に変換されるのでしょうか?
0404nobodyさん2007/10/05(金) 16:03:46ID:???
自動で変換されてるんじゃないの? (自信なし)
$hoge = $tmpの前後で$hogeをデバッグプリントすれば?
04054032007/10/05(金) 16:04:40ID:???
>>404
ありがとうございます
原因がわかって自己解決しました
0406nobodyさん2007/10/05(金) 16:39:48ID:???
>>405
してないです。
0407nobodyさん2007/10/05(金) 16:43:58ID:???
>>405
どういう原因だったの?
自己解決したなら教えて。
04084052007/10/05(金) 17:25:09ID:???
>>407
そんなこと恥ずかしくって書けません。
0409nobodyさん2007/10/05(金) 17:27:45ID:???
>>403
変換っちゅーか置き換えられちゃうだけだけどな。
代入時に元の変数の型なんておかまいなしだよ。
0410nobodyさん2007/10/05(金) 17:39:05ID:???
>>403
PHP4だったら $tmp の持っている値を $hoge に代入になるんだけど
PHP5は $hoge =& $tmp を暗黙に行う
0411nobodyさん2007/10/05(金) 18:23:42ID:???
>>410
暗黙で参照渡しなんてしないだろ…
0412nobodyさん2007/10/05(金) 18:33:15ID:???
>>410
そりゃオブジェクトの代入だw
配列で参照なんて渡さねぇw
0413nobodyさん2007/10/05(金) 20:06:21ID:/jiD7c/g
ただ特定のipに対してping送りたいだけなんですが
phpだとどのようにしたらできますか?
0414nobodyさん2007/10/05(金) 20:08:38ID:/jiD7c/g
なんかIDが正規表現みたいだった
0415nobodyさん2007/10/05(金) 20:11:26ID:???
環境ぐらい書いたほうがええで
0416nobodyさん2007/10/05(金) 20:14:47ID:/jiD7c/g
すいません。OSはRedHat、phpのバージョンは4.4.6、apache使用です。
平たくいうとlolipopのレンタルサーバです。
0417nobodyさん2007/10/05(金) 20:20:31ID:???
`ping 127.0.0.1`;
0418nobodyさん2007/10/05(金) 20:26:08ID:???
ping回数ぐらい指定しないと
0419nobodyさん2007/10/05(金) 20:45:34ID:/jiD7c/g
pingの回数は特に決まってません。

>>417
それは何かの関数で使うんでしょうか?
0420nobodyさん2007/10/05(金) 20:46:28ID:???
exec()とかsystem()とおさないで直接``って書くものなの?
0421nobodyさん2007/10/05(金) 21:08:20ID:/jiD7c/g
$hostにipを入れるとして
system("ping $host");
こんな感じでしょうか?
0422nobodyさん2007/10/05(金) 21:13:31ID:???
>>419
実行演算子参照
0423nobodyさん2007/10/05(金) 22:36:46ID:???
pingの結果は特に参照しないならsystem()の方が速いかもだけどな。
0424nobodyさん2007/10/05(金) 22:43:03ID:???
>>421
/bin/pingとかフルパスにしといた方がいいかもな。
0425nobodyさん2007/10/05(金) 23:40:08ID:/jiD7c/g
ありがとうございました。解決しました。
0426nobodyさん2007/10/05(金) 23:49:03ID:???
ハッシュのキーを変更する方法ありますか?
例 array_key_rename($hash, $key, $rename);

配列の中から特定のキーを除いた配列を返す関数ありますか?
例 array_key_remove($hash, array('key1','key2','key3'));
0427nobodyさん2007/10/05(金) 23:52:18ID:???
>>426
http://www.php.net/manual/ja/
04284262007/10/05(金) 23:56:35ID:???
>>427
あなた、そこちゃんと見ましたか?
見てからレスしてください。
0429nobodyさん2007/10/06(土) 00:03:41ID:???

物凄く頭のおかしい事を言ってるような気が
0430nobodyさん2007/10/06(土) 00:10:29ID:???
>>426
function
0431nobodyさん2007/10/06(土) 00:14:47ID:???
こりゃまた香ばしい
0432nobodyさん2007/10/06(土) 00:16:58ID:???
>>426
とりあえずID出せ
0433nobodyさん2007/10/06(土) 00:17:55ID:???
>>426,428
http://item.rakuten.co.jp/book/1721279/
0434nobodyさん2007/10/06(土) 00:38:14ID:???
>>411
>>412
PHP5はオブジェクト型を暗黙で参照渡しするんじゃないか?
配列はオブジェクト型でしょ。

ただ>>403の答えにはまったく関係ないけど
0435nobodyさん2007/10/06(土) 00:39:09ID:???
>>433
わざわざ探してきたのかw
0436nobodyさん2007/10/06(土) 00:43:10ID:???
>>435
「口のきき方」でググッただけ。
最初amazonのURL貼ったら長すぎと蹴られたので楽天のにした
0437nobodyさん2007/10/06(土) 00:48:25ID:???
>>434
> PHP5はオブジェクト型を暗黙で参照渡しするんじゃないか?
それはそうだが

> 配列はオブジェクト型でしょ。
そんな与太話をどっから拾ってきたんだ。
0438nobodyさん2007/10/06(土) 00:58:59ID:???
JavaScript辺りと混同してるんじゃないか?
0439nobodyさん2007/10/06(土) 01:06:24ID:???
クッキーを保存するプログラムで
保存されてないんだけどなんでだろう
ダウソした見本コードでも保存されてないし
0440nobodyさん2007/10/06(土) 01:09:41ID:???
>>439
IDとソース出せ
0441nobodyさん2007/10/06(土) 01:10:37ID:???
>>439
自作ソースか見本ソースを貼って質問して
0442nobodyさん2007/10/06(土) 01:11:30ID:???
>>439
見本が古いんじゃね
0443nobodyさん2007/10/06(土) 01:15:18ID:???
<html>
cookie.php
<head>
<title>クッキーでデータを記録する</title>
</head>
<body>
<form method="POST" action="cookie_rec.php">
E-Mailアドレス:
<input type="text" name="email" size="30" maxlength="50"
value="<?php print($_COOKIE['email']); ?>" />
<input type="submit" value="送信" />
</form>
</body>
</html>

cookie_rec.php
<html>
<head>
<title>クッキーでデータを記録する</title>
</head>
<body>
<?php setcookie("email",$_POST['email'],time()+(60*60*24*90)); ?>
クッキー"email"を保存しました。
</body>
</html>
こんなんです・・・・
0444nobodyさん2007/10/06(土) 01:17:10ID:???
マニュアル読んでやったほうがいいね
本だから簡易化して説明するのは当然としてもひどすぎる
0445nobodyさん2007/10/06(土) 01:20:59ID:???
>>443
自信ないけどクッキーってhtml本体より前に発行しないといけなくなかったか?

setcookie
http://jp2.php.net/manual/ja/function.setcookie.php
etcookie() は、その他のヘッダ情報と共に 送信するクッキーを定義します。
ほかのヘッダ情報と同様に、 クッキーは、スクリプトによる他のあらゆる出力よりも前に 送信される必要があります(これはHTTPプロトコルの制約です)。
<html> や <head> タグはもちろん 空白も含め、あらゆる出力よりも前にこの関数をコールするようにしなければなりません。
0446nobodyさん2007/10/06(土) 01:21:29ID:???
>>437
>>438
$arr1 = array('a'=>2);
$arr1[] = $arr1;
var_dump($arr1);

参照になってないか?
0447nobodyさん2007/10/06(土) 01:22:06ID:???
ハッシュのキーを変更する方法ありますか?
例 array_key_rename($hash, $key, $rename);

配列の中から特定のキーを除いた配列を返す関数ありますか?
例 array_key_remove($hash, array('key1','key2','key3'));

質問に答える方は、>>1の内容をよく読んでから答えてください。
答えになっていないリンクはいりません。
0448nobodyさん2007/10/06(土) 01:22:53ID:???
まだいたの?お引取り下さい。
0449nobodyさん2007/10/06(土) 01:23:54ID:???
>>448
答えが出ていませんからね。

そりゃ、出るまでいますよ。
0450nobodyさん2007/10/06(土) 01:25:05ID:???
>>449
答えは判明してるけど君には誰も教えたくないんだよw
0451nobodyさん2007/10/06(土) 01:29:41ID:???
「ないから作るしかない」
その一言がいえないんですよね?w
0452nobodyさん2007/10/06(土) 01:30:29ID:???
>>447
スレ違い
http://pc11.2ch.net/test/read.cgi/php/1158647441/
0453nobodyさん2007/10/06(土) 01:32:09ID:???
>>447
質問する側もちゃんと>>1を読もうな。
0454nobodyさん2007/10/06(土) 01:32:48ID:???
>>452
すこし落ち着いたらどうですか?w

PHPが大好きなのはわかりますが、
ないものは素直にないといいましょうよ。
それだけでしょ?
0455nobodyさん2007/10/06(土) 01:34:20ID:???
>>446
なんだそのコード???
意味分かって書いてるのか。
0456nobodyさん2007/10/06(土) 01:34:57ID:???
>>455
>>1を読め
04574552007/10/06(土) 01:36:24ID:???
>>456
>>1のどこを読めって?
0458nobodyさん2007/10/06(土) 01:36:40ID:???
>>455
$arr1に$arr1のコピーを追加する。
だけど、var_dumpには参照として出てるよね?
0459nobodyさん2007/10/06(土) 01:41:11ID:???
>>443
解決できたのか?
0460nobodyさん2007/10/06(土) 01:44:53ID:???
>>434
厳密には
php5ではオブジェクトをハンドルで渡すんだよ
参照がデフォルトってわけじゃない
あとphpはリファレンスカウンタっていうのがあるから
スクリプト上でコピーしても、内部的には実際にデータが変更
されたタイミングでコピーしてる
0461nobodyさん2007/10/06(土) 01:52:56ID:???
>>458
<?php
$a = array(1,2,3);
$b = $a;
$b[0] = 9;
var_dump($a);
var_dump($b);
?>

結果
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
array(3) {
[0]=>
int(9)
[1]=>
int(2)
[2]=>
int(3)
}
どこが参照だって?
0462nobodyさん2007/10/06(土) 01:54:59ID:???
>>461
そのケースは知ってるからあえて>>458にしたんだけど?

>>460 おお、変更したら本当にコピーされた。勘違いしてた。
0463nobodyさん2007/10/06(土) 01:57:19ID:???
>>1を読めば参照かどうかなんてわかるだろ。
0464nobodyさん2007/10/06(土) 01:59:18ID:???
>>463
>>446みたいなケースのとき、
変更されるまで参照持ってるよ。なんてのは
マニュアルに書いてあったけ?
0465nobodyさん2007/10/06(土) 02:01:09ID:???
>>1を読めが流行ですか?
0466nobodyさん2007/10/06(土) 02:05:28ID:???
>>462
なに。その特殊ケースを指して「配列はオブジェクトである」なんて与太をばら撒いてたわけ?
0467nobodyさん2007/10/06(土) 02:06:32ID:???
>>463
だから>>1のどこ読めばそんなこと分かるんだよ。
0468nobodyさん2007/10/06(土) 02:22:34ID:???
答えられない質問が着たらとりあえず>>1よめ。だろw くやしいのぅくやしいのぅ
0469nobodyさん2007/10/06(土) 02:38:09ID:???
うるせーよ黙れ誰かTHE WORLD発動しろ
0470nobodyさん2007/10/06(土) 02:42:39ID:???
ID出さない質問が>>1
態度がでかい質問が>>1嫁&誘導
ていうか>>1読めってわざわざご親切に誘導するのもあれだな
これからは徹底放置でいこうぜ
スレタイだけ読んで質問スレだから適当に質問すればいいじゃなくて
テンプレ読んで質問するのがここでのルール
ID出すのがなんで嫌がるのか理解できない
質問した後自作自演で回答者側に突っ込みいれたければsageればID出ないだろ?
それに同じIDで複数回質問したっていいじゃないか
0471nobodyさん2007/10/06(土) 02:44:56ID:???
根本的に>>410の解釈が間違い

代入の仕組みは以下参照
http://derickrethans.nl/files/phparch-php-variables-article.pdf

>>461の例だと
$b = $a; ← この時点では$bは$aを指している
$b[0] = 9; ← ここで初めて$bはデータの実体を持つ

PHPのスクリプト上で検証しようとしても無理
0472nobodyさん2007/10/06(土) 03:03:34ID:???
>>471
一瞬、グロ画像かと思ったwww
0473nobodyさん2007/10/06(土) 03:29:10ID:???
array()はオブジェクトではない
new StdClass() はオブジェクト
リファレンスカウントは
debug_zval_dumpでみれるよ

0474nobodyさん2007/10/06(土) 03:52:44ID:qCDvmkUY
基本的なことかもしれませんが、マニュアルを読んでもネットを検索しても
見つけられなかったので、こちらで質問させてください。
自分が使っているのはPHP4です。

$aに適当な整数が代入されているとき、その値が0、3、17のときだけ
共通の処理をしたいのですが、自分はif文で、
 if (($a===0) or ($a==3) or ($a==17)) 処理;
みたいに書いてます。
これって自分でも冗長だと思ってるのですが、
他にもっとシンプルに書ける方法ってありますか?
ただ、処理したい値が2,3通りしかないような場面でのことなので、
できれば配列やループは使いたくないんです。

我侭言って申し訳ないのですが、どなたかよろしくお願いします。
0475nobodyさん2007/10/06(土) 03:59:20ID:???
別に普通だと思うが
if (in_array($a,array(0,3,17))) {
echo 'ほげほげ';
}

で良いじゃないかと思ったら配列はダメって言うし
あえて言うなら囲まずに
if ($a === 0 || $a === 3 || $a === 17) {
echo 'とか?';
}

0476nobodyさん2007/10/06(土) 04:06:12ID:1HWd7HDN
>>474
preg_replace
0477nobodyさん2007/10/06(土) 04:13:04ID:???
>>474
switch ($a):
 case 0:
 case 3:
 case 17:
  ヒットした時の処理;
  break;
 default:
endswitch;
0478nobodyさん2007/10/06(土) 04:22:22ID:???
>>474
>これって自分でも冗長だと思ってるのですが、

それを冗長だと思ってるのはあなただけな気がします
04794032007/10/06(土) 04:28:27ID:???
それで結局、どういう結論になったのでしょうか?

>iif( ! is_array($hoge)){でhogeが配列でないことを調べているのに、
>$hoge = $tmpで配列に変換しているということは、
>左辺が変数で右辺が配列のとき値の代入すると、
>自動で左辺の変数が右辺の方の配列に変換されるのでしょうか?

?なんですけど。
0480nobodyさん2007/10/06(土) 04:36:04ID:???
>>474
ごく普通の書き方かと。
5つくらいまではその書き方で問題ないと思うよ。
0481nobodyさん2007/10/06(土) 04:37:29ID:???
>>479
>>409で結論
0482nobodyさん2007/10/06(土) 04:37:51ID:???
>>403
それのやってる事は

if( ! is_array($hoge)){   // 配列ジャナイ場合(これobjectとかがきたらどーすんだis_stringとかにしたらいいのに)
  $ tmp = array();          // 配列初期化
  for($ i = 0; $i<strlen($hoge); $i++){ // $hogeを文字列と仮定して文字の長さ文ループ
   $tmp[$i] = substr($hoge, $i, 1);     // 1バイトずつ文字を切り出して配列に格納
 }
$hoge = $tmp; // $hogeに格納
}

多分この後に何か$hogeを使った処理を使うためにしてるだけじゃないかな
0483nobodyさん2007/10/06(土) 04:40:11ID:???
>>482
そんなことは最初から403も分かってるよ。
スカラーの変数に配列の変数を代入なんて何故できるの?って話。
CかJavaみたいなガチガチ言語に頭が毒されてるんでしょ。
04844032007/10/06(土) 04:50:04ID:???
>>483
>CかJavaみたいなガチガチ言語に頭が毒されてるんでしょ。

ズバリそうなんです。
「もう、こんなもんだ」と無理矢理納得するしか無いのかな。
こんな事許されてたら、メンテナンス悪くなるし、可読性低くなるし、
危険じゃないのかしら?
とりあえず、有り難うございました。
04854742007/10/06(土) 04:51:11ID:qCDvmkUY
みなさんありがとうございます。
まさかこんなに早くお答えいただけると思ってませんでした。
お礼が遅くなって申し訳ありません。

自分の書き方でも特に冗長ではないというご意見をいただき安心しました。
でも、475さんや477さんのアドバイスはとても勉強になりました。
状況に合わせて使ってみたいと思います。

みなさん、本当にありがとうございました。
0486nobodyさん2007/10/06(土) 04:53:04ID:???
>>484
なんだそんな事か(´・ω・`)

俺は自分の中で型を意識した組み方してるけど
そこらへんは組み方次第でどーとでもなるんじゃないかなぁ・・・

意識するとメンドイ事多いけど・・・

04874742007/10/06(土) 04:56:47ID:qCDvmkUY
ひとつ書き忘れました。
476さんのご指摘の preg_replace を使う方法は
後で自分でも調べて確認してみます。
アドバイスありがとうございました。
0488nobodyさん2007/10/06(土) 05:11:58ID:1HWd7HDN
>>487
御免間違えた
preg_match
0489nobodyさん2007/10/06(土) 05:27:00ID:???
まぁ、PHPの型のいい加減さっぷりはBasicやPerl以上だからな。
ここまで適当なのは他にあまり無いよ。
0490nobodyさん2007/10/06(土) 07:01:28ID:???
Perlを元にしてるような旧式だからしゃーねえな
Perlはわざわざmyをつけないと歴史駆るスコープにならないような言語だし
0491nobodyさん2007/10/06(土) 09:46:45ID:hKjy3c4n
PHPはクラス変数、メソッドにアクセスするのに、わざわざ$thisをつけないといけない糞言語♪
0492nobodyさん2007/10/06(土) 09:53:27ID:???
アンチが付け上がるから流れを切ろうか
0493nobodyさん2007/10/06(土) 10:03:02ID:???
なんか勘違いしている人がいるけどPHPにも型はちゃんとある
内部変換しているかどうかの違いだけ
0494nobodyさん2007/10/06(土) 10:06:12ID:???
PHPはクラス変数、メソッドにアクセスするのに、わざわざ$thisをつけないといけない
のは可読性があがって俺は好きだ
0495nobodyさん2007/10/06(土) 11:01:19ID:???
DBから返ってくる数値を文字列扱いするのをどうにかしてクレヨン
0496nobodyさん2007/10/06(土) 11:02:25ID:???
後付けOOPだからじゃないかな?
$thisもだけど->がめんどくさい。「.」は文字列結合で使用済みだから仕方ないけど。
最近Ruby始めたら変数の$すら面倒になってきた。始めた頃は変数わかりやすいと思ってたのに。

チラシの裏スマソ
0497nobodyさん2007/10/06(土) 11:20:23ID:???
PHPのアルバイトだとどれくらいのレベルで使いものになりますか?
0498nobodyさん2007/10/06(土) 11:27:26ID:???
俺は日曜だから知らんが、アルバイトのプログラマに教育費用かける気はないと思うぞ
0499nobodyさん2007/10/06(土) 11:37:53ID:???
全くの業務未経験者がPHPは難しい
給料は安いくせにやたら条件が高いから困る
未経験歓迎なのは使い捨てのJavaだな
0500nobodyさん2007/10/06(土) 11:46:26ID:???
>>484
いやいや、そういう感覚は大事だと思うよ。
ただ、型に縛られる必要は無いと思う。
function hoge($val)
本来$valはarrayである。と決めきってしまうと
要素数が1のときもわざわざarrayにしてから関数よばなきゃいけない。
ところが、内部でarrayじゃないときは、arrayにしてやる
処理を入れておけば、関数の外部仕様的には
複数指定したいならarrayにしてちょ。
単数ならわざわざarrayにしなくてもいいよ。
という緩さが実現できる。

05015002007/10/06(土) 11:48:38ID:???
個人的には、
$year = 2001;
とかしてるのに変数を流用して
$year = 年とは無関係の何か;
とかされるとストレスかかるな。
0502nobodyさん2007/10/06(土) 12:00:34ID:???
>>500
一般的に自作関数ってすべて内部で型チェックさせるものなの?
0503nobodyさん2007/10/06(土) 12:20:35ID:???
>>502
500じゃないが
俺は外部で型変換するなー
内部で変換させたら関数内がどんどん見難くなるし。
変換する事が多いなら変換用の関数作ってその関数から呼ぶようにしてたりはするけど。
05045002007/10/06(土) 12:23:12ID:???
関数のパラメータとして期待した型が来てるか
内部であえてチェックするかってこと?
エラーになる要因は早めにつぶすべきだから、
チェックするのは良い習慣だと思う
ただ、すべてでチェックはオーバーヘッドになるし、書くのめんどくさいから
適度に手抜きしてるかな
パラメータに限らないが前提条件を満たしているか
チェックすることはよくある
05055002007/10/06(土) 12:25:56ID:???
あ、ミスったかな
>>503な意味だった?
なら>>503と同じ意見
0506nobodyさん2007/10/06(土) 12:41:37ID:???
漏れMTクローンのCMS作れるレベルだけどアルバイト採用されるかな?
0507nobodyさん2007/10/06(土) 12:42:46ID:???
>>506
自分で起業
0508nobodyさん2007/10/06(土) 12:44:39ID:???
起業はめんどくさくね?それにこれから何するってのさ
0509nobodyさん2007/10/06(土) 12:45:40ID:???
使い物になるかどうかチェックしてやるからソースを
0510nobodyさん2007/10/06(土) 12:46:49ID:???
作ったCMSを売るかWebアプリ化
0511nobodyさん2007/10/06(土) 12:48:28ID:???
>>509
もちGPLかBSDライセンスで
0512nobodyさん2007/10/06(土) 12:51:21ID:???
アルバイトなら採用されるだろ
0513nobodyさん2007/10/06(土) 13:23:50ID:JwDld5m1
みんな、ユーザー入力のチェックはどうやってる?

以下頭からの処理の流れ。
・POSTのみで渡される値はPOSTのみ、GETならGETのみで取得
・GETで来ないはずの値が来たらはじく。
・変数の型と値のとりうる範囲や文字列の長さ、形式に添っているか
 型判定関数や正規表現でチェックし、不正なものをはじく。
 ただしフォーム入力値などキーボードで入力するものを除く。
   :
・値を使用する関数内で、型や値の範囲、文字列長さなどを上と同じように
 チェック。フォーム入力値などは誤入力の可能性があるので
 エラー表示して再入力を促して終了。
・HTML表示する場合はすべての変数をエスケープして表示。
・DBにアクセスする場合はPrepared Statementで値を渡す。
 (今のところエミュレーションじゃないので普通に渡してる)
・ストアドで値の妥当性をチェックし、例えば存在しないはずのユーザーID
 とかだったら不正入力の結果を返して終了。誤入力の可能性のある
 値であれば別の結果を返して終了。問題なければ処理を実行。
 (DB処理はすべてストアド使ってます。生SQL文はソースに書いてません)
・ストアドからの返り値から、はじくなりエラー表示するなり処理結果を
 表示するなり行う。

はじくってのは強制的にセッション切ってます。
正当性判定の関数を作っておくくらいで、上のような地道なやり方しか
思いつかないんだけど、こういう便利なものがあるよとかこうしたほうがいいよ
とかこんなのも知らないの?とかあったら教えてくださいませ。
フレームワーク使ってないけど、こういうのが楽になるのかなあ。
0514nobodyさん2007/10/06(土) 13:41:51ID:???
>>513
そkらへんの処理めんどくさいからフレームワーク使ってる
簡単なもんだったら期待値以外はエラー
クエリー実行は全てぷりぺあ通して使ってる
0515nobodyさん2007/10/06(土) 13:49:34ID:???
質問に回答を頂くスレだけど
かならずしも回答がくるとは限らない
回答者のレベル・回答者の気分で影響するからだ。
質問者はどうやったら回答率をあげられるか考えてから言葉を選んだほうが良い
0516nobodyさん2007/10/06(土) 14:18:15ID:???
技術で食っていけるかどうかより、技術はそこそこでもいかにアイデアが豊富で
それを形にしようとする努力をするタイプかどうかが重要なんじゃないかな?
すごいといわれるプログラマや技術屋は掃いて捨てるほどいるけど、頭の柔軟なやつは少ないからね
起業するなら特にコミュニケーション能力なんかにも長けている必要がある
物事をシステマチックに考えて合理的な道を歩むのは得意だけど、逆を返せば不必要な回り道をしたくないばかりに
それに重点を置かないから結果的に評価がされなかったりと、そのあたり不器用な人多いね
0517nobodyさん2007/10/06(土) 14:38:54ID:QcrZFc+A
昔BASICを少しかじった程度なんですが、会社でひょんなことで使う羽目になってしまい、
四苦八苦しながらやっている者です。
PHPをやっていて、どうしても解決できなかったので教えて下さい。
BASIC言語でいう、GOTO文ってPHPだとどうやって書けば宜しいのでしょうか?

あと、PHPだと、文法エラーの際に行番号がでるのはいいのですが、
PHPコードの先頭に行番号を書こうとすると、それが原因で文法エラーがでてしまします。
これは環境が悪いせいなのでしょうか?今は行番号を書かずに、先頭から数えています。

すみません、二点質問お手数ですが宜しくお願いします。
0518nobodyさん2007/10/06(土) 14:40:54ID:???
>>506
ここでまともに質問に答えてる人たちは、制作時間は異なれどその程度の知識は持ってるでしょう
0519nobodyさん2007/10/06(土) 14:43:17ID:???
>>517
gotoはphp6まで待て

行番号はphp書いてるソフトが悪い
行番号も表示できるエディタに変えるといい
0520nobodyさん2007/10/06(土) 14:44:32ID:???
>>517が求めてるgotoと
PHP限らず後々に追加されるgotoは
同じようで別なものな気がして
0521nobodyさん2007/10/06(土) 14:45:23ID:???
/* 1 */
って書けばok
0522nobodyさん2007/10/06(土) 14:55:18ID:QcrZFc+A
>>519さん
>>520さん
>>521さん
早速のお返事ありがとうございます。
行番号は、コメント文として書けば宜しいんですね。ありがとうございます。
行番号をコードに書いていないのに、コンパイラが勝手に行番号を認識しているので、面食らってしまいました。
隠れている行番号を見せてくれるエディタ(ソフト)って、何があるのでしょうか?
私が今使っているのは、Windowsで標準ソフトであるメモ帳です。

あと、GOTO文についての回答どうもありがとうございました。
PHPって、GOTO文ないんですか。それはかなり辛いですね。
ネットで検索していても無かったんで、もしかしてと思っていたのですが。
今相当青い顔になっていますが、頑張ってやってみます・・・

どうもありがとうございました。
0523nobodyさん2007/10/06(土) 15:01:49ID:???
>>522
何度も同じ処理をしたいなら関数作れば良いし
ループを抜けたいとかならbreakと書けば良い
はっきり言ってgotoなんか無くても書けるよ

エディタは
emeditorとか秀丸とか一般的なエディタなら普通にできるし
PHPエディタ_スタンドアロン版とか使えば良いんじゃないかな
0524nobodyさん2007/10/06(土) 15:05:46ID:???
俺、goto文使いまくってるスクリプト提示されて「どこが悪いんでしょうか?」
なんて質問投げられたら発狂するかも。(ちょっとオーバーだけど)
0525nobodyさん2007/10/06(土) 15:25:18ID:???
>>517
ネタなのかって疑ってしまいそうになるけど、BASICの考え方は
捨てたほうがいい。goto文なんていまどきの言語じゃ仮に実装
されててもまず使わない。
BASICでもgoto使うとスパゲティプログラムになっちゃいやすい
とかで、構造化プログラミングとか推奨されてたはず。
labelとかでcontinueからの飛び先を指定するのとかはあったり
するけれど。

行番号もやっぱりない。
それじゃ分かりにくいので、たいていは行番号を表示してくれる
エディタを使ってコード書く。コードそのものに行番号書く必要はない。

っていうか君はまず本なり買って基本的なこと学ぶべきだと思うよ。
プログラミングの感覚そのものは役に立つと思うけど、「BASICのように・・・」
とか考えちゃうと却って足踏みするだけだと思う。
0526nobodyさん2007/10/06(土) 15:32:14ID:???
釣りだろ? 釣りだと言ってくれ
0527nobodyさん2007/10/06(土) 15:52:29ID:???
PHPでGOTOワロタwwww

まぁたまにGOTOほしいと思うことはあるよ
0528nobodyさん2007/10/06(土) 16:02:51ID:???
goto欲しいかもw
0529nobodyさん2007/10/06(土) 16:08:00ID:???
後藤文
0530nobodyさん2007/10/06(土) 16:08:11ID:kTZnfqET
ファイルをアップロードする際、アップロードされるサーバーのディレクトリを案件ごとに自動的に変える(ディレクトリが1つずつ増える)方法ありますか?
0531nobodyさん2007/10/06(土) 16:13:16ID:???
>>530
定義が曖昧すぎで良くわからんが
とりあえずあると思う
0532nobodyさん2007/10/06(土) 16:28:59ID:???
10 仕事しながらタバコふかす
20 モニタの白が茶色に見えてくる
30 CLEAR SCREEN '掃除する
40 GOTO 10
0533nobodyさん2007/10/06(土) 16:30:56ID:???
要はリテラルの文字列をグローバル変数(またはグローバル変数を内包した関数の返り血)で置き換えたいという初心者質問だろ
そんなことも出来ない言語はおhる
0534nobodyさん2007/10/06(土) 16:34:22ID:???
>>530
自動的に、ってのがプログラムを書かなくても勝手に、って意味なら無い。
素直に
テンポラリディレクトリにアップロード(自動)→ディレクトリ生成→そこにファイル移動
ってコードを書けばいいと思うよ。
0535nobodyさん2007/10/06(土) 16:36:27ID:???
>>532
出社
while(true){
 仕事しながらタバコふかす
 モニタの白が茶色に見えてくる
 CLEAR SCREEN '掃除する
 if(終業時間<=時計) break
}
退社
0536nobodyさん2007/10/06(土) 16:37:16ID:???
>>522
いまどきはBasicでもgotoはまず使わないし、先頭に行番号も書かないよ。
機能ごとにfunctionで処理を書いて、それを呼び出し→終わったら自動で戻る、を使う。
ファイルの行番号についてはプログラム向けのテキストエディタなら大抵表示してくれる。
0537nobodyさん2007/10/06(土) 16:41:41ID:???
>>535
どうでもいい事だが、
> if(終業時間<=時計) break
の所は、オレなら
if(終業時間==時計) break
と書く。じゃないとバグの発見が遅くなる。
0538nobodyさん2007/10/06(土) 16:44:33ID:U5yeBGyi
正規表現の結果を変数に代入する関数を教えてください。
調べても置換用の関数しか出てきません・・・・
0539nobodyさん2007/10/06(土) 16:52:23ID:???
どうやって調べてるのか書いて
0540nobodyさん2007/10/06(土) 16:53:07ID:???
>>535
私はwhileにtrue突っ込むのいやなので、
while(終業時間>時計){としたいところなのだが。

>>535だと、出社の時点で終業時間 > 時計だったときに無駄に処理が動いてしまわないかい?

05415352007/10/06(土) 16:56:52ID:???
>>540
そうですね>>while(true)
最初はifなしの無限ループにするつもりだったので

ネタなのでそこまで厳密に考えてません>>出社時間
0542nobodyさん2007/10/06(土) 16:58:47ID:???
書き込みの大半が雑談ネタでわろた

どうせ雑談スレ作っても人少なすぎて閑古鳥状態だろうからこのままでいいよな?
0543nobodyさん2007/10/06(土) 17:00:39ID:???
>>538
123.123.123.123/20
に対して最後の20をとりたい場合
$str = 'fasdasda123.123.123.123/20fasrdqwrgsy4';
$ret = preg_match('!\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/(\d{2})!',$str,$match);
って感じにpreg_matchの第3引数に変数を入れてやると20が入ってくる
0544nobodyさん2007/10/06(土) 17:00:56ID:???
ネタかよ( ̄△ ̄);;
0545nobodyさん2007/10/06(土) 17:02:55ID:???
>>538
マッチしたか否かも、マッチした文字列取得も、書いてある気がするが

preg_match
http://jp2.php.net/manual/ja/function.preg-match.php
preg_match_all
http://jp2.php.net/manual/ja/function.preg-match-all.php

正規表現の結果とは何?
0546nobodyさん2007/10/06(土) 17:11:03ID:???
if(終業時間<=時計) break
をループの先頭に入れればいいんじゃね?ちがう?
0547nobodyさん2007/10/06(土) 17:14:02ID:???
だからネタ(ry
0548nobodyさん2007/10/06(土) 17:28:42ID:???
っていうか、ネタにレスするならネタにしないとKYだろ。
ちんちんちょん切っちゃうぞ、ってレスに、私女ですから、っていたら、男ですから、ってレスすればいいのに、医学的についているハズだとするのは興ざめに他ならない。
0549nobodyさん2007/10/06(土) 17:34:44ID:???
>>546 正解。
0550nobodyさん2007/10/06(土) 17:43:29ID:???
>>537
それだとタバコ休憩が長くなったりしてとっくに終業時刻を過ぎてると
帰れなくなったりしないか?w
終業時間の判定が分単位でなく時単位とかなら大丈夫かもしらんが。
>>540
ループに入る前の段階で if(時刻 > 終業時刻) 終業時刻 = 99; みたいに
例外状態に切り替えるのがいい気がする。
ま、どっちにしろループの終了判定はループ先頭ですべきだな。
0551nobodyさん2007/10/06(土) 20:13:41ID:???
phpでgotoがないことを最近知った。
php暦3年にもなろうというのにw
0552nobodyさん2007/10/06(土) 20:21:30ID:???
gotoも型も$も->も
初めに学んだ言語が自分のデフォルトになっちゃって
他を軽蔑しがちになるよね
0553nobodyさん2007/10/06(土) 20:54:23ID:???
始めにphpを次にjavaをそしてcを学んだ俺は
正直どれも好きだ
0554nobodyさん2007/10/06(土) 20:59:50ID:???
GOTOは使い方誤ると迷宮に嵌ることこの上ない破壊的な武器だ
ループの外からいきなり飛び込んできたりとか

そんなスパゲッティなコードに悩まされた時期がありました

#あの過ぎ去った時間は無かったことにしたい黒歴史
05555132007/10/06(土) 21:20:05ID:JwDld5m1
>>514
お返事ありがとう。
やっぱりフレームワーク使う以外楽するやり方ないのかな。
ちょっとやり方が泥臭い気がしてたんだけど必要な処理だし。。
0556nobodyさん2007/10/06(土) 23:54:35ID:???
なんで後藤さんが話題になってんの?
0557nobodyさん2007/10/07(日) 01:41:52ID:???
そこで野口さんも登場していいですか
0558nobodyさん2007/10/07(日) 02:31:36ID:???
  /\___/\
/ /    ヽ ::: \
| (●), 、(●)、 |
|  ,,ノ(、_, )ヽ、,,   |
|   ,;‐=‐ヽ   .:::::|
\  `ニニ´  .:::/      NO THANK YOU
/`ー‐--‐‐―´´\
       .n:n    nn
      nf|||    | | |^!n
      f|.| | ∩  ∩|..| |.|
      |: ::  ! }  {! ::: :|
      ヽ  ,イ   ヽ  :イ
0559nobodyさん2007/10/07(日) 02:36:28ID:???
>>556
話題の主は強盗さんです
0560nobodyさん2007/10/07(日) 08:16:21ID:ucFl6OYU
先日質問させて頂いた者です。
お礼のレスをしようとしたところ、数日アクセス拒否されておりまして、
レスが遅れて申し訳ありませんでした。
おかげ様で何とか先に進めそうです。どうもありがとうございました。
0561nobodyさん2007/10/07(日) 08:44:53ID:???
>>556 PHP6導入に向けて気合いを入れているからです。

PHP 6でgoto文導入へ
http://itpro.nikkeibp.co.jp/article/COLUMN/20060327/233460/
0562nobodyさん2007/10/07(日) 09:01:32ID:???
まじでー
goto文とかいらねーよ
0563nobodyさん2007/10/07(日) 09:26:12ID:???
あると便利だと思うけどね
ベーシック言語の特権みたいなものだしさ
0564nobodyさん2007/10/07(日) 09:55:39ID:???
使わないだろうからあまり関係ないな
0565nobodyさん2007/10/07(日) 10:36:19ID:???
gotoがない言語って何があったっけ?
0566nobodyさん2007/10/07(日) 10:42:28ID:???
言語レベルでgotoがないってことは、アセンブラレベルでjump命令に翻訳できないってことだから、
処理速度の観点から言えば、(計算内容によるが)相当不利だよ。
0567nobodyさん2007/10/07(日) 11:08:31ID:???
Javaはgotoは予約語になってるけど実装されてない
Rubyは松本が面倒くさいからという理由で実装されてない
0568nobodyさん2007/10/07(日) 11:09:07ID:???
gotoなんて時代をさかのぼりしてるようなもんじゃん・・・
0569nobodyさん2007/10/07(日) 11:20:09ID:???
ここだけのネタかと思ってた>>goto導入
0570nobodyさん2007/10/07(日) 11:49:26ID:???
アセンブラで見るとJEとJNZばっかりでJMPはあんまりない
0571nobodyさん2007/10/07(日) 12:16:55ID:???
>>566 はネタだって
0572nobodyさん2007/10/07(日) 12:49:22ID:???
PHPのソースってアセンブラでどうやって見るの?
そういうツールとかある?
0573nobodyさん2007/10/07(日) 12:54:00ID:???
>>572
関数 show_as_assembler($php_source)
0574nobodyさん2007/10/07(日) 13:19:47ID:???
>>573
サンクス。結構、アセンブラにするとソースにムラがあるね。
0575nobodyさん2007/10/07(日) 16:49:57ID:9C3AWJOK
今検証できる環境にないので教えてください
クッキーについてですが、配列をクッキーに入れる場合全て上書きされるのでしょうか?
既存のクッキー配列に値を追加するということは可能なのでしょうか?
あと配列の名前設定は「cookie_name[]」←でいいのでしょうか?

たとえばこんな感じ

$hoge_arr = array("りんご", "みかん", "ぶどう");
$str_arr = array_push($hoge_arr, "バナナ", "マンゴー");

setcookie ("cookie_name[]", $str_arr );

if (isset($_COOKIE['cookie_name[]'])) {
foreach ($_COOKIE['cookie_name[]'] as $name => $value) {
echo "$name : $value <br />\n";
}
}

0576nobodyさん2007/10/07(日) 16:51:29ID:9C3AWJOK
一部間違えたので訂正します

$hoge_arr = $_COOKIE['cookie_name[]'];
$str_arr = array_push($hoge_arr, "バナナ", "マンゴー");

setcookie ("cookie_name[]", $str_arr );

if (isset($_COOKIE['cookie_name[]'])) {
foreach ($_COOKIE['cookie_name[]'] as $name => $value) {
echo "$name : $value <br />\n";
}
}
0577nobodyさん2007/10/07(日) 16:56:05ID:???
尻亜裸伊豆すれば?
0578nobodyさん2007/10/07(日) 17:03:20ID:???
$_COOKIEは定義済みの配列と考えれば
自ずと答えは出てくると思うけど・・・

もしそれでも解らないなら多次元配列から勉強すればいい
0579nobodyさん2007/10/07(日) 17:15:02ID:???
まぁ、がんばれ
0580nobodyさん2007/10/07(日) 17:15:15ID:4hyano09
メールフォームを作成してます。
設置したところの自分のところのURLからのみ、メールを送信できるようにしたいと思うのですが、
他のURLからメール送信されないようにしたいのですが、
クッキーを使って対策したいと思います。

2ちゃんのようにハナモゲラみたいな語句を発行して、それで自分とこのURLから
メール送信されたか判断するのが妥当でしょうか?
0581nobodyさん2007/10/07(日) 17:23:22ID:???
俺ならリファラで対策するけどなぁ。
どっちにしろリファラ偽装してくるような奴はクッキーも偽装してくるだろうし。
0582nobodyさん2007/10/07(日) 18:34:41ID:???
摂氏四
0583nobodyさん2007/10/07(日) 18:37:34ID:Dz4kk+z7
PHP用の学習資料を作成しているのですが
PHPマニュアル[http://www.php.net/manual/ja/]のコードなどは転載してもいいものなのでしょうか

PHPの質問ではなく著作絡みの問題だと思うのですが他に質問できる場所もわからなくて・・・
すみませんが宜しくお願いします
0584nobodyさん2007/10/07(日) 18:41:50ID:???
配列をエクスプローラーみたいな感じで表示したいのですがサンプルになるようなものは
ありませんでしょうか?。ラインはなくて空白でシフトするのでも良いのですが・・・。
0585nobodyさん2007/10/07(日) 18:45:06ID:???
dBugでも使っとけ。
0586nobodyさん2007/10/07(日) 18:47:34ID:???
>>583
http://www.opensource.gr.jp/openpub/
オープン・パブリケーションのライセンスの翻訳からそれらしいところを
抜き書きすると次のようになります。

>オープン・パブリケーションである著作物かその一部を、
>同一の媒体上に他の著作物やプログラムと一緒に集めただけならば、
>本契約書が他の著作物にまで適用されることはない。
>しかし、そのような集積著作物には、オープン・パブリケーションである作品を含んでいる
>という通知と、適切な著作権表示を含めなければならない。
0587nobodyさん2007/10/07(日) 18:47:36ID:???
>>583
どんな資料だよ
0588nobodyさん2007/10/07(日) 18:49:18ID:???
>>583
転載・引用はかならず記すって学校で習わなかったか?
0589nobodyさん2007/10/07(日) 18:53:14ID:???
>>583
そういう事は第三者がどうこう言える問題ではないし、こんな所で質問するのはお門違い
0590nobodyさん2007/10/07(日) 18:57:40ID:1Vf0WhZE
今からPHPの入門として、自分のPCにApacheとPHPとMySQLをインストールしようと思っています。
しかし以前、

「自分のPCにサーバ入れると、
自分のPCの中が丸見えの状態に
なるからセキュリティに注意」

と言われたんですが、どうすればよいですか?
0591nobodyさん2007/10/07(日) 19:00:55ID:???
セキュリティに注意すれば良い
0592nobodyさん2007/10/07(日) 19:25:35ID:???
>>590
どうしたら魚を釣れるようになるか助言はするけど
魚が欲しいのに青物野菜の育て方を聞かれても畑違い
0593nobodyさん2007/10/07(日) 19:58:59ID:d3go+S9r
<Neat-Style>
http://neatstyle.p.cmssquare.com/
0594nobodyさん2007/10/07(日) 20:26:54ID:???
>>590
Apacheの設定で自分のPCの中が丸見えの状態にならないようにすれば大丈夫です。
基本的にはApacheの問題なのでApacheのスレで聞きましょう。
あと手っ取り早い?方法として、ルーターで80ポート塞いで外部アクセスを遮断する手もあるよ。
ローカルでテストできればいいだけならそれもアリ。
0595nobodyさん2007/10/07(日) 20:31:14ID:???
>>583
学習資料で、本文中のサンプルコードを記載するならともかく、
下のコメントまで記載する必要はないんじゃない?
で、サンプルには固有の著作権とかはないでしょ。
学習資料に「php.netのマニュアルからの転載である」と明記しときゃ問題ないかと。
0596nobodyさん2007/10/07(日) 20:43:30ID:???
勉強の為のサーバなら閉じた環境で使えばいいだけの話でないの?
外部に向けて公開さえしなけりゃ何の問題もない
右も左もわからない奴が外部にポート開くこと自体無謀というか馬鹿
0597nobodyさん2007/10/07(日) 20:47:48ID:???
>>595
俺俺判断いくない

Website Copyright
http://www.php.net/copyright.php
0598nobodyさん2007/10/07(日) 20:51:18ID:???
>>596
右も左も分からないやつだから
ポートが開いてるかどうかすら分からないんじゃ
0599nobodyさん2007/10/07(日) 20:57:25ID:Dz4kk+z7
583です
レスありがとうございます

>>597の文章読んでみましたがこういうことでOKでしょうか?
・このサイトの全てはこっち(php.net)に著作権があるよ
・ライセンスならOKですよ(?)
・三番目がよくわからない・・・
0600nobodyさん2007/10/07(日) 21:02:23ID:???
人の著作物コピーしたいんだろ?気合入れて自力で読め
0601nobodyさん2007/10/07(日) 21:13:20ID:???
どういう立場の人か知らんけど、仮に人様にモノを教える立場の人なら
量的な労力が増すにしてもサンプルくらい自力で書いて欲しいとは思う
そのくらいの力量(技術)は備わってるだろうし
0602nobodyさん2007/10/07(日) 21:22:10ID:???
初心者講座みたいなサイト作りたいアフィ厨な気もする
0603nobodyさん2007/10/07(日) 21:31:59ID:???
>>602
リスペクトする気はさらさら無いけど敬意を払って丸々コピーってか?
0604nobodyさん2007/10/07(日) 21:32:35ID:Dz4kk+z7
再び583です

コードなら自力で書けるのですが
たとえばregister_globalsの動作を問題として出したときに
抜けてる知識がないかマニュアルページを見に行きますよね?
そうしたときに自分が知らなかった情報を引用していいのかってことです

ex)問題:register_globalsがONの時に気をつけるべき点を答えなさい

自分の知らなかったことを選択肢として追加→使用する前に変数を初期化すべきである
0605nobodyさん2007/10/07(日) 21:42:52ID:???
てか公式のマニュアルを丸々転載してるサイトは山程あるじゃん、あれはグレーか?
0606nobodyさん2007/10/07(日) 22:00:26ID:???
>>604
だからさ、その引用の良し悪しの判断できる唯一はPHP Groupじゃないの?
聞くところが無いって…そこに問い合わせるしかないんじゃないの
webmasterが適切かどうかわからんけど
0607nobodyさん2007/10/07(日) 22:05:59ID:???
>>605
転載の経緯を知る由も無いのでジャッジはできん
0608nobodyさん2007/10/07(日) 23:35:54ID:Dz4kk+z7
>>606
とりあえず先ほどメールだしてみました

返信が来ましたらここにまた結果を報告しようと思います
どうもお騒がせしました 皆様ありがとうございます
0609nobodyさん2007/10/07(日) 23:51:21ID:???
 引数で与えた内容をキーにDBを検索した結果を返す関数を作成しようと
考えています。
 この時、条件にあうデータが1件のみであればそのまま結果を返し、
複数存在する場合には別窓に一覧を表示して選んでもらったものを
戻り値として返すような処理をしたいのです。

 1件のみの場合の処理の見当はつくものの、複数ある場合の選択結果を
どうやって受け取ればいいのかがわかりません。

 どういった方法がありますでしょうか?

0610nobodyさん2007/10/07(日) 23:58:16ID:???
>>609
> 複数存在する場合には別窓に一覧を表示
検索結果によって別窓を出すか出さないか切り替えるってのは
JavaScript使わないと無理なんじゃないかな…
0611nobodyさん2007/10/08(月) 00:02:52ID:???
>>609
漠然としすぎ。
とりあえずinput name="value[]"
0612nobodyさん2007/10/08(月) 00:11:37ID:???
>>611
複数のうち1件選択してもらうだけだから
inputを配列にする必要はないんじゃね?
検索キーをキー+ユニークIDの組み合わせで受け取るか
キー+n件目という組み合わせで受け取ればいいと思う。
0613nobodyさん2007/10/08(月) 00:12:13ID:???
>>609
とりあえずIDは出そうな。
>>1読んだ?
0614nobodyさん2007/10/08(月) 00:18:02ID:???
じゃphpの話じゃないじゃん
0615nobodyさん2007/10/08(月) 00:24:52ID:???
>>609
>>別窓に一覧を表示して選んでもらったものを戻り値として返すような処理
ここが今一判らないんだがWikipediaみたいな検索結果にしたいという事かな?
「PHP」で検索だとPHP言語、PHP研究所、PHSの旧名称…という曖昧さ回避のためのページ(=一覧)が表示、
「PHP: Hypertext Preprocessor」で検索すると(結果が1件しかないから)PHP言語のページに飛ぶ、みたいな。

ヨドバシやAmazonだと結果が1件でもリスト表示と同じにしてるからそっちの方が簡単と思うけどそれだとヤなのね?
06166092007/10/08(月) 01:01:20ID:nnv6gR3z
>>610-615
 さっそくありがとうございます。

 確かに内容が漠然としてました・・・

 形としては、入力フォームに入力されたコードを翻訳した結果を
返す形のものなのですが、1つのコードに複数の内容が割り当て
られているものがある場合には、選択窓で選択してもらえるように、
という感じになります。

 フォームは固定でボタンが押されたら処理、という感じになるので
Wikipediaのように窓の内容自体の置き換えは難しいかな、と思います。
 参照する場所が1箇所だけならJavascriptを限定で埋め込んでも
いいのかも知れませんが、別の項目に対する同様の処理を1つの関数で
まとめられないかと思いまして。

 たしかに別窓を出して、という時点でJavascriptの方になってきそう
なのでPHPの話題じゃ無いかもしれません。

 流れとしては、
onclickで更新のJavascript呼び出し
0617nobodyさん2007/10/08(月) 01:05:22ID:???
スレ違い。
06186092007/10/08(月) 01:05:37ID:nnv6gR3z
途中で送ってしまいました。

流れとしては、
  onclickで更新のJavascript呼び出し
  scriptから値を添えて検索用phpの呼び出し
  検索用php内で、検索対象に応じて検索処理関数呼び出し
  検索処理関数内でDB検索と検索結果を返す (←この処理)
  その結果を親フォームのJavascriptで表示
という流れです。
0619nobodyさん2007/10/08(月) 01:08:14ID:???
>>(←この処理)
んで何を答えろというのだろう。
関係ない話多すぎ。はしょれよ。
06206092007/10/08(月) 01:19:36ID:nnv6gR3z
わかりにくくてすみません。

スレ違いのようですので、もう一度調べなおします。
ありがとうございました。
0621nobodyさん2007/10/08(月) 01:38:19ID:???
スレチもだけど最近別窓って開く?
ポップアップ禁止+勝手に別窓開かせないアドオン入れてるから最近全然見かけない
(というか気付かないだけかもだが)
0622nobodyさん2007/10/08(月) 01:40:32ID:???
その場合は<FRAME>を使うんじゃない?
06236212007/10/08(月) 01:44:02ID:???
>>622
ナルホド。そういう意味だったのね
0624nobodyさん2007/10/08(月) 01:48:04ID:???
>>621
ポップアップ禁止でもユーザのクリックで1枚だけ開く分には普通に開けるし。
まぁでも、検索結果の候補出すのに別窓ってのはものすごくうざいと思う。
0625nobodyさん2007/10/08(月) 01:50:21ID:???
>>616
とりあえず複数候補から再検索の処理と別窓は話を分けろ。
前者は全然難しくないが後者が入った途端にアクロバットな処理になる。
0626nobodyさん2007/10/08(月) 01:53:52ID:???
アクロバットな処理カコイイ
0627nobodyさん2007/10/08(月) 01:59:11ID:???
mainフレームとsideフレームがあるとして、

a) ユーザが入力した検索結果が1つならmainフレームにその内容を表示、
b) 検索結果が複数ならsideフレームにその一覧を表示する。
c) 複数時はユーザがsideの一覧から1つをクリックするとその内容がmainに表示される(もち再検索)、

って事じゃないの?
それで>>609がしたいのはaとbのフレーム振り分け処理関数?

オレ、トンチンカン?
0628nobodyさん2007/10/08(月) 02:07:08ID:???
うん、トンチンカン
0629nobodyさん2007/10/08(月) 02:14:53ID:???
>>627
フレームか別窓かの違いはあるけど概ねそんな感じなのでは。
どっちにしろ検索結果で出力先を切り替えなんてPHPの仕事じゃないけど。
0630nobodyさん2007/10/08(月) 02:25:14ID:???
>>627
いやいや、そんな感じの処理でいいんでしょ。

で、質問者はどんな方法がありますかと問いを投げてるが
単刀直入にやり方わかんねえから教えれ、と。

要の部分を考えなきゃなんねえのに放棄して丸投げかよ、と。
0631nobodyさん2007/10/08(月) 02:38:17ID:???
>>590
ウィルスチェックしてないPCの方が丸裸にされる
可能性高いと思う
たいていの場合、Internetからの
アクセスはルータが阻止してくれるから、ローカルネット上で
サーバ立ち上げるだけなら、さして問題ではない
(グローバルネットからローカルネット上のサーバを
見えるようにするには、ルータの設定を変更しなければならない)
不安だったら、Etherの線抜いとけ←これ最強
0632nobodyさん2007/10/08(月) 03:51:34ID:???
>>631
ルーター使ってるかどうかも怪しいもんだ。
PCにモデム直のADSLやFTTHなユーザも少なくないぞ。

> 不安だったら、Etherの線抜いとけ←これ最強
この意見は正しい。
0633nobodyさん2007/10/08(月) 03:53:08ID:???
>>630
609的にはパラメータの受け渡し方法を聞きたいみたいなんだが
そもそも別窓の仕組みをどうやって実現するのか示してないから
こっちも回答のしようがないんだよな。
簡単な質問を餌に、難しい質問までいっぺんに聞こうとしてるように見える。
0634nobodyさん2007/10/08(月) 03:55:52ID:???
最近のスパーハカーは空気感染ならぬ空気侵入するらしいゾ
0635nobodyさん2007/10/08(月) 04:06:27ID:???
別窓/別フレームってonload時にjavascriptで操作できない?
そこに一覧表示のURL渡す(再検索になるけど)か、JSのソースに一覧情報埋めてそれを別窓に出力させるとか?
素人考えですが。
0636nobodyさん2007/10/08(月) 04:08:07ID:???
ソーシャルハッキングでもするのか?
0637nobodyさん2007/10/08(月) 04:10:12ID:???
>>635
だからJavaScriptの処理はスレ違いだっつの。
まずそれを決めてからここで質問せえ。
06386352007/10/08(月) 04:14:27ID:???
>>637
俺は質問者(>>609)ではないんだが。
単に>>633の別窓の仕組みをどう実現するかを考えただけ
0639nobodyさん2007/10/08(月) 05:50:32ID:???
スレ違い 答えるやつも スレ違い
0640nobodyさん2007/10/08(月) 06:03:44ID:???
>>635
別フレームは問題ないと思うけど、別窓をonloadで開こうとすると
ポップアップブロックに引っかかるよ。
0641nobodyさん2007/10/08(月) 06:04:04ID:???
>>609
JavaScript CrossLiblariesでググれぼけ
0642nobodyさん2007/10/08(月) 06:27:28ID:???
>>641
ttp://www.google.com/search?num=100&lr=lang_ja&ie=Shift_JIS&q=JavaScript%20CrossLiblaries
> JavaScript CrossLiblaries に一致するページは見つかりませんでした。
0643nobodyさん2007/10/08(月) 11:01:06ID:Cu10uF3b
>>641-642
ワロタwwww
0644nobodyさん2007/10/08(月) 11:45:58ID:???
PHPを一通り修得しアプリも組めるようになって飽きた、
次は何を覚えようかなー
0645nobodyさん2007/10/08(月) 11:48:17ID:???
FlashかAjax(JavaScript)がトレンドだなw
0646nobodyさん2007/10/08(月) 12:05:17ID:???
ゴメン、それ修得済みでつ
0647nobodyさん2007/10/08(月) 12:26:59ID:???
言語ごとの相関図があるから、相乗効果が高いものを選ぶといいよ。
http://pukapuka.sakura.ne.jp/cgi-bin/upload/puka/img-box/1191813670818.jpg
0648nobodyさん2007/10/08(月) 12:32:44ID:???
初めてでも釣れたよ、と言いたげなおばさん写真に絶望した。
0649nobodyさん2007/10/08(月) 12:38:15ID:???
>>644-646
じゃあ、C++
0650nobodyさん2007/10/08(月) 12:42:53ID:???
エスペラント語がいいよ!
0651nobodyさん2007/10/08(月) 12:47:56ID:???
  ,j;;;;;j,. ---一、 `  ―--‐、_ l;;;;;;
 {;;;;;;ゝ T辷iフ i    f'辷jァ  !i;;;;; 
  ヾ;;;ハ    ノ       .::!lリ;;r゙   PHPを一通り修得しアプリも組めるようになって飽きた
   `Z;i   〈.,_..,.      ノ;;;;;;;;>  
   ,;ぇハ、 、_,.ー-、_',.    ,f゙: Y;;f     そんなふうに考えていた時期が
   〜''戈ヽ   `二´    r'´:::. `!     俺にもありました


0652nobodyさん2007/10/08(月) 13:42:25ID:9TeQf+fQ
お手数をお掛けしますが、相談に乗ってください。

出席管理を行うスクリプトを書いていて、複数の同一型フォーム(name="id[]")から出席者IDをPOSTで送っています。
その際、与えられたIDの情報をSQLから取得し、登録されていないIDが与えられている場合警告を出そうと考えています。
このとき、フォームに入力された順に内容を表示する必要があります。

ここで、質問なのですが、SQLから返ってくる出席者の情報 (ID, 名前, 等) の配列を持った配列 (結果的に2次元配列になります) を、 $_POST["id"][] の順でソートし、登録されていないIDを割り出そうとしています。
調べたところ、 usort で自作の関数を与えれば多次元配列のソートを行うことができるようですが、ソート対象内の比較しかできないようです。
そうではなく、外部の変数(出席者の情報)の並び方を尺度にソートするにはどのようにすればよいですか?

また、代替案がありましたらお教えください。
よろしくお願いします。
0653nobodyさん2007/10/08(月) 14:03:35ID:MwfYaHDM
SQLからのデータもidをキーにした配列に格納
0654nobodyさん2007/10/08(月) 14:11:49ID:???
>>652
http://jp2.php.net/function.array-multisort
0655nobodyさん2007/10/08(月) 14:12:33ID:???
>>652
まえにもそっくりな質問をみたおぼえが・・・
0656nobodyさん2007/10/08(月) 14:32:28ID:???
>>652
出席管理っつうぐらいだから学校関係者か?
未登録IDを検出するんなら select id from テーブル名 where id = 入力id;
この問い合わせで済む

やろうとしているのは何? select * from テーブル名; で登録者のデータ全件
引っ張ってきて、フォームから入力されたIDの配列と比較して未登録IDを導く
ようなそういうこと?

俺バカだから理解できねえよ
0657nobodyさん2007/10/08(月) 14:50:40ID:???
出席管理云々は直接的には関係ないだろ?
8行目だけで十分じゃないか
0658nobodyさん2007/10/08(月) 15:07:07ID:???
>>652
$_POST["id"]配列を使ったループで表示処理をすればいいんじゃないの?

$result にSQL結果のIDリストが入ってるとして
foreach($_POST["id"] as $id) {
 if(in_array($id, $result)) {
  echo "あった";
 } else {
  echo "なかった";
 }
}
みたいな。
$resultまでソートする必要なかろう。
0659nobodyさん2007/10/08(月) 15:17:08ID:???
>>652
>その際、与えられたIDの情報をSQLから取得し、登録されていないIDが与えられている場合警告を出そうと考えています。
>このとき、フォームに入力された順に内容を表示する必要があります。

この部分は自分なりに作ってるのか?
丸投げで代替案とか聞いてんじゃねえぞ
0660nobodyさん2007/10/08(月) 15:17:16ID:???
unset($_POST[$id])で間引いていって残ったIDがあれば「ふざけんなコノヤロー」って
言ったらよろしw
0661nobodyさん2007/10/08(月) 15:27:23ID:???
>>656
俺だったら入力IDの数だけSQL叩いたりしないで
id in (xxxx,xxxxx,xxxxx....)
で一発で引いちゃうな。その方が速い。
06626522007/10/08(月) 15:30:03ID:9TeQf+fQ
>>652です。
みなさんありがとうございます。
文章が読みづらく、皆さんにご迷惑をお掛けして申し訳ないです。

>>656 さん
学校関係者ではありません。
目的は、SELECT id FROM テーブル名 WHERE ID='フォームからの入力 1' OR ID='フォームからの入力2' ......
でフォームから入力されたIDを持つ登録者のデータだけを抜き、
フォームから入力された配列と比較して未登録IDを導くことです。

>>658,660 さん
言われてみて、確かにその通りだと猛省しました。
ソートせずに$_POSTから間引けばよかったのですねorz
SQLからのレスポンスをいかにハンドルするかで頭がいっぱいでしたorz

>>659 さん
他の部分は機能する状態で未登録IDの処理だけ放置していました。

皆さんご多忙の中ありがとうございました。
0663nobodyさん2007/10/08(月) 16:35:27ID:???
このスレには暇人しかおりません
0664nobodyさん2007/10/08(月) 21:37:08ID:???
その通りでございます
0665nobodyさん2007/10/08(月) 21:42:03ID:???
書いた時点でお前も仲間入りだな
0666nobodyさん2007/10/08(月) 22:01:53ID:aQD+Fx51
JavascriptでXMLRPCを叩く
シンプルなサンプルってねーかしら?
0667nobodyさん2007/10/08(月) 22:35:22ID:???
あるよ
06686662007/10/08(月) 22:54:20ID:???
>>667
ありがとうございます
0669nobodyさん2007/10/08(月) 22:54:48ID:aQD+Fx51
質問です
JavascriptでXMLRPCを叩く
シンプルなサンプルが載ってるサイトのURLを
いくつかくださらねーかしら?
0670nobodyさん2007/10/08(月) 22:55:27ID:???
いいよ
06716692007/10/08(月) 23:30:01ID:???
すいません、ここPHPスレでしたね
間違えて書き込んでしまいました

>>670
ありがとう
0672nobodyさん2007/10/09(火) 00:25:17ID:7LOIBqtZ
583です
こないだここで質問させていただいたPHPマニュアルの著作の件に関して
返信が来ましたので抜粋します

feel free to use the examples in the manual in any way you like.
The only ethical concerns is when you reprint an entire manual chapter
with slight changes without giving credit to php.net.
とのことです

どうもありがとうございました
0673nobodyさん2007/10/09(火) 03:01:48ID:???
「PHPを修得した」とか、聞いてて恥ずかしくなってくる
0674nobodyさん2007/10/09(火) 03:09:34ID:???
PHPを修得した俺様がやってきましたよ
0675nobodyさん2007/10/09(火) 08:57:39ID:???
PHPは俺の物
0676nobodyさん2007/10/09(火) 09:04:15ID:???
言うだけならタダだし周りが文句言う権利もないな

ま、使い物になるかは別だが
0677nobodyさん2007/10/09(火) 09:13:08ID:1fe4dxva
phpからC言語で作ったモジュールを呼び出したいのですが、
system関数以外の関数を使って呼び出すことはできますか?

ある有名なレンタルサーバーを使っているのですが、
ソースが外部に流出していまして、困っています。
レンタルサーバーなのでsystem関数も使えません。

宜しくお願いします。
0678nobodyさん2007/10/09(火) 09:15:21ID:???
>>677
自分でPECLモジュール作っちゃうのが1つの手だが
レン鯖だとPECLの組み込みもできないんじゃなかろうか。
0679nobodyさん2007/10/09(火) 10:30:01ID:???
CGIモードでPHP動かせばいいんじゃないの
0680nobodyさん2007/10/09(火) 10:55:51ID:???
外部流出ってどういうルートから?
ドキュメントルート下に置いてるのがhttpd経由で漏れてるのか、
ドキュメントルートより↑に置いてるのが共有ユーザに漏れてるのか?
で対処方法は色々じゃね?
てかそのレンサバにゴラァしなよ。
0681nobodyさん2007/10/09(火) 14:18:50ID:Horj9f1y
foreach ((array)@$rss->items as $item) {
$title = $item[title];
echo "$title\n";

の実行結果

title title title title



タイトル一覧:title title title title

のように表示させたいのですが

echo "$title\n";



echo "タイトル一覧:\n";
echo "$title\n";

だと

タイトル一覧:$title タイトル一覧:$title タイトル一覧:$title タイトル一覧:$title

になっちゃいますよね

おねがいします
0682nobodyさん2007/10/09(火) 14:20:26ID:Horj9f1y
訂正

echo "タイトル一覧:$title\n";



echo "タイトル一覧:\n";
echo "$title\n";

だと
0683nobodyさん2007/10/09(火) 14:24:02ID:???
>>682
$tmp .= "$title\n";

ループ終了

echo "タイトル一覧 {$tmp}";
0684nobodyさん2007/10/09(火) 14:49:14ID:Horj9f1y
>>683
ヒントありがとうございます。
実際は取得してるのが$titleだけじゃないので出来そうで出来ないです
ちょっとGOOGLEで検索してきます
0685nobodyさん2007/10/09(火) 15:16:10ID:???
PHPじゃなくhttpの質問になるかもしれませんが、

POSTでフォームを送信した後、ブラウザの戻るボタンで戻ると、

 [ 警告:ページの有効期限切れ ]

と、表示されますが、これを表示させずにページを表示させる方法はありませんか?
この場合、リロードするとページが表示されますが、
状態としては、警告を出さすにリロードさせる方法になると思います。
0686nobodyさん2007/10/09(火) 15:44:36ID:???
>>684
foreachの前にタイトル一覧という文字列をechoで表示すればいい話のような…。
そんなに複雑な処理でもしてるのかな。
0687nobodyさん2007/10/09(火) 16:37:20ID:???
>>685
ありますん。
仮にあるとしてもブラウザ側の対応によるものだからJSあたりになるんじゃね?
0688nobodyさん2007/10/09(火) 16:50:04ID:???
>これを表示させずにページを表示させる方法はありませんか?
こっちのほうがよっぽど問題あるんじゃね

もっとしっかり設計汁!
0689nobodyさん2007/10/09(火) 17:25:57ID:???
>>685
POSTした先のPHPでデータ処理だけさせて
ロケーションさせてやれば
それっぽい感じの事できるよ
0690nobodyさん2007/10/09(火) 18:32:28ID:2B20Voue
質問です
1)イベントの管理ツールを作ろうと思っています。(登録システム)
2)各イベントへの参加者数は不定で、1人の時も10人の時もあります。
3)参加者はそれぞれIDが振られており、それを参照することで詳細情報を確認できます
  ※IDのないユーザもいる  その場合はユーザ固有のURLを別に登録できるようにしたい

上記のような条件の場合、どういうプログラムを組めばいいでしょう?
参加者数が上限が決まってたら、DB的に
sankasha_1〜sankasha_10 sankashaURL_1〜sankashaURL_10 とフィールドを物理的に
用意すればいいのかと思いましたが、そうではないのでPHPのプログラム側で
工夫しなければならないと思います。が、思いつきません。
どうしたらいいんでしょう? アイディアもらえたら嬉しいです。お願いします。
0691nobodyさん2007/10/09(火) 18:41:37ID:???
イベントのテーブル
参加者のテーブル

運用テーブル

として
運用に登録する際IDがない人の場合は登録する際にURL+参加者FKを0に
って感じにするかな
0692nobodyさん2007/10/09(火) 18:49:21ID:???
テーブルを1つにってのならlongTextにでもして
sankasyaフィールドに配列を文字列にして特攻
0693nobodyさん2007/10/09(火) 19:38:19ID:???
serialize()で万事解決
0694nobodyさん2007/10/09(火) 20:07:07ID:???
・データ構造疎かにして処理でなんとかしちゃおう
もう破綻は決まったな
0695nobodyさん2007/10/09(火) 20:08:35ID:???
それは設定条件による。
0696nobodyさん2007/10/09(火) 20:28:16ID:???
質問している時点で既に"行き詰ってる"状態<-条件もクソもねえや
0697nobodyさん2007/10/09(火) 20:29:07ID:???
まだその段階に至ってないのなら別に構わないのでは?
改善したいと思うならRDB勉強すればいい
0698nobodyさん2007/10/09(火) 20:45:21ID:???
>>674
お引取り願います
0699nobodyさん2007/10/09(火) 20:55:16ID:???
勉強するならRelational Data Modelな
0700nobodyさん2007/10/09(火) 20:56:42ID:???
せっかくだからいろいろ聞けば良かったのに。<PHP修得者
07016902007/10/09(火) 20:58:29ID:???
皆さんいろんな意見ありがとうございます。
今まで住所録くらいしか作ったことないので、皆さんのアドバイス見てると
こりゃ大変だなと改めて感じています。
一つ思ったんですが、@基本情報(開催日・開催地など「固定のもの」) と
A参加者情報(数が定まらないもの) を同じテーブルに入れると一気に難度が上がるんですね
なので、複数のテーブルに分けることにしました。

ご意見で言うと、>>691さんのやり方だと思うんですが、そのアドバイスの中である
「運用テーブル」というのが意味がわかりません。どういう役割のものでしょうか?
自分の中では@とAの二種類しか存在しないようなイメージだったので。。

話がPHPの話題からだいぶズレているとは思いますが、申し訳ないですが
教えてください。「(>>691)運用に登録する際IDがない人の場合は登録する際にURL+参加者FK」の
「参加者FK」とは何かもわからないのでお願いします。ほんとにすみません
0702nobodyさん2007/10/09(火) 21:01:41ID:???
>>699
まずDBの基礎から学ぼうよ。そんなんで作っても無理だよ。
0703nobodyさん2007/10/09(火) 21:02:13ID:???
ごめん間違えた上は>>701
0704nobodyさん2007/10/09(火) 21:14:33ID:???
無理しない方がいいぞ。
仕事大切にしろ。
0705nobodyさん2007/10/09(火) 21:15:26ID:???
>>704
すんません。誤爆です。
0706nobodyさん2007/10/09(火) 21:36:03ID:???
>>687
以前、どこかのWebページで、ヘッダーに何かすることでできたとおもうんですが

>>688
いや、設計の問題ではないんですけど・・・
(ブラウザの戻るボタンを無効にできますか?)

>>689
問題は、ブラウザの戻るボタンで戻られた場合の話です。
0707nobodyさん2007/10/09(火) 21:40:00ID:???
誤爆したらどこの誤爆か貼るのが礼儀だ
07086902007/10/09(火) 21:44:47ID:???
>>702
そういわずにお願いします
勉強は勉強でしますんで…
0709nobodyさん2007/10/09(火) 21:54:54ID:???
>>701
イベント情報、会員情報
を元に実際に運用するテーブルの事。

イベント情報テーブルに、PK(プライマリーキー)、イベント名、開催時期、終了時期
会員情報テーブルに PK、ID,PASS,その他情報
とあった場合

会員が参加登録をした時に運用テーブルに
イベント情報、会員情報それぞれのFK(フォーリンキー)を入れる。
って感じ。

PK,FKの意味についてはカッコ書きのをググればでるよ
0710nobodyさん2007/10/09(火) 22:03:44ID:???
運用にPK,イベントFK、会員FK、URL
とフィールドをつくって
会員FKがある条件の時にURLを表示ってやる。

ただ、会員FKの0とかでダミーを事前につくっておく必要がある事に今気づいた
07116902007/10/09(火) 22:04:35ID:???
>>709
ありがとうございます
まだ理解できない部分は専用の板で訊くことにします
凄く勉強になりました、ありがとうございました!
07126892007/10/09(火) 22:40:40ID:???
>>706
tmp.php
<?php
session_start();
if (isset($_SESSION['test'])) {
        echo $_SESSION['test'];
}
?>
<form action="loc.php" method="POST">
<input type="submit" value="test">
</form>

loc.php
<?php
header('Location: tmp2.php');

tmp2.php
<?php
session_start();
$_SESSION['test'] = 'aiueo';
?>
post ok


こんな感じでやってみれ
多分期待してる動きになるはず
あと、戻るボタン無効化はJSでhisotryをいじるぐらいじゃ?

それ以外の方法あったら俺も知りたい
0713nobodyさん2007/10/09(火) 22:57:50ID:???
>>712
お?!ソースまで!手間かけさせてすいません。
ちょっくら試してみます!
0714nobodyさん2007/10/09(火) 23:43:16ID:G9B1/Oic
質問です。よく、フリーメールのサービスで
メール一覧があって、それぞれのメールのアタマのチェックボックスにチェックを入れて
【チェックしたメールを削除する】 ってボタンを押したら削除されたりしますが、
アレってどういう仕組みになってるんでしょう。
各メールにそれぞれ削除ボタンがあるのなら自分でも作れるんですが、一括削除の
仕組みがわかりません
暇なかた、どなたか教えてください よろしくお願いします
0715nobodyさん2007/10/09(火) 23:48:00ID:???
>>714
まず↓嫁
http://www.tagindex.com/html_tag/form/input_checkbox.html

あとはPOSTされたデータ読めば分かるだろ
0716nobodyさん2007/10/09(火) 23:53:23ID:???
>>714
<input type="checkbox" name="example[]" value="1">サンプル1
<input type="checkbox" name="example[]" value="2">サンプル2
<input type="checkbox" name="example[]" value="3">サンプル3
<input type="checkbox" name="example[]" value="4">サンプル4

こんな感じでname属性に[]をつけると
$_POST['example']の中に選択したやつが配列で入ってくる
0717nobodyさん2007/10/09(火) 23:55:16ID:???
勝手にURLデコードするのがうっとうしいよなPHP
0718nobodyさん2007/10/10(水) 01:04:56ID:???
>>715‐716
出来ました。ただ、登録したデータを一覧表示すると、 Array と表示します。
丸ごとDBに登録じゃまずいですよね  実用の時は、

質問2 休日の過ごし方は?(複数選択可)
<br>
 <input type="checkbox" name="q2" value="映画鑑賞">映画鑑賞
 <input type="checkbox" name="q2" value="ドライブ">ドライブ
 <input type="checkbox" name="q2" value="買い物">買い物

上記は趣味を登録するフォームなんですが、こういうのって
「映画鑑賞」「ドライブ」「買い物」の部分を生成される配列から抽出して、
「,」で連結したあとに、dbに送信してるんですか?
0719nobodyさん2007/10/10(水) 01:36:01ID:???
>>718
そんなもん、DBのテーブル設計による。

1ユーザ1レコードで格納するんならカンマで連結して1カラムに押し込み〜
なんてなるんだろうが、それだと検索しにくいし後々加工もしにくいから
「ユーザID,属性」みたいなテーブルにして、選択した数の分だけ
レコードを追加してやった方がいいんじゃないか?
その場合、連結なんてしないで数の分だけループしてinsert。
0720nobodyさん2007/10/10(水) 01:37:06ID:???
>>718
っていうか、なんで削除の話が登録の話になってんの?
0721nobodyさん2007/10/10(水) 01:53:52ID:???
>>719-720
どうもです。登録の方が削除より話がわかりやすいような気がして
登録の方で聞いてしまいました。 基本的な部分は同じだろう、と (すみません)

>その場合、連結なんてしないで数の分だけループしてinsert。
というのは
userName|shumi
-------------------
yamada|映画鑑賞
yamada|ドライブ

って形になるんでしょうか? 確かにこっちのほうがいいですねー
0722nobodyさん2007/10/10(水) 02:09:07ID:???
>>685
session_cache_limiter('private_no_expire')
でOK
0723nobodyさん2007/10/10(水) 02:09:52ID:???
>>721
>$_POST['example']の中に選択したやつが配列で入ってくる
                                                    ~~~~~~~~~~~~~~~~
って書いてあるんだからそれをそのまま表示すると型が表示されるのは普通
0724nobodyさん2007/10/10(水) 02:49:28ID:???
search.php?keyword=©
だと、htmlには©じゃなくてcと表示されてしまいます。
GETで©を取得してそのまま©と表示させるにはどうしたらいいでしょうか?
文字コードはUTF-8です。よろしくお願いします。
0725nobodyさん2007/10/10(水) 02:54:31ID:???
>>724
ID出して
07267242007/10/10(水) 03:00:00ID:P3ev0KiI
あ、すみません。
sageてました。
0727nobodyさん2007/10/10(水) 03:04:42ID:tzNR6m8r
© はあかんのか
0728nobodyさん2007/10/10(水) 03:05:47ID:tzNR6m8r
ところで、ここの人ってみんなID消してるけどなにか犯罪でもしてる人ばかりなの?
みんな???で気持ち悪いんだけど
0729nobodyさん2007/10/10(水) 03:10:52ID:???
>>728
2ch初心者乙
0730nobodyさん2007/10/10(水) 03:25:19ID:???
>>722
それです!ありがとうございました!!あんたスゴイ!
0731nobodyさん2007/10/10(水) 03:28:56ID:???
たまに詳しい人が現れるね。うれしい。
0732nobodyさん2007/10/10(水) 04:12:32ID:???
>>721
正規化について知っておくべし。メリットとデメリットも。
0733nobodyさん2007/10/10(水) 04:55:47ID:???
DBなんてFWに勝手にやらせればおk
0734nobodyさん2007/10/10(水) 05:36:39ID:???
>>733
お前の態度気に入らねから、教えねぇ。
07357332007/10/10(水) 05:40:36ID:???
別に教えてなくて結構です俺質問者じゃねえしw
まじでDBなんて覚える必要ないよ
FWが勝手にやってくれるからFWの使い方覚えたほうが数倍いい
0736nobodyさん2007/10/10(水) 06:04:03ID:???
まぁ、小規模なシステムはDBをどんな作り方しても大した問題ないし。
0737nobodyさん2007/10/10(水) 06:48:53ID:???
>>735
アマ乙。
FWの採用しているO/Rマッパが対応してない
クエリ投げる必要も結構ある
0738nobodyさん2007/10/10(水) 06:49:33ID:???
大規模なもんだとDB設計する人が設計するから
PGってあんま関係ないんだよな・・・・
小規模なもんはてきとーにDB設計しても問題ないし・・・・

>DBなんてFWに勝手にやらせればおk
って思ってる時点でしれてるが・・・
0739nobodyさん2007/10/10(水) 07:04:51ID:???
むしろデータ構造を的確に決めれればシステムは8割方できたようなもんだろ・・・
0740nobodyさん2007/10/10(水) 07:24:15ID:???
八割は言いすぎ。
そのデータ構造にデータを入れなきゃいけないのだから。
0741nobodyさん2007/10/10(水) 07:41:39ID:???
データ構造さえ決まっていれば、以降のロジックもそれに合わせて
ほぼ迷うことなく決めることができる、という意味では確かに8割完成かな。
0742nobodyさん2007/10/10(水) 07:43:17ID:???
データ入れるのなんて中学生でもできるだろ
0743nobodyさん2007/10/10(水) 07:51:22ID:???
俺、(DBの仕事をどうやって firewall にさせるんだろ…?)
小一時間沈黙…(!! frameworkか…)

orz
0744nobodyさん2007/10/10(水) 08:25:34ID:???
FWはDBの設計は自分でやらないといけないからな
0745nobodyさん2007/10/10(水) 09:18:50ID:P3ev0KiI
データベースに保存するとき

1.POSTでkeywordを取得
$keyword = htmlspecialchars($_POST['keyword'],ENT_QUOTES,'UTF-8');

2.$keywordをDBに保存

これだけで大丈夫でしょうか?
と言うより普通こうですか?
0746nobodyさん2007/10/10(水) 09:26:09ID:???
>>745
ソースのあちらこちらに、1みたいなコードがあったら、汚すぎる。
FWでやれば全て解決できるよ。
0747nobodyさん2007/10/10(水) 09:27:28ID:???
>>745
普通、DBに保存するデータにhtmlspecialchars()なんてかけない。
0748nobodyさん2007/10/10(水) 09:28:28ID:???
>>747
出力する度にhtmlspecialcharsするのが面倒だからかけて入れてますw
0749nobodyさん2007/10/10(水) 09:30:05ID:???
>>748
DBの入出力の両方にhtmlspecialcharsするのが一番安全だけど。
0750nobodyさん2007/10/10(水) 09:30:20ID:???
きみんちのデータは画面表示以外には全く使わんのか
0751nobodyさん2007/10/10(水) 09:32:20ID:???
そらケースバイケースだろ、この人が htmlspecialcharsを使っている時点でHTMLに
出力する事を前提としていると考えるのが妥当。
0752nobodyさん2007/10/10(水) 09:33:21ID:???
DBへは生のデータを入れるべき
0753nobodyさん2007/10/10(水) 09:33:49ID:???
htmlspecialcharsの本質を理解しているのかと疑いたくなるレスだなぁ。
0754nobodyさん2007/10/10(水) 09:38:29ID:OYZiPU1d
>>752
横からすみません。私もDBへ生データを入れていますが、
クライアントから送信されたデータを何もせずに入れていることに少し不安があります。

入力値が半角英数であれば、半角英数チェックを掛けてから入れますが、
日本語も含まれるような場合だと、そのまま入れています。
何かチェックをかけるべきでしょうか?
システム予約語的なマズイ文字があると前に聞いたことがあるのですが・・・
0755nobodyさん2007/10/10(水) 09:38:37ID:???
>>752
'や"はどうやって生で入れるの?
0756nobodyさん2007/10/10(水) 09:44:17ID:???
DBのエスケープ入出力関係は一昔前に万能クラスを作ってから気にしてないな、
今は抽象化レイヤがトレンド?
0757nobodyさん2007/10/10(水) 09:48:50ID:???
データ量の増加よりもリスク回避の方が優先だと思うし何より出力する度にエスケープする
というのが効率良く思えないんだけどな。効率など考えない企業向けなら何処で何をしようが
関係ないだろうけどw。
0758nobodyさん2007/10/10(水) 09:51:28ID:???
DBに入れる以前の問題として、エスケープしないといけないようなものを
画面で入力可能にしているのが諸悪の根源だよ。
0759nobodyさん2007/10/10(水) 09:53:09ID:???
>>755
そういうのはエスケープして当然
それ以外は生で入れるべき
0760nobodyさん2007/10/10(水) 09:54:21ID:???
>>758
バカ?
0761nobodyさん2007/10/10(水) 09:54:56ID:???
生発言もわからん事はないけどそのぬるさが情報流出に繋がったケースも多いい。
完璧だと思い込んでいる奴が墓穴をほるケースだわ。
0762nobodyさん2007/10/10(水) 09:55:22ID:???
バレなきゃ、何しても構わんみたいな発想で共感はできんな。
0763nobodyさん2007/10/10(水) 09:55:44ID:cLvYq00J
みなさんPHPは秀丸とかEmとかテキストとかで手書きなの?
0764nobodyさん2007/10/10(水) 09:57:13ID:???
>>762
今時モラルなんて期待しちゃいかんよ。
0765nobodyさん2007/10/10(水) 09:58:50ID:???
エスケープもしないで生でDBに突っ込むってやつは、
100%ユーザーのIDやパスワードも生で入れるタイプ。
0766nobodyさん2007/10/10(水) 10:06:57ID:???
>>765
IDは生でパスワードは暗号化しているんだけど
IDも暗号化して入れたほうがいいの?
0767nobodyさん2007/10/10(水) 10:09:28ID:???
>>766
シングルクオート使ってるIDはエスケープするだろ?
誰も暗号化とは言ってないぞ?
0768nobodyさん2007/10/10(水) 10:12:03ID:???
IDにクォートを使わせている人なんているのか・・・
0769nobodyさん2007/10/10(水) 10:12:04ID:???
>>767
すまん、早とちりした
てか、IDとパスワードはエスケープしないで使える文字を限定しているわけだが
それでもエスケープって必要なのかな
正規表現でa-zA-Z0-9\-_で弾いてる
0770nobodyさん2007/10/10(水) 10:15:05ID:???
使える文字がa-zA-Z0-9\-_だけならエスケープする必要ないだろw
0771nobodyさん2007/10/10(水) 10:15:53ID:???
IDとパスワードは、情報流出のためにするものだろ。
エスケープの目的とは全然違う。
まぁ、エスケープもしないというやつはセキュリティーに無関心だから情報流出についても無関心だと思うが。
0772nobodyさん2007/10/10(水) 10:18:27ID:???
何が困るって引継ぎの時が一番困るんだよ
書き方がかわるだけで穴が出来てしまう
0773nobodyさん2007/10/10(水) 10:19:10ID:???
A.保存するときそのまま入れる場合
DBから取り出すときは毎回htmlspecialcharsをかける

B.保存するときhtmlspecialcharsかける場合
DBから取り出すときはそのまま出力できる

どっちが効率的かと言ったらBだと思うけど。
0774nobodyさん2007/10/10(水) 10:20:42ID:???
げ、もしかしてPEARのDBライブラリ使うときに
SQL文エスケープしないとまずい?
今まで自動でしてくれるもんだと思ってたんだが・・・
0775nobodyさん2007/10/10(水) 10:23:46ID:9QH/UxMS
mysql_escape_string
pg_escape_string
0776nobodyさん2007/10/10(水) 10:32:00ID:???
バックエンドにRDBMSを据えた電子掲示板で'や"をエスケープせんとその文字使えない
つか、文字列に'を含んだSQL投げた時点でRDBMSに蹴られるやん
詰まるところクォーテーション使いたいからキチンと処理しとるで
0777nobodyさん2007/10/10(水) 10:34:28ID:???
>>776
保存するときhtmlspecialcharsかけない人って
magic_quotes_gpc = Onにしてるのかな?
まあたしかにOnにしてると生データ入れられるな。
でもmagic_quotes_gpc = Offが推奨なんだよな。
0778nobodyさん2007/10/10(水) 10:41:00ID:???
>>777
いや、普通保存するときにかけるのはmysql/pg_escape_stringであって
htmlspecialchars使う人は表示以外にデータを使わないと最初から決めてる人。
magic_quotes関係ない。
0779nobodyさん2007/10/10(水) 10:42:31ID:???
htmlspecialcharsってHTMLの特殊文字をエスケープするヤツなんだから
HTMLを出力するときに掛けるのは当然。
DBに入れるときにはDBの特殊文字をエスケープするのが当然。
DBに入れるときにhtmlspecialchars使うのはおかしい。
たまたま上手くいってるってだけだ。

0780nobodyさん2007/10/10(水) 10:46:33ID:???
magic_quotes_gpc = Onにしててもバックスラッシュでエスケープした文字だけやろ
Don't → Don\'t こんな文字列もらってもRDBMSには突っ込めんよ?
少なくとも俺の使ってるRDBMSでは駄目
普通に手抜けるんだからhtmlspecialchars通しておけばいいんでないの?
RDBMSから生のデータ引っ張り出した時はガックリくるかもしれんけど
0781nobodyさん2007/10/10(水) 10:47:59ID:???
DBに入れるパスワードは暗号化じゃなくてハッシュ化だろ
暗号化っていうと復号できるみたいなニュアンスあるから誤解をまねく
>>758のいってることはごく自然だと思うんだけどな
SQLインジェクションにつながるものはバリデータではじくもしくはエスケープして入れる
XSSにつながるデータは直接いれて出力時にエスケープする
ていうのが定説だと思うんだけど
なんでもかんでもhtmlspecialcharsすればいいっていうわけではない気がする
0782nobodyさん2007/10/10(水) 10:54:00ID:???
>>779はhtmlspecialchars使うのはおかしいと言ってる
>>780はhtmlspecialchars使うのは正しいと言ってる
うーん・・・
0783nobodyさん2007/10/10(水) 10:55:20ID:???
>>782
場合によって使い分けろということで解決するんじゃね?
0784nobodyさん2007/10/10(水) 10:57:57ID:???
結局出力時に適切な形で出力できればいい
0785nobodyさん2007/10/10(水) 10:59:25ID:???
目的と効率の差みたいな感じで意見が分かれてるだけかな。

私は効率だからPOSTであがってきたデータはhtmlspecialcharsしている事が多いい。
書き込みより読み込み回数の方がたいてい多いいしな。
0786nobodyさん2007/10/10(水) 11:04:14ID:???
お前らは、腐ったものでも冷蔵庫に入れて保存して、
取り出す時に調べれば良いっていうことかww

ダーティーなデータをDBに保存することに違和感を持たない感覚って、
プロとしてダメダメだよ
0787nobodyさん2007/10/10(水) 11:04:57ID:???
しかし
> DBに入れるときにはDBの特殊文字をエスケープするのが当然。
> DBに入れるときにhtmlspecialchars使うのはおかしい。
> たまたま上手くいってるってだけだ。
これも納得できる。
htmlspecialcharsではなくmysql_real_escape_stringを使うべきなのだろうか?
0788nobodyさん2007/10/10(水) 11:08:03ID:M9anXW7v
PHPで変数が undefined な状態を調べることってできますか?
isset()ではnullがセットされたものもtrueとなってしまいます。
0789nobodyさん2007/10/10(水) 11:10:54ID:???
>>788
strlen
礼はいらん
0790nobodyさん2007/10/10(水) 11:13:50ID:???
htmlspecialcharsではなくmysql_real_escape_stringを使うべきな気がしてきた。
0791nobodyさん2007/10/10(水) 11:14:46ID:???
>>786
いやいや、割り切りだよ割り切り。
Windowsアプリケーション等では insert文投げる時にトラブルの種になる文字は
禁則文字として「使わないでくださいね」って釘打っておけば納得してもらえるの。
ところがWebの場合、「これ、使えません」っていうと「なんでや?他んところは
使っておるやないかボケ!!」って聞き入れない。
ま、つまんねえとこで意地張ってもしょうがないじゃん。
0792nobodyさん2007/10/10(水) 11:16:16ID:???
だからどの時点でやるべきなのか、効率が良いのかの違いだけだよ
出力する時に50項目*1000ループhtmlspecialcharsを実行するのか、
それともあがって来たデータそのものに一度だけhtmlspecialcharsを
実行するのかの違いだけ
0793nobodyさん2007/10/10(水) 11:22:00ID:???
htmlタグを含んだTEXTフィールドはどうしてる?
タグと本文を正規表現で分けて処理すんのかな?
0794nobodyさん2007/10/10(水) 11:22:12ID:???
>>782
779は正統派、780はやや邪道だが目的は満たしてるし手抜きもできていいと言ってる。
0795nobodyさん2007/10/10(水) 11:25:16ID:???
>>792
考え方としては毎回動的に画面を生成する掲示板等と
更新時に静的HTMLを生成してしまうblog等との違いと一緒だよな。
それがより効率を上げ性能を向上させるものなら
多少の非汎用化も許容される場合がある。
もちろん、常時内容が変化するようなシステムなら
元になるデータだけ持っておいて毎回動的生成すべきだろう。
0796nobodyさん2007/10/10(水) 11:33:16ID:0neE8nHZ
はじめまして

自分はサイト運営をしているのですが、PHPを使ったページで

Warning: main(db/.php): failed to open stream: No such file or directory in /home/webmaster/public_html/link/yomi.php on line 21

Fatal error: main(): Failed opening required 'db/.php' (include_path='.:') in /home/webmaster/public_html/link/yomi.php on line 21

とエラーが出てきてしまい使えません。
誰かPHP等に詳しい方、対処方法を教えていただけませんか
0797nobodyさん2007/10/10(水) 11:35:02ID:???
>>788
無いんじゃないかな…
なんせ
$a = NULL;
var_dump(is_scalar($a));
の結果が「bool(false)」になるくらいで、
NULLを格納した値はPHP上では「未定義変数」の扱いになってる。
決してNULLという値が格納されたスカラー変数ではないのよ。
0798nobodyさん2007/10/10(水) 11:35:24ID:???
典型的な夏厨な質問だな
何でmail()なんて使おうと思ったの?
0799nobodyさん2007/10/10(水) 11:35:49ID:???
779の補足
効率の話は全く考えてなかった。どうすべきか、という意味で779を書いた。
表示の度にhtmlspecialcharsを掛ける負荷をなくすという目的なら
htmlspecialcharsをかけてDBへ保存すれば良い。
でも、だからといってDB固有のエスケープを掛けないで良いという事じゃない。
htmlspecialcharsを掛けてさらにmysql_real_escape_stringなどをかける。
0800nobodyさん2007/10/10(水) 11:36:27ID:???
>>796
db.phpが無いんだからdb.phpを該当ディレクトリにアップロードすればいい。
0801nobodyさん2007/10/10(水) 11:37:36ID:???
>>800
それ釣りだよw
何度も出てる
0802nobodyさん2007/10/10(水) 11:37:54ID:???
>>796
Yomi-searchのマニュアル読んでちゃんと設定すればいい。
設定しなきゃ動かんよ、それ。
0803nobodyさん2007/10/10(水) 11:38:12ID:???
Bamcompile使ったがPEAR使えないのな・・・
0804nobodyさん2007/10/10(水) 11:38:45ID:???
mysql_real_escape_stringと同等の関数を有していないDBMSは無視ですか?
0805nobodyさん2007/10/10(水) 11:39:48ID:???
>>804
たとえば?
0806nobodyさん2007/10/10(水) 11:40:14ID:???
>>801
100%釣りだよなw
0807nobodyさん2007/10/10(水) 11:41:54ID:???
>>788
<?php
$a = 100;
$a = null;
if (!isset($a)) {
  echo "empty!\n";
}
?>

emptyって表示されたけど・・・。
0808nobodyさん2007/10/10(水) 11:46:45ID:???
779は正統派だと思っていたが

例えば文字列 Don't をそのままDBに入れる人は
DBから文字列 Don't を取り出せないじゃないか!
保存するときhtmlspecialcharsかけるのが正統派だ
0809nobodyさん2007/10/10(水) 11:47:23ID:???
>>805
mysql以外のDBMS
08107962007/10/10(水) 11:51:12ID:0neE8nHZ
残念ながら釣りではないです。
回答頂いた方ありがとうございます
色々と調べてみます
0811nobodyさん2007/10/10(水) 12:01:35ID:???
つーかなんでプリペアドステートメントとか使わないの?
htmlspecialcharsとかaddslashesすりゃ良いって人よく見るけど
それぞれ用途があるんだからそれぞれの用途に合ったものを使うべき

DBに突っ込む時にhtmlspecialcharsとかしとけば表示の時楽だが
生データじゃないので再利用性が落ちるし
こういう人に限って表示の時も
再度htmlspecialcharsをしたりと言う場合が多い気がするんだけど?
0812nobodyさん2007/10/10(水) 12:04:34ID:???
MT4の重さは異常、調べたらDB設計が糞だったw
0813nobodyさん2007/10/10(水) 12:06:56ID:???
>>811
やり方はともかく一貫性は大切〆。
0814nobodyさん2007/10/10(水) 12:11:05ID:???
>>808
取り出せるだろ・・・
0815nobodyさん2007/10/10(水) 12:14:54ID:???
>>814
SELECT * FROM table WHERE moji = 'Don't'
これじゃ取り出せないよなあ?
どうやって取り出すよ?
0816nobodyさん2007/10/10(水) 12:16:11ID:???
>>815
おまえ頭悪いだろwwwww
0817nobodyさん2007/10/10(水) 12:16:58ID:???
釣りだろ、読み出す前に入れれないだろw
0818nobodyさん2007/10/10(水) 12:18:44ID:???
>>816
俺みたいな頭悪いやつに頭悪いだろと言っても意味ねーんだよ
で?どうやって取り出すよ?
とりあえず答えてから貶せ
0819nobodyさん2007/10/10(水) 12:19:49ID:???
>>815
ちょっと笑っちまったじゃねーか
insertだろうがselectだろうが、SQL文に入れる文字列はエスケープ掛けるんだよ。
$sql = "SELECT * FROM table WHERE moji = '" . mysql_real_escape_string("Don't") . "'"


0820nobodyさん2007/10/10(水) 12:20:02ID:???
>読み出す前に入れれないだろw

釣りか?入れれるだろw
0821nobodyさん2007/10/10(水) 12:20:55ID:???
>>820
815のお頭ならって話だよw
0822nobodyさん2007/10/10(水) 12:32:14ID:???
>>811
prepareにしろescape処理の関数にしろ至れりつくせりのDBMSなら何も問題ない
しかしPHPでサポートされてるDBMSって全てが横並びで標準実装ってわけでない
某SQLServerみたいに見放された(?)感のあるDBMSすらある
PDOに移行すれば救われるのかもしれないけど native driver がこれまた将来に
渡って保証されていない物もある
しょうがないから妥協している箇所を否定されたら何もできないよ
08237882007/10/10(水) 12:40:36ID:M9anXW7v
>>797
ん〜、もはや変数にもならないんですね。
ちょっと不便だなぁ。PHPらしい簡易化による不便さですね・・・。

>>807
ごんめんなさい、質問文が間違えてtrueとfalseが反対になってました。
0824nobodyさん2007/10/10(水) 12:40:37ID:???
>>822
prepareはともかくescapeなんて、sqlserver_escape_string()みたいな関数1個作ればいいだけでしょ?
そんなに悩むこともない気がするんだが。
0825nobodyさん2007/10/10(水) 12:45:33ID:???
>>819
htmlspecialcharsとmysql_real_escape_string両方使ったら取り出せなかった。
htmlspecialcharsをコメントアウトしたら取り出せたorz
0826nobodyさん2007/10/10(水) 12:46:09ID:???
>>825
何回エスケープするんだよ
0827nobodyさん2007/10/10(水) 12:47:20ID:???
何の処理をしているのかわかってないらしいw
0828nobodyさん2007/10/10(水) 12:50:11ID:???
>>822
将来の話なんて出すべきもんじゃないだろ
PDOじゃなくてもPEARとかのライブラリ類もあるし
動作的に同じであれば良いんじゃないの?
0829nobodyさん2007/10/10(水) 12:55:41ID:???
>>827
だからいちいち貶すだけのレスはやめれ
わかってないから聞いてんだよw
0830nobodyさん2007/10/10(水) 12:59:23ID:???
あれ?
DBに入れる際には、mysql_real_escape_string
HTMLに出力するときには、htmlspecialchars
じゃないの?
0831nobodyさん2007/10/10(水) 13:01:13ID:???
>>829
質問するという意思があるの?
じゃあなんでID出さないの?
0832nobodyさん2007/10/10(水) 13:11:14ID:???
>>831
わかったよ。ID出さないから答えなくていいよ。
じゃあこの話は終了ね
0833nobodyさん2007/10/10(水) 13:12:29ID:???
ID出さずに逃げたwwwwwwテラチキンwwwwwwwww
0834nobodyさん2007/10/10(水) 13:15:00ID:???

こういうのがうざいんだよなぁ

ちなみに「htmlspecialchars() だけでは不十分」らしいな
0835nobodyさん2007/10/10(水) 13:59:21ID:???
データベースで$categoryの中に1,2,3,4とか数値を入れてるのですが、
$category=1に該当するデータ数を出すにはどう書けばいいですか?
0836nobodyさん2007/10/10(水) 14:03:30ID:???
>>835
スレ違い
0837nobodyさん2007/10/10(水) 14:09:10ID:???
>>835
クエリーでやるとこんな感じだけど
SELECT count(category) FROM category_table WHERE category='1'

まぁどんなやり方してるかにもよるし
出そうとしてる部分のソースださんとどーにもならん
0838nobodyさん2007/10/10(水) 14:30:15ID:zc/CFV7a
クラスで宣言していない変数にアクセスしたときに
参照はエラーにできると思いますが
書き込みのときにも
エラーを発生させる方法はないでしょうか?


class Hoge {
public $v1;
}

$h = new Hoge();
$h->v1 = 1;
$h->v2 = 2; //ここでエラーを発生させたい

0839nobodyさん2007/10/10(水) 14:44:39ID:???
レスが乱発しているから、まとめておく。話を混同しすぎだよw

'→DBの予約語→DBに入れる前にエスケープする
<>&→HTMLの予約語→HTMLを出力する前にエスケープする
\aなど→システム特殊文字→システムのフロント処理の所で削除
@など→機種依存文字→システムのフロント処理で警告メッセージ
0840nobodyさん2007/10/10(水) 14:47:19ID:???
__setを定義

まぁもっとスマートな方法あったような気がするが忘れた
0841nobodyさん2007/10/10(水) 14:57:04ID:???
思ったんだけどさ、__set、__getを使えば
PHP4でもプライベート変数とか使えるんじゃね?

まあパフォーマンスは落ちるが、
それは開発時だけそうやっといて
運用時ははずすと言う方向で。
0842nobodyさん2007/10/10(水) 15:00:55ID:???
>>841
__set,__getってphp5からじゃ?
まぁデストラクタはつけれるけど
0843nobodyさん2007/10/10(水) 15:13:12ID:???
>>842
__callも含めて使えるよ。overloadを調べよう。
0844nobodyさん2007/10/10(水) 15:21:58ID:???
あー、メールトリガーで自動返信してたらメールが無限ループした、まじうざい
0845nobodyさん2007/10/10(水) 15:26:28ID:???
>>843
thx
こんなのあるのか・・・
毎回定義するの面倒ではあるが・・・
0846nobodyさん2007/10/10(水) 15:54:13ID:???
Overloadableとかいう名前のクラスを継承して
そこのコントラスタに書けばいいだけさ。

php4とphp5の仕様の違いが嫌?
ならそれを吸収するコードを書けばいいだけさ。

そんなコードを各のが嫌?
ならそれをサポートしているライブラリ・フレームワーク等を
使えばいいだけさ。
0847nobodyさん2007/10/10(水) 16:16:17ID:???
>>840
これって838へのレス?
それじゃ防げなくないか?
0848nobodyさん2007/10/10(水) 16:43:03ID:5Clc9AoY
データベースに
大阪府|東大阪市|中小阪|三丁目|6

のように格納されてるんだけど、
住所検索で「大阪府東大阪市中小阪3-6」
みたいな感じでもHitさせたいんだけど何かよさそうな方法はありませんか?
0849nobodyさん2007/10/10(水) 16:57:33ID:???
>>848
すぐに思い付くのは、

1. データの重複を承知で連結されたカラムを追加する。
2. 検索時のオーバーヘッドを承知でSELECT時に連結して検索する。

くらいかな。
0850nobodyさん2007/10/10(水) 17:00:06ID:5Clc9AoY
>>849
サンクス

GoogleMapやGeocodingみたいに
「おおさかふ」で大阪が検索されたりするのは
相当な技術のアルゴルズムなんだなぁ・・・
0851nobodyさん2007/10/10(水) 17:00:34ID:???
>>848
システム構成にもよるが、俺だったらツリー構造でオンメモリーで
住所データを保持しておいて、検索時にツリー構造から検索するようなやり方にする。
そうすれば、高速で検索が可能になる。まぁ、メモリーは食うけどなぁ。
0852nobodyさん2007/10/10(水) 17:18:46ID:???
>>848
3-6をデータベースの書式に合わせる
08537962007/10/10(水) 17:33:35ID:0neE8nHZ
うわぁぁあぁぁぁあ!!!
わかんねぇよ!!和漢ねlwんだよぉおおぉぉぉっうぇうぇwwwwwwwww
0854nobodyさん2007/10/10(水) 17:35:32ID:???
>>853
ウザイ
死ね
0855nobodyさん2007/10/10(水) 17:40:01ID:???
DB覚えなくても・・とか言ってる奴は頭が足りなくて覚えられないだけだな。
知っとくに越した事ないってw
0856nobodyさん2007/10/10(水) 17:50:22ID:dFg+5xQC
PHP4で、コンストラクタを
function &hoge(){}
と書いた場合、
$object =& new hoge();
と書かずに
$object = new hoge();
と書いても大丈夫になりますか?
0857nobodyさん2007/10/10(水) 17:58:20ID:???
>>851
それは、MySQLとかの一時テーブルにインデックスを張って検索に使え、ってこと?
0858nobodyさん2007/10/10(水) 18:23:37ID:???
>>857
お前はニ分木検索を勉強した方がいい。
0859nobodyさん2007/10/10(水) 18:35:43ID:???
>>855
必要となる知識は他にもあるってことだろ
何もDBを丸覚えするのが全てなわけじゃないし
楽するための仕組みが提供されてればそれを使えばいいっていってるんちゃうかと
0860nobodyさん2007/10/10(水) 18:39:32ID:???
ここPHPスレだろ?

PHPを使った開発で、住所データを
オンメモリーで持っておけることって
現実的には少ないないか?
0861nobodyさん2007/10/10(水) 18:40:04ID:5Clc9AoY
>>860
自鯖
0862nobodyさん2007/10/10(水) 18:42:58ID:???
>>861
その後は?
0863nobodyさん2007/10/10(水) 18:43:35ID:???
話をぶり返すようで悪いのですがaddslashesしてecho "value='{$_POST['dat']}'"と
書いておけば問題ないって事で合っています?
0864nobodyさん2007/10/10(水) 18:44:49ID:5Clc9AoY
>>862
・・・sakuraにでもうpする
0865nobodyさん2007/10/10(水) 18:47:54ID:???
>>848

> 大阪府|東大阪市|中小阪|三丁目|6
よくわからんデータ形式だ。

東京都杉並区の場合は?
福岡県福岡市中央区の場合は?
丁が無い場合は?
08668632007/10/10(水) 18:48:11ID:???
あ、このままだとスラッシュが増殖しますね
いちいちstripslashesするのめんどくさいな
0867nobodyさん2007/10/10(水) 18:49:10ID:???
最新でない旧バージョンの一式が欲しいんですが
公式ページ等で入手する方法はありますか?
4.3.xが欲しいです。
0868nobodyさん2007/10/10(水) 18:52:40ID:???
>>864
いやいや、そういう意味じゃなくて、自鯖だからって
それだけじゃオンメモリーにはならないでしょ?
(基本的に)phpはスクリプト実行が終了したら
データメモリは開放されるのだから。

となると、phpを使って一回の実行でバッチ的に
大量の住所データをマッチングさせたいのなら
オンメモリーで高速という効果はあるけどさ。

実行するたびに全住所データを読んでツリー構造を
作っていたら逆にパフォーマンス悪いでしょ?
0869nobodyさん2007/10/10(水) 18:56:32ID:???
>>858
いや、MySQLのインデックスは多分ツリー構造のインデックスだろうから、
そういうことを言いたいのかな、と思っただけ。

そうではなく、PHPでデータ構造を作る場合、
CGIかApacheのモジュールで動かすPHPだとインスタンスごとに重複して
メモリ上のデータベースを抱えることになって、DB更新にも弱いし
俺ならこうするって言われてもありえねぇだろ、と思ったわけ。

デーモンにして他のプロセスに追い出す手は無いわけじゃないけど
それはPHPで書かない方が便利だし。


ここまで書いて思ったけど、MySQLの一時テーブルの構造はハッシュだっけ?
0870nobodyさん2007/10/10(水) 18:56:42ID:???
>>867
少しは探す努力した??死ね
ttp://jp.php.net/releases/
0871nobodyさん2007/10/10(水) 18:57:03ID:P3ev0KiI
すみません。
結局DBに保存するときhtmlspecialcharsかけたほうがいいの?
それともかけないで生データ入れたほうがいいのでしょうか?
0872nobodyさん2007/10/10(水) 18:58:20ID:???
>>871
htmlspecialcharsは何のためにあるのか考えればわかる。
0873nobodyさん2007/10/10(水) 19:01:49ID:???
いや、だからさ、
例えば、東京都港区六本木の場合
最初の文字「東」を入力した時点で「東京都」が確定するだろ。
そしたら、次は「港」から始まる市町村(特別区、広域連合を含む)を検索すれば、いい。
つまり、ajax方式でやればいいじゃん。
0874nobodyさん2007/10/10(水) 19:03:53ID:???
>>873
何言うとんねな!!!この野郎!!!!!
ふんにゃ、それがツリー構造だって言ってんやろうがーーー
0875nobodyさん2007/10/10(水) 19:08:25ID:???
>>848じゃないけどさ、
Amazon見たいに、一つの入力フィールドの検索で、
商品タイトル、作者等の複数項目にマッチし、
また、ひらがな・カタカナ、全角・半角を同一視、
「らき☆すた」に「らきすた」でもヒットできるように
検索させたい場合、検索用のフィールド作るのが一番だよね?
(DBMSにそういう機能がある場合を除く)
0876nobodyさん2007/10/10(水) 19:15:53ID:???
>>874
馬鹿丸出しの大阪人乙
0877nobodyさん2007/10/10(水) 19:17:27ID:???
>>875
うん、曖昧な検索したいならそうするしかないんじゃないかな?
でも検索用のフィールドってどう作るかはあんまり考えてないや。

0878nobodyさん2007/10/10(水) 19:19:51ID:???
>>873
わけわからんってw
元々(>>848)の質問とずれてるぞ。

データベースに
> 大阪府|東大阪市|中小阪|三丁目|6
こうあった場合の検索方法だろ。

Ajax方式って、それはユーザーインターフェースであって
検索の仕方ではありません。
0879nobodyさん2007/10/10(水) 19:24:01ID:???
そういうのが出来るとしたらキーワードでテーブルを作るしかないと思うけどね
0880nobodyさん2007/10/10(水) 19:27:36ID:???
>大阪府|東大阪市|中小阪|三丁目|6

これって1個のフィールドにこうやって入ってるの?
それとも|ってフィールドの区切りを意味してて、5個のフィールドに分かれてるのか?

データ構造がもう決まっちゃってて変えられないなら、
検索するキーワードの「大阪府東大阪市中小阪3-6」を分解する処理を書いたらどう?
3-6は三丁目とかに変換するのも必要だね。

0881nobodyさん2007/10/10(水) 19:36:49ID:???
>>880
>検索するキーワードの「大阪府東大阪市中小阪3-6」を分解する処理を書いたらどう?
だから、それを俺が提唱しているツリー構造で検索すれば解決するんだが。
0882nobodyさん2007/10/10(水) 19:42:28ID:???
単純な検索ならNグラム方式の検索が良いんじゃないかな
0883nobodyさん2007/10/10(水) 19:44:04ID:P3ev0KiI
>>848
すみません。不躾ながら回答させていただきます。
丁目が3の場合、「三丁目」「3」など三丁目を表す文字をDBに保存
番地が6の場合、「6番地」「6」「-6」など6番地を表す文字をDBに保存
これでマッチすると思います。

>>872
htmlspecialcharsはHTMLエンティティに変換する。
つまり表示するときだけかけたらいいってことですよね。
googleも生データ入れてるみたいだし
やはりhtmlspecialcharsかけないで生データ入れるべきですよね。
今までhtmlspecialcharsかけてDBに保存してた…orz
0884nobodyさん2007/10/10(水) 19:48:52ID:???
googleはキャッシュページをしているから当然変換しないし
0885nobodyさん2007/10/10(水) 19:50:16ID:???
>>881
極論言えばなに使っても解決するよ。適切かそうじゃないかの話。
シーケンシャルに頭から検索していってもいい。

もともと構造が、ああなっている場合の話だろ?
まあそこは、ツリー構造にすればいいと解釈するが、
ツリー構造にするとして、そのデータをいつ読み込むのか?

普通に作ると、サーバーへのリクエストがあるたびに
データを読み込む羽目になるぞ。
あんたの言うajax方式だと、一文字入力するたびに
サーバーのリクエストが発生するから、そのたびに
全住所データを読んでツリー構造を作らなければならない。
これはサーバーにも負荷がかかるし、パフォーマンスも悪い。
シーケンシャルに読んで比較したほうがましだろう。

それから、
> 住所検索で「大阪府東大阪市中小阪3-6」 みたいな感じでも
”でも”という言葉。 つまり丁でも検索できると言うことだろう?
そうなると、ツリー構造はどうなる? もちろんやり方は、いろいろあるが、
「ツリー構造で検索すれば解決」という単純な話ではないことがわかるだろう?
0886nobodyさん2007/10/10(水) 19:50:17ID:???
>>882>>883
俺がツリー構造がいいというのは、住所というものは可変長だからということが一番。
つまり、都道府県の第一段階レベルは一緒でも、その次に来るのが群であったり区であったり市であったりする。
それを効率良く、かつ要件を満たすにはツリー構造で検索するしかないよ。

丁目っていっているけど、丁目じゃなくて字だってある場合もある。
俺は、某銀行系のサイトで住所検索の機能作ったから良くわかる。
0887nobodyさん2007/10/10(水) 19:50:58ID:???
>>881
独自データ構造をオンメモリでPHPで実装する場合の>>869の問題点はどうすんの?
0888nobodyさん2007/10/10(水) 19:55:25ID:???
>>886
ごちゃごちゃ言ってるけどさ、
それって、RDBMSで住所にインデックス情報をつけて
likeで前方一致検索するってだけの話だから。
(likeの前方一致でインデックスが働かないRDBMSもあったと思うが)
0889nobodyさん2007/10/10(水) 19:55:42ID:???
>>885>>887
まずは、マニュアルを嫁
http://cai.cs.shinshu-u.ac.jp/sugsi/Lecture/php/manual/ref.shmop.html
0890nobodyさん2007/10/10(水) 20:00:00ID:???
ツリーツリーうるさいやつがいるな
0891nobodyさん2007/10/10(水) 20:04:29ID:???
> 検索するキーワードの「大阪府東大阪市中小阪3-6」を分解する処理を書いたらどう?
> 3-6は三丁目とかに変換するのも必要だね。

多分ね、これは大変な作業になると思うよ。地域によっては
市が無くて区だけだったり市と区があったり、
丁目が無いところあるし。

もし、検索キーワードを入力するのが面識の無いエンドユーザ、たとえば
ショッピングカートシステムのお客さんとかなら県名を省略したり、
丁で入力するかハイフンで入力するかわからない場合もある。
(そこは「県名を省略せずに入力してください」と書いておくという手もあるけど)

>大阪府|東大阪市|中小阪|三丁目|6
もしこれが5つのフィールドに分かれていると言う意味なら、

データ構造を変更して検索用のフィールドを作るか、もしくは別に検索用の
テーブルをつくり、住所を一つのフィールドにまとめる。

そのとき、住所データを正規化(全角半角、漢数字、丁目や-をスペースに置き換え)する
もちろん検索するときも同じように正規化する。
その後、like検索すればいいのではないか?

ツリー構造とかいっているやつも、データの正規化いるだろ?
というか、そっちのほうがここでは重要な話だろ
0892nobodyさん2007/10/10(水) 20:08:03ID:???
readfileでリモートファイルを読み込ませたいのですがファイルが見つかりませんとでるのですが・・・
URLは間違いなくあってる
0893nobodyさん2007/10/10(水) 20:12:10ID:???
>>892
そんだけでは解らん
周辺のソース出さないと何とも言えない
もしかしたらsafeになってんじゃ?
0894nobodyさん2007/10/10(水) 20:13:14ID:???
>>891
いや、だからツリー構造でajax方式なんだよw
データの正規化をサーバー側とクライアント側の両方で別々に分けて考えなくてもよくなるし、
user ablitiyも向上するだろ。

つまり、東京都港区六本木1-2-3を入力するのに、
「と」と入力すれば「東京都」が自動で表示され、
「み」と入力すれば、「港区」が自動で表示され、
「ろ」と入力すれば、「六本木」が自動で表示され、
「1」と入力すれば、「1丁目」が自動で表示され、
「2」と入力すれば、「2番地」が自動で表示され、
「3」と入力すれば、「3号」が自動で表示される。

ユーザーにフォーマットを意識させることなく、ユーザーが入力した値も
自動で正規化され、かつ入力ミスもなくなる。
99丁目とかありもしない番地も入力と同時にチェックできる。

DBで検索とか言っている奴がいるが、そんな方式でやっていたら、
ユーザーが何回も入力しなおす羽目になりかねない。
0895nobodyさん2007/10/10(水) 20:16:22ID:???
>>889
最初っからそれを出せと言う話。
でそれを使うには環境が限られるということさ。

それをするよりか、単にRDBMSを使えばいいだろ? 今使えているんだし。
どうしてもツリー構造を自作しなきゃいけないのか?

そして、ツリー構造を自作すれば、データが - で 丁目でも
ヒットするようにしたいと言う要望が達成できるのか?

違うだろ? だからあんたが言っていることは答えになってないんだよ。
0896nobodyさん2007/10/10(水) 20:18:08ID:???
郵便番号を入力してもらう、これ最強
0897nobodyさん2007/10/10(水) 20:18:12ID:???
>>894
> DBで検索とか言っている奴がいるが、そんな方式でやっていたら、
> ユーザーが何回も入力しなおす羽目になりかねない

お前バカか。それがDBで検索であっても、
「と」と入力されたときにDB検索すればいいだけの話だろ。
ずれまくりだっつーの
0898nobodyさん2007/10/10(水) 20:20:16ID:???
>>894
それ、Ajax使って、入力する形式を固定にしろという話であって、
ツリー構造であることとはまったく関係ないじゃんw
0899nobodyさん2007/10/10(水) 20:20:58ID:???
>>893
safeにはなってない
phpあまりやったこと無いからぐちゃぐちゃ

$fileurl = substr($_SERVER["ORIG_PATH_INFO"], 1);

if ($fileurl == 1){
$filename = "日本語.mp4";
$file = "***.**/test1.mp4";
  } elseif ($fileurl == 2){
         略
  } elseif ($fileurl == 15){
  $filename = "テスト.mp4";
$file = "***.**/test4.mp4";
}
$file_length = filesize("http://$file";);
header('Content-Disposition: attachment; filename="' . $filename . '"');
header("Content-Length:$file_length");
header("Content-Type: application/octet-stream charset=UTF-8");
readfile ("http://$file";);
0900nobodyさん2007/10/10(水) 20:21:09ID:???
強烈な一撃!

>>894
JavaScriptが使えない環境はどうするの?w
0901nobodyさん2007/10/10(水) 20:27:48ID:???
ここDBスレと間違うくらいDB信奉者が多すぎww

ajaxで検索するやり方で考えるなら、DBじゃなくて、
ツリー構造でオンメモリーに持つの方がパフォーマンス的に有利に決まっているだろ。

住所の巨大なデータ構造をDBにもって、いちいち検索かけたらDBサーバーが飛ぶぞ。

>>900
強烈な反撃!
インターフェイス部分をFlashで実装すればいいだけ。
0902nobodyさん2007/10/10(水) 20:29:51ID:???
っていうかさ、住所データなんて基本的に変わらないんだから
ツリー構造なんかにしなくても、
単に住所が入った配列をソートさせて
それを二分探索で検索すれば良いだけじゃん。

# ソートされた配列を二分探索したら
# その配列はツリー構造になるとかいう馬鹿なことは
# さすがに言わないことを祈る。

俺なら普通にDB使うがな。
0903nobodyさん2007/10/10(水) 20:30:26ID:???
>>901
Flashが使えない(ry
0904nobodyさん2007/10/10(水) 20:30:33ID:???
ばかばっか
0905nobodyさん2007/10/10(水) 20:30:48ID:???
>>901
お前、わざと突っ込まれるように書いてるだろ?w
0906nobodyさん2007/10/10(水) 20:33:20ID:???
>>901
一つ聞いていいか?

お前のその提案で
ハイフンでも丁目でもヒットしたいと言う要望は、

ツリー構造で解決したか?
Ajaxで解決したか?

どちらで解決したか答えろ。
0907nobodyさん2007/10/10(水) 20:34:29ID:???
NGワード:ツリー構造

おまえらももう相手するのやめれw
0908nobodyさん2007/10/10(水) 20:36:13ID:???
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
0909nobodyさん2007/10/10(水) 20:38:12ID:???
>>902
>っていうかさ、住所データなんて基本的に変わらないんだから
お前新聞読んでないだろ。地方再編で対応が大変だった苦労は分からんだろうなぁ。

>>903
そもそも、javascriptもflashも対応していないようなブラウザまで対応するか、だ。

>>906
>ハイフンでも丁目でもヒットしたいと言う要望は、
>ツリー構造で解決したか?
>Ajaxで解決したか?
ツリー構造だからこそ、現在入力している住所レベル(丁目か番地か号か字か)が
分かるわけだろ。ajaxを使えば、そもそもユーザーが丁目やハイフンまで入力する必要もない。
0910nobodyさん2007/10/10(水) 20:43:24ID:???
ああ、filesizeはリモートファイル無理なのか
0911nobodyさん2007/10/10(水) 20:43:34ID:???
>>909
> お前新聞読んでないだろ。地方再編で対応が大変だった苦労は分からんだろうなぁ。
対応した後にソートすればいいだけ。何か問題があるか?

言い訳はいいんだ。ツリー構造で解決したかAjaxで解決したかそれだけを答えろ。
0912nobodyさん2007/10/10(水) 20:45:34ID:???
なんかスレの伸びがやけにいいとおもったら随分エキサイトしてるね
少し10分レスつけるのやめて頭ひやそうぜ
10分後には書く気もうせてるから
0913nobodyさん2007/10/10(水) 20:45:40ID:???
もしかしてこいつ、ソートするだけで済む話なのに、
ツリー構造を作ってしまったのか?
それを認めたくないとかw
0914nobodyさん2007/10/10(水) 20:52:14ID:???
>>911
>言い訳はいいんだ。ツリー構造で解決したかAjaxで解決したかそれだけを答えろ。
だから、どっちかじゃなくて、両方セットじゃないと意味ないだろw
0915nobodyさん2007/10/10(水) 20:52:19ID:???
パフォーマンスをあげたいのなら、オンメモリデータベースを使えば良い。
わざわざphpで実装する必要性は無い。
0916nobodyさん2007/10/10(水) 20:53:51ID:???
>>914
ソートされた配列ではだめで、ツリー構造でならいいという理由は?
0917nobodyさん2007/10/10(水) 20:54:37ID:???
>>889
いや、だから更新時はどうすんのさ。
基本的に自分のプロセスの生き死にを管理出来ないapacheモジュールで
生に共有メモリなんか弄って途中で死んだらどうすんだって話。

...釣りといってくれ。
0918nobodyさん2007/10/10(水) 21:04:55ID:???
みんな、暇なら作ってくれ!。
掲示板でSQLにデータが入っているのですが記事の情報以外には親記事のIDしかありません。
そこからツリーを形成するスクリプト書いてください。

俺、頭悪くてできなかったorz。
0919nobodyさん2007/10/10(水) 21:07:39ID:???
どこまではできたんだ?
0920nobodyさん2007/10/10(水) 21:08:23ID:???
全スクリプトをzipで晒してからだ、話はそれから
0921nobodyさん2007/10/10(水) 21:15:27ID:???
Ajaxを使えば、別にツリー構造じゃなくても、DBでいいわけで。
0922nobodyさん2007/10/10(水) 21:20:56ID:???
ツリー構造って頻繁にキーを追加・削除する必要がある時に使うデータ構造だろw
住所という数日・数ヶ月レベルで変更が無いデータに適用する構造じゃねーよw
0923nobodyさん2007/10/10(水) 21:29:41ID:???
たいていのDBMSではインデックスはBtree(これは2分木ではない)かなにかだろう。
で、普通インデックスはメモリ上にキャッシュされるから、
オンメモリでツリー構造に対して検索したいだけなら普通に結合したカラムを作って
インデックス張って前方一致検索すりゃいいだけ。
0924nobodyさん2007/10/10(水) 21:41:05ID:???
外部ファイルのサイズを取得する方法はありますか?
0925nobodyさん2007/10/10(水) 21:52:31ID:???
>>924
filesize
0926nobodyさん2007/10/10(水) 22:10:02ID:???
array_unshift($array,'key'=>array());はどうやって書けば良いのかな?
0927nobodyさん2007/10/10(水) 22:10:09ID:???
>>925
filesize(http://〜)でもファイルが無いといわれます
09289262007/10/10(水) 22:13:44ID:???
自己解決しました
array()+array()でよかったみたいです
0929nobodyさん2007/10/10(水) 22:34:13ID:???
>>927
じゃファイルが無いのでは
0930nobodyさん2007/10/10(水) 22:38:32ID:???
>>929
アドレスはちゃんとあってるのですが・・・
iniの方の問題ですかね
0931nobodyさん2007/10/10(水) 22:38:32ID:???
>>927
バー
0932nobodyさん2007/10/10(水) 22:47:05ID:???
郵便番号の中の人がもう少し頑張ってくれれば解決する
0933nobodyさん2007/10/10(水) 22:54:04ID:???
外部ファイルって同一ファイルシステム上のファイルじゃなくてネットのhtmlとか?
httpでファイルサイズ取得できるのなかったっけ? アンテナなんかで使われてるヤツ
09349242007/10/10(水) 22:57:15ID:???
>>933
他のサーバーのファイルです。動画系の
0935nobodyさん2007/10/10(水) 22:57:19ID:???
なんで郵便番号って、住所情報の数値以外を全部入れなかったんだろう?
電話番号が9桁(最初の0を省く)でやれるんだからできんことないだろ。

と思って調べたらこんなページが
http://www.geocities.jp/jdy07317/3040.html

> 詰め込めば6けたでも足りたということです。
> 実際には7けたですから、1000万通りも確保できるわけです。
> たくさんある組み合わせのうち70分の69は使用しない事になります。
0936nobodyさん2007/10/10(水) 22:59:28ID:???
>>934
upローダのファイル?
0937nobodyさん2007/10/10(水) 23:00:49ID:???
>>936
レンタル鯖にある動画です
0938nobodyさん2007/10/10(水) 23:01:13ID:???
>>934
なんて出るの?
09399242007/10/10(水) 23:04:34ID:???
>>938
Warning: filesize() [function.filesize]: stat failed for http://URL略/***.avi in /URL略/test.php on line 60
0940nobodyさん2007/10/10(水) 23:07:21ID:???
他の鯖のファイルサイズなんて取れないと思う
そんな話は聞いた事がない
0941nobodyさん2007/10/10(水) 23:08:58ID:???
>>939
それのどこにファイルが無いって書いてあるの?
0942nobodyさん2007/10/10(水) 23:11:43ID:???
file_exists()でファイルの有無調べたら?
エラーの詳細はわからないけど直接取得できるファイルなの?
wgetなどで直接落とせる?
0943nobodyさん2007/10/10(水) 23:15:26ID:???
readfileなら普通に読み込んでる見たいです。
自分でちょっと調べたいと思います。お騒がせしてすみませんでした。
0944nobodyさん2007/10/10(水) 23:33:46ID:???
>>943
filesizeはphp5からしかURLでは取れなかったはず
statでとれれば動くと思うけど
0945nobodyさん2007/10/10(水) 23:36:38ID:???
だから俺がバーってヒントあげたじゃんw
0946nobodyさん2007/10/10(水) 23:44:16ID:???
バーカ
0947nobodyさん2007/10/11(木) 01:11:17ID:???
どこにかこうか迷ったんだけどとりあえずここの人たちにヘルプをもとめてみます。
このページを見てください。
http://www.gomo.jp/
IEで見ると
HTTP500内部サーバーエラー
になります。
でfirefoxでみると普通にエラーが返ります。

ちょっとしたケアレスミスのエラーなんですけど、IEでは全く何が原因だか分らず
デバッグできませんでした。HTTPのHEADERを覗くソフトを見つけて気付いたのですが、
もしや、と思いfirefoxで見たら、案の定普通に表示されました。
これはPHPやサーバーの設定でどうにかなるのでしょうか?
それとIEのデコスケはあいかわらず使えないということなのでしょうか?

ちなみにPHP5.2.4で
php_value error_reporting "2047"
php_flag display_errors on
php_flag display_startup_errors on
php_flag track_errors off
になってます。
0948nobodyさん2007/10/11(木) 01:43:02ID:???
>>947
URLググったら前々スレ53の115と同じじゃん(2007/08/28 08:29:23)
http://pc11.2ch.net/test/read.cgi/php/1188047468/115-
ドメインも個人登録みたいだし。 釣り?orIP収集?
0949nobodyさん2007/10/11(木) 01:49:58ID:???
>>947
それはIEの設定。
簡易エラー表示をOFFにすれば普通に表示されるようになる。
0950nobodyさん2007/10/11(木) 01:51:47ID:???
>>948
このスレで真面目にPHPの勉強してるだけだと思うけど。
なんで同じ人が別の質問したら釣りという発想になるんだ…
0951nobodyさん2007/10/11(木) 02:07:47ID:???
>>950
書き出しが変じゃないか?
まるで今回が始めての質問みたいな感じがする。しかもいきなりリンク貼り。
以前質問したらなら「以前も質問した者ですが…」等と書き始めないか?
そっちの方が以前の状況も遡れるし、進歩具合で回答内容も考えやすい。
検索結果になくて今回初質問でも俺的には正直リンクは踏めない書き出し。
ドメイン取ってる割に全然検索に掛からないというのも収集専用かと思ってしまう。
0952nobodyさん2007/10/11(木) 02:16:33ID:???
>>947
Cake?
まぁFatal errorを修正すりゃいいんでねぇの?

リリースというか開発段階なら
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(E_ALL);
書いておくと良いよ
0953nobodyさん2007/10/11(木) 02:25:15ID:+ZoCLAUB
昨日の>>685です。
>>722さんのアドバイスで無事に解決したのですが、sessionじゃなく、
具体的にはmetaタグで、refreshでページを移動させた場合も、同様に
ページの有効期限切れ、と表示されます。これを解決する方法って
ありませんか?
0954nobodyさん2007/10/11(木) 04:51:07ID:0nOXhCaV
無理かな?
0955nobodyさん2007/10/11(木) 07:10:42ID:+ZoCLAUB
無理っすか・・・
09569472007/10/11(木) 08:27:29ID:???
>>949 952
レスありがとうございます。ちなみにZendFrameworkです。

IEの簡易エラー表示設定があったの知りませんでした。
表示するようになりました。勉強になりました。

いや、別に釣りではなかったのですが、気を悪くしたならすんません。
サーバーのスレかPHPか、ZendFrameworkのすれか、書くとこ迷ったし、
以前の質問とあんまり関係なさそうなので、あんな書き出しに・・・

サイトはまだ、ちゃんと動いてないのでロボットが来ないおまじないを置いています。(きくのかどうか不明ですけど)
ほとんど勉強用になっちゃってますけど、そのうち公開する予定です。
なかなか、忙しくてすすみませんOTZ
09579472007/10/11(木) 08:32:10ID:???
ちょっと訂正

ロボットが来なくなるテキストですが
前にネットで調べて置いた記憶があったけど、今はありませんでした。

ただ単になにも情報がないから引っかからないだけと思われます。
0958nobodyさん2007/10/11(木) 11:18:39ID:???
>>947
> それとIEのデコスケはあいかわらず使えないということなのでしょうか?
いや、お前が相変わらず、使えないw
0959nobodyさん2007/10/11(木) 12:38:42ID:???
俺はIEは推奨しないとクライアントに毎回伝えてもらうように言ってる。
一応崩れないようにチェックはするけどな。
0960nobodyさん2007/10/11(木) 15:52:51ID:???
まぁたしかにFirefoxで作るのが一番楽ではある。
0961nobodyさん2007/10/11(木) 16:17:47ID:???
しかし、IE6のデコスケをいまだに多くの人が使っているから普通のクライアントだとIE6無視は無理じゃね?
0962nobodyさん2007/10/11(木) 16:23:12ID:???
>>950
> このスレで真面目にPHPの勉強してるだけだと思うけど。
> なんで同じ人が別の質問したら釣りという発想になるんだ…
理由は単純だよ。万引きしたら金を返しても刑事罰に処せられるのが普通だが、
社会保険庁の職員が横領しても金を返したら無罪放免っていうことだよ。
0963nobodyさん2007/10/11(木) 16:56:15ID:???
質問に答えているのは善意であって義務ではないからだろ、聞くならちゃんとルールを守れや!
と思っている人達がいても当然の事だ。
0964nobodyさん2007/10/11(木) 17:02:01ID:???
>>963
言いたいことはわかるけど、それを言うなら質問者の側も義務ではないわけだから、お互い様ってことじゃないかな。
0965nobodyさん2007/10/11(木) 17:06:14ID:???
>>964
お前は考える事を知らんのか?、それでも聞いてくるからトラブルになんだろw。
0966nobodyさん2007/10/11(木) 17:08:19ID:???
>>965
だからお互い義務じゃないことを、自分の独善的な考えを相手に押し付けるからトラブルになるんだよ。
お互いもう少し思いやりの心を持とうぜ。
0967nobodyさん2007/10/11(木) 17:11:57ID:???
質問スレで回答者のモチベーションを下げるのは誰も利益にならんだろう。
匿名掲示板だけに、昨日失礼なことを言った奴が野放しになってるかもしれん場所だと思えば
人間答える気も失せるってもんだ。
0968nobodyさん2007/10/11(木) 17:12:20ID:???
アフォな質問者はスルーすりゃ良いだけだ。
0969nobodyさん2007/10/11(木) 17:15:41ID:???
このレス、自己主張の強い人大杉w
0970nobodyさん2007/10/11(木) 17:16:35ID:???
自覚のない厚かましさを持った人達ってゆとり教育のたまものでしょうかねぇ
0971nobodyさん2007/10/11(木) 17:19:24ID:???
その回答者は絶対的な存在だとか、回答者の言うことに異論を唱えるな、とか、
そういう思い上がった考えが、時津風事件を招くんだよな。
0972nobodyさん2007/10/11(木) 17:30:55ID:???
話の途中に割り込んで悪いが、そろそろ新スレの準備したほうがいいかな?
それともギリギリまで待つ?
0973nobodyさん2007/10/11(木) 17:35:25ID:???
釣りなのか真性のゆとりか知らんが、礼儀とか学びたければ他所でやってくれるかな。
回答者は質問者がどうなろうと何も困らない。押し付けとかどうでも良いから好きにすると良いよ。
回答する側も仕事でやってるんじゃねーし、その時の気分で答えてるだけだから。
0974nobodyさん2007/10/11(木) 17:36:19ID:???
>その回答者は絶対的な存在だとか、回答者の言うことに異論を唱えるな

こんな事を言った奴がいたのかwww
しらなかったわ
0975nobodyさん2007/10/11(木) 17:48:12ID:???
ここって本当に心に余裕ない奴多いよね
0976nobodyさん2007/10/11(木) 17:59:34ID:???
みんな色々大変なんだから思いやりの心を持とうぜ
0977nobodyさん2007/10/11(木) 18:01:21ID:???
>>975
本当にそうなのか釣りなのかその判断が難しい
釣られて見ると相手がマジになってきたり、こっちが引くと釣りでした宣言したり
そんなふうにして遊んで何が楽しいのか俺には理解できない世界だわ

最近では質問者自体実はベテランの釣りが多いからこうなってんだろうけど
いずれにせよ性格悪いわな
0978nobodyさん2007/10/11(木) 18:10:41ID:???
新スレ〜♪

http://pc11.2ch.net/test/read.cgi/php/1192092941/l50
0979nobodyさん2007/10/11(木) 18:15:15ID:???
質問に対して「礼儀がなっとらん!」と叫ぶやつって暇なのかな?
礼儀がなっていないと思えば無視すればいいだけなのにね。
わざわざ注意するやつ。で答えは言わない(言えない?)
0980nobodyさん2007/10/11(木) 18:21:41ID:???
>で答えは言わない(言えない?)

質問してやったのだから答えるのが当たり前だと言っているように聞こえるから止めとけ。
0981nobodyさん2007/10/11(木) 18:26:40ID:???
要するに948みたいなのがウザイってことだよね
0982nobodyさん2007/10/11(木) 18:28:45ID:???
>>980
そういうことじゃなくて、注意するだけで、
そのあと質問者がちゃんと書いても、
無視するやついるじゃん。

あれ、はたから見れば、偉そうだけど
何も出来ない人間にしか見えないでしょ?
0983nobodyさん2007/10/11(木) 18:52:49ID:???
いちいちレスして自己主張しないと、自我が保てないのは未完成の人間の証拠ですよ。
0984nobodyさん2007/10/11(木) 18:53:34ID:???
>>982
例えばこの辺とか?>>724-726
0985nobodyさん2007/10/11(木) 19:14:59ID:???
>>984
ちがうんじゃない?

あくまで>>1に則った上で質問してはじめてまともに答えてもらえる”かも”ってことでしょ
必ずしもどちらかが良くてどちらかが悪いってわけじゃなくてさ、少なくとも質問者は>>1に則った形でやるべきだと思うよ

本当にちゃんとした回答を得たいのならそうするべき
ただ質問者が100%満足する回答を望むのはお門違い

あと回答者も質問者をわざと煽ったり自分が100%正しいという姿勢で小馬鹿にする人いる
むかつくかもしれないけど、でもこういう人にも一応お礼を言うのが大人の対応
いちいちつっかかっててもそこに意味は見出せない
お互い気に喰わなければスルーすればいいだけだしね
0986nobodyさん2007/10/11(木) 19:22:23ID:???
> 一応お礼を言うのが大人の対応

俺、それ定型文としてIMEに登録している。
「@ばか」で変換するとお礼が表示されるよw
0987nobodyさん2007/10/11(木) 19:36:11ID:???
回答者もIDだすべきじゃね?
気に食わないやつは簡単にあぼ〜んできる。
0988nobodyさん2007/10/11(木) 19:45:32ID:???
たしかに。
質問者がIDを出すなら、
回答者もIDを出さなきゃ、
対等な話ができるとは思えんな。
0989nobodyさん2007/10/11(木) 19:46:41ID:???
むしろ、強制ID表示にしてほしいんだが・・・
0990nobodyさん2007/10/11(木) 19:50:46ID:???
たいていは回答者の態度が悪いんだよな・・・
決まってそれが荒れる原因。

なぜ小馬鹿にされてお礼を言わないといけないのか?
そんなに回答者は偉いのか?
0991nobodyさん2007/10/11(木) 19:51:23ID:???
ID出させるのは質問者を騙って煽るやつが出ると混乱するからそれの防止だろ?
1対多の1側だから困るんであって、多側はID出しても出さなくても何も変わらん。
どっちにしろ無視するしかないんだから。
0992nobodyさん2007/10/11(木) 19:54:47ID:???
>>990
お礼とか態度とかは無視すればいいじゃない
いいたい事が良く分からない、お互い気に食わないレスがあるのは特に2chなら当たり前
良い事だと思わないけど、困ったちゃんとか色々いるわけよ気にすんな。
0993nobodyさん2007/10/11(木) 19:59:16ID:???
ID出させるのは回答者を騙って煽るやつがいるからだよ。
0994nobodyさん2007/10/11(木) 20:00:15ID:???
IDが出てれば、嫌な回答者は、簡単にあぼーんできるじゃん。
0995nobodyさん2007/10/11(木) 20:38:57ID:???
質問しなければ不愉快になる事もないのだからそれで良し。
回答者は全く困らん。
0996nobodyさん2007/10/11(木) 20:46:56ID:???
>>994
あると困る問題とあれば便利な話とを一緒にすんな
0997nobodyさん2007/10/11(木) 20:49:39ID:???
>>993
ID出したところでそれは減らない。
どっちにしろ複数の回答者がいるんだ。騙っても騙らなくても一緒だし、
「わざわざ騙って」煽ってるやつは過去の例を見てもあまりいない。
単にID出さないからみんな一緒に見えてるってだけだろ。
0998nobodyさん2007/10/11(木) 20:57:50ID:???
細々ってそれぞれだと思うけど
自分の考えを押し付けるのはどうかと思うよ
と、いつも別スレにいる俺が言ってみる
0999nobodyさん2007/10/11(木) 21:05:38ID:???
生徒と教師が対等で学級崩壊が起きた、そして平均知識レベルが低下した
これを延々と繰り返してどんどん馬鹿になって行く日本人(笑)

どちらが偉いとか言う気はないけどそういう世代なんだろうね
1000nobodyさん2007/10/11(木) 21:07:09ID:???
1000なら明日にも俺様サービスが完成
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。