【PHP】下らねぇ質問はID出して書き込みやがれ 127
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2013/03/19(火) 22:13:49.76ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 126
http://kohada.2ch.net/test/read.cgi/php/1359808868/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0554nobodyさん
2013/04/17(水) 09:43:19.92ID:???0555nobodyさん
2013/04/17(水) 11:16:36.85ID:???0556nobodyさん
2013/04/17(水) 11:26:21.72ID:???0557nobodyさん
2013/04/17(水) 13:02:11.83ID:???0558nobodyさん
2013/04/17(水) 13:14:05.13ID:???0559nobodyさん
2013/04/19(金) 01:52:35.21ID:BkSiPRWu<?php echo file_get_contents('http://xxx.xxx.xxx/test.cgi');?>
下のエラーが出てしまいます。
failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error in xxx
urlに直接ブラウザでアクセスするとtest.cgiがちゃんと表示できます。
下のコードだとちゃんとyahooのトップが表示できます。
<?php echo file_get_contents('http://yahoo.co.jp/');?>
ローカルのxampp上で同じプログラムを動かした場合もちゃんと表示できます。
原因なんでしょうか??
0560559
2013/04/19(金) 01:57:02.52ID:BkSiPRWu【OS名】CentOS6.2
【PHPのバージョン】5.3.3
0561nobodyさん
2013/04/19(金) 03:32:15.65ID:???0562559
2013/04/19(金) 08:23:54.41ID:???cgiの方で呼び出しもとのホストを弾く設定になってたみたいでした。
0563nobodyさん
2013/04/19(金) 11:04:15.70ID:???0564nobodyさん
2013/04/19(金) 13:02:39.65ID:lhK9q9u1今までオブジェクト指向で書いたことがなく、ページ遷移の際にセッションに保存してそこからデータを
出し入れしたのですが、フレームワークで書かれたウェブアプリのサンプルソースを
みていると、インスタンスに全部入れ込んでいく方法がとられているのですが、
インスタンスにデータを保存して、そこから読み出し書き出しをして処理しようと思うのですが、
インスタンスに設定情報や取得情報を代入した場合、
ページ遷移した場合は当然保持されないのでしょうか
0565nobodyさん
2013/04/19(金) 14:14:51.32ID:???0566564
2013/04/19(金) 14:35:58.50ID:lhK9q9u1フレームワークの場合、クラスファイルをautoloadで読み込んだりするために
クラスファイルのパスやその他各種設定情報をインスタンスに格納していくかとおもいますが、
ページ遷移をまたぐ場合、インスタンスは保持されるのでしょうか
それともセッションなどに一時的に保存する必要があるのでしょうか
0567nobodyさん
2013/04/19(金) 14:52:24.01ID:???インスタンスに格納すると決め付けられても。 というか、 インスタンス と言うものを 勘違いしてる?
ページ間のデータのやり取りはフレームワークが勝手にやるのかもしれないし、
オブジェクト指向関係ないし
0568564
2013/04/19(金) 15:35:16.89ID:lhK9q9u1もう一度整理して・・・
やろうとしてることは、ユーザ登録のページを作成
(入力フォーム→確認画面→送信完了)で、今まで3つのphpファイルでページ遷移をしていました
今度は、index.phpにアクセスしてフォーム等の設定を読み込み→入力フォームを表示、
ユーザが入力をして確認ボタンを押すと、データを受け取るクラスを実行してindex.phpに
リダイレクトし、確認画面を表示させる〜(以降略)
という動きを考えているのですが、フォームボタンを押してページ遷移(リダイレクト)させるという処理が
単純に最初に示したphpファイル毎にページが遷移していくやり方と比較して
フレームワークの場合は一連の動作になるのでしょうか
それとも、一旦セッション等に保存して、index.phpが再度読み込まれた際にセッションから設定を
呼び出して処理をおこなうものなのでしょうか
0569nobodyさん
2013/04/19(金) 15:51:05.66ID:???index.phpで受けて index.phpで表示する。
別にセッションで受け渡ししないでも作れるよね。
アクションで、受けるとこ、結果表示するとこ分けて、セッションで受け渡す形で作るのもあるし
0570nobodyさん
2013/04/19(金) 16:18:53.21ID:???> アクションで、受けるとこ、結果表示するとこ分けて、セッションで受け渡す形で作るのもあるし
横からだけど、これ具体的にはどのフレームワーク?
0571564
2013/04/19(金) 16:36:11.06ID:lhK9q9u1なるほどです
MVCの解説サイトなどを見ながら勉強してるのですが、
だいたいindex.phpにリクエストがきて、コントローラから、初期化や設定ファイルなどを読み込んで、
Dispatcher.phpで振り分けられて、アクションに応じたクラスが実行されて、
結果をビューに渡して表示させる
・・・という流れで理解をしたのですが、ビューの結果をクライアントにレスポンスとして返されたあとのことに
触れられている説明がなく(読み足りないのかもしれません)、
クライアントがその次にリクエスト(たとえばフォームで入力ボタンを押す)をした際に、
次の振り分けでボタンを押す処理のクラスを実行するに、またindex.phpが呼び出され、
初期化や設定ファイルの読み込み、クラスのautoloadなどを最初からしなければならないのか、
はたまたその辺は保持されているものなのか、セッション等で設定を保存して読み込むようにしてあげる必要があるのか
その辺で疑問に思った次第です
書籍のサンプルでは、最初に読み込まれた際に、設定情報を格納したインスタンスを凍結させ、
それ以降の設定変更ができないようにしているのですが、そのインスタンスをセッションに保存したりするような
記述が見つからなく、混乱している状態です
0572nobodyさん
2013/04/19(金) 16:54:57.85ID:???なにで引っかかってるのかわかんないから 的外れなのかもしれないけど、
普通は、どんなアクセスも全部 index.phpで受けて 毎回毎回 初期化、設定読込は行われる。
基本的には、リクエスト毎に実行され、処理が終われば消えてなくなり、
各リクエストは関連なく独立しているものです。
アクセスしてる個人単位で連続しているように見せかけるために、
個人だけに関連するデータをセッションで保持したりしますが、
普通はインスタンスごと持ったりみたいなことはしないものです。
0574nobodyさん
2013/04/19(金) 21:22:28.01ID:???セッション情報を使うことで続きっぽく扱えるだけで、HTTPはリクエストごとに独立した処理をするのが原則
0575nobodyさん
2013/04/20(土) 13:45:38.40ID:???Merge branch 'PHP-5.3' into PHP-5.4 は
先に古いバージョンで修正されたものが
新しいバージョンの方にも適用されたという事でよいのかな?
0581564
2013/04/21(日) 17:35:31.74ID:QsqTX+06なるほど、1回毎に読み込みがおこなわれるわけですね
引っかかってる部分がようやくとけました
どうりで保存したりする処理がないわけですね
となると、リクエストに対して、必要な設定読み込みを考えないとダメですね
何でもかんでも最初に初期化設定読み込みをautoloadなどで一括に処理してしまうものだと思ってました
全体の流れや効率を考えた外枠から考えないとダメですね
0582nobodyさん
2013/04/22(月) 06:20:08.99ID:???YouTubeやニコニコ動画などは再生可能なサムネイルを
出力できますが、
ニコ生放送は再生可能なサムネイルを貼り付けることは出来ますか?
0584nobodyさん
2013/04/22(月) 17:30:21.42ID:0nrxKiO80586nobodyさん
2013/04/22(月) 23:14:46.67ID:YyKrblk5じゃあのさん来た! 次スレ
26:以下、名無しにかわりましてVIPがお送りします[]
2013/04/22(月) 22:59:02.35 ID:8TN30C6y0
じゃあ、こっからが情報戦レクチャーに入るぜwww
敵の資金源をおまいらでも一枚噛んでぶっ潰す方法だwwww
不買運動やデモは単なる手段でしか無いwww
俺が求めるのは更にその先だwwww
--- 以下スレ情報 ---
高岡さんがフジ韓流ゴリ押し批判したら干されたのでウジテレビ凸
http://hayabusa.2ch.net/test/read.cgi/news4vip/1366637744/
0590nobodyさん
2013/04/23(火) 21:53:05.68ID:870eDqk8亀だけど、ぜんぜん方向の違う勘違いしてるじゃないか
お前らちゃんと指摘してやれよw
PHPはリクエストのたびに起動して一プロセス消費して終わり。
これ、フレームワークがどうたらとか関係なく、言語仕様な。
一度作成したインスタンスを再利用するなんてのはシリアライズして
DBに保存してっていう、どっちかっていうと変態っぽいやりかただから、
まだ手を出さないほうがいいと思うし。
0592nobodyさん
2013/04/24(水) 04:02:41.23ID:???0593nobodyさん
2013/04/24(水) 04:12:15.02ID:6o5SNjBY0594nobodyさん
2013/04/24(水) 04:23:24.40ID:???0595nobodyさん
2013/04/24(水) 11:10:58.26ID:???を外部から呼び出す時、引数を与えたいのですが、
hoge.php?saitama=chichiu
以外に方法はありますか?
PHP 5.2.17です。
0596nobodyさん
2013/04/24(水) 11:14:23.84ID:???0597nobodyさん
2013/04/24(水) 12:01:08.73ID:L2MfGf1mを外部から呼び出す時、引数を与えたいのですが、
hoge.php?saitama=chichiu
以外に方法はありますか?
PHP 5.2.17です。
>>596
すみません。
0598nobodyさん
2013/04/24(水) 12:04:45.02ID:???あとPATH_INFO使うとか
0599nobodyさん
2013/04/24(水) 12:05:42.44ID:???0600nobodyさん
2013/04/24(水) 12:08:26.65ID:???で、 hoge.phpに saitama と chichiu 渡すみたいな方法はあります。
0603nobodyさん
2013/04/24(水) 13:38:58.11ID:???0604nobodyさん
2013/04/24(水) 18:32:03.09ID:???foreachで$_GETからkeyとvalue取ってくるの?
0605nobodyさん
2013/04/24(水) 18:33:19.63ID:???0607nobodyさん
2013/04/24(水) 20:53:40.70ID:???0608nobodyさん
2013/04/25(木) 02:19:49.33ID:UuN6InnxWindows7でpeclで pecl_http を入れようとしてダウンロードまではいったのですが
その後エラーが出て止まってしまいました。これはどうすればいいんでしょうか。
pecl install http://pecl.php.net/get/pecl_http
downloading pecl_http-1.7.5.tgz ...
Starting to download pecl_http-1.7.5.tgz (174,624 bytes)
.....................................done: 174,624 bytes
71 source files, building
ERROR: The DSP pecl_http.dsp does not exist.
0609nobodyさん
2013/04/25(木) 02:32:52.82ID:???http://stackoverflow.com/questions/7751679/php-http-build-url-and-pecl-install
0611nobodyさん
2013/04/25(木) 13:44:25.08ID:???英語なのであいまいにしか翻訳できなかったので間違っていたらすいません。
これはhttp_build_urlを使うためにpecl_httpを入れようとしたけど使えなかったから
http_build_url() を自作したっていう話ではないですか?
私がしたいのは http_build_url ではないのでこれには当てはまらないのではないでしょうか。
0612609
2013/04/25(木) 13:44:56.25ID:UuN6Innx>>611 は 609 です。
0613608
2013/04/25(木) 13:46:28.43ID:UuN6Innx0614nobodyさん
2013/04/25(木) 14:17:01.66ID:0FNu+M2Thttp://example.com/hoge.php/saitama/chichiu
ならできるけど、
http://example.com/hoge/saitama/chichiu
ってできる?
0615nobodyさん
2013/04/25(木) 14:37:11.67ID:???サーバーにディレクティブ渡せば楽勝でしょ。
WordPressやCakePHPのURLの仕組みを調べてみれば?
0616nobodyさん
2013/04/25(木) 15:04:32.09ID:???.htaccess に、特定のファイル名の時はapplication/x-httpd-phpを追加する
とかが一般的かな
0617nobodyさん
2013/04/25(木) 15:31:26.40ID:???0618nobodyさん
2013/04/25(木) 16:37:07.19ID:???0619nobodyさん
2013/04/25(木) 16:42:52.06ID:???0620nobodyさん
2013/04/25(木) 19:16:06.66ID:???お前たちは答えてろ
0621nobodyさん
2013/04/25(木) 19:32:36.30ID:???0623nobodyさん
2013/04/26(金) 07:59:11.43ID:h02AATTSインスタンスを生成後、オブジェクトにアクセスする際
$this->val
valの部分に他の配列に入れておいた文字列でアクセスするにはどうしたらよいでしょうか
$val = array(a,b)
$this->a
$this->b
のょうに繰り返しで処理したいです
配列だとhoge[$val]といったようにしてましたが、オブジェクトの場合はどうなるのでしょう
0625nobodyさん
2013/04/26(金) 13:34:02.60ID:wd6ISbqU【PHPのバージョン】5.3
【連携ソフトウェア】MySQL
【質問内容】
DBに書き込みデータを保存する掲示板を作っているのですが
ユーザーが書き込んだ文字列をHTMLエスケープするのはどの段階にするべきでしょうか
勿論'や;に\をつけるのはDBに保存する前だと思いますが、
<や>等HTMLとして影響を与える文字をエスケープするのはDBに保存する前か
それともDBにはそのまま保存して出力する際にエスケープすべきでしょうか
一般的な考え方があったら教えて下さい
0626nobodyさん
2013/04/26(金) 13:44:14.73ID:???DBにデータを入れる際のSQLインジェクション
そしてデータをHTMLに出力する際のクロスサイトスクリプティング
DB操作にどのAPI使ってるのかしらんがDBに入れる際
mysql関数ならmysql_real_escape_string
PDOならプリペアードステートメントを使う
DBから取り出してHTMLに出力するときにhtmlspecialcharsを使う
0627nobodyさん
2013/04/26(金) 13:45:37.38ID:???select文にたいしても同様にSQLインジェクション対策を行うこと
0628nobodyさん
2013/04/26(金) 15:17:37.16ID:wd6ISbqUどうもありがとうございます
0629nobodyさん
2013/04/26(金) 15:22:40.36ID:???出力するときに、htmlspecialcharsを使う。
これしかない。
0630nobodyさん
2013/04/26(金) 15:27:43.27ID:???有効にするタグがあるのかどうか(<a>や<strong>, <pre>などは生かすとか)によって違う。
また、エンコードが何なのかによっても違う。
0631nobodyさん
2013/04/26(金) 16:08:21.01ID:???色んな所で古くから議論されてるけど、
基本はDBに生で保存して出力時に整形する。
いろんな検証の仕方をしても多分ここに落ち着く。
それを踏まえた上で、パフォーマンスを高めるためのチューニングとして
エンコード済みのデータをケースバイケースで本データとは別に保存しておいたりすると良い。
0632nobodyさん
2013/04/26(金) 17:56:09.59ID:???ほかの人も言っていることとほぼ同様だけど
取り立てて仕様に影響するような要件がない場合は、DBには可能な限り生なデータを突っ込んだほうがいい。
突っ込む前に整形するとその後の拡張性がすこぶる悪くなったりする。
で、PHPでMySQL使っているならば、mysqli_real_escape_string関数あたり使いなはれ。
で、出力するときは、htmlspecialcharsあたりでXSS除けしなはれ。
ちなみにWHERE句なんかで外部からの値突っ込むときもちゃんとエスケープ処理かけるんだぞ。
もう一つ言うと、LIMITやOFFSET句みたいな場所を除いて外部から受け取ったIntegerを突っ込むときも
ちゃんとエスケープ処理して'つけてSQL文に流し込め。
LIMITやOFFSETは、Integer以外入りようがないのだから、正規表現かなんかでバリデートすべし。
0633nobodyさん
2013/04/26(金) 18:13:03.59ID:???昔はそれが普通だったのか?
0634nobodyさん
2013/04/26(金) 18:14:00.99ID:???0635nobodyさん
2013/04/26(金) 18:14:09.48ID:2flPsSFU0636nobodyさん
2013/04/26(金) 18:16:10.65ID:???たんに何のセキュリティ問題なのかとか具体的なことがわからなかったってだけでは?
とりあえずエスケープにはhtmlspecialcharsを使っとけばいいって覚えちゃった人が
自分のサイトでこういうふうにして入れますみたいに書いて
それを間にうけた第三者が真似していくという
0637nobodyさん
2013/04/26(金) 18:18:57.51ID:???内容はだいたいわかるけど実際に問題になるコードが書けない人
本当にアマでセキュリティホールを理解してるのは少ない
0639nobodyさん
2013/04/26(金) 19:42:40.94ID:???そのカラムの範囲を破壊されないために
<と>をエスケープしていたんだよねwww
0640nobodyさん
2013/04/26(金) 20:23:06.36ID:???そうそう、そんな理解していない奴らが簡単にWebアプリもどきを作れるようにしたPHPは犯罪
世界規模のサイバーテロに匹敵するほどの犯罪
犯罪者予備軍のPHP厨にはお似合いかw
0641nobodyさん
2013/04/26(金) 22:33:10.72ID:zqV1AZ+pわしのことやな、、getpost変数はほぼホワイトリスト解決させてる、、ヌルバイトだけはどう来るか予想できん。。。。
0642nobodyさん
2013/04/26(金) 22:35:09.48ID:???0644nobodyさん
2013/04/27(土) 14:25:23.44ID:RdpUkJUr仮にmcintosh(詳細な綴りは知らん)とwindowsに同じ問題があったとして
その影響が同じだなどという主張と変わらん
0645nobodyさん
2013/04/27(土) 14:36:40.37ID:???0646nobodyさん
2013/04/27(土) 14:48:32.82ID:???なんでmacって呼ばれてるのか考えろ!
0647nobodyさん
2013/04/27(土) 14:49:44.35ID:???0648nobodyさん
2013/04/27(土) 19:00:06.77ID:RdpUkJUr0649nobodyさん
2013/04/27(土) 22:27:02.27ID:78HtUPwGじゃあのさん来た!
421:以下、名無しにかわりましてVIPがお送りします[]
2013/04/27(土) 21:53:57.62 ID:qYDE1sEQ0
てか、すっかり野間ちゃんのこと忘れてたわwww
別件で色々あってなwwww
所詮その程度の存在なんだけどなwww野間ちゃんなんてwwww
じゃあ、今からやるかwww罰ゲームなwww
あーあwww野間のせいだwww野間が全部悪いwww
--- 以下スレ情報 ---
高岡さんがフジ韓流ゴリ押し批判したら干されたのでウジテレビ凸
http://hayabusa.2ch.net/test/read.cgi/news4vip/1366990405/
0650nobodyさん
2013/04/28(日) 01:08:05.93ID:A2fSkdFWウェブサイトを制作しており、初回訪問時に設問を表示し、その答えに応じてメニューの並び順などを変えたいと思っています。
Cookieに保存し次回訪問時も引き継ぎたいです。
$pt = $_POST["pt"];
if ($pt == ""){
$pt = $_COOKIE["pt"];
if ($pt == ""){
header("HTTP/1.1 301 Moved Permanently");
header("Location: ./start.html");
quit();}
} else {
setcookie("pt", $pt, 0, "/", "www.exsample.jp");}
$topMenu[0] = "<a href=\"aa\" alt=\"aa\">aa</a>";
$topMenu[1] = "<a href=\"bb\" alt=\"bb\">bb</a>";
switch ($pt){
case "1": $topDisp = array(0, 1);
break;
case "2": $topDisp = array(1, 0);
現在このように書いており、「start.html」にて
<form method="post" action="index.html">
<a href="http://www.exsample.jp" onclick="forms[0].pt='1'; forms[0].submit();">1</a>
<a href="http://www.exsample.jp" onclick="forms[0].pt='2'; forms[0].submit();">2</a>
<input type="hidden" name="pt" value="" /></form>
と、選択させCookieへの保存を行なっているつもりです。
しかし「index.html」へアクセスすると「start.html」に飛びはするのですが、選択しても「start」から移動しません。
どの部分に間違いがありますでしょうか。あまり知識がなく、どうか教えていただきたいです。
また、現在は「start」という別ページを置いていますが、jQueryなどを使い、設問画面がポップアップするという形を取りたいと思っております。
その方法(どの部分でどういった書き方をすれば良いか)も教えて頂ければと思います。
長文となって申し訳ありませんが、よろしくお願いします。
0651nobodyさん
2013/04/28(日) 06:40:23.43ID:???0653nobodyさん
2013/04/28(日) 19:10:31.55ID:???// 222を出力するクラスaaa
class aaa{
function aaa_m(){
echo "222<br>";
}
}
// クラスaaaを継承したクラスbbb
// ヒアドキュメント内でクラスaaaのメソッドを出力
class bbb extends aaa{
function bbb_m(){
echo <<< EOF
111<br>
{$this->aaa_m()}
333<br>
EOF;
}
}
$bbb = new bbb;
$bbb->bbb_m();
クラスbbbのメソッドbbb_mを使うと
111、222、333とならぶはずが
222、111、333となります
となってしまいます。ヒアドキュメント内でクラスを使うと
最初に呼び出される仕様なのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています