【PHP】下らねぇ質問はここに書き込みやがれ 57
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/10/22(月) 23:10:36ID:mIlonskoPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 56
http://pc11.2ch.net/test/read.cgi/php/1192092941/
◆質問する時の注意
・ sage進行(メール欄にsageと記入すること)「sage進行」とはスレを目立つ上部に上げないことによって、荒らしが発見できないようにすることです
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・ 書き込むときには、「公式マニュアル、リファレンス本は読みました」と明記すること
(でないと、公式マニュアル読めと煽られます)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
・質問者が「公式マニュアル読んだ」と書いていないからといって、
公式マニュアルに書いてもいないのに、公式マニュアルよめと適当なことを言わないこと。
質問者は公式マニュアルを読んでいるかもしれない。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0497nobodyさん
2007/10/29(月) 01:01:20ID:???0498nobodyさん
2007/10/29(月) 01:11:02ID:???何が?
0499nobodyさん
2007/10/29(月) 02:16:49ID:/JLEVJSc教えて下さい。
やりたいことは最後に書き込みをした人の時間を取得して表示させたいんです。
$now = gmdate("Y/m/d H:i", time()+9*60*60); が時間を取得しています。
下記のように実行させて表示させたいのですが、どこか参考になるサイトなどないでしょうか?
<?php
$lastmod = date ("Y/m/d H:i:s", getlastmod());
echo "最終更新日: " . date ($lastmod);
?>
0501nobodyさん
2007/10/29(月) 02:27:27ID:???0503nobodyさん
2007/10/29(月) 03:31:02ID:LZFfsiWaリモート上にb.php(http://www.example.com/b.php)があります。
ローカルのa.phpからrequire_onceを使ってb.phpを実行するまでは出来たのですが、
b.phpでセットした値をa.phpで使用する方法が分からず悩んでいます。
呼び先のphpから呼び元のphpへデータを返す方法を教えていただけませんでしょうか。
宜しくお願いします。
0504nobodyさん
2007/10/29(月) 03:41:39ID:???それあんたの言う「リモート」って関係あるか?
require_onceでファイルだけ読込んであんたの言う「ローカル」で実行してるんだろ?
0506nobodyさん
2007/10/29(月) 03:45:56ID:???0507nobodyさん
2007/10/29(月) 03:48:54ID:???0508nobodyさん
2007/10/29(月) 03:53:30ID:???まず具体的に何をしたいのか、どんなプログラムを作りたいのか言ったほうが早いよ
ある所から値を取り出したいなら、XMLなりシリアライズなりCSVなりファイルをphpで生成したほうがいいんじゃない?
0509nobodyさん
2007/10/29(月) 03:55:34ID:???たとえば配布されているスクリプトを考えて欲しい。
掲示板にせよアップローダにせよ、管理者のパスワードを設定する項目があるだろう。
パスワードが格納される変数は通常変更しないし、ファイル名もそのまま使うだろう。
(もし変更した場合、関連箇所を全て修正しないといけない)
となると、配布されているスクリプトの場合、
パスワードが格納されている変数と、パスワードが記述されているファイル名は、
第三者でも容易にわかってしまうわけだ。
たとえばhttp://example.com/conf.phpがパスワードが記述されているファイル名として、
$passwordにパスワードが格納されているとすると、
ローカルから
require_once("http://example.com/conf.php");
echo $password;
なんてできたら大変なことになるだろう?ちょっと考えればわかるはずだ。
0510nobodyさん
2007/10/29(月) 04:09:41ID:LZFfsiWa深夜に色々とアドバイス頂きましてどうもありがとうございました。
私のやりたい事は、>>509さんのご指摘の通り、
で、b.php側で
function foo() {
$data = "";
return $data;
}
とやって、ローカル側のa.phpで$dataが取得できたら、と思っていました。
でも、確かに、よく考えればセキュリティー上許されないですね。すみません。
>>508のアドバイス通り、一回ファイルをサーバー側で生成して
それを見に行く方法しかないみたいです。
# 初めファイル経由でデータをサーバーから受け取ろうとしたのですが、
# 一つの変数を受け取るのに一時ファイルを作るに抵抗を感じいました。
# ソケット経由でデータを受け取る方法も考えたですが、それも大げさかなぁ、と思って安易に考えていました。
どうも、ありがとうございました。
0511508
2007/10/29(月) 04:17:56ID:???ちょ、呼び捨て?w
http://jp.php.net/manual/ja/function.include.php
ここ読むとincludeによる読み込みは出来るみたいだぞ
まぁ、値渡したいだけなら>>508とかの方法にしたほうがいいけど
0514nobodyさん
2007/10/29(月) 04:21:00ID:???0515nobodyさん
2007/10/29(月) 04:21:35ID:???0517nobodyさん
2007/10/29(月) 04:57:21ID:???俺505さんだが、すまん質問内容を間違えてたよ
これからは質問内容しっかりと理解して、最低2日間は考えてからレスするようにするよ
んじゃ、逝ってくるorz
0518nobodyさん
2007/10/29(月) 05:15:25ID:pKcinqWT0519nobodyさん
2007/10/29(月) 05:17:35ID:???0520nobodyさん
2007/10/29(月) 05:22:06ID:pKcinqWT商用でも十分耐えうる認証ライブラリありませんか?
0521nobodyさん
2007/10/29(月) 08:28:45ID:???広く利用されることでより洗練され堅牢になる品
0522nobodyさん
2007/10/29(月) 08:30:12ID:???インスタンスメソッドではなくクラスメソッドからstatic変数を参照するときに、各クラスごとに別の値を参照させることはできますか。
やりたいことは次のようなことです。
class ModelObject {
static $table = NULL;
function select() {
$t = self::$table;
var_export("select * from $t");
}
}
class Model1 extends ModelObject {
static $table = 'table1';
}
Model1::select();
exit(0); //=> 'select * from ' と表示されるが、'select * from table1' と出てほしい
これができないと、すべてのクラスメソッドをそれぞれのクラスで再定義しなければならず、あまりにもめんどくさいです。
0523nobodyさん
2007/10/29(月) 08:52:58ID:???0524nobodyさん
2007/10/29(月) 08:53:29ID:pKcinqWTありがとうございました
0525nobodyさん
2007/10/29(月) 11:27:12ID:???class ModelObject {
static $table = NULL;
function select($class) {
$vars = get_class_vars($class);
var_export("select * from ".$vars['table']);
}
}
class Model1 extends ModelObject {
static $table = 'table1';
}
Model1::select('Model1');
0526nobodyさん
2007/10/29(月) 12:34:56ID:???インスタンス化しちゃえばいけるかも
newじゃなくって、singletonにすればなおいいかも
0527nobodyさん
2007/10/29(月) 13:54:47ID:???今までPHPでプログラム作ってて、PHPの構文を入れる際には
<?php
〜〜
?>
で囲っていました。
今回フレームワークというのが面白そうだと思って勉強してみようと思い
Zend Framework入門っていう本を買いました。
ttp://www.zend.co.jp/products/book/book_zf.php
プログラムのサンプルを見て気が付いたのですが、どれもこれも
<?php
〜〜
で終わっており、「?>」で閉じてないんですよ。
実際にZend Frameworkをインストールしたディレクトリにあるphpファイルを
参照してみましたが、これらも同様に「?>」で閉じられていませんでした。
これってどういうことなんでしょうか?
「?>」を省くことができるってことなんでしょうか?
0528nobodyさん
2007/10/29(月) 13:58:51ID:???それって人に聞かなきゃ分からない話か?
それとも何でも人に聞かなきゃ物事を進めれない人?
「一年間トイレに行ってないのですがやはりトイレは行ったほうがいいでしょうか?」
こんなこととか聞く人かな?
0530nobodyさん
2007/10/29(月) 14:06:22ID:???宣伝じゃないよ!
>>528
どうして「?>」で閉じてないけど、どうしてこれでいいのか分からなかったんです。
私が知っているPHPは「?>」で閉じるものだ、って理解していましたが
こういう本を読んでみたら?>で閉じてないからどうしてかなと思ってですね。
トイレでもなんでも聞きますんで、教えてください。
0531nobodyさん
2007/10/29(月) 14:18:29ID:???省けるか省けないか
<? phpinfo();
としてみれば分かるだろう。
それともここの人にそれをやって俺様に報告しろってことか?
0532nobodyさん
2007/10/29(月) 14:19:41ID:???売れない本=わかりずらい本
0533nobodyさん
2007/10/29(月) 14:27:21ID:???0534nobodyさん
2007/10/29(月) 14:28:44ID:???そうでしたね。
すいませんです。
ありがとうございました。
>>532
まじで宣伝じゃないって!
でも?>を省くなんて、入門本としてはイクナイと思う。
普通は<?php 〜 ?>って書くもんね。
0535nobodyさん
2007/10/29(月) 14:29:00ID:???で検索するだけで、大量の情報を得られるだろ
んなことを、しれっと質問するから宣伝乙
っていわれるんだバカやロー
0536nobodyさん
2007/10/29(月) 14:34:36ID:???0537nobodyさん
2007/10/29(月) 14:37:11ID:???PHPってのはもともとHTMLがあって
その一部にPHPコードを埋め込むというもの。
つまり、
<html>
<?php 〜〜〜 ?>
</html>
とあったとき<?php 〜〜〜 ?>の外側の<html>、</html>が”出力”される。
もし<?php 〜〜〜 ?>の外側にスペース・改行があったとしたら・・・。
<?php の前にスペース・改行があったらすぐに気づくが、
?>の後にスペース・改行があっても気づかないもの。
その場合に余計な空白が出力されてしまうことになる。
これが問題ない場合もあるが、出力された文字をデータとして扱う場合に
問題が出ることもある。そのため?>を省いており、
また、省くことができる仕様になっている。
0538nobodyさん
2007/10/29(月) 14:38:19ID:???いや、その検索ワードはちょっと思いつかないよ。
タネを知ってたら思いつくだろうけど。
あと、スレタイが「くだらない質問〜」って書いてあるからいいかなと思ったんだけど。
それにしても?>を意図的に書かないって言うテクがあったんですね。
知らなかったヨ。
ってことは、あの本は良い本ってことで。
(宣伝じゃないよ)
0539nobodyさん
2007/10/29(月) 14:38:32ID:???0541nobodyさん
2007/10/29(月) 14:41:07ID:???0542nobodyさん
2007/10/29(月) 14:44:37ID:z+kol6j9マニュアル見ても同じような気がするんですが、違うものなんでしょうか?
0544nobodyさん
2007/10/29(月) 14:58:17ID:/8Ez3TkOautoExecuteのみ必要に応じてエスケープしてくれるのか・・・
普通にSELECTするときは自分でエスケープしないといけないんですね
0545nobodyさん
2007/10/29(月) 15:11:43ID:???素直にフレームワーク使ったほうが良い
0547nobodyさん
2007/10/29(月) 16:43:06ID:ugb+n0gS表示用エンコードは何ですか?
変数名で迷ってます
0548nobodyさん
2007/10/29(月) 16:51:06ID:???0549nobodyさん
2007/10/29(月) 17:04:51ID:???0550316
2007/10/29(月) 17:19:32ID:???×<? phpinfo(); ?>
○<?php phpinfo(); ?>
ttp://blog.codezine.jp/editor/2007/05/phpinfo.php
PHPのどこかのバージョンからか、変更になったようです。
0552628
2007/10/29(月) 17:42:19ID:???updateクエリーを実行結果を取得するのって
mysql_fetch_arrayとかmysql_data_seekとかで取得できないんですけど
取得できる関数ってありますか?
updateしてからselectクエリーを実行して結果を取得しないといけないんですか?
教えてください偉い人
0553552
2007/10/29(月) 17:44:42ID:???updateしたレコードを取得したいんです
0554nobodyさん
2007/10/29(月) 17:46:29ID:???>SELECT, SHOW, DESCRIBE や EXPLAIN 文、その他結果セットを返す文では、 mysql_query() は成功した場合に resource を返します。
0557552
2007/10/29(月) 17:50:49ID:???レコードをupdateでクエリーを送ってから、selectでクエリーを送って結果を取得するので?
あたま悪くてスマソ
0558nobodyさん
2007/10/29(月) 17:56:01ID:0Yij708sそれでOK
0559552
2007/10/29(月) 17:56:47ID:???面倒だな
ありがとうございます
0561nobodyさん
2007/10/29(月) 18:52:59ID:???0562nobodyさん
2007/10/29(月) 20:10:23ID:???<?php
$db = sqlite_open('zip.db');
?>
を実行すると
sqlite_open(): file is encrypted or is not a database
と出て実行できません。
どうすれば回避できるでしょうか?
0563nobodyさん
2007/10/29(月) 20:33:39ID:???0564nobodyさん
2007/10/29(月) 21:18:50ID:???精子を精製してチンコに返してやりたいのですが、
たまに不純物が混じるので精子のチェックをしたいです。
どのように書いたらいいでしょうか?
0565nobodyさん
2007/10/29(月) 21:33:30ID:???ttp://www.hkvstore.com/phpmaker/
0566nobodyさん
2007/10/29(月) 21:58:04ID:???0567nobodyさん
2007/10/29(月) 22:07:03ID:???0568522
2007/10/29(月) 22:32:40ID:???ありがとうございます。
> Model1::select('Model1');
これがちょっといけてないので、Model1::select(); と書ける魔法なんかないでしょうか。
0569nobodyさん
2007/10/29(月) 22:55:24ID:???0570nobodyさん
2007/10/29(月) 22:58:17ID:htv8blfh>書かれている通りです
書かれている通りとは?
0571nobodyさん
2007/10/29(月) 23:24:01ID:???よく出る話題だがbacktrace()からコールしたクラス名得て>>525的にやるくらいしかない
サブクラスでselect()を再定義して、テーブル名を指定してparent::select("table name") のように
すれば表記上は Model1::select() と出来るけど、、、
やはりテーブル名をクラスメンバとして ModelObject に結び付けてるのがおかしいのでは、、、
サブクラスで再定義したいのに、親クラス固有のメンバを参照するような設計になってて矛盾がある
0572nobodyさん
2007/10/29(月) 23:37:42ID:???へたにstaticとか使うとOOとしてはアレ?ということになりがち。
0573nobodyさん
2007/10/30(火) 00:18:14ID:+WynKem6表示したいんですが、どうすればよいでしょうか?
0574nobodyさん
2007/10/30(火) 00:27:23ID:???0575nobodyさん
2007/10/30(火) 00:52:13ID:???0576nobodyさん
2007/10/30(火) 01:10:13ID:???0577nobodyさん
2007/10/30(火) 01:11:48ID:???0578nobodyさん
2007/10/30(火) 01:38:57ID:???0579522
2007/10/30(火) 01:40:24ID:???>やはりテーブル名をクラスメンバとして ModelObject に結び付けてるのがおかしいのでは、、、
>サブクラスで再定義したいのに、親クラス固有のメンバを参照するような設計になってて矛盾がある
そうなんですかね。RubyやPythonではこれがふつうの設計方法なんですよ。
Model1::select()を呼び出したときに、ModelObject::select()が実行されるのはPHPでも一緒なんですけど
PythonやRubyではちゃんとModel1のクラス変数(またはクラスインスタンス変数)が参照できるんですよ。
おんなじようにPHPでもできるだろうと思ってたんですが、スマートにはいかなそうなので、なんか違う方法考えます。
0582nobodyさん
2007/10/30(火) 01:53:06ID:???0583nobodyさん
2007/10/30(火) 01:57:49ID:???0584nobodyさん
2007/10/30(火) 02:03:05ID:???PHPなんか使えなくても不自由ない
0585nobodyさん
2007/10/30(火) 02:16:02ID:???0587nobodyさん
2007/10/30(火) 02:47:58ID:???PHPのクラスメソッドから他のクラスメソッドを呼び出すには、クラス名を指定する必要があるから、うまく行きません。
>>581
普通の実装じゃないといいきる理由は?
>クラスメンバの原義を考えれば当然
これってJavaでのクラス変数のことをいってるのかもしれないけど、PythonでもRubyでもクラスインスタンス変数というのがあって、これを使うと「クラス変数なんだけどクラスごとに別の値を取れる変数」が使える。
これが使えるなら使った方が自然な設計ができますよ。
Model1::select() はインスタンスメソッドではなくクラスメソッドにすべきだから(だってインスタンスを取ってくるメソッドだからね)、select()が使う変数はクラスに対して設定する必要がある。
だからテーブル名はクラス変数(またはクラスインスタンス変数)で設定したい。
それ以外にいい方法があるなら教えてください。
>>584
他の言語でできてPHPでできないことがあったからって、なんでこんなこというかな。
ここってPHPの質問するところでしょ?PHPでできますかと聞いて、できないと答えた、ただそれだけでいいのになんでこんなひがみが出てくるの?
だれもPHPを非難してないでしょ?質問の意図を説明するために他の言語を例として出したまでなのに、すぐ被害妄想になるやつ大杉。できないならできないって答えて、そうですかで終わりじゃん。
0589nobodyさん
2007/10/30(火) 02:58:50ID:???コードが異常
もっと”まとも”なコード書いてください
0591nobodyさん
2007/10/30(火) 03:07:20ID:???これが蛇足ってやつだね
>できないならできないって答えて、そうですかで終わりじゃん。
で、しっかり自己矛盾してるし。当の本人が終わらせる気まるで無し
0592nobodyさん
2007/10/30(火) 03:14:56ID:???SQLite関数は2までしかサポートしていません。
SQLite3を利用したい場合はPDOクラスを使用してください。
0593nobodyさん
2007/10/30(火) 03:23:42ID:vbqY4O/sログの分け方なんですが、1ファイル1スレッドでわけるか、
1ファイル複数スレッドにいれるか悩んでます。
アクセスは1day/1〜1000程度に耐えられればいいと思ってます。
レンサバなどで、1スレッドごとにファイルを読み込むのは処理が重くなりますかね?
0594nobodyさん
2007/10/30(火) 03:37:10ID:???読み出しの負荷が気になるなら2chみたく書き込み時に静的ファイルを生成するのがええじゃろ
0595nobodyさん
2007/10/30(火) 03:49:48ID:???お前は朝起きたたびごとに鯖が落ちていたことあるんかいと
それも俺は寝てるのに、ロリ野郎が朝までお祭り投稿やってたような状況にな
最初は理想でいいんだよ
最適化なんて考えるな
重いもヘチマもアクセスだないと成立しないんだよ
0596nobodyさん
2007/10/30(火) 03:53:59ID:???それより初心者だと fopen('log1.dat', 'w'); flock(... とかやってファイル壊したりとか
XSS脆弱性のこしてたりしないように気を使ったほうがいいかも
■ このスレッドは過去ログ倉庫に格納されています