【PHP】下らねぇ質問はここに書き込みやがれ 62
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/01/10(木) 18:09:19ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 61
http://pc11.2ch.net/test/read.cgi/php/1198002831/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0655nobodyさん
2008/01/22(火) 20:57:25ID:ie4F05t5BクラスにAクラスを継承したいと思います
このとき、Aクラス中のメソッド
funciton switchAry($name,$n){
switch($name){
case "bird":
$theAry = $birdAry;
break;
case "flog":
$theAry = $flogAry;
break;
}
echo $theAry[$n];
}
ってのをクラスBに継承しても、分岐条件(case 〜)は既存の"bird","flog"しか
使えないですよね?
つまり他の条件を継承したメソッドの中身にねじ込むなんてのは無理で…
結局そんなことしたかったら新規にメソッドを作るか、元のクラスAの中の
switchAryに追加するしかないという考えでOKですか?
質問の箇所以外にも変なところがありましたらすみません
よければそれもあわせてご意見ください
0656nobodyさん
2008/01/22(火) 21:11:58ID:???もうちょっとクラスが何かとかどういう使い方するかを勉強した方がいいよ
まぁかなり強引だが動的にメソッド作ることもできるけど。。。
0657nobodyさん
2008/01/22(火) 21:13:40ID:???0658655
2008/01/22(火) 21:17:19ID:ie4F05t5あまり考えずに使ってました
0659nobodyさん
2008/01/22(火) 22:51:24ID:Jy6n3MIdブラウザ
0660nobodyさん
2008/01/22(火) 23:03:21ID:???継承したほうでswitchAry()を再定義(オーバーライド)する。
>echoってまずいんですか?
あんまりよくない。
Javaだと必ず呼び出されるメインメソッドで他のメソッドを呼び出して表示するね。
PHPの場合、インスタンス化した後の処理でechoを使うといい。
switchAry()の返り値をStringにして
$obj = new A();
echo $obj->switchAry($name, $n);
見たいな感じで。
>質問の箇所以外にも変なところがありましたらすみません
>よければそれもあわせてご意見ください
未定義の変数使ったりソースが不自然。ちゃんとしたコードをまず書けるようにしましょう。
0661nobodyさん
2008/01/22(火) 23:08:28ID:???0662nobodyさん
2008/01/22(火) 23:11:20ID:???0663655
2008/01/22(火) 23:18:30ID:ie4F05t5詳しい説明ありがとう
今、a.class.phpにクラスAを記述、b.class.phpにクラスBを記述してて、
c.phpに
require_once("a.class.php");
require_once("b.class.php");
としました。
で、b.class.phpのクラスBにはクラスAを継承させるつもりだったんですが、
これって動作しないですか? 別ファイルのクラスを継承するって無理なんでしょうか?
試してるんですが、動きません
0664nobodyさん
2008/01/22(火) 23:37:50ID:???実装して欲しい部分を切り離して
派生クラスで再定義できるようにしてあげるのが一つの手段。
class Foo {
public function getHoge($name, $index) {
$fuga = $this->getFuga($name);
return isset($fuga[$index]) ? $fuga[$index] : null;
}
protected function getFuga($name) {
switch ($name) {
case 'bird': return array(1, 2, 3);
case 'flog': return array(4, 5, 6);
}
}
}
class Bar extends Foo {
protected function getFuga($name) {
if ($name == 'phper') { return array(7, 8, 9); }
return parent::getFuga($name);
}
}
0665655
2008/01/23(水) 00:01:36ID:TY7vcim1どうもありがとうございます
理解できたら凄く役立ちそうなことを教えてくれてるようですが、知識不足です
勉強します、ありがとう
0666nobodyさん
2008/01/23(水) 02:26:15ID:???0667nobodyさん
2008/01/23(水) 02:28:06ID:???0668nobodyさん
2008/01/23(水) 02:32:13ID:???必ずechoの処理はどこかに入るんだから
どこでechoするかってだけの話だろ
0669助けて下さい;;
2008/01/23(水) 02:38:46ID:Q533T7oxhttp://kissho.xii.jp/1/src/1jyou24922.txt.html
MagpieRSSを使いRSSを取得してくれるスクリプトです。
これをRSS記事の最新順に上から並んでほしいのですが、
このソースのままではサイト順にしか並びません;;
どこをいじってあげれば新着記事順に並び替えができるでしょうか?
もしよろしければ教えて下さい;;
色々なサイトでソースを比較していじったりしましたが出来ませんでした;;
0670nobodyさん
2008/01/23(水) 02:45:08ID:???0671nobodyさん
2008/01/23(水) 02:49:03ID:???ふざけてるってヒドイよぉ;;
^^
0672助けて下さい
2008/01/23(水) 03:07:53ID:Q533T7ox以後気をつけさせて頂きます。
0673nobodyさん
2008/01/23(水) 03:10:02ID:???0674nobodyさん
2008/01/23(水) 03:11:58ID:???/;;;;;;;;;;,-'''" ゙'''ヽ;;;;;;ヽ ←>>671
/;;;;;;;;;''' ヽ;;;;l
/;;;;;;;;;'" _ヽ、 【ちてきしょうがいしゃ】
i';;;;;;;;;;; ,,;;;;;;-=ヽ、
|;;;;;;;;;;| ,,,,,;;;;;;;;;-、 ‐'"゙_,,,,,,,_\
|;;;;;;;;/ /-─'''''''"ヽ "‐=二 ̄ヽ、 まちのにんきもの
|;;;;;;| '",,,-==‐ ヽ " 、 ヽ
,┴、;| ==ニ-‐'" , ヽ、 ゙i ちてきといっても
|l |ヽl /l .)\ i
\|lノl /└-‐ヽ-‐' ヽ i あたまがいいわけではない
l、 ゙| / ,,---'ニ=メ i .|
ヽ-i i' /-l「ヽ┼+// ;; /
ヽ、 ヽ=ヽ─++-''ノ /、
,,,,\ ヽ ゙‐─''''''"~ / ヾヽ、
,,-''''" \ / )
\ヽ、 / /
0675nobodyさん
2008/01/23(水) 03:13:48ID:???/ ________人 \
ノ::/━━ ヽ ヽ
|/-=・=- ━━ \/ i
/::::::ヽ―ヽ -=・=-_ ヽ i
|○/ 。 /::::::::: /⌒)
|::::人__人:::::○ ヽ )
ヽ __ \ /
\ | .::::/.| /. / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ ヽ::::ノ丿 / < ちんちん シュッ!シュッ!シュッ!
しw/ノ___-.イ. \_______________
∪
0677nobodyさん
2008/01/23(水) 03:20:23ID:???一番下の方にある
echo '<li>└ <a href="' . $url . '" title="' . $desc . '" target="_blank">' . $title . '</a>';
// 日付フォーマットが任意の物でない場合は更新日の比較をしない
if (preg_match("/^\d{4}\/\d{2}\/\d{2}\s?/", $date)) {
diff_date($date,$days);
}
echo "</li>\n";
}
って部分があるから
ここでechoってせずにを一旦配列にいれて
ソートすれば良いんじゃない
diff_dateで何してるのか解らんから
ob_start();
echo '<li>└ <a href="' . $url . '" title="' . $desc . '" target="_blank">' . $title . '</a>';
// 日付フォーマットが任意の物でない場合は更新日の比較をしない
if (preg_match("/^\d{4}\/\d{2}\/\d{2}\s?/", $date)) {
diff_date($date,$days);
}
echo "</li>\n";
}
$articles[] = ob_get_clean();
って感じで出力バッファ取得する方が楽だとは思うけど
0678nobodyさん
2008/01/23(水) 03:22:42ID:???原因箇所特定してからわからないなら書き込んでくれ。
丸投げの質問はここじゃ受け付けてないし、スクリプト改造はスレ違い。
RSSに記事が作られた日時が記述されているならそれでソートすればいいんじゃないの?
とヒントだけ。
0679nobodyさん
2008/01/23(水) 03:23:42ID:???偽・スルー みんなにスルーを呼びかける。実はスルーできてない。
予告スルー レスしないと予告してからスルーする。
完全スルー スレに参加すること自体を放棄する。
無理スルー 元の話題がないのに必死でスルーを推奨する。滑稽。
失敗スルー 我慢できずにレスしてしまう。後から「暇だから遊んでやった」などと負け惜しみ。
願いスルー 失敗したレスに対してスルーをお願いする。ある意味3匹目。
激突スルー 話題自体がスルーの話に移行してまう。泥沼状態。
疎開スルー 本スレではスルーできたが、他スレでその話題を出してしまう。見つかると滑稽。
乞食スルー 情報だけもらって雑談はスルーする。
質問スルー 質問をスルーして雑談を続ける。
思い出スルー 攻撃中はスルーして、後日その思い出を語る。
真・自演スルー 議論に負けそうな時、ファビョった後に自演でスルーを呼びかける。
偽・自演スルー 誰も釣られないので、願いスルーのふりをする。狙うは4匹目。3匹目のスルー 直接的にはスルーしてるが、反応した人に反応してしまう。
4匹目のスルー 3匹目に反応する。以降5匹6匹と続き、激突スルーへ。
0680nobodyさん
2008/01/23(水) 04:20:15ID:???DB接続情報(IPやID,パスワード)って、どうやて管理していくのがよいでしょう?
一般に公開するアプリなので、ファイルへ格納しているだけだと
簡単にばれるのでは?と不安です
何かよい手段あれば紹介してください
0681助けて下さい
2008/01/23(水) 04:23:39ID:Q533T7ox親切に教えて頂きありがとうございます。
試行錯誤頑張って結果にだしたいと思います。
夜中なのに本当にありがとうございます。
>>678
はい、次回からどこをどのようにしてとまともな質問をさせて頂きます。
気分を害してすいませんでした。
0683nobodyさん
2008/01/23(水) 05:12:34ID:???ファイルへじゃなくて、テーブルに格納でいいんでないの?
(DBがファイルベースだと論外)
SQLインジェクションなどに気をつけてアプリを組めばおk
0685nobodyさん
2008/01/23(水) 06:30:04ID:???一般に公開ってフリーウェアってことかね?
共有鯖の場合、CGIで動かしてSuEXECでもしてないと
同居ユーザが何のPHPソフトウェア動かしているか調べて
予想できる場所インクルードするだけでおkって恐れはあるだろうね
0686nobodyさん
2008/01/23(水) 06:53:12ID:???偶然アクセスしたユーザがソース保存、脆弱性暴露して
祭りになった某画像掲示板があったな。
0687nobodyさん
2008/01/23(水) 07:58:59ID:???0689nobodyさん
2008/01/23(水) 08:16:21ID:???ドキュメントの可視性や拡張子の関連性がそもそも分かってないんだろ
0690nobodyさん
2008/01/23(水) 08:25:16ID:???お前エスパーだな。すごい。
0691nobodyさん
2008/01/23(水) 09:09:10ID:???実際に行っているのは
$str = preg_replace('/\'/', "\\'", $str);
くらいですか?
0692nobodyさん
2008/01/23(水) 09:12:17ID:???0693nobodyさん
2008/01/23(水) 10:06:00ID:???0695nobodyさん
2008/01/23(水) 12:26:41ID:???0697nobodyさん
2008/01/23(水) 13:00:13ID:???0698nobodyさん
2008/01/23(水) 16:11:22ID:???まさにKYの典型www
0699nobody
2008/01/23(水) 16:30:45ID:02waJQswpreg_much関数を調べてみたのですが、書き方がいまいち
わかりません。
どなたか教えてください。
0700nobodyさん
2008/01/23(水) 16:32:21ID:???↑読める?
0702nobody
2008/01/23(水) 16:34:39ID:02waJQsw0704nobodyさん
2008/01/23(水) 16:47:50ID:???0706nobodyさん
2008/01/23(水) 16:52:19ID:???http://jp.php.net/manual/ja/function.preg-match.php
$string = '<a href="hoge.html">hoge</a>';
if (preg_match("/<^a.+>.*<\/a>/", $string)) {
}
正規表現のとこは適当
0707nobodyさん
2008/01/23(水) 16:52:43ID:???ゆとり乙
「正規表現」は答えじゃなくて入り口だ
じゃあお前は答えをそのまま書くのか?
それが>>702のためになると思っているのか?
0708nobodyさん
2008/01/23(水) 16:52:53ID:???0709nobodyさん
2008/01/23(水) 16:52:54ID:???0711nobodyさん
2008/01/23(水) 16:58:45ID:???問題となってる部分がこれ
'INSERT INTO `bbsTable` (`id`, `title`, `comment`) VALUES ('''', '.$title.', '.$comment.')';
うまくいかないんだよ_| ̄|○
誰か教えてくれ…。
0713マニュアルマニュアルってうっせーんだよ
2008/01/23(水) 16:59:13ID:???マニュアル坊しねや
0714nobodyさん
2008/01/23(水) 16:59:34ID:???正規表現は人によって書き方はまだらだし読みにくいという理由で複数人プロジェクト向け
個人で使うなら正規表現を覚えれれば正規表現使うのが最良
0715nobodyさん
2008/01/23(水) 17:00:55ID:???マニュアルも読まないで他人に全て頼るやつはPHPやらないでほしい
自分のためならまわりの負担を考えない馬鹿はおとなしく金を払うべき
0716nobodyさん
2008/01/23(水) 17:02:18ID:???コマンドラインに投げる感じでおk
mysql_query("insert into table(id,name,body)values('$id','$name','$body')", $mysql_connect);
0719nobodyさん
2008/01/23(水) 17:07:23ID:???phpの場合は、INSERT文を実行する前にTRUNCATE TABLE `bbsTable`を実行しないと、
失敗することがある。だから、前処理としてやっておいた方がいいよ。
0721nobodyさん
2008/01/23(水) 17:11:49ID:???おもろいからいいけど
0722nobodyさん
2008/01/23(水) 17:12:36ID:???0723nobodyさん
2008/01/23(水) 17:14:03ID:???0724nobodyさん
2008/01/23(水) 17:19:52ID:???0725nobodyさん
2008/01/23(水) 17:21:51ID:???0726nobodyさん
2008/01/23(水) 17:22:58ID:???0729nobodyさん
2008/01/23(水) 17:27:00ID:???俺もそのうちの一人ですが何か
0730nobodyさん
2008/01/23(水) 17:27:45ID:???コマンド投げたほうが楽なのに
0731nobodyさん
2008/01/23(水) 17:29:41ID:???0732nobodyさん
2008/01/23(水) 17:31:56ID:???なんでもGUIよりCUIの優位性を必要以上に主張したがる奴は、
なんでも正規表現と連呼するやつと性質が似ている。
0733nobodyさん
2008/01/23(水) 17:35:33ID:???レコードを表示する時には、phpMyAdminよりもマシなGUIがあるだろと。
適材適所を考えろバカ
0734nobodyさん
2008/01/23(水) 17:37:38ID:???0737nobodyさん
2008/01/23(水) 17:47:30ID:???逆にMySQLのこれからにおおいに期待だぜ
0738nobodyさん
2008/01/23(水) 17:56:03ID:???無料じゃ使えないOSになったしなぁ。MYSQLも同じ運命か・・・
0739nobodyさん
2008/01/23(水) 17:59:21ID:???むしろ今のMySQL ABのコンサルティングとかのサポートは高額なので、
Sunになっても変わらんっていうかちょっと安くなるかも。
0741nobodyさん
2008/01/23(水) 18:09:36ID:???0742nobodyさん
2008/01/23(水) 18:23:20ID:???MySQLの従業員もそのままSun傘下に入ったしこれからも基本的な体制は変わらず
Javaとの連携を強めるとかそっちがねらいなんじゃね?
0743nobodyさん
2008/01/23(水) 18:25:38ID:???その正規表現ならaタグじゃないのも引っかかると思うが・・・
>>718
バッククォートはつけたほうが良い
というかMySQL使うならNavicatが便利すぎる(2万~3万ぐらいする)
0745nobodyさん
2008/01/24(木) 00:03:59ID:???最初のテーブル作るときは(create)普通に使うだろ
あとdropもテーブルに入ってるデータ見ながらやったほうが安心できる
0746nobodyさん
2008/01/24(木) 00:47:06ID:???select用のviewを他に用意して、drop、alterも同様。select構文以外は殆どコマンド打ってるがなー。
0747nobodyさん
2008/01/24(木) 00:55:38ID:???何が入ってようと消えるだけじゃん。
0748nobodyさん
2008/01/24(木) 01:21:39ID:???0750nobodyさん
2008/01/24(木) 03:26:18ID:???0751nobodyさん
2008/01/24(木) 04:05:50ID:???http://thumb.uploda.org/file/uporg1215609.jpg
0752nobodyさん
2008/01/24(木) 05:37:04ID:oseLc3nhフォームの登録が完了したとき、SQLの2重送信を防ぐために別のページに
転送させることがあると思います。
そのとき、転送先のページに登録したデータの一部をPOSTの形で引き継ぐことは
出来ないでしょうか?
header locationのような形での移動を考えると、GETなら出来そうですが… POSTは無理でしょうか
0753nobodyさん
2008/01/24(木) 05:43:59ID:???0754752
2008/01/24(木) 06:04:12ID:oseLc3nhありがとうございます 確かにその手がありました
ちょっといろいろ試してみます ありがとう
■ このスレッドは過去ログ倉庫に格納されています