【PHP】下らねぇ質問はID出して書き込みやがれ 112
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/10/31(月) 05:11:09.81ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 111
http://hibari.2ch.net/test/read.cgi/php/1317232566/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0302nobodyさん
2011/11/08(火) 23:06:06.38ID:lQaQJdzP0303nobodyさん
2011/11/08(火) 23:41:21.56ID:UTCFCr2RbindValueでINT指定でOKみたいなのですが、こうするしかないのでしょうか
0304nobodyさん
2011/11/08(火) 23:51:46.78ID:???一度yumでreadlineをremoveしてソースからビルドしてみたらどうですかね?
phpもソースからなんだし。
0307301
2011/11/09(水) 00:58:44.47ID:???32bit版では全く問題が無かったのです
パスを指定する必要もありませんでした
なので64bit版でも出きるだろうと思っていたのですが・・・
>>305
今--with-libdir=lib64を./configureに追記して実行してみました
しかし、やはりconfigure: error: readline library not found
が出てしまいました
自分、コマンドラインからも結構PHP使うもので、出来ればreadline入れたいなと思っております
0308nobodyさん
2011/11/09(水) 01:16:29.04ID:???0310nobodyさん
2011/11/09(水) 03:11:24.10ID:???/lib64 を指定しないと LD_LIBRARY_PATH に lib64を付加したところが探されるんじゃないのかな
0311nobodyさん
2011/11/09(水) 13:16:45.24ID:???マルチ乙
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1075068565
0312nobodyさん
2011/11/09(水) 13:25:51.50ID:???楽な方法ってどんな方法?
0313312
2011/11/09(水) 13:27:57.32ID:ICnxPKAlあと、毎回じゃなくて一定回数ごとに変化する方法も知りたい。
通信エラーのたびに最初のページからってのはさすがにうざいからな。
0314nobodyさん
2011/11/09(水) 13:35:23.73ID:???マニュアルにそのままやりたい事が関数に用意されてるだろ
0315nobodyさん
2011/11/09(水) 13:45:45.09ID:???0317nobodyさん
2011/11/09(水) 13:58:08.00ID:???自分の無知さをセッションのせいにするなよw
0318nobodyさん
2011/11/09(水) 14:55:21.12ID:Ubneb9ND表示されるのは元の文字列の「Hello」です
翻訳文字列を表示させたいのですがzipで一式あげましたのでご助言お願いします
ttp://www1.axfc.net/uploader/File/so/71394.zip
コードはgettext.php、翻訳ファイルのバイナリはdefault.moです
default.poも一応載せておきます(poeditで作りました)
0319nobodyさん
2011/11/09(水) 15:16:56.26ID:???0320nobodyさん
2011/11/09(水) 15:28:05.29ID:Ubneb9ND修正して再度アップロードしました
ttp://www1.axfc.net/uploader/File/so/71395.zip
現在も表示させる事はできません
0321nobodyさん
2011/11/09(水) 15:39:41.35ID:Ubneb9ND翻訳ファイルは指定された位置を置くルールがあるようで翻訳ファイルをルールに沿って指定した場所に置くと事で表示させることができました
0322nobodyさん
2011/11/09(水) 17:39:45.51ID:???>>240-241の指定の仕方だと
大量のWarningが出てダメだよね
loadHTML()系はJavaScriptとか入ってるだけで大量にエラーでるから
・・・って俺だけなのかな?
0323nobodyさん
2011/11/09(水) 17:45:22.41ID:???そこだけエラー抑制しとけば
0324nobodyさん
2011/11/09(水) 18:05:29.22ID:???@でもつけとけ。
0325nobodyさん
2011/11/09(水) 18:08:41.19ID:???と言うことは>>241のニコ動も・・・
・・・というかそこだけエラー抑制ってどういうこと?
$doc->@loadHTML()ってこと?
これじゃそこだけじゃなく、全体を抑制するからね
0326nobodyさん
2011/11/09(水) 18:14:48.53ID:???0327nobodyさん
2011/11/09(水) 18:22:05.56ID:???error_reporting(E_ALL ^ E_WARNING);
$doc->loadHTML($source);
error_reporting(E_ALL);
0329nobodyさん
2011/11/10(木) 11:39:56.26ID:9jcxfb/Whoge.com/?page=info
を、
hoge.com/info/
と置換されるようにして
静的URLにみせてるのですが
その影響でアクセス解析等を導入したとき
実際に
hoge.com/acc/
にアクセス解析があるのに、
hoge.com/?page=acc
と置換されて、表示できなくなります。
何かうまい解決策はないでしょうか。
0330nobodyさん
2011/11/10(木) 11:45:38.90ID:???MVCをなぜ書いたのかと、なぜPHPなのかはおいといて
アクセスログを見るツールだったら、そのまま表示されるはずだが?
もしかして、リライトじゃなくリダイレクトしてないよな
ま、どう出るかは解析ツール次第だろうな
0331nobodyさん
2011/11/10(木) 12:26:25.73ID:???を、
hoge.com/info/
と置換されるようにして
静的URLにみせてるのですが
逆じゃね?
0332nobodyさん
2011/11/10(木) 13:06:05.70ID:???MVCとか関係ねーよ
0333nobodyさん
2011/11/10(木) 13:18:25.64ID:???0334nobodyさん
2011/11/10(木) 17:37:41.31ID:MAuKgtyHデータベースにprepareでインサートするときはprepareを使うとエスケープがいらないって聞いたのですが
インサートしてもエスケープされません
<とか>などはエスケープされないってことですか?
インサートする文字列↓
<b>てすと</b>
0335nobodyさん
2011/11/10(木) 17:44:00.14ID:???0336nobodyさん
2011/11/10(木) 17:45:28.10ID:???どういうコード書いたの?
0337nobodyさん
2011/11/10(木) 17:59:21.53ID:MAuKgtyH$sql = 'insert into tbl (id, text) values (:id, :text)';
$stmt = $sqlite3->prepare($sql);
$stmt->bindValue(':id', 1, SQLITE3_INTEGER);
$stmt->bindValue(':text', "<b>てすと</b>", SQLITE3_TEXT);
$stmt->execute();
0338nobodyさん
2011/11/10(木) 18:23:31.78ID:Capr9OYXhttp://jp.php.net/manual/ja/function.simplexml-load-file.php
の通りに
SimpleXMLElement Object
( [title] => Example Title
...)
のような形でアクセスするところまではできたのですが
これを逆にxmlの形に戻す事は可能でしょうか?
例えば
http://headlines.yahoo.co.jp/rss/rps_dom.xml
において<item>単位で、かつ
<item>
<title>後付け電装品による火災に再度注意喚起 国交省(レスポンス)</title>
<link>http://rd.yahoo.co.jp/rss/l/headlines/soci/rps/*http://headlines.yahoo.co.jp/hl?a=20111110-00000043-rps-soci</link>
<category>社会</category>
<pubDate>Thu, 10 Nov 2011 17:55:41 +0900</pubDate>
</item>
のようにタグを含んだ状態でDBに1コードずつ保存したいです。
DBはtitle,orijin_xmlなどのカラムを持ってタイトルはタイトルでタグが無い状態で欲しいので
simplexml_load_file()で処理した後に取得できるのですが、両方いっぺんには無理でしょうか?
0339nobodyさん
2011/11/10(木) 19:58:34.70ID:ZhWtNVenそれとも削除フラグが立って、削除自体はGCか何かであとでまとめて削除されるんですか?
session_save_path()でセッションの保存先をpublic_html以下にしてみて
session_destroy()を呼んでみて確認したところ、削除されていないような感じだったので・・・
0340nobodyさん
2011/11/10(木) 20:03:53.08ID:???0341339
2011/11/10(木) 20:18:05.94ID:???レスどうもありがとうございます
session_start();
$_SESSION = array();
はやっています
ini_set('session.use_cookies','0');
にしているのでセッションクッキーの箇所はマニュアルの例とは違っています
そのレスだとすぐにセッションファイルが削除されるってことですよね
わかりました
0342nobodyさん
2011/11/10(木) 22:15:11.52ID:J5cnYxt0今日おれの誕生日だ。
ケーキ買いに池袋いったんだ。
そしてケーキ屋の人がだれかの祝いですか、と聞かれて僕です
と答えたら、周りの従業員さん5名にbookoffみたくおめでとうと言われて
非常にはずかしかった。
どうしたらいい?
0343nobodyさん
2011/11/10(木) 22:20:43.89ID:???俺も8日に誕生日だった。
地震以来久々に妹からメールが来た。
読んだところ
「部屋にあるジョジョよんでいい?」
だった
そんなもんだ
0344nobodyさん
2011/11/10(木) 22:27:05.89ID:J5cnYxt0笑える。
でもさ、でかい声で今日お誕生日の方いらっしゃいました
とか言う必要なくない。
一人で来ているのに、もうはずかしくて。
まさかそんな待っている間拷問だった
0345nobodyさん
2011/11/10(木) 22:29:13.25ID:???と思って店員が気を効かせて祝ってくれたんだから有りがたく思え。
そして思いっきりスレチだ。
0346nobodyさん
2011/11/10(木) 22:31:54.86ID:J5cnYxt0じゃあ、こういうこと書ける板ってどっかある?
ちゃんと家族で食べたよ。恋人はいませんけど。
もう二度とあのケーキ屋にはいかない。
あーあおれの誕生日も後2時間か。いいことなかったな
0347nobodyさん
2011/11/10(木) 23:03:13.06ID:???0349nobodyさん
2011/11/11(金) 04:04:18.29ID:???当たり前だろ
データベースのエスケープ処理はSQLインジェクションを防ぐための処理
SQLインジェクションに<>は関係ない
<>のエスケープはXSSを防ぐための処理だ
んで本題だがHTMLタグってのはデータベースにはそのまま入れる
んで取り出してHTMLに表示するときにhtmlspecialcharsでエスケープをして表示する
0350nobodyさん
2011/11/11(金) 04:11:44.22ID:???0351nobodyさん
2011/11/11(金) 04:52:59.71ID:???PHPプログラマーの、お姉さんだ!
徹夜明けの始発で帰宅中だ。
頭がテンパッテルから
どんな質問にも答えるぞ!
0352nobodyさん
2011/11/11(金) 05:04:13.04ID:mPjM7esZインデントをそろえるにはどうしたらよいですか?
0353nobodyさん
2011/11/11(金) 06:26:12.16ID:???> htmlのソースが汚くなってしまう
> インデントをそろえるには
htmlを出力する部分のPHPコード、そのPHPコードのインデントを変えてみてください。
いろいろと、自分で試してみると思い通りの結果が得られることがあります。
by 帰宅したお姉さん
0358nobodyさん
2011/11/11(金) 11:45:59.13ID:2qMnb8p5realの方は文字コードを考慮したエスケープを行うとのことですが
mysql_escape_stringをつかった時、
具体的にどういうデータがどのように問題になるのでしょうか?
0359nobodyさん
2011/11/11(金) 11:51:46.01ID:???ttp://php.net/manual/ja/function.mysql-escape-string.php
>この関数は PHP 5.3.0 で 非推奨となりました。 この機能を使用しないことを強く推奨します。
>注意:
>mysql_escape_string() は、 % および _ をエスケープしません。
0360nobodyさん
2011/11/11(金) 11:55:36.38ID:???具体的に% および _ をエスケープしないことでどのような問題があるのでしょうか?
like文のパラメータとして働かなければ%はただの文字列では?
0361nobodyさん
2011/11/11(金) 12:50:26.64ID:???%E3%81%8A%E3%81%BE%E3%81%88%E3%81%AF%E3%83%90%E3%82%AB%E3%81%A0%E3%81%AA
0362nobodyさん
2011/11/11(金) 12:55:32.49ID:???危険だから使うなとか、
''で囲まずにそのまま変数をクエリに代入して「危険」とかそんなの当たり前だろ!っていう例とか
なんなの??
0363nobodyさん
2011/11/11(金) 12:58:28.04ID:???本当このスレはレベルが低い質問に群がるレベル低い回答者であふれてるぜwwwwwwwwwww
ttps://twitter.com/#!/hiroyuki_ni/status/133990793441591298
0364nobodyさん
2011/11/11(金) 12:58:36.79ID:???mysql_escape_string()はキャラクタセットの変更を考慮しない
更にこの関数自体がセキュリティの観点から見ても好ましくない
例えば、文字列リテラルのメタ文字が増えた場合に意図しない動作になるとかね
0366nobodyさん
2011/11/11(金) 13:08:33.44ID:???ありがとうございます
抽象的な説明はいろいろ読みましたが
知りたいのは
「こういう文字をmysql_escape_stringにかけたらこうなり
mysql_real_escape_stringにかけたらこうなる
だから問題だ」
という具体例です
説明から例が思いつかないので腑に落ちないのです
0370nobodyさん
2011/11/11(金) 15:10:02.82ID:???0371nobodyさん
2011/11/11(金) 15:14:32.29ID:Hw6ayFxo作るのはスーパーマリオブラザーズで例えると
技術的にどれくらいのレベルですか?
ちなみに hello php World が、1-1です。
0372nobodyさん
2011/11/11(金) 15:23:13.91ID:???0373nobodyさん
2011/11/11(金) 15:33:12.10ID:???0374nobodyさん
2011/11/11(金) 15:37:19.26ID:???そのへんもちゃんとやるならクッパ倒すより難しい
0375nobodyさん
2011/11/11(金) 15:40:57.03ID:???情報を表示するだけならもうちょっと簡単じゃない?
0376nobodyさん
2011/11/11(金) 15:42:36.09ID:???ちゃんと設計して考えてやれば1ヶ月ぐらいかかるな
0377nobodyさん
2011/11/11(金) 15:47:14.11ID:3zpr0Z+7更新する際にブラウザから受け取った主キーの値の物を上書きするため、
何らかの方法でPOSTを書き換えると関係無いデータに上書きしてしまいます。
あえてセッションを使わない方法で、
これを回避するにはどうしたらいいでしょうか?
0378nobodyさん
2011/11/11(金) 16:06:27.30ID:???1. フォームにユニークな識別子を割り振る
2. フォームの識別子と主キーをペアにしてDBに保存する
3. フォームに識別子を埋め込んで出力する
4. 送信されてきた識別子でDBから主キーを逆引きする
0379nobodyさん
2011/11/11(金) 16:11:47.26ID:???それはその通りだと思いますが
ここまで具体例がネット上にないのは
ほとんど問題の本質が理解されていないのではないでしょうか?
ググりまくりましたが
「なんとなく分かったことにしておこう」
的な意識を全般的に感じました
0380nobodyさん
2011/11/11(金) 17:07:51.83ID:???サンプルのコピペで実行されない様にする為に決まってんだろ
0381nobodyさん
2011/11/11(金) 17:17:01.94ID:???意味が分かりません
あなたは自分の言っていることが自分で分かっているのですか?
そして自分の言葉が他人に分かると思いますか?
0382nobodyさん
2011/11/11(金) 17:57:50.27ID:???あんまり分かってない(のが多い)ってのは事実だよ。
理由は、ここ見れば全部分かる、間違ってないってサイトが無いからな。
あれば ここみろで終わりだしな。
ヘンテコ本が蔓延したのもあるし、公式は間違って無いが、細かいところが足りない。
0383nobodyさん
2011/11/11(金) 18:09:09.09ID:Hw6ayFxocase 'a_page':
a_page();
break;
case 'b_page':
shop();
break;
case 'c_page':
contact();
break;
}
function a_page(){
include_once(dirname(__FILE__)."/VIEW/a_page.php");
}
function b_page(){
include_once(dirname(__FILE__)."/VIEW/b_page.php");
}
function c_page(){
include_once(dirname(__FILE__)."/VIEW/c_page.php");
}
サンプルを参考にしながら、MVCのコントローラー部分、
引数に応じて表示させるページを変えるというのをやってるんですけど
ページを一個追加するたんびに 同じ名前なのに
case名 指定関数名 定義関数名 phpファイル名 と4箇所も
書いていかなくてはなりません。
なんかとても無駄なことしてる感じがするんですが
こういうものですか?
0384nobodyさん
2011/11/11(金) 18:24:04.80ID:???ページ発行の度にDBに登録するのは手間ですが、
これならとりあえずは問題無さそうです。
ありがとうございます
0385nobodyさん
2011/11/11(金) 18:29:18.58ID:???function作る必要ないじゃん
case 'a_page':
include_once(dirname(__FILE__)."/VIEW/a_page.php");
break;
でいいじゃない
0386nobodyさん
2011/11/11(金) 18:32:26.28ID:???a_pageが来たらviewのa_page.phpを探しに行くのはダメなのかな?
a_page.phpのなかは一つのクラスにして、
そのクラスのなかでいろいろ処理をする
Zendはそんな感じだった記憶あるし
0387nobodyさん
2011/11/11(金) 18:36:04.00ID:Hw6ayFxo変数がスコープされてどうたらこうたらで
セキュリティ的にヨシらしいです。
0388nobodyさん
2011/11/11(金) 18:38:57.80ID:???どんな資料かはわからないけど、
関数の中では変な変数を作っても外に影響はないとか、
そういう意味なのではと予測してみる
0389nobodyさん
2011/11/11(金) 18:58:12.64ID:???ページ増やすのも 配列に追加するだけで済ますことも出来るけど、
こうしないと出来ないこともあるわけで、なにがいいかは分かりません。
0390nobodyさん
2011/11/11(金) 19:28:42.73ID:jLYP25UJできます。
最近のバージョンで変わったんでしょうか?
0391nobodyさん
2011/11/11(金) 20:40:20.86ID:???ソースはよ
0392nobodyさん
2011/11/11(金) 21:10:31.30ID:???すみません、できませんでした
requireはwarning後にfatalエラー出るんですね
0393nobodyさん
2011/11/11(金) 21:30:23.03ID:???無駄だよな。だからもっと省略しようぜって動きがフレームワーク
<?php
define('VIEW_DIR', dirname(__FILE__) . '/view/');
$page = 'page_' . (@$_REQUEST['page'] ? $_REQUEST['page'] : 'a');
if (function_exists($page)) { $page(); } else { die($page . ' not exists.'); }
function page_a() { include VIEW_DIR . 'a.php'; }
function page_b() { include VIEW_DIR . 'b.php'; }
function page_c() { include VIEW_DIR . (mt_rand(0, 1) ? 'c1.php' : 'c2.php'); }
0396nobodyさん
2011/11/11(金) 23:05:15.81ID:???0397nobodyさん
2011/11/12(土) 10:02:10.03ID:???https://twitter.com/#!/ts_3156/status/121974805573545984
PHPでもGUIは作れます
PythonもRubyもGUIは作れますがライブラリを入れないと作れません
PHPも同じです
バカは一人前にディスるな
0398nobodyさん
2011/11/12(土) 10:25:58.18ID:???ただのバカだ。 大事なのは反応しないこと。
荒らして反応があるのがたまらなくうれしいんだからな。
反応があってうれしいか?荒らしくんw
0399nobodyさん
2011/11/12(土) 14:13:37.07ID:y4Nx+kxFC0/C1/C2
検査網羅率(テストカバレージ)
というものを知りました。
これ・・・、
かなり手間がかかりそうな話なんですけど
みんな、ある程度やってものなんですか?
0400nobodyさん
2011/11/12(土) 14:19:35.83ID:???0401nobodyさん
2011/11/12(土) 14:37:33.61ID:???■ このスレッドは過去ログ倉庫に格納されています