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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/02/01(日) 18:10:57ID:PdwQzQch
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

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

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

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

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

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
0262nobodyさん2009/02/05(木) 21:15:47ID:r201bcdx
>>261
試しにさっき、
rmdir G:\www\a\ /s /q
やってみたら、これも消えてくれました。
でも、なぜあphpで書くと処理してくれませんね。
0263nobodyさん2009/02/05(木) 21:25:19ID:???
権限とかopen_basedirとか?
結果を取得するなりログを見るなりすればなんかでるでしょ
0264nobodyさん2009/02/05(木) 21:55:05ID:r201bcdx
いろいろやっていくいうちに、原因がわかりました。
ものすごくくだらないですが・・
まず、CをGと変更しているのに、削除しようとしているのは
Cの方だったことがわかりました。
そこでもう一度視野を広げてみてみると、
原因はphpの編集ツールにありました。
CからGへapacheのルート?wwwディレクトリをコピーで移動させてからも、
そのツールの編集画面を開いたまま編集していました。
つまり、Gの方のphpを編集している気でいたら、Cの方のphpを編集しており
Gの方のC:\\www\\aがそのままになっていただけでした。
ありがとうございました。
0265nobodyさん2009/02/05(木) 21:56:40ID:r201bcdx
訂正
すみません。原因はツールより、私の方にありました。
0266nobodyさん2009/02/05(木) 22:48:44ID:Gj5tVrB7
超くだ質ですが、お願いします。

[1.htmlの内容]
<form name="form" action="./1.php" method="GET">
<input name="name" type="text">
<input name="name2" type="text">
<input type="submit" value="送信"></form>

[1.phpの内容]
<?php
$name1 = $_REQUEST["name"];
?>
値は<?php print $name1;?>

1.htmlのnameに山田、name2に太郎と入れてsubmitした時に1.phpのprintに
値は山田太郎 と出力させるようには出来ないのでしょうか?
0267nobodyさん2009/02/05(木) 22:50:53ID:???
>>266
value
$_GET[]
0268nobodyさん2009/02/05(木) 22:56:49ID:???
$_REQUEST["name"] . ' ' . $_REQUEST["name2"]
0269nobodyさん2009/02/05(木) 23:04:00ID:Gj5tVrB7
>>267
>>286
ありがとう!こんな事で2時間以上ぐぐってたのか・・
0270nobodyさん2009/02/05(木) 23:08:37ID:ApJraLWL
永続接続を使った場合apacheの待機プロセスorスレッドの分だけデータベースにスレッドが立ったままになっちゃいますけど
そういうものなんですか
psコマンドで出すとズラーっと並んでいて気になります
0271nobodyさん2009/02/05(木) 23:13:16ID:???
>>270
そういうものです。
0272nobodyさん2009/02/05(木) 23:14:15ID:???
つまり気にしなくておk?
0273nobodyさん2009/02/05(木) 23:16:02ID:???
OKかどうかは、運用と鯖のパワーバランス
0274nobodyさん2009/02/05(木) 23:19:21ID:???
わかりました
ありがとう
0275nobodyさん2009/02/06(金) 01:07:33ID:Zd9hNyvT
20090206
を書式化して
2009年02月06日

としたいのですが、やはり一度分割して配列に入れる方法しかないのでしょうか?
0276nobodyさん2009/02/06(金) 01:09:40ID:???
echo date( "Y年m月d日", strtotime( "20090206" ) );
0277nobodyさん2009/02/06(金) 01:16:12ID:???
>>275
strtotime
0278nobodyさん2009/02/06(金) 01:37:39ID:3pSilmD2
一般的になコーディング方法について教えてください。
私は以下のようにしてコーディングしているのですが、
このスタイルは間違っていますか?

<?php
class Test{
 // 送信ボタン名
 private $_submitButtonName = "test_submit";

 // フォームを出力する
 public function print_form(){
  print "<form action=\"{$_SERVER["PHP_SELF"]}\" method=\"POST\">\n";
  print "<input type=\"text\" name=\"textarea0\">\n";
  print "<input name=\"{$this->get_submitButtonName()}\" type=\"submit\" value=\"送信\">\n";
  print "</form>";
 }
 // 送信ボタン名を返す
 public function get_submitButtonName(){
  return $this->_submitButtonName;
 }
 // 送信されたかチェックする
 public function determineSubmit(){
  if( isset($_POST[$this->get_submitButtonName()]) ){ return true; }
  else{ false; }
 }
} // END class Test
02792782009/02/06(金) 01:38:02ID:3pSilmD2
$obj = new Test;

$obj->print_form();

if($_SERVER["REQUEST_METHOD"]=="POST"){
 if($this->determineSubmit()){
  〜
 }
}
?>
0280nobodyさん2009/02/06(金) 01:44:36ID:???
コーディングスタイルに正解も間違いもないよ
0281nobodyさん2009/02/06(金) 01:58:55ID:???
>>278
普通はHTMLタグはページ用のファイルに書くんじゃないかな
submitボタンのname属性も可変にする必要ないと思うけどするなら、

<form action="test.php" method="POST">
<input type="text" name="textarea0">
<input name="<?=MyConst::SUBMIT_BUTTON_NAME?>" type="submit" value="送信">
</form>
0282nobodyさん2009/02/06(金) 02:00:52ID:???
set_submitButtonNameしたいときもあるかもしんねぇだろwww
0283nobodyさん2009/02/06(金) 02:17:24ID:???
>278
クラス名が具体性を欠く。$obj = new Test;
の1行からは、何をしたいのかという意図が全く伝わってこない。
そもそもそのクラスは、「何を」表したクラスなんだ?アプリケーションか?ユーザーからのリクエストか?今から生成するフォームか?

クラス内の処理が実質的に全てstatic。こんなクラスはインスタンス化する意味が無い。
ボタン名をconstにして全てstaticメソッドにする、あるいはクラス自体を取っ払って単なるグローバル関数にする。

ボタン名を定数ではなく変数にする意味は?
変数を使うというのは「この値はスクリプトの実行中に変化する可能性がある」という意思の表明でもある。だから「変わる数」なんだよ。
動的に変わるならばそのままでもいいが、もし仮に実行中に変わらないならば定数にすべきだ。

determineSubmitという関数名。回りくどい上に、意味がおかしい。サブミットされたかは、このメソッドが決めるわけじゃない。
百歩譲ってもcheckSubmitted()。
俺ならisSubmitted()もしくはsubmitted()。boolを返す事が自明になるし、どっちの場合にtrueが返るのかも分かりやすい。
それとアプリケーション構造として、処理に必要になる値の存在だけをチェックすべきだ。
textarea0に文字が入ってさえいれば、サブミットボタンが押されてようが爆発してようが別にどうでもいいだろ?

サブミットされたかは関数なのに、POSTかどうかの判定は変数を直接見ている。記述のレベルが揃っていない。
「好きな食べ物は辛いものと糖質を75%以上含むものです」なんて言わないだろ?同じレベルの記述では抽象度を揃えろ。
「辛いものと」なら「甘いもの」だし、「糖質を75%含む」ならば「カプサイシンを10mg含む」だ。その時興味のあるレベルに揃えるんだ。
つまりif( isPosted() && isSubmitted() ) か、if( $_SERVER["REQUEST_METHOD"]=="POST" && isset($_POST[[$key]) 。
02842832009/02/06(金) 02:34:31ID:???
クラスは、クラスが必要なところでだけ使えばいいんだよ。
クラスを使う事が偉いのではない。クラスを使うことで分かりやすい/保守しやすいコードを書く事が偉いんだ。
「なんでクラス使ってるの?」と聞かれて、答えられるか?説得する必要はないが、自分なりの回答が存在するか?

ttp://d.hatena.ne.jp/masayang/20081211/1229033163
その程度の処理にクラスを持ち出すのは、このコードと同じ事をしている。
クラスや関数などの中間層は、増やせば増やすほど何をやっているか分かりにくくなる。
 $this->determineSubmit()
より
 isset($_POST['test_submit'])
の方が分かりやすい。具体的に何をやってるか、メソッドの定義部を読みに行く手間も省ける。
ま、練習中なら、過剰なまでに抽象化するのもひとつの経験だけどな。
0285nobodyさん2009/02/06(金) 02:38:16ID:y9gQg+aR
PDO の質問です。

$id = 1;
$sth = $pdo->prepare('select * from hoge where id = ?');
$sth->execute($id);

で、実行したバインド済みのSQL(select * from hoge where id = '1')
を取得したいんですが、方法はありますでしょうか。
0286nobodyさん2009/02/06(金) 02:49:11ID:???
>>284
そりゃそうだ
時給制や残業制とは無能であればあるほど金がもらえる仕組みなんだよ
0287nobodyさん2009/02/06(金) 02:50:43ID:???
>>285
なんでマニュアルみーへんの?
0288nobodyさん2009/02/06(金) 03:12:57ID:???
これくらいなら僕でもできるもん!
>>285
間違ってるかも・・・
詳しくは先輩から聞いてください><

$id = $_GET["id"];
$sth = $pdo->prepare('select * from hoge where id = ?');
$sth->blindParam(1,$_GET["id"])
$sth->execute();
0289nobodyさん2009/02/06(金) 03:27:05ID:???
>>288
まず日本語学んだら?
>で、実行したバインド済みのSQL(select * from hoge where id = '1')
>を取得したいんですが、方法はありますでしょうか。
02902882009/02/06(金) 03:53:28ID:???
すまんね。書き直します。

PDO の質問です。

$id = 1;
$sth = $pdo->prepare('select * from hoge where id = ?');
$sth->execute($id);

以上のコードの後に、パラメーターがバインドされた形の
実際に実行されたSQL文を取得したいのですが、方法は
ありますでしょうか。
* 上記の例では "select * from hoge where id = '1' " を得たい。
.  簡単にいうと getLastQuery() 的なもの。

>>287, 288, 289
日本語スマソ

お分かりの方お願いします。
0291nobodyさん2009/02/06(金) 03:57:16ID:???
はい?285=288なの?
0292285 != 2882009/02/06(金) 04:01:32ID:y9gQg+aR
まちがえt
0293nobodyさん2009/02/06(金) 04:04:39ID:???
>>292
>>287
0294nobodyさん2009/02/06(金) 04:13:51ID:???
>>289
>>287
>>293
早く教えろよ
わからねーのか
02952912009/02/06(金) 04:16:12ID:???
わからねーよ
0296285 ◆Oto8cICx9k 2009/02/06(金) 04:23:43ID:y9gQg+aR
めんどくさいから鳥つけた

>>293
結構読んだはずなんだけど分からんかった。
user noteまでは読み切ってないので、どのへん〜だけでも
ヒントくれたら助かります。

0297nobodyさん2009/02/06(金) 04:29:33ID:???
結構ではなく全部読め
0298nobodyさん2009/02/06(金) 04:31:05ID:???
自作自演ですか?
02992982009/02/06(金) 04:33:07ID:???
そうです俺馬鹿なもんで
0300nobodyさん2009/02/06(金) 04:37:15ID:???
>>299
馬鹿なんだ^−^−^−^−^−^
0301nobodyさん2009/02/06(金) 04:38:48ID:???
きもい〜★
0302nobodyさん2009/02/06(金) 04:49:25ID:???
なんかエッチな気分
0303nobodyさん2009/02/06(金) 05:35:37ID:???
表現が稚拙だな
0304nobodyさん2009/02/06(金) 06:29:21ID:IlUhJl+1
スレ違いかな…
phpと.htaccessの質問なのですが…
.htaccess中のRewriteEngineを使用して拡張子の書き換えを行い、
htmlへアクセスした際、phpへリライトするということをしたいです。
[例]
http://www.***.com/cgi/sample.html
 ↓
http://www.***.com/cgi/sample.php
で、
RewriteRule ^(.*)sample.html(\?.*)?$ $1sample.php$2
と、設定するとうまく動作してくれるのですが、
RewriteRule ^(.*)/cgi/sample.html(\?.*)?$ $1/cgi/sample.php$2
と、設定すると404(not found)となってしまいます。恐らく、リライトのルールに合致しない為
書き換えが行われていないのだと思います。
なんで…なんでなのぉ〜(号泣)



0305nobodyさん2009/02/06(金) 07:06:20ID:???
phpは全く関係ないな。こじつけにもほどがある。
このスレ、そんなに頼りになると思ってんの??ありえん。
# mod_rewriteスレがあるよ
0306nobodyさん2009/02/06(金) 10:01:08ID:???
>>404
スレチ

AddTypeでググれ
0307nobodyさん2009/02/06(金) 10:05:50ID:???
>>304
こんな感じじゃない?
RewriteRule ^([^\/].*)/cgi/sample.html(\?.*)?$ $1/cgi/sample.php$2
03082782009/02/06(金) 11:46:08ID:3pSilmD2
返信遅くなりました。
私としては、”意味のまとまり”をクラスとする、
というつもりです。
先のTestクラスは意味を表していないので例として間違っていました。
申し訳ありません。

例えば、先日私は「郵便物の配達履歴」のプログラムを組みました。
そこでは、
(1)郵便物を登録するクラス
 ・登録フォームを出力
 ・ユーザの入力が間違っていないか(番地は数字と-のみとか)チェック
 ・過去の履歴を検索してユーザの入力を助ける
 ・郵便番号からDB中の住所を検索する
 etc
(2)過去に登録した郵便物を検索するクラス
 ・フォームを出力する
 ・ユーザが入力した情報から過去の郵便物を検索する
 ・検索したものを編集/削除する
 etc
(3)ログイン時の認証をするクラス

を用意しました。
03092782009/02/06(金) 11:46:44ID:3pSilmD2
続・308

意味のまとまりをクラス化し、
そのクラスに関係する情報はそのクラスで全て管理する、
という気持ちでやっていたので、
>>278のような感じになりました。
(確かに、>>283さんのいうようにボタン名はconstにしたり、
if( isPosted() && isSubmitted() ) を用いるべきでした。)

私はJava、C++メインなためどうしてもクラスありき、
(といってもJavaもC++も大した力はありませんが・・・)
で考えてしまうのですが、
PHPは必ずしもそうではない、ということでしょうか? 
0310nobodyさん2009/02/06(金) 11:52:24ID:???
PHPはクラスありきではない。
PHPはスクリプト言語、スクリプトからクラスを使う。
しかし、実質的にクラスベースっ"ぽい"開発もできる。

あとは好みの問題。
0311nobodyさん2009/02/06(金) 11:52:37ID:???
Javaのスキルも程度が知れるな
0312nobodyさん2009/02/06(金) 13:29:37ID:???
クラスってなにかくんですか?
0313nobodyさん2009/02/06(金) 13:30:14ID:???
MVC
0314nobodyさん2009/02/06(金) 13:53:32ID:???
MDD
0315nobodyさん2009/02/06(金) 14:03:37ID:???
TDD
0316nobodyさん2009/02/06(金) 14:06:07ID:???
MVC意識してるのにうまく分離できない
VとCがくっついたりVとMがくっついたり・・・
0317nobodyさん2009/02/06(金) 14:06:11ID:???
やまだくんです
0318nobodyさん2009/02/06(金) 14:09:43ID:???
まだやくんです
0319nobodyさん2009/02/06(金) 14:37:49ID:???
>>308-309
基本的にどの言語だろうとクラスの本質は変わらないはず。
オブジェクト指向で書けるようになると戻りたくないというのも解る。
…が、その設計は果たしてどうだろう?
クラスはその名の通り型(intやstring、ひいては構造体等の)であって、
(そのような側面もあるが)名前空間が本領ではない。
クラスの本質は「データとメソッドを結びつける」ことによって、
自身の振る舞いを知っている型として纏まって独立し、
型・コードの再利用は勿論、カプセル化やポリモーフィズムなど様々な恩恵を生み出す…。

そこで話を戻すとその内容はクラス、というよりも
デザインパターンの話になってしまうのではないか。
まずはパータンの前に郵便物情報のクラスを作ってから、
それをActiveRecord/MVCのModelとかにして、
そいつに郵便物情報の処理を適切にスタティック/インスタンスメソッドなり追加して
その外側からViewやControllerで操作する…というのが私見。

# Javaや.NETのクラスライブラリの中から処理形態として類似したものを真似てみるのもいいかと。
0320nobodyさん2009/02/06(金) 14:45:05ID:???
>>319
そんなクラスの一般論なら、クラスでググればいいだけだろ。
うざいからほどほどにしてくれ。

「デザパタの前に実装してPHPのくせを先に学ぶのを先にした方がいい」
って私見ぐらいは語ってもいいけど、デザインパターンが通じない開発者の方が少数派だろ。
0321nobodyさん2009/02/06(金) 14:46:21ID:iuyfFTeY
いまのPHP三大フレームワークは以下のものと認識してもよろしいでしょうか?
cakePHP
シンフォニー
zendフレームワーク
0322nobodyさん2009/02/06(金) 14:47:30ID:???
=>フレームワークスレ いけ
0323nobodyさん2009/02/06(金) 14:48:16ID:???
>>320
おいトリップつけるかIDだせ
0324nobodyさん2009/02/06(金) 14:51:16ID:???
CI
yii Framework
0325nobodyさん2009/02/06(金) 14:51:50ID:???
>>323
なんで?
0326nobodyさん2009/02/06(金) 14:53:22ID:???
JavaはPHPより難しい

2日で諦めた

俺低脳だし
0327nobodyさん2009/02/06(金) 14:54:40ID:???
PHPを諦めたの?それとも人生?
0328nobodyさん2009/02/06(金) 14:58:32ID:???
>>327
人生とかお前馬鹿?
03293272009/02/06(金) 14:59:27ID:???
はい 馬鹿です^^
0330nobodyさん2009/02/06(金) 15:00:31ID:???
ここにいる人
きもっ〜>_<
0331nobodyさん2009/02/06(金) 15:01:30ID:???
何むしゃくしゃしてるの?悔しいの?
0332nobodyさん2009/02/06(金) 15:02:39ID:???
くだらんケンカはよそでやれ
0333nobodyさん2009/02/06(金) 15:15:36ID:???
[PHP]IDを出さずにくだらないケンカをするスレ[質問]
0334nobodyさん2009/02/06(金) 15:18:21ID:???
自演で長文投下してるやつ、キモイな
0335nobodyさん2009/02/06(金) 15:36:20ID:???
キモ
0336nobodyさん2009/02/06(金) 18:02:25ID:Iyeu5pU3
pearでこれは覚えろっていうパッケージを教えてください
0337nobodyさん2009/02/06(金) 18:17:50ID:???
ない
0338nobodyさん2009/02/06(金) 18:31:35ID:???
>質問スレで運悪く、ろくな答えもよこさないくせに態度のでかいヘボ回答者
>にあたってしまったが、他への心象を気にして強く出れなかったお方

ロクな回答者に絡まれると大変ね
0339nobodyさん2009/02/06(金) 21:36:43ID:???
ロクな回答者に絡まれたら良いじゃん
0340nobodyさん2009/02/06(金) 21:41:21ID:???
つうか、ここで質問してまともな回答を期待する方が、頭オカシイだろ
腐った回答でも、それ全部食っていいのをチョイスできる勇者だけが生き残る
0341nobodyさん2009/02/06(金) 21:44:01ID:???
助けてもらって当然、与えてもらって当然、他人に右往左往してもらって当然、って考えてる子が多い
0342nobodyさん2009/02/06(金) 21:59:23ID:???
そんなこと言っててもエサを投げればすぐ食いついてくるくせに( ´∀`)σ)Д`)
0343nobodyさん2009/02/06(金) 22:31:27ID:???
XREAスレが静かになったと思ったらこっちでファビョってたのかqqq
0344nobodyさん2009/02/06(金) 23:05:54ID:???
このての分野ってキモイ人間多いよな
0345nobodyさん2009/02/06(金) 23:06:38ID:???
お前が一番だから心配すんな
0346nobodyさん2009/02/06(金) 23:13:40ID:???
キモイ人間てすぐ反応するよね
典型的に態度に出るからフイタわ
0347nobodyさん2009/02/06(金) 23:14:08ID:???
お前が一番そうだから心配すんな
0348nobodyさん2009/02/06(金) 23:14:18ID:???
キモイ人間にとって、このスレは快適なのさ
0349nobodyさん2009/02/06(金) 23:14:20ID:???
キモヲタに「キモイ」って言うと
ものすごい反応するよね。
0350nobodyさん2009/02/06(金) 23:14:41ID:???
お前が一番そうだから心配すんな
0351nobodyさん2009/02/06(金) 23:15:06ID:???
344 :nobodyさん:2009/02/06(金) 23:05:54 ID:???
このての分野ってキモイ人間多いよな

345 :nobodyさん:2009/02/06(金) 23:06:38 ID:???
お前が一番だから心配すんな

346 :nobodyさん:2009/02/06(金) 23:13:40 ID:???
キモイ人間てすぐ反応するよね
典型的に態度に出るからフイタわ

347 :nobodyさん:2009/02/06(金) 23:14:08 ID:???
お前が一番そうだから心配すんな

348 :nobodyさん:2009/02/06(金) 23:14:18 ID:???
キモイ人間にとって、このスレは快適なのさ

349 :nobodyさん:2009/02/06(金) 23:14:20 ID:???
キモヲタに「キモイ」って言うと
ものすごい反応するよね。

350 :nobodyさん:2009/02/06(金) 23:14:41 ID:???
お前が一番そうだから心配すんな
0352nobodyさん2009/02/06(金) 23:16:00ID:???
344の必死さにワロタw
0353nobodyさん2009/02/06(金) 23:16:46ID:???
>>345
>>347
>>350
反応早すぎw
0354nobodyさん2009/02/06(金) 23:17:36ID:???
この流れをみれば必死なのは反応の早い彼だと思うがあえてスルーしとこう
0355nobodyさん2009/02/06(金) 23:17:41ID:???
いつもの基地外君はさっさと潰しとかんと迷惑だからなぁ
0356nobodyさん2009/02/06(金) 23:19:16ID:???
>>354
きめぇw
0357nobodyさん2009/02/06(金) 23:19:16ID:???
>>355
2ちゃんねるは自己紹介をする場所ではないのです。。。
0358nobodyさん2009/02/06(金) 23:20:43ID:???
>>358
キモイ
0359nobodyさん2009/02/06(金) 23:21:43ID:???
お前が一番そうだから心配すんな
0360nobodyさん2009/02/07(土) 01:04:26ID:???
PHP→Javaはベース→ギターに似てるな。逆は割と簡単
03612662009/02/07(土) 01:21:58ID:nwjNO9JF
先日はお世話になりました。性懲りもなく本日もかなりのくだ質ですが、ちょっと
行き詰まり気味なのでお願いします。

00.htmlの内容
<html><head>
<script language="JavaScript" type="text/javascript">
<!--
function send (url){
document.form_orz.action=url;
document.form_orz.submit();}
//--></script></head>
<body>
<form name="form_orz" action="./01.php" method="GET"><td>
<input type="text" name="xxx">
<input type="submit" value="送信x">
<input type="text" name="yyy">
<input type="button" value="送信y" onClick="send('./02.php')"></td>
</form></body></html>

01.phpの内容
<?php
$xxx=$_REQUEST["xxx"];
echo "値は$xxx です";
?>

02.phpの内容
<?php
$yyy=$_REQUEST["yyy"];
echo "値は$yyy です";
?>
■ このスレッドは過去ログ倉庫に格納されています