【PHP】下らねぇ質問はID出して書き込みやがれ 89 at PHP
[2ch|▼Menu]
1:●
09/10/11 21:18:54
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 88
スレリンク(php板)

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ

2:nobodyさん
09/10/11 21:19:05
■過去ログ
【PHP】下らねぇ質問はID出して書き込みやがれ 88
スレリンク(php板)
【PHP】下らねぇ質問はID出して書き込みやがれ 87
スレリンク(php板)
【PHP】下らねぇ質問はID出して書き込みやがれ 86
スレリンク(php板)
【PHP】下らねぇ質問はID出して書き込みやがれ 85
スレリンク(php板)
【PHP】下らねぇ質問はID出して書き込みやがれ 84
スレリンク(php板)
【PHP】下らねぇ質問はID出して書き込みやがれ 83
スレリンク(php板)
【PHP】下らねぇ質問はID出して書き込みやがれ 82
スレリンク(php板)
【PHP】下らねぇ質問はID出して書き込みやがれ 81
スレリンク(php板)
【PHP】下らねぇ質問はID出して書き込みやがれ 80
スレリンク(php板)
【PHP】下らねぇ質問はID出して書き込みやがれ 79
スレリンク(php板)
【PHP】下らねぇ質問はID出して書き込みやがれ 78
スレリンク(php板)

3:nobodyさん
09/10/11 21:19:11
関連リンク
■本家マニュアル   URLリンク(www.php.net)
■日本PHPユーザ会 URLリンク(www.php.gr.jp)
■PEARマニュアル  URLリンク(pear.php.net)
■メーリングリスト   URLリンク(ns1.php.gr.jp)
■ZFマニュアル    URLリンク(framework.zend.com)
■Smartyマニュアル  URLリンク(www.smarty.net)

(以下英語)
■Zend本家      URLリンク(www.zend.com)
■Zend Framework  URLリンク(framework.zend.com)
■php | architect   URLリンク(www.phparch.com)
■Smarty       URLリンク(www.smarty.net)<)
■PECL本家(英語) URLリンク(pecl.php.net)

4:nobodyさん
09/10/11 21:19:17
【簡易FAQ】
1.文字コードは何を使えばいいの?
 →1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
 → URLリンク(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プログラムとして実行された結果になる。

5:nobodyさん
09/10/11 21:19:22
10. そもそもインストールの時点でうまくいかない
 → 確認すべきは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ってどう違うの?
 → よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
  URLリンク(www.faqts.com)
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に保存?
 → 好きにしてください

6:nobodyさん
09/10/11 21:20:11
おわり

7:nobodyさん
09/10/11 22:05:52 2KRfPF1l
ここは >>1乙 とか書いてもいいスレですか?

8:nobodyさん
09/10/11 22:23:09
>>4
>  → {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする


ちょう気になります。

9:nobodyさん
09/10/12 12:12:33
テンプレにphp5.2→php5.3の違いも書いて欲しかった

10:nobodyさん
09/10/12 12:17:51
キミが書くんだよ

11:nobodyさん
09/10/12 13:22:58
10が書いてくれるって

12:nobodyさん
09/10/12 15:07:24
今時新たに5.2入れることなんてあるのか?

13:nobodyさん
09/10/12 15:28:16
4も5もいっしょやんけ

14:nobodyさん
09/10/12 18:13:58 VqENsVDc
よろしくお願いします。
連想配列の値をforeachで取り出して、データベースへ
インサートすると上手くいきません。

DBへの挿入自体は、出来るのですが、繰り返しているために
レコード自体が、要素の分だけ増えてしまいます。
(値が20あると、DBの行も20だけ増えてしまいます。)
where句を加えてみても、良い結果になりません。
どうしたら、1行(1 row)に収められますか?

foreach ($data as $key => $val){
$ret = mysql_query("INSERT INTO table ($key) VALUES ($val)");
}

15:nobodyさん
09/10/12 18:21:33
update

16:nobodyさん
09/10/12 18:49:24
それだけじゃ何がしたいか分からんよ

17:nobodyさん
09/10/12 18:57:58
分かるよ
implode(',' $data)
ってことでしょ

18:nobodyさん
09/10/12 19:10:59
String連結して1文にすればいいじゃないか
valはis_stringやis_int使って型分けしたほうがいいと思うが
INSERT INTO table (key1, key2, keyn) VALUES (val1, val2, val3);
ていうか全部増えるってNOT NULL制約はつけてないのか?それともDEFAULT入れてるのか?
テーブル設計見直したほうがいいんじゃね

19:nobodyさん
09/10/12 19:42:03 VqENsVDc
>>14 です。
レスありがとうございます。
質問の仕方がわかりづらかったみたいですみません。
文字の連結ではないです。それだと列にまとまってしまいます。

現状は、行(レコード)が増えてしまう。たとえるなら、
碁盤の目の対角線上(左下→右上)のように、
値を入れるごとに、レコード自体がforeach のために、
1個ずつ増えてしまうのです。更に、わかりづらいかも。

>>15 さんのアドバイスのように、UPDATE で今やっています。

レコードのidを一個だけ増やして、その行をwhereで指定して
そこをUPDATEする感じで。
idを増やすとこまではできました。UPDATEがまだできないですが、
もう少しで出来そうです。
ありがとうございました。

20:nobodyさん
09/10/12 19:42:49
前スレ>>999
まぁようするに適材適所だよな

21:nobodyさん
09/10/12 19:51:55 9W/f2NwM
【OS名】CentOS 5.3
【PHPのバージョン】php5.1.6
【連携ソフトウェア】なし
【ブラウザ】Firefox3.5
【質問内容】

教えてください。PHP+Javascriptでcookieに値をセットしようとしています。
やりたいことはaaa.bbb.comにアクセスして、ccc.ddd.comドメインに対するcookieを保存することです。

■存在するマシン
・ローカル端末
・Webサーバ1(aaa.bbb.com)←ローカルホストにあるhttpdだが、hostsファイルを使ってこのような名前解決を可能にしている。
・Webサーバ2(ccc.ddd.com)←ローカルLAN内のマシンで、hostsファイルを使ってこのような名前解決を可能にしている。

まずローカル端末からURLリンク(aaa.bbb.com)にアクセスします。
a.htmlの中にはJavascriptが入っており、そいつはccc.ddd.comのa.phpにGETリクエストを飛ばすようにしています。
a.phpの中にはsetcookie関数が仕込まれており、これによってccc.ddd.comドメインに対するcookieをセットしようと
考えていますがうまくいきません。

続きます。

22:nobodyさん
09/10/12 19:52:41 9W/f2NwM
続きです。
各ファイルの中身は以下のようになっています。

a.html
===================================================================================================
<html>
<head>
<script language="Javascript" src="URLリンク(ccc.ddd.com)" type="text/javascript"></script>
</head>
<body>

<script type="text/javascript">
<!--
cookietest();
// -->
</script>

</body>
</html>
===================================================================================================


23:nobodyさん
09/10/12 19:54:17 9W/f2NwM
続きです。

cookie.js
===================================================================================================
<!--
function cookietest(){
var url = "URLリンク(ccc.ddd.com)";
var request = createXMLHttpRequest();
request.open("GET", url, true);
request.send("");

}

function createXMLHttpRequest() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
return new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
return new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
return null;
}
}
} else {
return null;
}
}
===================================================================================================

24:nobodyさん
09/10/12 19:55:00 9W/f2NwM
続きです。

a.php
===================================================================================================
<?php
$timeout = time() + 30 * 86400;
setcookie("cookie","value", $timeout, '/','ccc.ddd.com');
?>
===================================================================================================



25:nobodyさん
09/10/12 19:55:38
そもそもCookieってサブドメイン毎に分けられるんだっけ

26:nobodyさん
09/10/12 20:00:10
いや、サブドメイン毎はできるような気がしてきた。

で、スクリプトでGETしたa.phpに対するレスポンスは誰が受け取るの?
元のUA? スクリプトでレスポンスヘッダをUAに転送しようとしてる?(できるの?)
それともスクリプトで受けて(できるか知らんが)、jsで改めて同じcookieを
元のUAにセットしようとしてる?

と流し見て思った。

27:21
09/10/12 20:00:57 9W/f2NwM
>>25
理論的にはできるはずです。
実際にJavascript経由ではなく、直接a.phpにアクセスするとccc.ddd.comのドメインでcookieが保存されます。

28:nobodyさん
09/10/12 20:02:57
JavaScriptでは他のドメインにアクセスできない
それが出来たら勝手にAmazonのカートに商品追加したりGmailの中身ぶっこ抜いたりできるから夢が広がるんだけどね

29:21
09/10/12 20:04:43 9W/f2NwM
>>26
レスポンスは少なくともブラウザが受け取っていることは確認しました。(Live HTTP Headersというfirefoxのアドオンで確認しました。)
その部分だけ抜き出すと以下のようになっています。

----------------------------------------------------------
URLリンク(ccc.ddd.com)

GET /a.php HTTP/1.1
Host: ccc.ddd.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ja,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: URLリンク(aaa.bbb.com)
Origin: URLリンク(aaa.bbb.com)

HTTP/1.x 200 OK
Date: Mon, 12 Oct 2009 05:51:27 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.1.6
Set-Cookie: cookie=value; expires=Wed, 11-Nov-2009 05:51:27 GMT; path=/; domain=ccc.ddd.com
Content-Length: 0
Connection: close
Content-Type: text/html; charset=UTF-8
----------------------------------------------------------


30:21
09/10/12 20:13:00 9W/f2NwM
>>28
そうなんですか…。
サードパーティcookieなんてものがあるので、こういうことも可能なのかと思ってました。

31:nobodyさん
09/10/12 20:15:08
レスポンス見るとちゃんと受け取ってるように見えるけど…

もしかしてcccのCookieをaaaのドメインに向けて出したいと思っている?
サブドメイン毎に分けられるなら、それができたらセキュリティホールになるんじゃあ…
って気が

32:nobodyさん
09/10/12 20:32:17 9W/f2NwM
>>31
はい、ただこのやり取りは「Javascriptで」GET要求を出したものに対するレスポンスなので、そこでうまくブラウザ側にセットされていないのかもしれません。
また、cccのcookieをaaaドメイン向けに出したいと思ってはいません。
やりたいことはaaa.bbb.com以外に様々なドメインのサイトがあって、それらのページにはa.htmlのようにccc.ddd.comにアクセスするようなJavascriptを埋め込んでもらおうと思っています。
(要するに提携した各サイトへのアクセス状況をccc.ddd.comで収集するイメージです。)
その際にそのアクセス情報をccc.ddd.comドメインへのcookieとして保存出来ればと思っています。

33:nobodyさん
09/10/12 20:45:52
>>32
単にリクエストを送るだけなら<iframe>とか<img>でやるのがいい。

たとえばGoogleはImage()でやってる。もちろんCookieもセットされる
<script type="text/javascript">
new Image().src = "URLリンク(example.co.jp)";
</script>

34:nobodyさん
09/10/12 20:45:52
なんかクロスドメインの制限があったような気がするけど、ローカルならクロスドメイン通せるのかな。
でも、クッキー受け取るのブラウザじゃなくて XMLHttpRequestのインスタンスで閉じてると思ったけど。

35:nobodyさん
09/10/12 20:48:13
ブラウザが受け取っているいないの判断は何でしてる?
cccドメインのファイルにアクセしてみてもリクエストヘッダにCookieが入っていないってこと?

あと他ドメインのCookieどうこうはクロスサイトの問題があるから直接jsじゃなくて、iframe経由
が基本だったはず。

36:nobodyさん
09/10/12 20:58:02
>>16
だから初心者が無理して回答するなよw

37:21
09/10/12 21:05:13 9W/f2NwM
>>33
なるほど、cookie.jsの中をImage()に変更するとcookieが保存されました。
解決しました、ありがとうございました。

>>34
なるほど、そうなんですね。
インスタンスで閉じてるとすると、受け取った後の処理を書けばいいのかもしれませんが、とりあえずImage()でやることにします。

>>35
「ブラウザが受け取った」というのはLive HTTP headersの情報で判断していました。
なので正確には>>34さんの言うとおりなのかもしれません。(勉強不足でした。)
Imageじゃなくてiframeでも同様のことができるのですね。勉強になりました。ありがとうございます。

38:nobodyさん
09/10/12 22:39:22 bWWKsEMi
PHPでFTPアップロードしたいんですけど、
phpファイルのあるコンピュータ(apacheサーバー)からではなく、
他の、そのサイトをみてるPCから、
FTPサーバーにアップロードする方法ってありますか?

あれば教えてください。

39:nobodyさん
09/10/12 22:46:18
>>38
URLリンク(jp2.php.net)
ほい

40:nobodyさん
09/10/12 22:59:39 bWWKsEMi
>>39
質問が悪かったかもしれないですが、
例えば、 URLリンク(jp2.php.net) だと、
$source_file はphpがあるコンピュータ上のファイルだと思うんですが。
やりたいのは、そのサイトを見ているクライアントPC上のファイルの転送です。

41:nobodyさん
09/10/12 23:03:36
そのソースファイルを アップロードファイルにすれば済む話なのかな?

42:nobodyさん
09/10/12 23:13:59 bWWKsEMi
>>41
どういうことでしょうか?

43:nobodyさん
09/10/12 23:16:23
クライアントとFTPサーバ間の通信ならPHPサーバ関係あんの?

44:nobodyさん
09/10/12 23:19:33
クライアントにPHP入れればいいじゃん

45:nobodyさん
09/10/12 23:23:48
>>42
こっちが聞きたいんです。 何が分からないか分からないので。
<form enctype="multipart/form-data" method="post" action="example.php">
<input type="file" name="file1" >
<input value="送信" type="submit">
</form>
とかでサーバーにファイルをアップ出来ることわかればあとは組み合わせ。
それとも、それはあなたのやりたいことと違うのかな?

46:nobodyさん
09/10/12 23:24:46 bWWKsEMi
やりたいのは、動画とか比較的大きいファイルをアップロードしたりできる
サイトを作ることで、それにはftpを使うほうがいいと思ったんです。

でも、phpが動いてるのはあくまでサーバー上ですので、
クライアント側のファイルをオープンするのは無理だと思うんです。

で、直接クライアントとftpサーバ間の通信ができる方法を知りたいのです。

>>43
分かりません。
>>44
上記の理由で、クライアントにPHPを入れるという以外の方法を探しています。

47:nobodyさん
09/10/12 23:24:54
前のスレの続きだが、はっきり言って==を===にするとか、
以前にもっと早くする余地が残されているのが普通。

熟知している奴が、htmlを少しリファクタリングするだけで、
体感速度が改善されるし、リアルタイムで処理する必要がない機能を
バッチ処理にするだけでもかなり改善される。
もちろん、SQL文の改善もしかりだ。

もっと効果が高い方法を考えなさい。

48:nobodyさん
09/10/12 23:30:45
昔、ループの中で同じSQLを何回も発行している奴がいた。

あまりにも馬鹿すぎて、殴ったら、上司に呼ばれて停職になったが、
その停職期間中に始めた体験農業がきっかけで、
今はフリーのプログラマーへと変貌を遂げた。

そして、今年新品種のにんじんの栽培が農協から表彰を受けて、
年収が大幅にアップした。人生って何があるか分からんよ。

この早いwebの中で、変わらないことは即ちリスクであるってことよ。

49:nobodyさん
09/10/12 23:30:48
クライアントにFTPソフトを入れるでいいんじゃないの
なんでHTTPじゃだめなのかな

50:nobodyさん
09/10/12 23:30:51
本命のサイトと倉庫代わりのサイトを別けて使おうってことか
なめてんな

51:nobodyさん
09/10/12 23:36:52 bWWKsEMi
>>50
倉庫代わりじゃなくて倉庫です。
どちらも自分のPCです。
ただ、場所が違うんですよ。

52:nobodyさん
09/10/12 23:38:17
>>46
webサーバー介在させたくないならPHPでは何も出来ません。
容量どれくらい想定してますか?
ftpクライアントインストールさせられない、ブラウザに fURLリンク(example.com)<)

53:nobodyさん
09/10/12 23:52:47 bWWKsEMi
>>49,52
アップロードしたときに別の処理もしたいからです。
例えば、データベースに入れたり・・・。

アップロードとは別に、定期的にDBを更新させるとかでもいいんですが、
より楽な方法があればと思ったわけです。

とにかく結局予想通り無理っぽいので、質問の意図も書いてみました。

54:nobodyさん
09/10/13 09:20:35
>>53
たしか何個かバックグラウンド処理させる方法あったよな
おれがしってるのはキューを作る事
あとなにがあったっけか?

55:nobodyさん
09/10/13 09:56:30 Bgm/yHH7
PHPを用いたダウンロードカウンター「X-File Access Counter」
URLリンク(works.xworks.org)

これの非公開バージョンb090909
URLリンク(kissho.xii.jp)

・DBにSQLiteを用いているのが特徴。
・ベータ版のため、簡単に使える状態では無い。

誰か、使用方法、教えて下さい・・・。

56:nobodyさん
09/10/13 10:00:40
readmeのコード例を実行してDB作ってやるだけだろ

57:nobodyさん
09/10/13 12:15:06
作った奴に聞け

58:nobodyさん
09/10/13 12:20:54
リコンパイルがわからねえならそのまま使っとけ
別にキーワードなんて使わなくても困らないだろ

59:nobodyさん
09/10/13 16:03:10 ajuLMPfn
設置してあるphpってダウンロードする方法ってないですか?
中身を見てみたいのですが…

60:nobodyさん
09/10/13 16:05:00
>>59
それできたらまずいだろ・・・

61:nobodyさん
09/10/13 16:10:32 ajuLMPfn
>>60
やっぱりできませんか…

62:nobodyさん
09/10/13 16:10:52
>>59
キチガイ氏ねよ

63:nobodyさん
09/10/13 16:50:29 ljBnoCI+
携帯動画サイトを作っているのですが、動画ページへの直リンクで非常に困ってます。
.htaccessを使ってリファラで制限したんですが、ドコモはリファラが残らず断念しました。
後は、PHPでできるみたいなのですが知識がなく、本を買って調べたのですがいまいちわかりませんでした。
PHPで直リンを防ぐソースなどはないでしょうか?

レベルの低い質問で申し訳ないんですがよろしくお願いします。

64:nobodyさん
09/10/13 16:53:25
セッション。

65:nobodyさん
09/10/13 20:28:10 SwQUEovx
単一のクラスでデータベースを扱う場合、
クラス内にデータベースの設定を書いてしまうと思いますが、
複数のクラスからデータベースを呼び出す場合、
データベースの設定はどのように持っておくべきでしょうか?
iniやxmlなどの外部ファイルに記述するか、
データベースの設定だけを保持したクラスを作成するか等。
他にベターでメジャーな方法があったら教えてください。

66:nobodyさん
09/10/13 20:41:24
class test{
  var $test = null;
  function push($value){
    $this->test = $value;
  }
  function pop(){
    return $this->test;
  }
}
$tes = new test;
$tes->push("てすと");
echo $tes->pop();


67:nobodyさん
09/10/13 20:45:24
1要素だけかよw

68:nobodyさん
09/10/13 20:52:18
コネクションした際にリソースを返されるからそれ使うだけじゃん
難しいか?

69:nobodyさん
09/10/13 21:22:19
>>65
設定って?
ホスト名とかユーザ名とかデータベース名のこと?

そういうかなり具体的なことは、せいぜい一つのクラスだけが気にするようにする。
なお、よっぽどやっつけな場合以外、そのクラスのコードにもそれらの設定値は
書き込まないな。

70:nobodyさん
09/10/13 21:22:22
>>68
難しいよ、バカ!

71:nobodyさん
09/10/13 21:23:22
>>59
.phps

72:nobodyさん
09/10/13 21:23:57
>>69
俺は、専用のクラスにしているよ。
外だしにすると、一回一回接続するたびに、
設定ファイルを読み込んで、
余計なI/Oが発生するので、避けている。

73:nobodyさん
09/10/14 04:33:40
こんな漢字(mysqliの場合)

function dbCon(){
try{
$db = new mysqli("localhost","user","pass","my_db");
$db->query('SET NAMES utf8;'); return $db;
}
catch(mysqli_sql_exception $e){return $e->getMessage();}
}

$db = dbCon(); // dbオブジェクト取得

あとは $dbを使いまわせばよい。

74:nobodyさん
09/10/14 05:11:15
一人質問を理解してないな

75:nobodyさん
09/10/14 13:39:39 tPIKiOul
【OS名】Windows Vista Home Premium
【PHPのバージョン】php5.3.0
【連携ソフトウェア】なし
【質問内容】

書き込み失礼します。
セッションの保持期間の指定について悩んでいます。どうしても、指定した時間まで持たなくて。
現在は、セッションが関係するページの冒頭に以下のコードを入れています。

<?php
//クッキーの使えない端末でもセッションを有効にする
ini_set('session.use_trans_sid', '1');
//クッキーの使える端末では、セッションをクッキーに保存する
ini_set('session.use_cookies', '1');
//セッションを、クッキーのみに保存させないようにする
ini_set('session.use_only_cookies', '0');
session_save_path();
session_start();
ini_set('session.save_path', '2;/usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名');
ini_set('session.cookie_lifetime', '秒数');
ini_set('session.gc_maxlifetime', '秒数');
ini_set('session.gc_probability', '1');
ini_set('session.gc_divisor ', '1000');
?>

(改行が多すぎると叱られたので一旦切ります)1/2

76:nobodyさん
09/10/14 13:41:23 tPIKiOul
(続きです)

自信がないのがsession_save_pathとsession.save_pathの使い方です。書き方はこれであっているでしょうか?
session.save_pathの引数に2を指定しておりますので、「ディレクトリ名」の下にはmod_files.shで作ったディレクトリを2階層分置いてあります。
また、session.save_pathに引数を指定するとGCが作動しなくなるとマニュアルにあるので、GCについての設定は無駄でしょうか。

クッキーの使えない端末(携帯など)でのセッションの保持は諦めます。
…が、せめてクッキーの使える端末(パソコンなど)では、指定した時間セッションを保存したいと考えています。

色々と調べましたが、原因がさっぱり分からずお手上げです。
どうかよろしくお願いいたします。2/2

77:nobodyさん
09/10/14 13:56:39
>>75
宣伝じゃないけどここのサイトのセッション管理が参考になるよ
金かからないケイタイからアクセスして試してきな
URLリンク(atmeltomo.com)

78:nobodyさん
09/10/14 14:44:11
>>75
期限切れとなるのが
セッション用Cookieが存在しない状態での初回アクセス日時 + session.cookie_lifetime 秒
ならPHPの実装通り
それともこれに当てはまらない現象?

ini_set('session.*... は session_start() 前に設定しないと使ってくれないぞ
GCについては session.save_handler = "files" の場合に
2階層以上をしていると働いてくれないので言う通り不要

>>77
ハイハイ

79:nobodyさん
09/10/14 15:06:02
サーバーの時間はあってるん?

80:nobodyさん
09/10/14 15:17:46 tPIKiOul
>>78
ご返信ありがとうございます。
>期限切れとなるのが〜
はい、初回アクセス+session.cookie_lifetime 秒よりも早くセッションが切れてしまいます。

ini_setはsession_start()の前に、とのことでしたのでそのようにしてみたのですが、以下の警告が出てしまいました。

Warning: session_start() [function.session-start]:
open(/usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/セッションID, O_RDWR)
failed: Permission denied (13) in /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php on line 8

Warning: session_start() [function.session-start]:
Cannot send session cache limiter - headers already sent
(output started at /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php:8)
in /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php on line 8

問題のファイルの8行目には、session_start();が記述してあります。

>>79
多分あっていると思います…が、仕様書などからの確認は取れませんでした。

81:nobodyさん
09/10/14 15:50:00
サーバって国内?海外?

82:nobodyさん
09/10/14 16:16:35
>>80
パーミッションエラー出とるがな
つーかセッションデータを公開スペースに置くつもりなのか?
まず/tmpディレクトリとかで試してみたら?

あとサーバーの時間はdate()関数で調べてみれ

83:nobodyさん
09/10/14 16:52:07 tPIKiOul
>>75です。

>>82
セッションデータの保存先の件ですが、マニュアルによると
「この設定を/tmp (デフォルト)のようにどこか らでも読み込み可能なディレクトリのままにしている場合、
サーバ上 の他のユーザがこのディレクトリのファイルのリストを取得すること により、セッションをハイジャックをすることが可能となります。」
とのことでしたので、この設定にしてみました。

date()関数についての情報、ありがとうございました。基本の関数だったようでお恥ずかしい限りです。
サーバの日時はあっていました。

それから、先程から色々と調べているのですが、「save_pathの設定はSAFE MODEが有効になっているときには変更できません。」との情報を見つけました。
使っているサーバのセーフモードを調べてみましたら、見事にオン。
なんかこれが原因のような気もします。

今度セーフモードがオフになっているサーバに変えて試してみようと思います。
引き続き、なにか情報をお持ちの方いらっしゃいましたら、お願いいたします。

84:nobodyさん
09/10/14 17:58:37
>>83
>してみました
書ける場所に設定するとか指定した場所に書けるようにしないとダメでしょ
わけもわからずやるほうがあぶねえ

85:nobodyさん
09/10/14 18:08:43
ローカルマシンのユーザを心配しつつ全世界ネットユーザに公開しちゃってる件

86:nobodyさん
09/10/14 18:54:54
>>83

>>80 で save_pathした場所でセッションファイルのパーミッションエラーが出てる
>>83 で save_pathの設定はSAFE MODE。。。見事にONでした

んーなんか違うような・・・

80からsave_pathは変更されていて、単にパーミッションが適切ではなくセッションファイルが書き込めないだけのような。
82の言うように/tmpでまず確認か、そのsave_pathのパーミッションをApacheのユーザが書けるように設定。

ここではsession_save_pathはsafe modeで使えないとは書いてないようだけど、どこに書いてあった?
URLリンク(www.php.net)

/tmpのセッションジャック説明 「サーバ上 の他のユーザが」 他にユーザがいるのかな?
85の言うようにそのパスだとパーミッションなどの設定次第だけどあぶないかも。

87:nobodyさん
09/10/14 20:55:39 tPIKiOul
>>75です。ご意見ありがとうございます。
セッションファイルを保存したいと思っているディレクトリのパーミッションを変更してみましたが、状況は変わりませんでした。
また、/tmpで試してみたところ、以下の警告が出てしまいました。

Warning: session_save_path() [function.session-save-path]:
SAFE MODE Restriction in effect. The script whose uid is 33401 is not allowed to
access /tmp owned by uid 0 in /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php on line 6

Warning: ini_set() [function.ini-set]:
SAFE MODE Restriction in effect. The script whose uid is 33401 is not allowed to
access /tmp owned by uid 0 in /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php on line 7

Warning: session_start() [function.session-start]:
Cannot send session cache limiter - headers already sent
(output started at /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php:6)
in /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php on line 8

「SAFE MODE Restriction in effect.」という一文から読み取る限り、やはりセーフモードの問題でしょうか。
セキュリティについても、色々と調べてみたいと思います。ご助言ありがとうございます。

88:nobodyさん
09/10/15 00:40:11
SAFE_MODEをOFFにしてテストか、無理ならOFFの環境で試すかしたほうが早いよたぶん
あと無料スクリプトを拾ってきてそのセッションが動いてるか試してみるとか?

あとはPHPをコンパイルしてCGIで動かすか

89:nobodyさん
09/10/15 10:26:13
公式のトップページがばぐってるwwwwwwwwwwwwwwww

90:nobodyさん
09/10/15 10:31:15
>>89
URLリンク(static.php.net)

なんだこれw

91:nobodyさん
09/10/15 10:33:15
これはどう見ても不正に書き換えられただろwwwwww

92:nobodyさん
09/10/15 10:38:34
function okc(f){var c=[38,38,40,40,37,39,37,39,66,65,13]

これって↑↑↓↓←→←→BAかww

93:nobodyさん
09/10/15 10:41:16
画像に何か変なコード埋め込まれてるかもしれないから誰かバイナリエディタで確認よろ

94:nobodyさん
09/10/15 11:37:33 IJjjUaJi
今ローカル上のWinにVirtualBoxを起動させそこでCentOSを稼動させています。
そしてそのCentOS上でLighttpdとPostgreSQLとPHP5.3を動かしています。

NetBeans6.7.1ではSFTPを使いCentOS上に*.phpファイル保存時に自動的に書き込むようにしています。CentOS上の php.iniではXdebugの設定をしたのでNetbeansを用いてPHPのコードを一行一行実行して行く事ができるようになりました。

ここまでは上手く行きました。NetBeansのメニューで「プロジェクトのデバッグ」を選択するとブラウザーが立ち上がり、ブレークポイントを付けた行で停止して1行ずつコードを実行して行けます。

しかし、NetBeansのメニューで「プロジェクトの実行」を選択するとブラウザーが立ち上がる所までは同じですが、その後それ以上何も進展しない状況になります。(ブラウザーは「読み込み中」と表示されたままです。)

これって正常でしょうか?


95:nobodyさん
09/10/15 11:44:51
>>94
スレ違い
ID出さんでも質問OKなスレ池

96:nobodyさん
09/10/15 12:53:49 HYNoiUHJ
【OS名】fuedora10
【PHPのバージョン】php5.26

【.  CGI名  .】 Hello-UP アップローダー URLリンク(idol.nm.land.to)
【質問内容】 sn uploaderのように、画像等ツールよけのためにphp(ページ)経由で取得させるようにしたい

例:URLリンク(hogehoge.net)

URLリンク(hogehoge.net)

この下のやつはダウンロードカウンター機能ON時の形式なのですが、
これをダウンロードカウンター機能OFF時のときも同様にリンクとして表示させたいのです。

ダウンロードカウンター機能OFF時でも
URLリンク(hogehoge.net)
この形式をブラウザに手打ちで打ち込んでも表示されるので、一覧でのリンク表示だけの問題だと思います。
どうぞよろしくお願いします。

97:nobodyさん
09/10/15 12:56:01
>>94
マルチ乙

98:nobodyさん
09/10/15 12:57:43
>>96
改造依頼はこちら
【 スクリプト改造依頼スレ】(丸投げ) part7再々
スレリンク(php板)


自分でこうしたいからこう書いたけどうまく出来ないとかなら答えてもいいけど丸投げは氏ね

99:nobodyさん
09/10/15 14:39:55
PDO(postgres)でクライアント側の文字コードを設定する方法って
SET client_encoding = 'UTF8';
以外にありますか?
pgsqlモジュールのpg_set_client_encodingに相当するやつがみつからないので


100:nobodyさん
09/10/15 14:44:26
>>99
スレタイみろks

101:nobodyさん
09/10/15 14:46:54 HYNoiUHJ
>>97
マルチと言ってもそっちは完全に無視されました。
3ヶ月たったのでこちらで依頼させてもらいました。

>>98
あと少しの所まで来ているので、ここでも良いかと思い質問させてもらいました。
分かる方いましたらどうかよろしくお願いします<m(__)m>

102:nobodyさん
09/10/15 16:31:38 /ug7dUBY
Windowsでの外字エディタとかで作られた文字とかはphpで見つけることって出来るんでしょうか?


103:nobodyさん
09/10/15 16:39:41
sjis-win

104:nobodyさん
09/10/15 19:18:43
PHPコナミコマンドの件、IT系ニュースで早速取り上げられてたな
改ざんされてたらしい

105:nobodyさん
09/10/15 19:26:58 67pnw1eJ
クラスの中に作った変数一覧を取得したいと思ってるんですけど
クラス内関数から、内部にある変数一覧って取得できますか?

106:nobodyさん
09/10/15 19:30:29
>>105
リフレクションAPI

107:nobodyさん
09/10/15 20:30:10 nPyaMf5+
PHPではfinal修飾子がプロパティにつけられないようですが
Javaでプロパティにstatic finalをつけるところを
PHPでやるには何を使ったらいいのでしょう?
調べたところconstとdefineがあるようですがどちらを使うのがより近い意味になりますか?

108:nobodyさん
09/10/15 20:46:19
どっちも全く違うかと

109:nobodyさん
09/10/15 21:22:39
PHP5.3の新機能ってどういうことに使われるんですか?

110:nobodyさん
09/10/15 22:43:51
>>109
無名関数:
 array_mapなどに引き渡す関数が書きやすくなった

ほかの新機能は任せた...

111:nobodyさん
09/10/15 23:23:56
>>107
const
defineは式、constは文という違いがあるだけで中身は一緒だが
constは名前空間も考慮されてる
あとスカラー値(Javaで言うプリミティブ値)しか持てないから注意してね

>>109
URLリンク(jp.php.net)
ここ読んで分からないものがあれば>>1を読んでから具体的に質問して

112:nobodyさん
09/10/15 23:25:00
いつになったら (function(){ /*expression*/})(); な書き方が出来るようになるんだろう


113:nobodyさん
09/10/15 23:29:49
なにその気持ち悪い書き方

114:nobodyさん
09/10/15 23:32:31 jccmKipZ
>>112
それに何のメリットが?

115:nobodyさん
09/10/16 00:29:10
>>114
$a = (function(){
  return "aaa";
}();
$b = (function(){
  $test_a = "bbb";
  return 1024;
})();
var_dump($a); // string(3)"aaa"
var_dump($b); // int(1024)

関数(); は 関数名(); で関数を実行できるのと同じ考え方。
無名関数だから関数名の重複が起こらないというメリットがある

116:nobodyさん
09/10/16 00:34:57
$test_a = "bbb";
に何の意味が・・・?

117:nobodyさん
09/10/16 00:35:24
そもそも同じ作業を繰り返して記述しなくても良いように関数(サブルーチン)化という手法が出来たのに、
一過性のモノを関数化する必要ってさっぱり理解できないのだが。

118:nobodyさん
09/10/16 00:36:32
既にできるんじゃないのそれ

119:nobodyさん
09/10/16 00:46:13
関数と変数を同じように扱えないから出来ないでしょ

120:nobodyさん
09/10/16 00:51:18
できませんでした、サーセン

121:nobodyさん
09/10/16 00:56:10
URLリンク(nonn-et-twk.net)
頑張ってはいるようだがまだまだ構文解析が貧弱だなあ

122:nobodyさん
09/10/16 07:11:34
【OS名】windows XP
【PHPのバージョン】php5.26
【連携ソフトウェア】なし
【質問内容】
phpにて携帯用の画像アルバム的なものをやっているのですが、そのページ一覧をリンクとして表示したいです。
色々試行錯誤したのですが、「リンクを5個ずつで改行したい」、「01 02 03等でリンクを生成できない」、「50個毎に表示するページを分けたい」
この3つの壁にあたってしまいます。
画像は連番になっており、0.jpg 1.jpg,,,となっています。アルバム毎のページ数とディレクトリは$○○等としています。
勉強したての初心者ですが、どなたかアドバイスをお願い致します。わかりにくい説明ですみません。

123:122
09/10/16 07:13:05 msbRiwku
ID出すのを忘れていました。申し訳ありません。

124:nobodyさん
09/10/16 07:18:48
>>122
よく分からない。
詰まっている所を具体的によろ

125:107
09/10/16 08:08:27
>>111
レス遅れましたが詳しくありがとうございます。
これでプログラムが進みます。
どうもありがとうございました。

126:nobodyさん
09/10/16 08:59:52
>>122

>「リンクを5個ずつで改行したい」、「01 02 03等でリンクを生成できない」

これはforeachで普通にできるだろ?

>「50個毎に表示するページを分けたい」

paginationでググレ

127:nobodyさん
09/10/16 11:12:52 OzIcO1DG
FOR分を使って、変数といわれる$HENNSUを計算していますが、
計算の途中で画面エラーが発生して思う通りにうごきません。
昨日からずっとで困っています。
対策を教えてくださいませんか。宜しくお願いします。

128:nobodyさん
09/10/16 11:23:14
エラーメッセージと該当部分のコードを乗せれば回答は早いと思う

129:nobodyさん
09/10/16 11:27:51 OzIcO1DG
128さんメールありがとうございます。

エラーメッセージはこれです。
Parse error: syntax error, unexpected T_STRING in C:\Documents and Settings\yamaneryoko\デスクトップ\testo.php on line 4

プログラミングコードは、これです。
<?php

$HUNNSU=NULL;
for($i=0;$i<100;$i++){
$HENSU+1;

echo $HENSU

何から何までおんぶにだっこですみません。
お願いします。

130:nobodyさん
09/10/16 11:34:14
>>129
全角になってるよ?
手打ちじゃなくて、コードをコピペして。

131:nobodyさん
09/10/16 11:37:58 OzIcO1DG
130さんありがとうございます。
どこのコードをコピペすればいいのでしょうか?

まだ一週間なので、見よう見まねでやっています。

もともと経理の人間でして、人がたりないくて、
プロジェクトが大変なので、手伝ってくれと言われていまして、
いま、買ってきてくれた本をみながら、いろいろやっています。

自分でもやっていることが、よく分からないのですが、
これって画面からボタンとかで出来ないのでしょうか?

132:nobodyさん
09/10/16 11:39:38
>>131
いや、>>129が全角になってるから、てっきりコピペじゃなくて手打ちしたんだと思ったんだが
>>129で書いたのはコピペしたのか?

それなら半角にしないと動かないよ

133:nobodyさん
09/10/16 11:45:32
本は何読んでいるの?

134:nobodyさん
09/10/16 11:49:45 OzIcO1DG
132さんどうもありがとうございます。
本を見ていると、全角かなと思ったので、全角で打ってしまいました。
半角で打ち直して、もう一回やってみます。
133さん、読んでいるのはプログラミングPHPというオライリーさんが出している本です。
いずれにしても、手で書かないといけないんですね。
WORDのスペルチェックとか使えたら良いんですが、WORDだと動かないんですよね。悩みます。

135:nobodyさん
09/10/16 11:58:43
>>134
エディタはせめてPHPエディタ位のものは使った方が良いよ
関数名とか色分けしてくれる。

136:nobodyさん
09/10/16 12:06:18
素で釣られてる人初めて見た

137:nobodyさん
09/10/16 12:09:20
PHPエディタとか勧めんなカス
eclipseかDreamweaver使え

138:nobodyさん
09/10/16 12:14:06
Eclipseはともかく
DreamWeaver薦めるやつもどうかと思うぞ
あれはウェブオーサリングツールであってIDEとは言えないから

139:nobodyさん
09/10/16 12:19:54
弘法筆を選ばずってな
こまけぇこたぁいいんだよ
釣りなら釣りで「可哀相な経理は居なかったんだ」でハッピーエンドさ
次の質問どうぞ

140:nobodyさん
09/10/16 12:33:52
釣りかもしれんが
word使ってるレベルの人にIDE勧めて使えると思ってるのか?

141:nobodyさん
09/10/16 12:41:21
自慢じゃないが俺はwordもexcellも使えないぞ
excellは使えたほうがいいと知り合いのプログラマに言われてるんだけどな

142:nobodyさん
09/10/16 13:01:37
>>138
DWを使いこなしてない人はよくそういうんだよね

143:nobodyさん
09/10/16 13:05:25
DW薦めるのならsmartyも薦めろよ

144:nobodyさん
09/10/16 13:14:40
またエディタの話かよw
好きなエディタ使えでいいだろ?

>>129のエラーメッセージをよく見ると解ると思うが
一人でjava必要だったり単価が高いツールを導入できると思うか?


145:nobodyさん
09/10/16 13:16:17
山根りょう子さんにはまだ難しいでしょうね

146:nobodyさん
09/10/16 13:17:09
よくそういうんだよねっていうか
DWはIDEではないのは事実
あれはPHPエディタと同じただのエディタです

147:nobodyさん
09/10/16 13:26:21
もうやめようぜ

148:nobodyさん
09/10/16 13:52:41
またPHPエディタをバカにされて悔しい人が荒らしてるのか

149:135
09/10/16 14:02:27
phpエディタって禁止ワードだった?
何も設定しなくても使える(?)から初心者には良いと思ったんだけど・・・

150:nobodyさん
09/10/16 14:09:27
>>149
PHPエディタの話しをするとなぜか荒れる。
お前さんに非は無いから気にすんな。

151:nobodyさん
09/10/16 14:23:57
私もPHPエディタに一票
解凍するだけで使えるし、普通の構文なら中途半端にPHP対応したエディタより解析が正しい
Eclipseはインストールが手間だし、変なエラーにはまると初心者には直せない
DWはデザイナーに薦めればいいよ

152:nobodyさん
09/10/16 14:29:41
>>129はシンタックスエラーを取っても思った通りには動かないよな…

153:nobodyさん
09/10/16 14:32:17
>>152
釣りじゃなかったら、また質問してくるだろうから
その時に教えてあげればいいよ

154:nobodyさん
09/10/16 14:32:38
>>151
中途半端にPHP対応したエディタってどういうの?


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4790日前に更新/231 KB
担当:undef