- 1 名前:nobodyさん mailto:sage [2009/02/03(火) 01:09:36 ID:???]
- まず読め→【PHP マニュアル】www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。 過去スレ、関連スレ、FAQなどは>>2-10辺り 次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
- 633 名前:nobodyさん mailto:sage [2009/07/03(金) 11:50:14 ID:???]
- だいいち{}で変数が埋め込めてるわけじゃないし。
埋め込めてるのはダブルクオーテーションの機能だろ {}は区切り文字なだけ
- 634 名前:nobodyさん mailto:sage [2009/07/03(金) 12:48:46 ID:???]
- >>632
" や ' 以外の括り文字でもあればいいのかもね。 それとは別に Perl や Ruby の q| | とかもほしいなぁ。
- 635 名前:nobodyさん mailto:sage [2009/07/03(金) 23:23:32 ID:???]
- 613ですが自己解決しました。
プラグインで smoothview というのがあったので そのインターフェースを改造しました。
- 636 名前:nobodyさん mailto:sage [2009/07/04(土) 07:55:20 ID:???]
- もしかしてsmartyなんじゃないの?
smartyって{}を多用するよね。
- 637 名前:nobodyさん mailto:sage [2009/07/05(日) 21:23:19 ID:???]
- powerd by *****
と表示しなくてもいいCMSはありませんか?
- 638 名前:nobodyさん mailto:sage [2009/07/08(水) 11:36:42 ID:???]
- すいません、こちらで質問していいのかどうかわからないんですが
レンタルサーバの設定では、PHPを「FastCGI アプリケーションモード」で動かしているらしいのですが 結構頻繁に「The FastCGI process exceeded configured activity timeout」ってエラーが出ます。 サーバ会社に聞くと、「FastCGIに対応したコードを記述してないからです」と言われたのですが、 当方、参考書を見ながら作成しているのですが、どこにもFastCGIについて書かれておらず どこかにその対応コードなどが記載されているような参考にできるサイトを知っている方はいらっしゃらないでしょうか?
- 639 名前:nobodyさん mailto:sage [2009/07/08(水) 11:48:42 ID:???]
- >>638
_______ __ // ̄~`i ゝ `l | / / ,______ ,_____ ________ | | ____ TM | | ___ // ̄ヽヽ // ̄ヽヽ (( ̄)) | | // ̄_>> \ヽ、 |l | | | | | | | | ``( (. .| | | | ~~ `、二===-' ` ===' ' ` ===' ' // ̄ヽヽ |__ゝ ヽ二='' ヽヽ___// 日本 _____ _____ ______ _______ | ウェブ | | イメージ | | グループ | | ディレクトリ |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ._________________ |FastCGI PHP │・検索オプション └────────────────┘・表示設定 | Google検索 | I'm Feeling Lucky | ・言語ツール  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ○ウェブ全体から検索 ◎日本語のページを検索
- 640 名前:nobodyさん mailto:sage [2009/07/08(水) 11:52:55 ID:???]
- たんに処理時間が長くてタイムアウトしているんじゃないかなぁ
- 641 名前:nobodyさん mailto:sage [2009/07/08(水) 11:59:11 ID:???]
- >>638
すいません、すでにいろいろとぐぐってはいるんですが サーバ側でFastCGIを導入する方法ばかり記載されており、PHPでサイトを作る際の注意点などが記載されているものがなく 困っております。 そこで、そのような記載があるサイトがないかお尋ねしたのですが、やはり難しいのでしょうか。
- 642 名前:nobodyさん mailto:sage [2009/07/08(水) 12:01:18 ID:???]
- ActivityTimeout=300
- 643 名前:nobodyさん mailto:sage [2009/07/08(水) 12:11:40 ID:???]
- >>642
ありがとうございます。 タイムアウトの設定を変える内容のようですが、そちらはPHPファイルのどの当たりに記載すればよろしいのでしょうか? そのコードがレンタルサーバ会社の言う、こちらが記載すべき「FastCGIに対応したコード」というものなのでしょうか。 なんどもお聞きしてしまって申し訳ありません
- 644 名前:nobodyさん mailto:sage [2009/07/08(水) 12:37:53 ID:???]
- FCGIext.iniだよ
- 645 名前:nobodyさん mailto:sage [2009/07/08(水) 12:55:07 ID:???]
- >>644
ありがとうございます。 調べたところ、レンタルサーバの管理上FCGIext.iniの編集はこちらではできないようになっているようです わからないことばかりなので、もうすこしぐぐったりして基礎知識から勉強をしなおそうと思っています ご助言をしていただいた方々、ありがとうございました
- 646 名前:nobodyさん mailto:sage [2009/07/08(水) 14:16:07 ID:???]
- PHPを始めたばかりでどうしてもよくわからない点があります。
考え方といいますか、流れを教えてください。 XHTMLとCSSで縦2分割サイトを考えており、左に配置したドロップダウンリストから選択、 右側に内容表示というよくあるパターンです。内容はMySQLから取り出す予定です。 ここでわからないのが、内容の表示位置の指定です。 MySQLのデータとCSSタグを一緒に出力すればよいのでしょうか? 根本的な勘違いをしているような気がしてならないのですが、どこが勘違いなのかも よくわからないです。
- 647 名前:nobodyさん mailto:sage [2009/07/08(水) 14:34:54 ID:???]
- MySQLのデータとHTMLタグを一緒に出力して
CSSでその位置を指定すればいいのでは
- 648 名前:nobodyさん mailto:sage [2009/07/09(木) 12:14:47 ID:???]
- prototype.jsのAjax.Updaterを使えば簡単なんじゃないか。
推奨はしないけど。
- 649 名前:nobodyさん mailto:sage [2009/07/09(木) 13:19:44 ID:???]
- >>647
ありがとう。 その方法だとうまくいかないのです。 サイト全体が置き換わってしまうので、結局すべてのHTMLにメニューをつけないと ダメっぽいです。 >>648 ありがとう。 いまググってみました。 たしかにやりたいことと合致します。 ただ、これから言語をマスターするので、より簡単といわれているPHPを覚えたい という気持ちがあります。JSと両方覚えれば済む話ではあるのですが、オレには キャパがないです。たぶん。
- 650 名前:nobodyさん mailto:sage [2009/07/09(木) 14:26:18 ID:???]
- >>649
iframeって手もあるな。
- 651 名前:nobodyさん mailto:sage [2009/07/09(木) 17:26:11 ID:???]
- phpを使うならJavascriptはある意味必須だよ。
連携しないと実現出来ない事も多々あるし。
- 652 名前:nobodyさん mailto:sage [2009/07/09(木) 18:41:50 ID:???]
- >>650
ありがとう。 iframe
- 653 名前:nobodyさん mailto:sage [2009/07/09(木) 18:48:35 ID:???]
- すまんそん。
>>650 ありがとう。 iframeは考えたんですけど、XHTML1.1で非サポートになり、策定中のHTML5.0でも 廃止になるということで、使わない方向を考えてました。 >>651 ありがとう。 JavaScriptも必須ですか。 まったくの初心者なので、PHPの公式マニュアルを読むだけで苦労してます。
- 654 名前:nobodyさん mailto:sage [2009/07/09(木) 21:36:35 ID:???]
- iframeなくなるの?
- 655 名前:age [2009/07/09(木) 22:48:26 ID:DwSsHHgt]
- ファイルをアップロードしmove_uploaded_fileをした時点で
強制的にサーバとPCとのコネクションを切断する事は可能ですか?
- 656 名前:nobodyさん mailto:sage [2009/07/10(金) 02:40:08 ID:???]
- >>655
exit か die で終了させちゃえばいいんじゃないの。
- 657 名前:nobodyさん mailto:sage [2009/07/10(金) 12:50:37 ID:???]
- >>654
iframeは、XHTML1.1ではすでに無いです。 W3Cの勧告でもHTML5.0で無くす方向で進めているようです。
- 658 名前:ユキ [2009/07/12(日) 04:36:26 ID:au+P+rHJ]
- 初めまして。
PHPど素人です。 インターネットで調べながらPHPの問題に取り組んでいますが、 2週間以上掛けても全く分かりません。 どのように書くのか教えていただけないでしょうか。 『EmEditor Free Version 6.00.4』とザンプを使っています。 問題は以下のとおりです。 『数値1〜9があります。全て4桁です。 9つの数字の中の最大値と最小値を出力しなさい。 負の数と5桁以上の数値が入力された場合エラーと出力する。 さらに数値1〜9のどの数値が最大値、最小値か出力しなさい。』 ループとfunctionを使うそうなんですが、どう使えばいいのか分からず、 ゼロの状態です。 皆様、お忙しいと思いますが、助けていただきたいです。 お願い致します。
- 659 名前:nobodyさん mailto:sage [2009/07/12(日) 05:09:19 ID:???]
- 宿題は自分で
- 660 名前:nobodyさん mailto:sage [2009/07/12(日) 08:09:56 ID:???]
- >>658
数値1を入力する 数値2を入力する 数値3を入力する 数値4を入力する 数値5を入力する 数値6を入力する 数値7を入力する 数値8を入力する 数値9を入力する ↓ 数値1に入れられた数値を、$aに入れる 、、、、 数値9に入れられた数値を、$iに入れる
- 661 名前:nobodyさん mailto:sage [2009/07/12(日) 08:11:34 ID:???]
- $aが4桁か調べる。
もし5桁以上なら、エラーを吐いて死ぬ。 4桁なら、こんどは、$aが負の数かどうかを調べる。 0以上なら、おk。 もし負の数なら、エラーを吐いて死ぬ。 $aのチェックが終わったら、$b、そして 、、、、$i。
- 662 名前:nobodyさん mailto:sage [2009/07/12(日) 08:14:51 ID:???]
- 次に、$a〜$iを配列に入れる。
そんで、その中の最大値を調べる(専用関数あり) そして、こんどはその配列の、最小値を調べる(専用関数あり) そんで、最大値のvalueに一致するkeyを調べて、 「この数値○が最大でした」って表示 次に、最小値がでたところのvalueのkeyを調べて、 「この数値のときに最小でした」って表示。 以上。あとは上記の仕様書をプログラマーに食わせれば ソースコードを吐く。
- 663 名前:nobodyさん mailto:sage [2009/07/12(日) 08:24:10 ID:???]
- >>660-662
それだと「さらに数値1〜9のどの数値が最大値、最小値か出力しなさい」 の設問には答えられないので、もう一工夫が必要。
- 664 名前:nobodyさん mailto:sage [2009/07/12(日) 08:51:58 ID:???]
- preg_matchでチェックとセットが同時にできる
- 665 名前:ユキ [2009/07/12(日) 14:48:56 ID:tG558Uf0]
- >>660-664
ご親切にありがとうございます!!!!! おかげさまで$aの桁を調べるまで出来ました! 書いていただいた内容をヒントにもう少し自分で頑張ってみます!
- 666 名前:ユキ [2009/07/12(日) 22:27:20 ID:tG558Uf0]
- 以下のように書いてみましたが、
これからどのようにfunctionとループを使えばいいのかどうしても分かりません。 解答、あるいはヒントを頂けないでしょうか? 度々すみません。 if($a > 9999 or $a < 0){ echo "<div>エラー</div>"; } else { echo "<div>$a</div>"; } if($b > 9999 or $b < 0){ echo "<div>エラー</div>"; } else { echo "<div>$b</div>"; } if($c > 9999 or $c < 0){ echo "<div>エラー</div>"; } else { echo "<div>$c</div>"; } if($d > 9999 or $d < 0){ echo "<div>エラー</div>"; } else { echo "<div>$d</div>"; } if($e > 9999 or $e < 0){ echo "<div>エラー</div>"; } else { echo "<div>$e</div>"; }
- 667 名前:ユキ [2009/07/12(日) 22:28:07 ID:tG558Uf0]
-
if($f > 9999 or $f < 0){ echo "<div>エラー</div>"; } else { echo "<div>$f</div>"; } if($g > 9999 or $g < 0){ echo "<div>エラー</div>"; } else { echo "<div>$g</div>"; } if($h > 9999 or $h < 0){ echo "<div>エラー</div>"; } else { echo "<div>$h</div>"; } if($i > 9999 or $i < 0){ echo "<div>エラー</div>"; } else { echo "<div>$i</div>"; } $x = array( $a , $b , $c , $d , $e , $f , $g , $h ,$i ); echo " 最大値: " .max($x). "<br />\n"; echo " 最小値: " .min($x). "<br />\n";
- 668 名前:nobodyさん mailto:sage [2009/07/12(日) 23:06:46 ID:???]
- 人力ループしてから配列に叩き込むセンスに感心しすぎて何も言えない
- 669 名前:nobodyさん mailto:sage [2009/07/13(月) 02:32:15 ID:???]
- すげぇ。授業はこれまで全部受けてるの?
受けてたとしたらこの段階でこんな問題出した教師が悪い
- 670 名前:nobodyさん mailto:sage [2009/07/13(月) 11:10:34 ID:???]
- >>666
function は 一部の値だけを変えて同じ処理が続く場合に使います。 >>666-667を良く見てみると、同じ記述が見つかりますね。 まずは、共通化できる処理をfunction化してみましょう。 ループ(for while fareach)は、 一部の値を変化させながら同じ処理を繰り返すときに使います。 同じような命令が繰り返している箇所をループ化してみましょう。
- 671 名前:nobodyさん mailto:age [2009/07/13(月) 18:25:41 ID:???]
- ローカル環境でテストするときに
実際のフルパスを書き換えないでテストできる フリーの開発ツールを前に何かで見つけたのですが ご存じないでしょうか?
- 672 名前:nobodyさん mailto:sage [2009/07/13(月) 18:29:50 ID:???]
- PEAR使うとエラーが出まくるんだけど、これって
どうすればいいの?
- 673 名前:nobodyさん mailto:sage [2009/07/13(月) 19:15:29 ID:???]
- >>671
パスは設定ファイルに入れておけばいいじゃない。 完全一致を期待してるとカスタマイズとかのときにも パスの全チェックをしなきゃいけなくなるから面倒だよ。 または、Windows/OSXにもそれぞれ仮想環境ツール が出ているから、仮想環境ツールに、お目当てのOS を入れて、Explorer/Finderからコードを更新できるよう、 Sambaあたりを入れて動かしておけばいいかと。
- 674 名前:nobodyさん mailto:sage [2009/07/13(月) 19:16:10 ID:???]
- >>672
PEARのインストールができているかまずチェック。
- 675 名前:nobodyさん mailto:sage [2009/07/13(月) 21:11:07 ID:???]
- >>673
php.iniで簡単に出来ました。 ただすべてのページにbase hrefを入れているので階層めぐりは無理でしたorz どこかにコールバック関数と連携させてうまく開発出来る海外のツールがあったと思うんだけどなぁ。。 もう一度探してみます。ありがとうございました。
- 676 名前:nobodyさん mailto:sage [2009/07/15(水) 03:07:14 ID:???]
- [環境] WinXP(XAMP) + PHP5
[質問] メンバ関数をメンバ変数の連想配列にぶち込みたい。 ※2が通るような使い方をしたいのですが、やりかたをご教授いただけませんでしょうか、、、。 ---------------------------- ※1 OK function HogeFunc { echo "Called HogeFunc1"; } class HogeClass1{ public function Action() { foreaech( $m_Array as $key => $value ) { $value(); } } $m_Array = array( "HOGE_TAG", "HogeFunc1" ); //! 呼び出しOK }; ---------------------------- ※2 こいつはNG class HogeClass2 { public function Action() { foreaech( $m_Array as $key => $value ) { $value(); } } public static function HogeFunc2 { echo "Called HogeFunc2"; } $m_Array = array( "HOGE_TAG", "HogeClass2::HogeFunc2" ); //! 呼び出すとエラー } ※※エラー内容※※ Fatal error: Call to undefined function HogeClass2::HogeFunc2() in ....省略 ----------------------------
- 677 名前:nobodyさん mailto:sage [2009/07/15(水) 03:15:04 ID:???]
- 下の奴パースエラーにならないか?
- 678 名前:nobodyさん mailto:sage [2009/07/15(水) 03:16:29 ID:???]
- 上もだった。
色々ひどい。HOGE_TAG関数もないし
- 679 名前:nobodyさん mailto:sage [2009/07/15(水) 05:17:03 ID:???]
- Reflection API
- 680 名前:nobodyさん mailto:sage [2009/07/15(水) 10:01:02 ID:???]
- >>674
そういう問題じゃなくて。 PEARの書き方が古すぎて、 noticeが出まくるってこと。
- 681 名前:nobodyさん mailto:sage [2009/07/15(水) 15:59:14 ID:???]
- エラー表示の制御は基本中の基本だぞ
- 682 名前:nobodyさん mailto:sage [2009/07/16(木) 17:37:24 ID:???]
- PHPを勉強しようと思ってPHPをDLするのにサイトに行ったけど
全く繋がらないんだが俺だけかな?
- 683 名前:nobodyさん mailto:sage [2009/07/16(木) 18:39:37 ID:???]
- www.php.netやphp.netじゃつながらなかったが
jp.php.net jp2.php.netとかはつながった
- 684 名前:nobodyさん mailto:sage [2009/07/16(木) 19:15:41 ID:???]
- >>683
ホントだ! これでDLして勉強できる・・・ ありがとうございます
- 685 名前:質問です mailto:sage [2009/07/22(水) 01:15:02 ID:???]
- xhtml構造で
他ページにおいてるphpを読み込むには どうしたらいいですか? いまはとりあえず、インラインとかobjectタグで 呼び出しています ほかに良い方法があればお教えください
- 686 名前:nobodyさん mailto:sage [2009/07/22(水) 04:17:36 ID:???]
- >>685
軽くエスパーして つ require
- 687 名前:nobodyさん mailto:sage [2009/07/22(水) 16:32:04 ID:???]
- すいません。超初心者ですが、配列と変数について困っています。
$ar = array(1,2); とすると Array ( [0] => 1 [1] => 2 ) と表示されるのですが、 $date = "1,2"; $ar = array($date); とすると Array ( [0] => 1,2 ) と表示されてしまいます。 $dateにはテキストボックスから自分で数字とコンマを入力して代入するようになっているのですが、 これらを配列として扱うようにするには、どのように記述すればよいのでしょうか。 申し訳ありませんがよろしくお願いします。
- 688 名前:nobodyさん mailto:sage [2009/07/22(水) 17:05:38 ID:???]
- $date = explode(",",1,2);
while ($i == 0){ $date1 = mt_rand(0,1000); $date2 = mt_rand(0,1000); if ($date1 == $date[0]){ if ($date2 == $date[1]){ break; } } } $ar = array($date1,$date2);
- 689 名前:687 mailto:sage [2009/07/22(水) 17:05:52 ID:???]
- すいません、自己解決しました。
$ar = array($date); を $ar = explode(",", $date); とすることでうまく動きました。 お手を煩わせて申し訳ありませんでした。
- 690 名前:687 mailto:sage [2009/07/22(水) 17:07:43 ID:???]
- >>688さん
ありがとうございました。
- 691 名前:nobodyさん mailto:sage [2009/07/23(木) 00:45:19 ID:???]
- 685です
>>686トンです require_onceとhtaccessやっても無理でした 再度トライ中
- 692 名前:nobodyさん mailto:sage [2009/07/23(木) 15:34:36 ID:???]
- $this->name = "名前";
$this->mail = "メアド"; $this->tel = "電話"; などとあった場合、$thisの配列の中身を全部一括出力したい場合どうすればよいでしょうか
- 693 名前:nobodyさん mailto:sage [2009/07/23(木) 15:39:20 ID:???]
- var_dump($this);
ちなみに配列じゃないけどね
- 694 名前:nobodyさん mailto:sage [2009/07/23(木) 16:15:48 ID:???]
- >>693
おおーこれ便利ですねー ググって類似のprint_rも覚えました ありがとうございました
- 695 名前:nobodyさん mailto:sage [2009/07/23(木) 16:51:40 ID:???]
- セッションを使ったフォームで、入力してもらったフォーム内容を確認画面に飛ばした後、
入力画面に戻って修正箇所を再入力、というような普通のフォームを作っているのですが、 修正入力のときにフォームのリセットボタンが動作しません(全消去ではなくセッションで渡された内容に戻ってしまう) スクリプトの挙動としては作った通りなので当然なんですが、機能としてどうも違うような気がします 何か解決方法はないでしょうか
- 696 名前:nobodyさん mailto:sage [2009/07/23(木) 17:44:36 ID:???]
- リセットはJSでやりゃあいいじゃん
- 697 名前:nobodyさん mailto:sage [2009/07/23(木) 17:57:10 ID:???]
- UI としてリセット機能は不要なことが多いけど
- 698 名前:695 mailto:sage [2009/07/23(木) 18:08:13 ID:???]
- なるほど、どっちもアリだと思うので両方検討してみます
- 699 名前:nobodyさん mailto:age [2009/07/23(木) 22:50:23 ID:???]
- Apache入れないでphp.exe -lって出来る方法ってありますか?
Apacheを入れたPCでは現在使えています。
- 700 名前:nobodyさん mailto:sage [2009/07/23(木) 23:04:04 ID:???]
- CLI版ならできるんじゃ?
- 701 名前:nobodyさん mailto:age [2009/07/23(木) 23:49:44 ID:???]
- win zip版を落としてきて
パスphp.exe -l "%1" これでダメなのです。 Apacheを入れてるときは動いてたのですが
- 702 名前:nobodyさん mailto:sage [2009/07/24(金) 10:45:01 ID:???]
- エラー文言を出さないのは釣りということ。スルーで。
- 703 名前:nobodyさん mailto:sage [2009/07/24(金) 18:48:34 ID:???]
- $_SESSION["input"] = $_POST;
としてフォームからPOSTされた中身を一括して$_SESSION["input"]に放り込んでるんですが、 さらにそれを一括してhtmlspecialcharsする方法はないでしょうか 現状べた書きでずらずらっと書いてるんですがどうも美しくなく・・・ PHP5
- 704 名前:nobodyさん mailto:sage [2009/07/24(金) 18:57:24 ID:???]
- 最後$_SESSION["input"]にhtmlspecialcharsをすればいいんじゃないの?
- 705 名前:nobodyさん mailto:sage [2009/07/24(金) 19:15:54 ID:???]
- function h($data) {
if (is_array($data)) { return array_map('h', $data); } else { return htmlspecialchars($data, ENT_QUOTES); } }
- 706 名前:nobodyさん mailto:sage [2009/07/24(金) 19:49:53 ID:???]
- POSTとかSESSIONじゃなくて出力用データにまとめてかけなさいよ
- 707 名前:nobodyさん mailto:sage [2009/07/24(金) 20:12:12 ID:???]
- >>705
ありがとうございます 勉強がてら意味を追いながら似たような関数も合わせて調べてるんですが、 addslashes($data); とするとフォームに"が入力されたとき\\\"と\が3つ増える怪現象にはまって脱線中ですw ググろうにも\がGoogleにエスケープされるというw >>706 本当にやりたいのはそれなんですが、出力用データがHTMLを含んでるので表示がおかしくなってしまうんです
- 708 名前:nobodyさん mailto:sage [2009/07/24(金) 20:16:44 ID:???]
- >>707
magic_quote
- 709 名前:nobodyさん mailto:sage [2009/07/24(金) 20:20:38 ID:???]
- >>707下
普通はHTMLに出力用データを埋め込んで表示
- 710 名前:nobodyさん mailto:sage [2009/07/25(土) 03:07:01 ID:???]
- >>705と>>708をベースに、htmlspecialchars後の&まで&に置き換わってしまう謎を無理矢理解決して最終的にこうなりました
function h($data){ if(is_array($data)){ return array_map('h', $data); }else{ return stripslashes(preg_replace("/&/i", "&", htmlspecialchars($data ,ENT_QUOTES, "SJIS"))); } } 呼び出し箇所 if(get_magic_quotes_gpc()){ $_SESSION["input"] = h($_SESSION["input"]); } 動いてはいるものの正直自信全くナシですw >>709 こっちもできるようになりたくて試行錯誤3時間 今日はできませんでしたorz 明日また粘ります 出力したいデータを詰め込んだ変数の中身はこんなかんじです $output = " <table><tr> <td>名前</td> <td><input type=\"text\" name=\"name\" value=\"".$_SESSION["input"]["name"]."\" /></td> </tr></table> ";
- 711 名前:nobodyさん mailto:sage [2009/07/25(土) 03:08:44 ID:???]
- あ、書き込んだら勝手に記号置き換えられてました
>>710の「&まで&に」は「&まで&amp;に」です
- 712 名前:nobodyさん mailto:sage [2009/07/25(土) 06:09:00 ID:???]
- >>710下
<?php /* 〜前処理〜 */ $data['name'] = htmlspecialchars($_SESSION["input"]["name"]); ?> <table><tr> <td>名前</td> <td><input type="text" name="name" value="<?php echo $data['name']; ?>"/></td> </tr></table>
- 713 名前:nobodyさん [2009/07/25(土) 09:38:50 ID:njtiSjD4]
- &が置き換わるのは
htmlspecialcharsの仕様
- 714 名前:nobodyさん mailto:sage [2009/07/25(土) 17:11:32 ID:???]
- >>712
おかげさまでできました $_SESSIONの中身を一度別の配列に放り込むのは $_SESSIONの中身をいじるべきではないから と解釈しましたがよいでしょうか >>713 ググってさっそく調べました 「そういうもの」と考えるしかないみたいですね・・・ ところで、>>710で書いたfunctionなんですが、 フォームに\を記入するとstripslashesの作用で\が消えてしまうというトラブルに見舞われてます 該当部分の処理を順番に並べると下のようになるのですが $data = htmlspecialchars($data ,ENT_QUOTES); $data = preg_replace("/&amp;/i", "&", $data); //*// $data = stripslashes($data); これだと\が消えてしまうので、上の//*//の部分に $str = preg_replace("/\\\\/i", "\\", $str); を入れてstripslashesをだまして強引に解決している状況です なんか違和感があるのですがこれでよいものでしょうか
- 715 名前:nobodyさん mailto:sage [2009/07/25(土) 17:16:16 ID:???]
- stripslashesって何のために入れてるの?
- 716 名前:nobodyさん mailto:sage [2009/07/25(土) 17:35:20 ID:???]
- これをいれないと、なぜか画面遷移やリロードのたびにフォームに記入された\の数が倍々で増えるんです
- 717 名前:nobodyさん mailto:sage [2009/07/25(土) 17:48:38 ID:???]
- magic_quotes_gpc が効いてるだけでは
- 718 名前:nobodyさん mailto:sage [2009/07/25(土) 17:49:57 ID:???]
- うん。
あと野村監督じゃないけどバグに不思議のバグなしなので 「なぜかこうなる」はちゃんと原因探ったほうがいい
- 719 名前:nobodyさん mailto:sage [2009/07/25(土) 17:58:30 ID:???]
- >>717
なってます・・・ 支障のないところまで組み上げて1度実装用のサーバーでこの部分必ずテストしてみます とりあえず保留にして内容送信の機能先に作っちゃいますね セッションすら閉じてない状況なのでw
- 720 名前:nobodyさん [2009/07/25(土) 19:12:06 ID:y2BFJd1A]
- 配列をJavaScriptのオブジェクトにするプログラムを考えているのですが
どうしても配列の深さだけ処理を繰り返す必要があります。再帰的に繰り返すにはどうしたらいいのでしょうか。 この例だと配列を2階層しか整形出来ない function makejson($array){ $return = "{\n"; foreach($array as $key => $value){ $return .= "\t".$key.":"; if(is_array($value)==true){ $return .= "{\n"; foreach($value as $key => $value_2){ $return .= "\t\t".$key.":"; $return .= "\"".$value_2."\",\n"; } $return .= "\t},\n"; }else{ $return .= "\"".$value."\",\n"; } } $return .= "}"; echo $return; exit; }
- 721 名前:nobodyさん [2009/07/25(土) 19:12:30 ID:y2BFJd1A]
- 入力例
$array = array{ 'example' => array{ 'test1' => 'value1', }, 'example1' => 'value3', } makejson($array); 出力例 { example : { test1 : "value1", }, example1 : "value3", } よろしくお願いします。
- 722 名前:nobodyさん mailto:sage [2009/07/25(土) 19:25:21 ID:???]
- >>720
www.php.net/manual/ja/function.json-encode.php
- 723 名前:nobodyさん [2009/07/25(土) 19:48:52 ID:y2BFJd1A]
- そんな便利な関数があったのねありがとう
- 724 名前:719 mailto:sage [2009/07/26(日) 17:13:42 ID:???]
- 最近皆さんにお世話になった>>719です
その後メール送信機能はすったもんだありつつなんとかなって、 実装サーバーで>>715,717について実装サーバーでテストしたら stripslashesがなくても問題ない(php.iniの設定が鯖とローカルで違った)ことが判明しました おかげさまで機能は全部完成しトラブルも起きてません ところで、ソースを最終チェックしてるうちに、 セッションを使ってるのにもかかわらずセッションIDを何にも利用してないことに気づいたんですがいいんでしょうかw 具体的にはhiddenで各画面にセッションネームとセッションIDを渡してはいるものの、ただ渡してるだけなんです URLの後に付加してるわけでもなく、セッションIDを評価する条件分岐があるわけでもなく・・・ クッキーオフにしても普通に動いてるんですが、なんか根本的なところでおかしかったりしないでしょうか
- 725 名前:nobodyさん mailto:sage [2009/07/27(月) 11:41:33 ID:???]
- CSRF とか大丈夫なんかな
- 726 名前:nobodyさん mailto:sage [2009/07/28(火) 18:19:31 ID:???]
- php5.2.5で、mb_send_mail()を使ってメールを送信する際、
spam扱いをなるべく避けるため第5引数で-fパラメータのReturn-Pathを設定したいのですが、 $r_path ='-f aaa@bbb.com'; mb_send_mail($to,$sub,$body,$header,$r_path); としてもエラーが出て送信できません 第5引数を外せば送信できるので第5引数が原因だと思うのですが、 対策はないでしょうか php.iniの設定は以下の通りです sendmail_from → no value sendmail_path → /usr/sbin/sendmail -t -i
- 727 名前:nobodyさん mailto:sage [2009/07/28(火) 19:54:00 ID:???]
- >>726
-fの後ろに余分なスペースがあるとか。
- 728 名前:nobodyさん mailto:sage [2009/07/28(火) 21:42:53 ID:???]
- これって何をしたいんですか?(汗
$password = sha1(md5(md5(sha1(md5(sha1(sha1(md5($_POST[password]))))))));
- 729 名前:nobodyさん mailto:sage [2009/07/28(火) 21:45:07 ID:???]
- ワロタ
- 730 名前:728 mailto:sage [2009/07/29(水) 00:14:01 ID:???]
- わかるかたいませんか?
- 731 名前:nobodyさん mailto:sage [2009/07/29(水) 00:18:36 ID:???]
- >>730
パスワードを推測されにくくしてからDBとかファイルとかに記録して おきたいんじゃないかな。パスワード文字列そのものは保存しない。 で、MD5とsha1で滅茶苦茶にした文字列をファイルとかDBに保持し ておく。 次にパスワードが合致しているかどうかを確認する場合、同じよう に、入力した内容をMD5とsha1で滅茶苦茶にした文字列と合致する かどうかをチェックする。これなら、DBやファイルに保存された文字列 を盗まれても、本物のパスワードは推測しにくいわけで。
- 732 名前:nobodyさん mailto:sage [2009/07/29(水) 00:30:42 ID:???]
- それって逆にパス文字列に戻せるのかな
- 733 名前:nobodyさん mailto:sage [2009/07/29(水) 00:34:01 ID:???]
- 戻せない
|

|