【PHP】下らねぇ質問はID出して書き込みやがれ 89
■ このスレッドは過去ログ倉庫に格納されています
0001●
2009/10/11(日) 21:18:54ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 88
http://pc11.2ch.net/test/read.cgi/php/1253061577/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0442nobodyさん
2009/10/22(木) 14:18:18ID:???クラス名も小文字で色々違和感があるクラスだな
0443nobodyさん
2009/10/22(木) 14:18:20ID:BC6gKUnK$finfo = new finfo(FILEINFO_MIME);
echo $finfo->buffer($_POST["script"]) . "\n";
?>
のようなクラス?での書き方コードではなく関数としてfinfo_buffer(パラメータ)形式でのサンプルってありませんか?
0444nobodyさん
2009/10/22(木) 14:25:32ID:???fileinfo関数って関数だけどクラスとしても使えるってことなんですね
$file = file_get_contents("d:/test.php");
$fp =finfo_open();
$fb = finfo_buffer($fp,$file,FILEINFO_NONE);
print_r($fb);
0445nobodyさん
2009/10/22(木) 14:26:19ID:???関数でありクラスメソッドであるみたいな
PHP使いは随分変なことするな・・・
finfo入ってないし動作するかわからないけどマニュアル見るかぎりだと
$finfo = finfo_open(FILEINFO_MIME);
echo finfo_buffer($finfo, $_POST['script']) . "\n";
かな?
0446nobodyさん
2009/10/22(木) 14:28:43ID:BC6gKUnK↓のスパムフィルターの意味がわかりません
Answer to this simple question (SPAM challenge):
nine minus one?
0447nobodyさん
2009/10/22(木) 14:30:18ID:???0448nobodyさん
2009/10/22(木) 14:30:34ID:BC6gKUnKhttp://www.php.net/manual/add-note.php?sect=ref.fileinfo&redirect=http://www.php.net/manual/ja/ref.fileinfo.php
0450nobodyさん
2009/10/22(木) 14:36:07ID:BC6gKUnKYour IP is listed in one of the spammers lists we use, which aren't controlled by us. More information is available at http://www.dnsbl.info/lookup.asp?IP=***.**.**.**.
0451nobodyさん
2009/10/22(木) 14:40:23ID:???0452nobodyさん
2009/10/22(木) 14:44:21ID:BC6gKUnK誰かに手柄上げますので投稿できる方は>>444を投稿してください
改変しようが自由です
0453nobodyさん
2009/10/22(木) 15:33:39ID:???0454nobodyさん
2009/10/22(木) 15:42:45ID:???0455nobodyさん
2009/10/22(木) 15:45:07ID:???0456nobodyさん
2009/10/22(木) 15:51:02ID:???0457nobodyさん
2009/10/22(木) 15:54:54ID:???0458nobodyさん
2009/10/22(木) 16:00:52ID:???0460nobodyさん
2009/10/22(木) 16:05:12ID:???0462nobodyさん
2009/10/22(木) 16:18:52ID:???0463nobodyさん
2009/10/22(木) 16:21:03ID:???0464nobodyさん
2009/10/22(木) 17:03:57ID:2Qgc9o0Rphpで携帯サイトのフォームを作っていて、ファイルサイズが20kbです。実際表示されると8kbで、
携帯サイトのファイルサイズ上限を10kbと考えていますが、問題はないのでしょうか。
phpファイル(20kb)がサーバーで処理を行う→クライアントのブラウザに表示される(8kb)
なのでOK?
0465nobodyさん
2009/10/22(木) 17:05:49ID:???・php.iniで余計な情報が出力されることがデフォルトの設定になっている。
・コンパイルのプロセスがないため、実行時にエラーになる場合がある。
・実装によって、クラスのプライベート・パブリックの別がなくなる。
・Apacheの特定のバージョンと組み合わせた場合に、原因不明のダウンが起こる。
・型が曖昧で、非宣言でも使えるがための論理バグが生じる。
私の認識は、これくらいですが、これらは言語の責任というよりも、
その実装責任者の技量によるところが大であること考えています。
0466nobodyさん
2009/10/22(木) 17:10:20ID:???PHPファイルのサイズを見てどうするよ
出力するサイズを見ないと
>>465
・実装によって、クラスのプライベート・パブリックの別がなくなる
こんなことあるの?
0467nobodyさん
2009/10/22(木) 18:37:25ID:???0469nobodyさん
2009/10/22(木) 19:15:06ID:???一番は、セキュリティに対しての意識が低い、間違ってる本やサイトがいっぱい出てることによる弊害じゃないかな。
0474nobodyさん
2009/10/22(木) 20:44:23ID:???って書きたくなるくらい、PHP初心者向けって信頼されてないよぁw
書籍作って販売するって、やる気さえあれば簡単に出来るものなの?
0475nobodyさん
2009/10/22(木) 20:44:55ID:???0476nobodyさん
2009/10/22(木) 20:46:57ID:???だいたいWebでPHP初心者講座みたいの開いてにぎわってきて出版社の目にとまると
この内容に手を加えて本を出してみないか?みたいにアプローチが来る
0477nobodyさん
2009/10/22(木) 20:54:49ID:???初心者向けPHP本が出る → セッションを使ってない/使い方がおかしい、サニタイズが(ry
あたりのツッコミを入れられまくるのが一種のお約束だったぐらいに酷かった気がする。
そろそろ1冊ぐらい、無難なのがあるんだろう。いやきっとあるはず。
0478nobodyさん
2009/10/22(木) 21:18:09ID:???0479nobodyさん
2009/10/22(木) 21:23:41ID:???じゃあ、私のサイトにスカウトが来たらロリコンの為のPHP教本とか作れるのか
0480nobodyさん
2009/10/22(木) 21:37:53ID:???原稿料が安いし、使い捨てって感じ。
本を出したという実績が欲しい人にはいいけど、
金儲けのために本を作る人はいないと思う。このご時世。
0481nobodyさん
2009/10/22(木) 22:03:03ID:???俺はこんな感じだけど
function select_xxxx(&$result, $condition)
{
$result = 結果;
return TRUE;
}
0482nobodyさん
2009/10/22(木) 22:03:31ID:???日経風に、「間違いだらけのサニタイズ」「セッション管理に失敗しない10の方法」
「フレームワーク最前線」とかタイトル並べれば通る気がする。
0483nobodyさん
2009/10/22(木) 22:04:43ID:???0485nobodyさん
2009/10/22(木) 22:16:02ID:???0486nobodyさん
2009/10/22(木) 22:29:11ID:???手抜きするなら普通に必要なところでクエリ作って投げる。ていうか関数化する意味あるのかそれ。
0487nobodyさん
2009/10/22(木) 22:31:40ID:???車輪の再開発だな
0488nobodyさん
2009/10/22(木) 22:32:34ID:???クラス化するとログが取りやすくなって便利。デコレータ・パターンとかでロガーを簡単に仕込める。
0489nobodyさん
2009/10/22(木) 22:36:33ID:???0490nobodyさん
2009/10/22(木) 22:45:55ID:???SQLは、ビジネスクラスの中で書いているけど、普通?
SQL毎にクラス作っていたら、膨大なクラス数になるよね?
0491nobodyさん
2009/10/22(木) 22:47:53ID:???0492nobodyさん
2009/10/22(木) 22:49:30ID:???0493nobodyさん
2009/10/22(木) 22:50:38ID:???その設計古すぎというか、駄目。
SQL文は外だしのファイルにして、一個所にまとめないと、
あっちこっちSQL文だらけになってメンテナンスに困るだろう?
0494nobodyさん
2009/10/22(木) 22:52:44ID:???SQLとビジネスロジックがごちゃごちゃして分かりにくい。
普通はSQLは、外部ファイル化して、それをデータベースのアクセスクラスが読み込むのが標準的な設計だと思うが。
0495nobodyさん
2009/10/22(木) 22:53:40ID:???0496nobodyさん
2009/10/22(木) 22:59:03ID:???SQL文一個につき1関数じゃダメなの?
0499nobodyさん
2009/10/22(木) 23:04:41ID:???0500nobodyさん
2009/10/22(木) 23:05:10ID:???0501nobodyさん
2009/10/22(木) 23:21:24ID:tJpAUHQM(以前は表示できていたのですが)見れなくなってました。
情報量が多かったのでPHPファイル内をわずかなテキストだけにしました。
が、それすら表示できませんでした。パソコンでは問題なく見れます。
エラーは下記です。
エラーが発生しました。レスポンスが不正です。WJ40164E
どうすればよいのでしょう?
0502nobodyさん
2009/10/22(木) 23:27:58ID:???0508nobodyさん
2009/10/22(木) 23:48:20ID:???0510nobodyさん
2009/10/23(金) 00:02:06ID:X9i7QbIU>>504
もちろんそれは検索済みです。。。
ほんの数件しか検索されなく、解決策もありませんでした。
0511nobodyさん
2009/10/23(金) 00:21:33ID:tmLg3YdR検索フォームのためのSQL文をきれいにソースと分けたいなぁと思っているのですけど
0512nobodyさん
2009/10/23(金) 00:37:44ID:tmLg3YdRhallow worldやphpinfoが表示出来ないというレベルで尚且つ、レンタルサーバの場合は
サーバ側で少し設定が変更されたかと思う。
firefoxやIEでHTTPヘッダーの情報が見れるアドオンとかあるし、
その情報を見れば少しは怪しいところが見えてくるかもしれない
0513nobodyさん
2009/10/23(金) 00:56:06ID:???1. SQLだけ記述したファイルを用意する
2. そのファイルをfile_get_contentsで読み込み、文字列変数にセットする
3. SQL文字列をライブラリに渡してやり、実行する。
さらに一歩進めるなら、
実行して得られた結果セットを配列に入れて返してやる
0515nobodyさん
2009/10/23(金) 01:15:01ID:???,、'` ( ´∀`) ,、'`
'` ( ⊃ ⊂) '`
0516nobodyさん
2009/10/23(金) 01:23:42ID:???> 2. そのファイルをfile_get_contentsで読み込み、文字列変数にセットする
そうじゃないだろ。どういう設計思想なんだよ。パフォーマンス無視?
0517nobodyさん
2009/10/23(金) 01:25:07ID:???0519nobodyさん
2009/10/23(金) 01:32:35ID:???最近では関数はあんまり使わないと思うよー。
一番単純なのは
class DB{
function geAAA(){
}
function geBBB(){
}
}
みたいな感じじゃないかなぁ。
SQL外だしっていうのも、実はあんまりメリットないと思う。
0520nobodyさん
2009/10/23(金) 01:34:58ID:???0521nobodyさん
2009/10/23(金) 01:38:30ID:U1ZTI1ef現在、PHPとMySQLを組み合わせたウェブサイトを作っています。
MySQLのデータベースには2つのテーブル(テーブルA、テーブルB)があり、PHPからこの2つのテーブルを参照し、以下の様に表示させたいと考えています。
data_id (参照A)
info (参照A)
date(参照A)
sonota(参照A)
koshin_joho(参照B) // テーブルBもdata_idを持っていて、テーブルAのdata_idとマッチする時のみ、ウェブにkoshin_johoを表示
現在、phpファイルからテーブルAの方はループを使ってそれぞれのカラムを参照し、表示する事ができているのですが、
テーブルAのためにループを使っているためか、テーブルBを参照する事ができません。
どのようにすればループを使ってMySQLに登録されているデータを一度にウェブ表示させている状態で、
テーブルAとテーブルBをループ内で同時に表示する事ができるのでしょうか?
長文失礼致しました。
0522nobodyさん
2009/10/23(金) 01:38:50ID:???結局よく分からないけど、
(1) SQL文はクラスに直書き?外だし?
(2) いずれにしても、SQL文が1000個あったら、1000クラス(ファイル)作るの?じゃないなら、グループ化の基準は?
(3) WHERE文の要素が可変の時は?
俺は、MVCでいうところのModelに全て直書き。だから、ソースのあちらこちらにSQL文が書かれている。
0523521
2009/10/23(金) 01:39:25ID:U1ZTI1ef【OS名】CentOS 5.3
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
0524nobodyさん
2009/10/23(金) 01:44:05ID:???BBSクラスにしよう。
BBSクラスはBBSに関する全ての情報・操作を引き受ける人。
他人はデータ取得・保存はできるだけ単純にできるようにってだけ。
だから、
取得する条件・対象ごとにメソッド分けるのとパラメタで指定するのと
一概にどっちがいいとはいえない。
0527nobodyさん
2009/10/23(金) 01:47:10ID:???前半は、いいとして、
> 取得する条件・対象ごとにメソッド分けるのとパラメタで指定するのと
> 一概にどっちがいいとはいえない。
それは、クラスを使いながら、考え方が全然オブジェクト指向じゃない。
0528nobodyさん
2009/10/23(金) 01:48:25ID:???1.SQLの機能をラップしたクラス
2. 1のクラスを使って機能を実現するクラス
という感じで分けてる、SQLは2へ直書き。
おそらくそれ以上ラップしたり、粒度を増やしても使うことは無いからということで。
0529521
2009/10/23(金) 01:49:08ID:U1ZTI1ef$sql1 = "SELECT x FROM tableA";
$sql2 = "SELECT x FROM tableB";
$tablea = mysql_query($sql1);
$tableb = mysql_query($sql2);
while($row = mysql_fetch_array($tablea)){
echo $row['data_id'] ;
echo $row['info'] ;
echo $row['date'] ;
echo $row['sonota'] ;
}
while ($row2 = mysql_fetch_array($tableb)){
if ($row2['data_id'] eq $row['data_id']){
echo $row2['koshin_joho'];
}
}
0531nobodyさん
2009/10/23(金) 01:53:32ID:U1ZTI1efありがとうございます。
こういう事でしょうか?
$sql = "SELECT x FROM tableA, tableB where tableA.data_id = tableB.data_id";
$table = mysql_query($sql);
while($row = mysql_fetch_array($table)){
echo $row['data_id'] ;
echo $row['info'] ;
echo $row['date'] ;
echo $row['sonota'] ;
echo $row['koshin_joho'];
}
0532nobodyさん
2009/10/23(金) 01:56:08ID:???スレッド名一覧をとる
getAll()
ID指定してスレッドとる
getById()
なんて分けるのは割りとあると思うけどなー
返ってくるモノが違うってとき。
0533nobodyさん
2009/10/23(金) 01:57:50ID:U1ZTI1efそれだとkojin_johoが書かれているテーブルの内容しか表示されません。
0535nobodyさん
2009/10/23(金) 02:09:54ID:???外部結合でググろう
SELECT * FROM tableA LEFT JOIN tableB ON tableA.data_id = tableB.data_id;
0536nobodyさん
2009/10/23(金) 02:12:01ID:???0538nobodyさん
2009/10/23(金) 05:47:37ID:QLP+l4hNこのサイト使ってphpを始めたのですが、POSTとGETを同時に使う重要性が分からないです。
Formタグの action の項目にGETをあらかじめ入力しているだけなので、ブラウザでのユーザの操作で変化しないです。
確かに同時に使っていますが、メリットが分からないです。むしろ、ユーザに書き換えられる危険性の方が高い気がします。
またhidden についても同様で、わざわざ入門のページにある割に、使い道が分からないです。
POSTとGETを同時に使う意味はありますか?
0539nobodyさん
2009/10/23(金) 06:08:57ID:???ケースバイケースで両方使う場合もあると書いているんだろう
俺もいろいろ書いてきたがGETとPOSTを併用したのは1度だけある
どういうケースで使ったのかはちょっと思い出せないが併用したことは覚えている
必要になれば使えばいいだけの話だからそんな深く考えなくていいよ
一生使わないかもしれないし頻繁に使うかもしれないし
結局その人が何作ってるか・どういう風に組んでいるかによる
hiddenはたとえば何かのアカウントを取得するときを想定するとわかりやすい
アカウント取得には
登録のために個人情報を入力する(Input)→
登録確認(個人情報確認)画面に進み登録するか確認する(Confirm)→
登録完了
というプロセスをとる場合が多いわけだが
Input画面で入力した情報をConfirm画面で出力するためには
Confirm画面にどうにかしてInput画面で入力したものを受け渡さないといけない
そういうときに使うのがhidden
ようするに前のページの情報をページ遷移(移動)後でも使うために使う(情報を持ちまわすのに使う)
0540nobodyさん
2009/10/23(金) 07:28:00ID:???例えばコマンドプロンプトからバッチファイルはexeみたいに
実行できないでしょうか?
0541nobodyさん
2009/10/23(金) 07:35:54ID:???なるほど 隠す用途じゃなくて見えなくさせているだけってことか。
入力された変数をhiddenのところにprinfするなら、確かに次も値を使えそうです。
2chにブラウザで書き込んだ時に出る「書きこみ&クッキー確認」の画面でもhiddenを見つけられました。
ありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています