【PHP】下らねぇ質問はID出して書き込みやがれ 75
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/10/16(木) 23:52:01ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 74
http://pc11.2ch.net/test/read.cgi/php/1221909788/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0724nobodyさん
2008/11/07(金) 02:48:41ID:+2MLBKbM0726nobodyさん
2008/11/07(金) 02:50:15ID:???0728nobodyさん
2008/11/07(金) 10:43:59ID:5dI3hGRw$b = explode('-',$a);
$c = 関数($b[1]);
↓こういうふうにしたい
= 関数(explode('-',$a));
0729nobodyさん
2008/11/07(金) 11:01:19ID:???・explodeを止めて正規表現などで抜き出す
0730nobodyさん
2008/11/07(金) 11:04:05ID:???ってことではなくて?
0731nobodyさん
2008/11/07(金) 13:14:33ID:5dI3hGRw0732nobodyさん
2008/11/07(金) 13:54:53ID:YMX4hGRfFreeBSD xxx.xxx.org 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52
【PHPのバージョン】
PHP 5.2.6 with Suhosin-Patch 0.9.6.2 (cli) (built: Jun 26 2008 16:44:58)
【質問内容】
オブジェクトの中身をダンプさせたいです。
配列はvar_dumpとprint_rでデバッグしているのですがオブジェクト用のvar_dumpっぽいのってありますか?
print_rよりもう一歩!なやつらを探しています。
みんなvsとかzendなんやらとかeclipseとかでデバグしてるのかな・・・。
0733nobodyさん
2008/11/07(金) 13:57:42ID:???表示を整形するやつは色々ある
0734732
2008/11/07(金) 14:13:25ID:???クラスが何たるかもわかってなかったので、むしろ理解の手助けに内容をダンプさせたかったのです。
こんな形!っていうのは無いです。
自分で調べてたら公式マニュアルの
XIII. クラス/オブジェクト関数
にいろいろと便利そうな関数群が載っていることに気づきました。ちゃんと読んできます。
ちなみに今回はxmlをSimpleXMLElementで読ませてるんですが、属性と子供がオブジェクトで
どうなってるのかよくわかんないです。print_rしたら@がついてるやつとついてないやつと・・・。
勉強してきます。
0736nobodyさん
2008/11/07(金) 16:01:34ID:KL0C61FMここ読んでたら、
PHP実行エンジンをコンパイル/インストールすると、
CLI(Command Line Interface)というコマンドラインから
実行するためのインターフェースもデフォルトでインス
トールされるようになったのだ。 CLIは例えば /usr/lo
cal/bin/php といった具合で実行コマンドとしてインス
トールされる。/usr/bin/perl と似たようなものだ。これ
により、画面処理は通常通り、Apache-DSO版で実
行し、バッチ処理はCLIにやらせる、といったことが完
全にサポートされるようになった。
って書いてあるけど、本当なの?
0737nobodyさん
2008/11/07(金) 16:08:42ID:???0738nobodyさん
2008/11/07(金) 16:21:32ID:KL0C61FMここ読んでたら、
フォームからの入力内容は指定したmethod
属性によって$_GETもしくは$_POSTという連
想配列に格納されますが、どちらの属性を選
択した場合でも$_REQUESTとう連想配列に
も格納されます。
、、、って書いてあるんだけど、だったら、全部
$_REQUEST で受ければいいんじゃね?
だめなの?
0739nobodyさん
2008/11/07(金) 16:26:05ID:???0740nobodyさん
2008/11/07(金) 16:29:45ID:???ありがとう、ありがとう、ありがとうございます。そういえば2,3年前にもそんな名前を聞いた気がしました。参考にします。
0741nobodyさん
2008/11/07(金) 16:35:47ID:KL0C61FMコードを書きたいんだけど、どう書いたらいい?
0742nobodyさん
2008/11/07(金) 16:37:55ID:???$数字の変数++;
}
0743nobodyさん
2008/11/07(金) 16:43:28ID:KL0C61FM0744nobodyさん
2008/11/07(金) 16:44:44ID:???if (ボタンが押された) {
$数字の変数++;
}
}
0745nobodyさん
2008/11/07(金) 16:48:36ID:???ここは依頼スレではないのでヒントだけ。
いろいろとやり方はありますが、とりあえずhtmlのフォーム関連と
phpのPOSTの受け取り方について調べて考えてくださいな
0746nobodyさん
2008/11/07(金) 16:53:41ID:KL0C61FM回数は決めてないので、
while使用の例を出してもらえますか?
0747nobodyさん
2008/11/07(金) 16:54:31ID:KL0C61FM<input type="submit" name="aaa" value="送信" />
</form>
<?php
$a=0;
if($_REQUEST["aaa"] != ""){
$a++;
print $a;
}
?>
自分でここまでは作ったんだけど、
ボタンを押しても数字が増えないんだよ
0750nobodyさん
2008/11/07(金) 17:09:40ID:???0754nobodyさん
2008/11/07(金) 19:41:41ID:???ま、REQUESTで処理してる段階で終わってるけどw
POSTもしくはCOOKIE
用途によってはSESSIONを使う方がお勧め
0755nobodyさん
2008/11/07(金) 19:42:21ID:???0756nobodyさん
2008/11/07(金) 19:51:32ID:???リテラシーとしてこういう時にGETは使わない
えw もしかして使ってるの?
0757nobodyさん
2008/11/07(金) 19:52:31ID:???0758nobodyさん
2008/11/07(金) 19:57:56ID:???0760nobodyさん
2008/11/07(金) 20:25:06ID:???これを何らかの公開サービスに結びつけるほうがどうかしてる。
内容的にもレベル的にも
0761nobodyさん
2008/11/07(金) 20:26:45ID:???初心者のうちに磨いとくセンスってもんがあるんだよ。
ポストフォームを使ってる時にGETにパラメーター付けるなんて愚の骨頂ww
0762nobodyさん
2008/11/07(金) 20:27:38ID:???0763nobodyさん
2008/11/07(金) 20:29:41ID:???hiddenに入れるんならパラメーターだが
URLにつけるって意味だろ、>>753はwww
0766nobodyさん
2008/11/07(金) 20:33:39ID:???何を主張したいのか分からん
GETフォームと何が同じ?URLにパラメータを付けたからどうなの?POSTとGETはどちらにどんな問題があって、どちらにすべきなの?
人に伝わる文章を書いてくれ
0768nobodyさん
2008/11/07(金) 20:35:45ID:???わからねぇんならいいよ。URLにパラメータつけてくださいませ
IDさらして質問するんなら別の人が答えてくれるんじゃね?
おれはお断りだが
いや、お前は知りたいんじゃなくて、煽ってるだけってのはわかってて釣られてるわけだがw
0769nobodyさん
2008/11/07(金) 20:36:22ID:hn1Talld下らねぇ喧嘩もID出して書き込みやがれ
おまえらみっともないぜ
0770nobodyさん
2008/11/07(金) 20:37:18ID:???何だ説明できないんじゃないか
カウントアップを実現するだけならhiddenに入れてpostで持ちまわすよりgetでやったほうが遥かに楽
postでやるメリットなんか何かあるのか?
0771nobodyさん
2008/11/07(金) 20:37:46ID:???本人操作、外部からリンク、外部からフォーム、セッション固定攻撃
どれをどのくらい意識するかは、用途によると最初から書いてるが、それでも不満かおい。
0772nobodyさん
2008/11/07(金) 20:38:47ID:N0eRiSkbまぁ、そんなことも理解できないのだろう
0773nobodyさん
2008/11/07(金) 20:39:34ID:???質問者がPOSTでフォームとボタン作ってるってことは、パラメーターは
POSTフォームの中でhiddenでやるのが妥当。
それを、URLに埋め込むなんて愚の骨頂 何度目だこれ。
0775nobodyさん
2008/11/07(金) 20:40:21ID:???だからそれはお前の勝手な思い込みじゃん。違う?
冷静に747のコードを見てみろ。それでも771のようなことが言える?
俺にはピント外れまくったアドバイスにしか見えない。
それと、getでやるよりpostでやったほうが良いケースを教えてくれ
0776nobodyさん
2008/11/07(金) 20:42:56ID:???質問者がメソッドをpostで書いているから処理は必ずpostリクエストで実現しなければならないってこと?
もうちょっと柔軟性ってものが必要じゃね?頭固いよ。
特に相手は初心者の質問者だぞ。
「getメソッドにしたら?」だけでどれだけ簡単化できることか。
0778nobodyさん
2008/11/07(金) 20:44:36ID:???0779nobodyさん
2008/11/07(金) 23:21:46ID:???GETにしろPOSTにしろ外部にデータ出して持ちまわすって事は
改竄の可能性が上がるわけだし・・・
0780nobodyさん
2008/11/07(金) 23:26:20ID:???後747さんへsessionでやりましょう。
答えはここ
http://www.scollabo.com/banban/php/ref/ref_session_start.html
0781nobodyさん
2008/11/07(金) 23:41:31ID:sUo3rc04分かるように説明してくださる方お願いします
0782nobodyさん
2008/11/07(金) 23:43:09ID:sUo3rc04失礼しました
0783nobodyさん
2008/11/08(土) 03:34:18ID:JnA3Aa5O(2)POSTでhideenに埋め込む
(3)クッキーで
(4)セッションで
おおざっぱに言って
以上の4つの方法があるということですね。
それで、(1)はセキュリティ的に危険だと。
0784nobodyさん
2008/11/08(土) 05:25:35ID:???他の方法でも注意するべきことはあります。
ただ、だれかが踏んだURLをどっかにコピペしたりと、
"本人も他人も悪意がない状態"でも数値が漏れたり、誤動作の原因になるので、
目的の仕様を実現できなくなります。
個人的なデータを単純に埋め込むのには向かない。
個人的なデータをGETで正常に回すときはトークンを入れたりと
かえって手間がかかる。
0785nobodyさん
2008/11/08(土) 06:17:07ID:JnA3Aa5OmySQLでデーターベースに値を格納して、
一回ごとに、データーベースからデーターを
ひっぱってきて、それを表示する、って方法でもできる?
0786nobodyさん
2008/11/08(土) 08:22:30ID:???セッションIDをクッキーまたはクッキーが無効なら埋め込みで渡して
データはサーバ側で管理する
0787nobodyさん
2008/11/08(土) 09:32:08ID:???それは間違い。GETもPOSTも同じ。
あとクッキーとセッションも同じ。
「セキュリティ」的に危険とか言って「セキュリティ」が具体的に何を意味してるのか分かってないべ?
低レベル回答者に騙されすぎ。
用途によってどれも意味がある。上をちゃんと読んで自分で理解してから判断すれ。
0788nobodyさん
2008/11/08(土) 10:07:06ID:JnA3Aa5Oもしかして、ファイルに値を保存して、
そこのファイルから数字を取ってきて
表示、ってしたほうがよかったかな?
0790nobodyさん
2008/11/08(土) 10:40:34ID:???> 用途によってどれも意味がある
これは用途によって「違い」を使い分けるという意味でしょうか?
それとも、「同じ」だからどれでも意味があるという意味でしょうか?
0792nobodyさん
2008/11/08(土) 12:09:28ID:JnA3Aa5Oこのページに
<?php
print ($hoge);
?>
これをサーバー上の適当なディレクトリにアップし、ブラウザから次のように入力します。
http://www.***.***.jp/~***/***/test.php3?hoge=Hello
すると、引数「Hello」を受け取ったtest.php3はブラウザに「Hello」と出力します。
、、、と書いてあるので実際に実験したら、
Notice: Undefined variable: hoge in C:\xampp\htdocs\1.php on line 2
と出るだけで、教科書のとおりにならないんですけど、なんで?
0793nobodyさん
2008/11/08(土) 12:21:37ID:???そこに書いてある情報が古いから
PHP3あたりまではそれでいけたと思う
今も設定すればできるけど
$_GET['hoge']とするほうが良い
0794nobodyさん
2008/11/08(土) 12:22:49ID:???4.2以降の〜ってやつ
0795nobodyさん
2008/11/08(土) 12:39:29ID:JnA3Aa5Oかなり挙動が変わったのかな?
0796nobodyさん
2008/11/08(土) 12:59:03ID:???0797nobodyさん
2008/11/08(土) 13:11:41ID:???そのレベルでそんなことやろうとしても効率悪いし
質問も基礎的すぎて無駄だから
まずマニュアルか入門本読んでからやれよ
0798nobodyさん
2008/11/08(土) 13:53:27ID:???ttp://pc11.2ch.net/test/read.cgi/php/1213356756/l50
0799nobodyさん
2008/11/08(土) 13:58:51ID:???0800nobodyさん
2008/11/08(土) 14:22:21ID:ONquUP0K0801nobodyさん
2008/11/08(土) 14:31:35ID:ne9hzuFxPHP5では、あるstaticメソッドを他のメソッドから呼び出す場合、
self::funcName();
という形で呼び出しますが、PHP4にはselfは無いようです。
PHP4ではどのようにして他のメソッドから呼び出せばよいのでしょうか?
ClassName::funcName();
というやり方で呼べるのは確認しましたが、これはクラス名が変更されたとき
に修正箇所が増えてわずらわしいです。もっと良い方法は無いのでしょうか?
0804nobodyさん
2008/11/08(土) 16:17:08ID:???ありがとうございます。4.3.0以降にあるようです。
しかし__Class__はクラス名を納めた定数であり、そこからstaticメソッドを呼
び出す方法が、私にはわかりません。
Javaでいう Class.forName() みたいなものがPHP5, およびPHP4にあるのでしょ
うか?PHP5かららリフレクションAPIが存在するようですが、調べてもよく分か
りません。
0805nobodyさん
2008/11/08(土) 16:24:33ID:???んで__CLASS__でクラス名が取れるんだべ?
つまりそういうことだ
0806nobodyさん
2008/11/08(土) 16:27:00ID:???ロパティ変数は、PHP4には存在しているのでしょうか?
PHP5なら、static $変数名というプロパティ変数を宣言すればよいのですが。
メソッドの中で変数にstatic宣言子をつければ、そのメソッドの中だけで永続
した変数を作れますが(C のstatic変数と同じ)、staticメソッド間で共有す
ることは出来ませんし。
0807nobodyさん
2008/11/08(土) 16:34:55ID:ne9hzuFx>>805
もしかして evalを使えとおっしゃっていますか?
eval(__Class__ . "::fuga1();");
たしかにこれなら動きますが、できたらevalは最後の手段にしたい気が。
0809nobodyさん
2008/11/08(土) 16:52:51ID:ne9hzuFxすみません、たしかにマニュアルに書いてありました。
http://search.net-newbie.com/php/keyword.paamayim-nekudotayim.html
> クラス関数はありますが、クラス変数はありません。
何かその代替物として使えるものもないということでしょうか?
どうも呆れられてしまったようで申し訳ありません。ですがまじめに考えても
分からないのです。どうかお答えいただける範囲でお教えいただけたらと思い
ます。
0810nobodyさん
2008/11/08(土) 17:01:34ID:ne9hzuFxPHPで変数のクラス名からインスタンスを生成する - (DxD)
http://dxd8.com/archives/110/
しかし new __Class__(); はエラーになります。
PHP Parse error: syntax error, unexpected T_CLASS_C, expecting T_STRING or T_VARIABLE or '$' in /home/agni/hoge.php on line ??
まあ今回はstatic呼び出しですから、newは関係ありませんし、そもそも上の
ページでもstatic呼び出しには失敗しているのですが。
あと、これは成功することが分かりました。
$hoge = __Class__;
$fuga = new $hoge();
$fuga-->fuga1();
しかしこちらはダメです。
(new $hoge())-->fuga1();
何でこうなるのかぜんぜん見当がつきません。
0811nobodyさん
2008/11/08(土) 17:55:03ID:???PHP4インスコすんの面倒だから試してないけど
call_user_func(array(__CLASS__, 'funcName'));
0813800
2008/11/08(土) 19:42:42ID:ONquUP0KPHPでできないですか?
それと別の質問なんですが
データベースに入っている画像のデータを、jpgなどのヘッダを吐いて画像を表示するhtmlの
filesizeが取得できません。
filesize(gazo.html?no=123456)//取得できない
(※123456は123456.jpg)
gazo.html?no=123456にアクセスするとちゃんと画像は出るのに
関数内では「ファイルがありません」とエラーがでます。
参考: filesize(123456.jpg)//ローカルフォルダにある画像ならできる
gazo.html?no=123456で表示する画像のサイズなどを取得するにはどうすればいいですか?
画像の縦横のサイズも知りたいです。
0814nobodyさん
2008/11/08(土) 19:57:42ID:???0815nobodyさん
2008/11/08(土) 20:32:35ID:???filesize("http://hoge.com/gazo.html?no=123456");ならいけるかも。
それでもいけないならallow_url_fopenかなんかのせい
0816800
2008/11/08(土) 20:57:11ID:ONquUP0K何でというのは文字コードとかですか?
画像ページがEUCでその画像を表示するページがsjisです。
>>815
いろいろやってみましたがうまくいきません。
やっぱりfilesizeなどの関数は既にフォルダにある画像じゃないと無理なんでしょうか。
もう少し研究してみます。
0817nobodyさん
2008/11/08(土) 22:04:22ID:???デザインの方をずっとやってるんでね。
何かやりたくなってきまして、PHPをやるより先にPearlを勉強した方が効率良いんでしょうか?
0818nobodyさん
2008/11/08(土) 22:04:56ID:rDOPC16R0819nobodyさん
2008/11/08(土) 22:15:24ID:???効率重視ならphpの方が入りやすいんでない?
ていうかこのスレに来てPearl(正:Perl)とかないわw
0821nobodyさん
2008/11/08(土) 23:27:00ID:rDOPC16Rありがとうございます。
PearlじゃなくてPerlでしたね。恥ずかしい(ノ_ノ)
0822nobodyさん
2008/11/09(日) 02:01:59ID:yvtnk3lzPerlのほうが古いから当然といえば当然なんだが参考までに
0823nobodyさん
2008/11/09(日) 03:11:08ID:/aQGvo8Iリンクする方法ってないんですかね?
■ このスレッドは過去ログ倉庫に格納されています