【PHP】下らねぇ質問はID出して書き込みやがれ 119
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2012/05/16(水) 21:44:16.40ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 118
http://kohada.2ch.net/test/read.cgi/php/1335198562/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0002nobodyさん
2012/05/16(水) 21:44:32.09ID:???【PHP】下らねぇ質問はID出して書き込みやがれ 117
http://kohada.2ch.net/test/read.cgi/php/1332346244/
【PHP】下らねぇ質問はID出して書き込みやがれ 116
http://kohada.2ch.net/test/read.cgi/php/1330224598/
【PHP】下らねぇ質問はID出して書き込みやがれ 115
http://kohada.2ch.net/test/read.cgi/php/1327005803/
【PHP】下らねぇ質問はID出して書き込みやがれ 114
http://kohada.2ch.net/test/read.cgi/php/1325437405/
【PHP】下らねぇ質問はID出して書き込みやがれ 113
http://kohada.2ch.net/test/read.cgi/php/1322564127/
【PHP】下らねぇ質問はID出して書き込みやがれ 112
http://hibari.2ch.net/test/read.cgi/php/1320005469/
【PHP】下らねぇ質問はID出して書き込みやがれ 111
http://hibari.2ch.net/test/read.cgi/php/1317232566/
【PHP】下らねぇ質問はID出して書き込みやがれ 110
http://hibari.2ch.net/test/read.cgi/php/1314692611/
【PHP】下らねぇ質問はID出して書き込みやがれ 109
http://hibari.2ch.net/test/read.cgi/php/1311803617/
【PHP】下らねぇ質問はID出して書き込みやがれ 108
http://hibari.2ch.net/test/read.cgi/php/1309599473/
【PHP】下らねぇ質問はID出して書き込みやがれ 107
http://hibari.2ch.net/test/read.cgi/php/1307228162/
0003nobodyさん
2012/05/16(水) 21:44:47.90ID:???■本家マニュアル http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル http://pear.php.net/manual/ja/
■メーリングリスト http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル http://framework.zend.com/manual/ja/
■Smartyマニュアル http://www.smarty.net/manual/ja/
(以下英語)
■Zend本家 http://www.zend.com/
■Zend Framework http://framework.zend.com/
■php | architect http://www.phparch.com/
■Smarty http://www.smarty.net
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
0004nobodyさん
2012/05/16(水) 21:45:03.60ID:???1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→ http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
0005nobodyさん
2012/05/16(水) 21:45:19.27ID:???→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
0006nobodyさん
2012/05/16(水) 21:49:30.59ID:???. _,レ_人_ _|_
_____ ____ _ ___
|__ | |__ | l二 二l |__ | [][]
/_ノ /_ノ l二 二l / /
__| | / /
ハ___ ハ___ / o ヽ__ | |
|____| |____| ヽ、__ノヽ_| ヽ_ヽ
─── _ __O | ──っll ―┼―
─┬─ | l | ./ ○|
/ _ノ _/ |ノ (___ ノ
0007nobodyさん
2012/05/16(水) 22:11:28.58ID:???→ 他言語について言及しないこと。ここの回答者はPHPしかわかりません。
24. メソッドと関数の違い
→ えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます
25. オブジェクト指向
→ 使用しないこと。実装が中途半端だという説もありますが、
PHP自体遅いのでOOPするとさらに遅くなり、実用に耐えません。
26. 配列の中の最大値の添え字を取得したいんだけど・・・
→ まずドラゴンボールを7つ集めます
次に「タッカラプト・ポッポルンガ・プピリット・パロ」と唱えます
27.パフォーマンスが悪いと感じられるとき
→ キャッシュを使用してください。
それでもだめならサーバーCPUのオーバークロックをお試しください。
0008nobodyさん
2012/05/16(水) 22:13:05.90ID:???0009nobodyさん
2012/05/16(水) 22:16:06.93ID:???もうお前の時代は終わりだ
0010nobodyさん
2012/05/16(水) 23:10:33.97ID:???0012nobodyさん
2012/05/17(木) 17:34:21.64ID:bDg6r38Rhttp://example.com/hoge.phpのphpプログラムを実行した後に
ブラウザ上のURL表記を
http://example.com/huga.phpに変更したいです。
検索するとmod_rewriteを使用する記事がたくさん出てきますが
これらはhoge.phpの処理を行う前にURLを変更するものなので
望んでいる結果と違うのです。
よろしくお願いいたします!
0013nobodyさん
2012/05/17(木) 17:45:37.33ID:???ヘッダで外部リダイレクトしてやる
<?php
/* 処理 */
header('Location: http://example.com/huga.php');
0014nobodyさん
2012/05/17(木) 17:53:46.19ID:???もうこんんんんんんんんん
0015nobodyさん
2012/05/18(金) 11:41:13.70ID:MiWgFl90自分はSmarty3を使っているのですが、
フォーム登録用のa.php(a.tpl)から、フォーム処理用のb.phpを通し、フォーム登録結果のc.php(c.tpl)という処理をJS(jQuery)のAjaxにて処理したいと考えています
しかし、a.tplからc.tplは簡単に考え付きますが、b.tplという処理を挟んだ場合どのようにすればいいのか分かりません
b.phpでc.phpにリダイレクトというのが普通だと思いますが、リダイレクトした場合、a.tplからc.tplはAjax処理ではなくなるのではないかと思います
プロセスのアイデアが浮かばないのですが、だいたいどのようなプロセスを記述すればいいのかフローで教えて頂けないでしょうか?
宜しくお願いします
0016nobodyさん
2012/05/18(金) 13:37:25.01ID:???0017nobodyさん
2012/05/18(金) 13:44:34.24ID:???0018nobodyさん
2012/05/18(金) 13:46:02.78ID:???0019nobodyさん
2012/05/18(金) 13:48:40.75ID:???問題なければ c.phpから c.tplを適用したhtmlを取得して
表示書き換えてやればいいだけだろ?
0020nobodyさん
2012/05/19(土) 01:43:28.23ID:???0021nobodyさん
2012/05/19(土) 06:33:47.77ID:???0022nobodyさん
2012/05/19(土) 07:58:11.94ID:Ewb+f/2P$_SESSIONに値を保存した場合、
この値が保存されている期間っていうのはいつまでですか?
PHPSESSIDのクッキーが有効な間ですか?
つまりこのクッキーの有効期間を一週間にしておけば、
あるユーザが一週間前にアクセスした時に保存しておいた値も
一週間以内ならそのユーザがまたサイトにアクセスしたときに呼び出せるってことでしょうか?
0023nobodyさん
2012/05/19(土) 08:00:16.67ID:???セッションの有効期間
0024nobodyさん
2012/05/19(土) 08:00:44.60ID:Ewb+f/2Psession_destroyを実行すればすべて消えるんでしょうか?
こんなことせずにクッキーだけ削除すればよいのでしょうか?
お願いします。
0025nobodyさん
2012/05/19(土) 08:03:18.75ID:???クッキーとセッションの有効期間は別で設定されてるってことですか?
でもクッキー消してしまえば、どのユーザがアクセスしてきたのか判別できなくなるので、
実質$_SESSIONの値にはアクセスできなくなりますよね?
でも$_SESSIONの値は残ったままなんですか?
セッションの有効期間が消えるまでサーバにその値に関するファイルとかが残ってたりするんでしょうか?
0026nobodyさん
2012/05/19(土) 08:15:58.60ID:???セッションファイルのディレクトリを見てみれ
0027nobodyさん
2012/05/19(土) 08:26:10.48ID:???0028nobodyさん
2012/05/19(土) 09:32:00.43ID:???> Cookieの有効期間
> セッションの有効期間
質問大杉だから何を聞きたいのか絞れ。
少しは自力で調べろ。
0029nobodyさん
2012/05/19(土) 14:00:37.12ID:???0030nobodyさん
2012/05/19(土) 14:06:27.02ID:???0031nobodyさん
2012/05/19(土) 14:41:30.54ID:???0032nobodyさん
2012/05/19(土) 15:00:55.48ID:???セッションの初期化時に、session.gc_probability/session.gc_divisorの確率でgcが起動して、
gcは作成(最終更新)からsession.gc_maxlifetimeを超えたセッションを削除する
(初期設定では、1/100の確率で24分以上古いセッションは削除される)
あと、セッションクッキーの寿命は、session_cookie_lifetimeで設定される(初期設定は0、つまりブラウザ閉じると消える)
0033nobodyさん
2012/05/19(土) 15:44:13.42ID:Ewb+f/2Pぶっちゃけやりたいことはログインの継続処理です。
ブラウザ閉じてもログインを継続したままにしておきたいんです。
前回アクセス時に$_SESSIONに保存しておいた値を取り出すには、
ブラウザを閉じなければ保存されているので取り出せますが、
ブラウザを閉じたあとでもその値を取り出すにはどうすればよいのですか?
クッキーの有効期限を延ばせばいいのか、
セッションの有効期限を延ばせばいいのかよくわかりません。
0034nobodyさん
2012/05/19(土) 15:49:27.40ID:Ewb+f/2Psetcookie('PHPSESSID',$_SESSION['PHPSESSID'],time() * 7 * 24 * 3600);
とかですか?
0035nobodyさん
2012/05/19(土) 17:32:58.09ID:???それは自分でCookieを発行する場合な
セッションで使用するCookieはPHPが勝手に面倒を見る
やるべき事はクライアント側のCookieとサーバー側のセッションの保存期間の設定だ
http://www.php.net/manual/ja/session.configuration.php#ini.session.cookie-lifetime
http://www.php.net/manual/ja/session.configuration.php#ini.session.gc-maxlifetime
0036nobodyさん
2012/05/19(土) 18:54:22.45ID:???sessionとsessionクッキーの寿命を長くしてもできるけど、その用途ならそもそもsession使わないで、
ふつうにcookie設定してやればいいんじゃない
0037nobodyさん
2012/05/19(土) 19:12:22.55ID:H1F654FY{
public function e()
{
return 100;
}
}
$obj = new A();
a($obj);
function a(&$o) {
echo $o->e();
}
これの&の意味を教えてください
0038nobodyさん
2012/05/19(土) 19:14:21.80ID:???0039nobodyさん
2012/05/19(土) 19:15:06.34ID:H1F654FY0040nobodyさん
2012/05/19(土) 19:15:41.14ID:???0041nobodyさん
2012/05/19(土) 19:25:51.84ID:???0042nobodyさん
2012/05/19(土) 19:28:08.46ID:???$str = "str";
hoge($str);
echo $str;
$str = "str";
fuge($str);
echo $str;
function hoge($s){
$s = "foo";
}
function fuga(&$s){
$s = "boo";
}
0043nobodyさん
2012/05/19(土) 19:30:43.75ID:???0044nobodyさん
2012/05/19(土) 19:59:03.71ID:???0045nobodyさん
2012/05/19(土) 20:14:47.98ID:???監視対象なのに全く反省してないな
0046nobodyさん
2012/05/19(土) 20:20:26.89ID:???参照渡し
例えばこの関数
http://www.php.net/manual/ja/function.shuffle.php
$a = array(1,2,3,4,5);
shuffle($a);
print_r($a);
もしshuffleが参照渡しじゃなかった場合返り値を配列にして
$a = array(1,2,3,4,5);
$a = shuffle($a);
print_r($a);
このようなコードになるでしょうね
0047nobodyさん
2012/05/19(土) 20:25:01.49ID:???0048nobodyさん
2012/05/19(土) 20:28:22.22ID:???今は薬物売買の件でそれどころじゃないみたいだけど
2chが潰れるかどうかの瀬戸際か
0049nobodyさん
2012/05/19(土) 20:34:06.03ID:Ewb+f/2Pなるほど!
こんなパラメータあったんですね。
これを適切な値にしてやれば、
クッキーや$_SESSIONに保存された寿命がその通りになるってことですよね。
>>36
クッキーで毎回個別に設定するってことですか?
$_SESSIONに保存したい変数は結構数がありそうなんで毎回セットしてる面倒臭そうです。
それと$_SESSIONに保存する値は、結構重要な値なので、
クッキーに保存するよりも誰もアクセスできない$_SESSIONに保存しておくほうが安全だと思うんですがどうでしょうか?
とにかくお二人ともありがとうございます。
0050nobodyさん
2012/05/19(土) 20:40:12.17ID:???情報を入れるな
0051nobodyさん
2012/05/19(土) 20:52:13.49ID:???ただクッキーが漏れる原因になるXSSには気をつけてコーディングしてくださいね
$_SESSIONが誰もアクセスできないかというとそうではない
共有サーバの場合特に何も設定してないとtmpに作成されるので
tmpに共有サーバの他ユーザがアクセスできるような環境だと以下略
0052nobodyさん
2012/05/19(土) 20:58:45.71ID:Ewb+f/2Pですよね
>>51
安全なんですか
共有サーバなので$_SESSION使わないほうがいいのかなぁ
tmpのアクセス権がどうなってるのか調べたほうが良さそうですね。
う〜んどっち使うか迷うな・・・
0053nobodyさん
2012/05/19(土) 21:23:30.70ID:???逆に共有サーバで提供するくらいのものならそこまで突き詰めないでいいんじゃないだろうか。
そこまでこだわるなら自もちのサーバにするのを優先したほうが・・
0054nobodyさん
2012/05/19(土) 21:26:47.55ID:???>ブラウザ閉じてもログインを継続したままにしておきたいんです。
とりあえずこの実現にセッションはまったく関係ないとだけ言っておく
0055nobodyさん
2012/05/19(土) 21:43:35.94ID:???0056nobodyさん
2012/05/19(土) 21:48:24.91ID:???そのために session.save_path がある
どうせセッションを使わなくても同じものを自分で再発明する事になるんだからあるものを使おう
他にも session.cookie_path やら目を通しておくべき事があるから
マニュアルは一通り読んでおこう
http://www.php.net/manual/ja/session.configuration.php
0057nobodyさん
2012/05/19(土) 22:03:09.89ID:Ewb+f/2Pログイン処理というものがどういうものか分かってないのかもしれません。
正直一般的な方法がまったくわからないので、
クッキーがあるかどうかをチェックして、
あるならいろいろなサービスが利用できるログイン時の画面を表示するのかな?
っていう完全な推測からこういう質問をしました
もうちょっとマニュアルやら目を通した方がよさそうですね
0058nobodyさん
2012/05/20(日) 01:37:04.03ID:???0059nobodyさん
2012/05/20(日) 03:05:24.99ID:???サーバに接続する。
サーバ1
クライアントとのセッションを開始する。
セッションにログイン済みを示す情報がなければログイン画面を出す。
(以降クライアントから要求があった場合、
ログイン済みを示す情報がセッションにあるかを毎回チェックして、
ログイン画面かログイン後の画面どちらを出すか決める)
クライアント2
ログイン画面にIDやらパスワードを入れてログインする。
サーバ2
データベースやらに入ってるログイン情報に照会してOKなら、
セッションにログイン済みを示す情報を書き込み、ログイン後の画面を出す。
NGならサーバ1へ戻る。
クライアント3
ログアウトする。
サーバ3
セッションを破棄する。
0060nobodyさん
2012/05/20(日) 05:15:18.36ID:BL6kJqvb$y=あ い う え;
半角空白で区切りがあります。
この場合に
$z=aあ aい aう aえ bあ bい bう bえ cあ cい cう cえ dあ dい dう dえ;
このような結果を導くにはどうすれば良いのでしょうか。
よろしくお願いします。
0061nobodyさん
2012/05/20(日) 05:24:05.47ID:???4つずつなのか
"abcd"もしくは"あいうえ"の4文字だから4つなのか
0062nobodyさん
2012/05/20(日) 05:36:47.21ID:BL6kJqvb法則は半角空白で区切ってある文字列ってだけで
$x=ahあうういolhohi hあohohp hoh9o hいohohohoいhohoho gighgおおおooho hohえoihjyh;
$y=ahooy jepjp hpop lhjpjo hoho;
こんな場合もあります。その場合だと最初に求められる結果は
$z=ahあうういolhohiahooy ・・・以後続く となります。
半角空白を区切りに総当り?とでも言いましょうか
情報小出しになってしまってすみません。
よろしくお願いします。
0063nobodyさん
2012/05/20(日) 06:05:43.58ID:???0064nobodyさん
2012/05/20(日) 06:21:08.22ID:???デカルト積が欲しいのか
<?php
$x = explode(' ', 'A B C D');
$y = explode(' ', 'a b c d');
$z = array();
foreach ($x as $xi) { foreach ($y as $yi) { $z[] = $xi . $yi; }}
echo implode(' ', $z);
0065nobodyさん
2012/05/20(日) 09:25:25.19ID:BL6kJqvb期待通りの動作を得る事ができました。
事後にデカルト積で調べても、>>64より良い答えがみつかりませんでした。
本当に有難うございます。
0066nobodyさん
2012/05/20(日) 09:29:50.91ID:nGy7/bON昨日の者です。
すっごいわかりやすいです!
ありがとうございました!
0068nobodyさん
2012/05/20(日) 14:35:22.46ID:???0069nobodyさん
2012/05/20(日) 16:29:56.70ID:???0070nobodyさん
2012/05/20(日) 16:32:12.53ID:???0071nobodyさん
2012/05/20(日) 19:23:01.82ID:???0072nobodyさん
2012/05/20(日) 19:54:56.15ID:???0073nobodyさん
2012/05/20(日) 20:01:07.95ID:???0074nobodyさん
2012/05/20(日) 20:13:51.68ID:???他の言語スレで話についていけないような奴ばっかり
0075nobodyさん
2012/05/20(日) 20:23:30.63ID:???Java言語でもサーバーが作れる。
ということはPHPでもサーバーが作れる。
0076nobodyさん
2012/05/20(日) 21:31:34.06ID:???0077nobodyさん
2012/05/20(日) 22:16:59.78ID:???0078nobodyさん
2012/05/20(日) 22:20:49.18ID:???0079nobodyさん
2012/05/20(日) 22:44:57.59ID:???http://kohada.2ch.net/test/read.cgi/php/1337174717/
0080nobodyさん
2012/05/20(日) 22:51:25.39ID:???0081nobodyさん
2012/05/20(日) 23:28:48.14ID:???それからphpで実装したCでApache HTTPなんかを作ればいい。
■ このスレッドは過去ログ倉庫に格納されています