【PHP】下らねぇ質問はID出して書き込みやがれ 80
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/02/01(日) 18:10:57ID:PdwQzQch過去スレ、関連スレ、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試しにさっき、
rmdir G:\www\a\ /s /q
やってみたら、これも消えてくれました。
でも、なぜあphpで書くと処理してくれませんね。
0263nobodyさん
2009/02/05(木) 21:25:19ID:???結果を取得するなりログを見るなりすればなんかでるでしょ
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に
値は山田太郎 と出力させるようには出来ないのでしょうか?
0268nobodyさん
2009/02/05(木) 22:56:49ID:???0270nobodyさん
2009/02/05(木) 23:08:37ID:ApJraLWLそういうものなんですか
psコマンドで出すとズラーっと並んでいて気になります
0272nobodyさん
2009/02/05(木) 23:14:15ID:???0273nobodyさん
2009/02/05(木) 23:16:02ID:???0274nobodyさん
2009/02/05(木) 23:19:21ID:???ありがとう
0275nobodyさん
2009/02/06(金) 01:07:33ID:Zd9hNyvTを書式化して
2009年02月06日
としたいのですが、やはり一度分割して配列に入れる方法しかないのでしょうか?
0276nobodyさん
2009/02/06(金) 01:09:40ID:???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
0279278
2009/02/06(金) 01:38:02ID:3pSilmD2$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:???普通は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:???0283nobodyさん
2009/02/06(金) 02:17:24ID:???クラス名が具体性を欠く。$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]) 。
0284283
2009/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$id = 1;
$sth = $pdo->prepare('select * from hoge where id = ?');
$sth->execute($id);
で、実行したバインド済みのSQL(select * from hoge where id = '1')
を取得したいんですが、方法はありますでしょうか。
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:???まず日本語学んだら?
>で、実行したバインド済みのSQL(select * from hoge where id = '1')
>を取得したいんですが、方法はありますでしょうか。
0290288
2009/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:???0292285 != 288
2009/02/06(金) 04:01:32ID:y9gQg+aR0295291
2009/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:???0299298
2009/02/06(金) 04:33:07ID:???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+1phpと.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:???このスレ、そんなに頼りになると思ってんの??ありえん。
# mod_rewriteスレがあるよ
0307nobodyさん
2009/02/06(金) 10:05:50ID:???こんな感じじゃない?
RewriteRule ^([^\/].*)/cgi/sample.html(\?.*)?$ $1/cgi/sample.php$2
0308278
2009/02/06(金) 11:46:08ID:3pSilmD2私としては、”意味のまとまり”をクラスとする、
というつもりです。
先のTestクラスは意味を表していないので例として間違っていました。
申し訳ありません。
例えば、先日私は「郵便物の配達履歴」のプログラムを組みました。
そこでは、
(1)郵便物を登録するクラス
・登録フォームを出力
・ユーザの入力が間違っていないか(番地は数字と-のみとか)チェック
・過去の履歴を検索してユーザの入力を助ける
・郵便番号からDB中の住所を検索する
etc
(2)過去に登録した郵便物を検索するクラス
・フォームを出力する
・ユーザが入力した情報から過去の郵便物を検索する
・検索したものを編集/削除する
etc
(3)ログイン時の認証をするクラス
を用意しました。
0309278
2009/02/06(金) 11:46:44ID:3pSilmD2意味のまとまりをクラス化し、
そのクラスに関係する情報はそのクラスで全て管理する、
という気持ちでやっていたので、
>>278のような感じになりました。
(確かに、>>283さんのいうようにボタン名はconstにしたり、
if( isPosted() && isSubmitted() ) を用いるべきでした。)
私はJava、C++メインなためどうしてもクラスありき、
(といってもJavaもC++も大した力はありませんが・・・)
で考えてしまうのですが、
PHPは必ずしもそうではない、ということでしょうか?
0310nobodyさん
2009/02/06(金) 11:52:24ID:???PHPはスクリプト言語、スクリプトからクラスを使う。
しかし、実質的にクラスベースっ"ぽい"開発もできる。
あとは好みの問題。
0311nobodyさん
2009/02/06(金) 11:52:37ID:???0312nobodyさん
2009/02/06(金) 13:29:37ID:???0313nobodyさん
2009/02/06(金) 13:30:14ID:???0314nobodyさん
2009/02/06(金) 13:53:32ID:???0315nobodyさん
2009/02/06(金) 14:03:37ID:???0316nobodyさん
2009/02/06(金) 14:06:07ID:???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:???基本的にどの言語だろうとクラスの本質は変わらないはず。
オブジェクト指向で書けるようになると戻りたくないというのも解る。
…が、その設計は果たしてどうだろう?
クラスはその名の通り型(intやstring、ひいては構造体等の)であって、
(そのような側面もあるが)名前空間が本領ではない。
クラスの本質は「データとメソッドを結びつける」ことによって、
自身の振る舞いを知っている型として纏まって独立し、
型・コードの再利用は勿論、カプセル化やポリモーフィズムなど様々な恩恵を生み出す…。
そこで話を戻すとその内容はクラス、というよりも
デザインパターンの話になってしまうのではないか。
まずはパータンの前に郵便物情報のクラスを作ってから、
それをActiveRecord/MVCのModelとかにして、
そいつに郵便物情報の処理を適切にスタティック/インスタンスメソッドなり追加して
その外側からViewやControllerで操作する…というのが私見。
# Javaや.NETのクラスライブラリの中から処理形態として類似したものを真似てみるのもいいかと。
0320nobodyさん
2009/02/06(金) 14:45:05ID:???そんなクラスの一般論なら、クラスでググればいいだけだろ。
うざいからほどほどにしてくれ。
「デザパタの前に実装してPHPのくせを先に学ぶのを先にした方がいい」
って私見ぐらいは語ってもいいけど、デザインパターンが通じない開発者の方が少数派だろ。
0321nobodyさん
2009/02/06(金) 14:46:21ID:iuyfFTeYcakePHP
シンフォニー
zendフレームワーク
0322nobodyさん
2009/02/06(金) 14:47:30ID:???0324nobodyさん
2009/02/06(金) 14:51:16ID:???yii Framework
0326nobodyさん
2009/02/06(金) 14:53:22ID:???2日で諦めた
俺低脳だし
0327nobodyさん
2009/02/06(金) 14:54:40ID:???0329327
2009/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:???0334nobodyさん
2009/02/06(金) 15:18:21ID:???0335nobodyさん
2009/02/06(金) 15:36:20ID:???0336nobodyさん
2009/02/06(金) 18:02:25ID:Iyeu5pU30337nobodyさん
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:???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:???このての分野ってキモイ人間多いよな
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:???0354nobodyさん
2009/02/06(金) 23:17:36ID:???0355nobodyさん
2009/02/06(金) 23:17:41ID:???0359nobodyさん
2009/02/06(金) 23:21:43ID:???0360nobodyさん
2009/02/07(土) 01:04:26ID:???0361266
2009/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 です";
?>
■ このスレッドは過去ログ倉庫に格納されています