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

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

■ このスレッドは過去ログ倉庫に格納されています
00012009/10/11(日) 21:18:54ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、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等)・フレームワークは各該当スレへ
0436nobodyさん2009/10/22(木) 13:51:39ID:???
finfo でググったら php finfo の例が出てきたのでそれクリックして一番上がこれ
ttp://blog.fortelab.net/archives/23
0437nobodyさん2009/10/22(木) 13:55:06ID:???
>>435
本当に有効にしてるの?php.iniみなおしてみ
0438nobodyさん2009/10/22(木) 14:00:09ID:???
>>435
xamppliteにはdllがなかったからxamppから持ってきたら動いたよ
04394352009/10/22(木) 14:05:29ID:???
php.iniでphp_fileinfo.dllを読み込ませてなかったのが原因みたいでした
0440nobodyさん2009/10/22(木) 14:07:06ID:???
まぁそんなオチだろうとはおもった
0441nobodyさん2009/10/22(木) 14:09:13ID:???
finfo_bufferって関数なのになんでマニュアルでは$finfo->bufferみたいにしかできないんだろう
0442nobodyさん2009/10/22(木) 14:18:18ID:???
finfoクラスのbufferメソッドっていう意味でかいたんじゃね
クラス名も小文字で色々違和感があるクラスだな
0443nobodyさん2009/10/22(木) 14:18:20ID:BC6gKUnK
<?php
$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:???
無名関数のこと?5.3からだよね。
0448nobodyさん2009/10/22(木) 14:30:34ID:BC6gKUnK
urlこれです
http://www.php.net/manual/add-note.php?sect=ref.fileinfo&redirect=http://www.php.net/manual/ja/ref.fileinfo.php
0449nobodyさん2009/10/22(木) 14:32:23ID:???
>>446
英語もわからないのに投稿するのか?w
9-1はなんですか?ってきいてるだけやんw
0450nobodyさん2009/10/22(木) 14:36:07ID:BC6gKUnK
英語で答え書いて先進めたけどなんかこんな文章がでて投稿できなかったorz
Your 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:???
同じIP網使ってるやつがスパマーに踏み台にされてるか日本からのIPは弾いてるかってとこだろう
0452nobodyさん2009/10/22(木) 14:44:21ID:BC6gKUnK
せっかくfinfo_bufferでphp公式サイトデビューかと思ったのにスパムフィルターにやられたぜ
誰かに手柄上げますので投稿できる方は>>444を投稿してください
改変しようが自由です
0453nobodyさん2009/10/22(木) 15:33:39ID:???
User Contributed Notesに載せるほどのことか?
0454nobodyさん2009/10/22(木) 15:42:45ID:???
トンチンカンなことを書いて恥かかなくてよかったねw
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:???
ID:BC6gKUnKは関数と無名関数とクラスの違いから勉強しなおせ
0459nobodyさん2009/10/22(木) 16:04:25ID:???
>>458
なんで?
0460nobodyさん2009/10/22(木) 16:05:12ID:???
関数の話してるのに何で無名関数とクラスの違いがでるのか謎
0461nobodyさん2009/10/22(木) 16:17:47ID:???
>>460
なんで?
0462nobodyさん2009/10/22(木) 16:18:52ID:???
finfo_bufferと無名関数が激しく関係ない件
0463nobodyさん2009/10/22(木) 16:21:03ID:???
あさっての方向の書き込みしてるの一人だろw
0464nobodyさん2009/10/22(木) 17:03:57ID:2Qgc9o0R
s始めまして。ファイルサイズについて質問させてください。
phpで携帯サイトのフォームを作っていて、ファイルサイズが20kbです。実際表示されると8kbで、
携帯サイトのファイルサイズ上限を10kbと考えていますが、問題はないのでしょうか。

phpファイル(20kb)がサーバーで処理を行う→クライアントのブラウザに表示される(8kb)
なのでOK?
0465nobodyさん2009/10/22(木) 17:05:49ID:???
PHPのセキュリティーについて、他の言語と比べて致命的なものとは何でしょうか?

・php.iniで余計な情報が出力されることがデフォルトの設定になっている。
・コンパイルのプロセスがないため、実行時にエラーになる場合がある。
・実装によって、クラスのプライベート・パブリックの別がなくなる。
・Apacheの特定のバージョンと組み合わせた場合に、原因不明のダウンが起こる。
・型が曖昧で、非宣言でも使えるがための論理バグが生じる。

私の認識は、これくらいですが、これらは言語の責任というよりも、
その実装責任者の技量によるところが大であること考えています。
0466nobodyさん2009/10/22(木) 17:10:20ID:???
>>464
PHPファイルのサイズを見てどうするよ
出力するサイズを見ないと

>>465
・実装によって、クラスのプライベート・パブリックの別がなくなる
こんなことあるの?
0467nobodyさん2009/10/22(木) 18:37:25ID:???
フレームワーク使って人居ます?
0468nobodyさん2009/10/22(木) 18:39:52ID:???
>>466
意識するのは出力されるファイルサイズでよろしいのですね。
ご返答ありがとうございました。
0469nobodyさん2009/10/22(木) 19:15:06ID:???
>>465
一番は、セキュリティに対しての意識が低い、間違ってる本やサイトがいっぱい出てることによる弊害じゃないかな。
0470nobodyさん2009/10/22(木) 20:17:05ID:???
>>465
2番目と5番目はインタプリタの特徴だろ
0471nobodyさん2009/10/22(木) 20:21:04ID:???
>>465
4番は、どのバージョンとどのバージョン?
0472nobodyさん2009/10/22(木) 20:35:14ID:???
>>467

>>1
0473nobodyさん2009/10/22(木) 20:41:20ID:???
>>473

>1
0474nobodyさん2009/10/22(木) 20:44:23ID:???
PHP初心者に薦めたい本…PHPの絵本、ノンプログラマ、C++の初心者向け
って書きたくなるくらい、PHP初心者向けって信頼されてないよぁw
書籍作って販売するって、やる気さえあれば簡単に出来るものなの?
0475nobodyさん2009/10/22(木) 20:44:55ID:???
うん
0476nobodyさん2009/10/22(木) 20:46:57ID:???
>>474
だいたい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:???
一冊だけphpじゃない技術系の本を書いたことあるけど、
原稿料が安いし、使い捨てって感じ。
本を出したという実績が欲しい人にはいいけど、
金儲けのために本を作る人はいないと思う。このご時世。
0481nobodyさん2009/10/22(木) 22:03:03ID:???
dbに問い合わせする関数ってどうかいてる?

俺はこんな感じだけど
function select_xxxx(&$result, $condition)
{
$result = 結果;

return TRUE;
}
0482nobodyさん2009/10/22(木) 22:03:31ID:???
本が難しければ日経あたりの特集記事でもいいだろう。
日経風に、「間違いだらけのサニタイズ」「セッション管理に失敗しない10の方法」
「フレームワーク最前線」とかタイトル並べれば通る気がする。
0483nobodyさん2009/10/22(木) 22:04:43ID:???
なんで結果セットを参照にしてんの?
0484nobodyさん2009/10/22(木) 22:12:50ID:???
>>481
はっきり言ってお前はセンスがない。
コンビニのアルバイトがお似合い。
0485nobodyさん2009/10/22(木) 22:16:02ID:???
せめてクラス化しろよー
0486nobodyさん2009/10/22(木) 22:29:11ID:???
ちょっと良い格好したいならDBアクセス部分だけクラス化。
手抜きするなら普通に必要なところでクエリ作って投げる。ていうか関数化する意味あるのかそれ。
0487nobodyさん2009/10/22(木) 22:31:40ID:???
今時DBなんてpearを使うのが王道だろ
車輪の再開発だな
0488nobodyさん2009/10/22(木) 22:32:34ID:???
クラス化するか、PDOを素のまま使う。
クラス化するとログが取りやすくなって便利。デコレータ・パターンとかでロガーを簡単に仕込める。
0489nobodyさん2009/10/22(木) 22:36:33ID:???
DBMSをころころ換える可能性がないなら普通にPDO
0490nobodyさん2009/10/22(木) 22:45:55ID:???
DBアクセスのところは一つのクラスにまとめるけど、
SQLは、ビジネスクラスの中で書いているけど、普通?
SQL毎にクラス作っていたら、膨大なクラス数になるよね?
0491nobodyさん2009/10/22(木) 22:47:53ID:???
????
0492nobodyさん2009/10/22(木) 22:49:30ID:???
どんなクラスを作ったんだよw
0493nobodyさん2009/10/22(木) 22:50:38ID:???
>>490
その設計古すぎというか、駄目。
SQL文は外だしのファイルにして、一個所にまとめないと、
あっちこっちSQL文だらけになってメンテナンスに困るだろう?
0494nobodyさん2009/10/22(木) 22:52:44ID:???
>>490
SQLとビジネスロジックがごちゃごちゃして分かりにくい。
普通はSQLは、外部ファイル化して、それをデータベースのアクセスクラスが読み込むのが標準的な設計だと思うが。
0495nobodyさん2009/10/22(木) 22:53:40ID:???
sqlをクラスの中に書くのかよww
0496nobodyさん2009/10/22(木) 22:59:03ID:???
で、どうやるのがスタンダード?
SQL文一個につき1関数じゃダメなの?
0497nobodyさん2009/10/22(木) 23:00:38ID:???
とりえあずスレタイと>>1を読もうよ
0498nobodyさん2009/10/22(木) 23:04:06ID:???
>>497
正直すみません。

設計スレみたいなのないかな?
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:???
エスパーさん出番ですよ〜!
0503nobodyさん2009/10/22(木) 23:36:41ID:???
>>501
まず、 googleで ソフトバンク レスポンスが不正です  で検索しようよ。
0504nobodyさん2009/10/22(木) 23:37:22ID:???
>>501
WJ40164E でググレカス
0505nobodyさん2009/10/22(木) 23:39:11ID:???
>>502-504
しねks
0506nobodyさん2009/10/22(木) 23:46:57ID:???
>>505
検索した?答えあると思うけどな。
0507nobodyさん2009/10/22(木) 23:47:36ID:???
>>505
質問者じゃないだろ?
あと、諭すような口調をやめてくれ
0508nobodyさん2009/10/22(木) 23:48:20ID:???
fscanfがおかしいです!
0509nobodyさん2009/10/22(木) 23:49:42ID:???
>>508
君の頭の方がもっとおかしいです!!
0510nobodyさん2009/10/23(金) 00:02:06ID:X9i7QbIU
>>503
>>504
もちろんそれは検索済みです。。。
ほんの数件しか検索されなく、解決策もありませんでした。
0511nobodyさん2009/10/23(金) 00:21:33ID:tmLg3YdR
上でちょこっと言ってる、SQL文とロジックを分けるのサンプルってありませんか?
検索フォームのためのSQL文をきれいにソースと分けたいなぁと思っているのですけど
0512nobodyさん2009/10/23(金) 00:37:44ID:tmLg3YdR
>>510
hallow worldやphpinfoが表示出来ないというレベルで尚且つ、レンタルサーバの場合は
サーバ側で少し設定が変更されたかと思う。
firefoxやIEでHTTPヘッダーの情報が見れるアドオンとかあるし、
その情報を見れば少しは怪しいところが見えてくるかもしれない
0513nobodyさん2009/10/23(金) 00:56:06ID:???
>511
1. SQLだけ記述したファイルを用意する
2. そのファイルをfile_get_contentsで読み込み、文字列変数にセットする
3. SQL文字列をライブラリに渡してやり、実行する。

さらに一歩進めるなら、
実行して得られた結果セットを配列に入れて返してやる
0514nobodyさん2009/10/23(金) 00:57:43ID:???
>>513
パラメタ付の場合は? 
0515nobodyさん2009/10/23(金) 01:15:01ID:???
  ァ  ∧_∧ ァ,、
 ,、'` ( ´∀`) ,、'`
  '`  ( ⊃ ⊂)  '`
0516nobodyさん2009/10/23(金) 01:23:42ID:???
>>513
> 2. そのファイルをfile_get_contentsで読み込み、文字列変数にセットする
そうじゃないだろ。どういう設計思想なんだよ。パフォーマンス無視?
0517nobodyさん2009/10/23(金) 01:25:07ID:???
パフォーマンスや保守性はアクセス数が増えたときに考えればいいんじゃないのか?
0518nobodyさん2009/10/23(金) 01:31:29ID:???
>>517
ある程度先の運用面を考えて実装するが良き設計者。
それにその設計方法じゃ、すぐに天井が来る。
0519nobodyさん2009/10/23(金) 01:32:35ID:???
>>498

最近では関数はあんまり使わないと思うよー。

一番単純なのは
class DB{
function geAAA(){

}
function geBBB(){
}
}

みたいな感じじゃないかなぁ。

SQL外だしっていうのも、実はあんまりメリットないと思う。
0520nobodyさん2009/10/23(金) 01:34:58ID:???
SQLを動かすクラスと、それを運用するクラスと分けるべきだな
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:???
>>520
結局よく分からないけど、
(1) SQL文はクラスに直書き?外だし?
(2) いずれにしても、SQL文が1000個あったら、1000クラス(ファイル)作るの?じゃないなら、グループ化の基準は?
(3) WHERE文の要素が可変の時は?

俺は、MVCでいうところのModelに全て直書き。だから、ソースのあちらこちらにSQL文が書かれている。
05235212009/10/23(金) 01:39:25ID:U1ZTI1ef
テンプレを忘れていました。

【OS名】CentOS 5.3
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
0524nobodyさん2009/10/23(金) 01:44:05ID:???
あー。。>>519のDBクラスはたとえが良くないなー。

BBSクラスにしよう。
BBSクラスはBBSに関する全ての情報・操作を引き受ける人。
他人はデータ取得・保存はできるだけ単純にできるようにってだけ。

だから、
取得する条件・対象ごとにメソッド分けるのとパラメタで指定するのと
一概にどっちがいいとはいえない。
0525nobodyさん2009/10/23(金) 01:44:26ID:???
>>521
koshin_johoも一緒に取得すればいいんじゃないの?
マッチしない場合は取得できないわけだし
0526nobodyさん2009/10/23(金) 01:46:19ID:???
>>521
えーっと、、リレーションって知ってる?
0527nobodyさん2009/10/23(金) 01:47:10ID:???
>>524
前半は、いいとして、

> 取得する条件・対象ごとにメソッド分けるのとパラメタで指定するのと
> 一概にどっちがいいとはいえない。
それは、クラスを使いながら、考え方が全然オブジェクト指向じゃない。
0528nobodyさん2009/10/23(金) 01:48:25ID:???
>>522
1.SQLの機能をラップしたクラス
2. 1のクラスを使って機能を実現するクラス

という感じで分けてる、SQLは2へ直書き。
おそらくそれ以上ラップしたり、粒度を増やしても使うことは無いからということで。
05295212009/10/23(金) 01:49:08ID:U1ZTI1ef
現在書いているPHPのコードはこのような感じです。

$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'];
}
}
0530nobodyさん2009/10/23(金) 01:52:48ID:???
>>529
SELECT * FROM tableA NATURAL JOIN tableB
0531nobodyさん2009/10/23(金) 01:53:32ID:U1ZTI1ef
>>525,526

ありがとうございます。
こういう事でしょうか?

$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:???
>>527

スレッド名一覧をとる
getAll()
ID指定してスレッドとる
getById()

なんて分けるのは割りとあると思うけどなー
返ってくるモノが違うってとき。
0533nobodyさん2009/10/23(金) 01:57:50ID:U1ZTI1ef
>>530
それだとkojin_johoが書かれているテーブルの内容しか表示されません。
0534nobodyさん2009/10/23(金) 02:04:16ID:???
>>533
そこまで分かってるなら普通に結合も分かれよw ネタかよw
0535nobodyさん2009/10/23(金) 02:09:54ID:???
>>533
外部結合でググろう

SELECT * FROM tableA LEFT JOIN tableB ON tableA.data_id = tableB.data_id;
■ このスレッドは過去ログ倉庫に格納されています