トップページphp
1001コメント303KB

【PHP】質問スレッドpart31【php】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/11/27(日) 00:07:12ID:eBvjdczp
PHP全般の質問スレです。
【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
・質問者は2回目以降、最初のレス番号を名前欄に入れてください。
・回答者は質問者に対して>>(アンカー)をつけてください。
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry
・解決しなくてもこたえてもらったら礼を。
【質問テンプレ】
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc) 例:requireとinclude
・内容 例:requireとincludeはどう違うのですか?
・質問する際には環境も明記。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
【PHP マニュアル】
http://www.php.net/manual/ja/
※マニュアル上部の「search for」から検索を活用すべし(便利)。

過去スレ、関連リンク、FAQ等>>2-10辺り
0504nobodyさん2005/12/17(土) 02:05:59ID:???
>>503
おまいももうちょっと詳しくマニュアルを読んでみ。
0505nobodyさん2005/12/17(土) 02:08:52ID:???
>>504
おまいよりは読んだお^^;
0506nobodyさん2005/12/17(土) 03:06:03ID:???
>>505
回数の問題じゃねぇっ
0507nobodyさん2005/12/17(土) 05:03:10ID:???
とりあえず500は
http://jp.php.net/manual/ja/ref.exec.php
ここ読んで好きなの選べ
0508nobodyさん2005/12/17(土) 11:11:45ID:???
>>500
Internal Server Error
0509nobodyさん2005/12/17(土) 11:25:44ID:UrRJ5TVl
PHPの勉強を初めて1ヶ月ぐらい経つのですが、
初心者にお勧めのリファレンスってありますか?
0510nobodyさん2005/12/17(土) 11:36:30ID:???
>>509
1ヶ月も勉強したならば、あなたはもうルーキーFじゃなくビギナーDです。
0511nobodyさん2005/12/17(土) 12:32:40ID:???
ぱにゃ!
0512nobodyさん2005/12/17(土) 13:27:54ID:BoimMDuj
長年ブランクがあった。3年間だけど。。

以前は、経歴詐称常駐会社につとめていて、
ぼろぼろにされて、5ヶ月でやめた。Javaをやっていた。

全くのプログラム初心者なら話は別だが、他の言語を多少なりとも
やっていた人には、お奨めできるものがある。

一番、その言語に早く慣れたいなら、オライリーの一番簡単な本を読むのが
一番手っ取り早いし、安上がり。

PHPなら「始めてのPHP5」という本がある。
Perlなら「初めてのPerl」という本がある。ちなみにC++にも同シリーズは
ある。

JavaとCは知らん。。
0513nobodyさん2005/12/17(土) 13:28:51ID:???
>>512
リクエストは「リファレンス本」らしいよ
0514nobodyさん2005/12/17(土) 13:40:22ID:???
リファレンスってあんまりないよな〜。

でも、重宝するのが
http://www.amazon.co.jp/exec/obidos/ASIN/4798008850/250-0988500-3279408
だよな。やっぱ。初心者レベルから中級者くらいまでは、これが役に立つでしょ。

俺は、OracleとJavaのこのシリーズもってたけど、
かなり役立ったよ。
0515nobodyさん2005/12/17(土) 13:42:03ID:???
ちなみにページを下にスクロールすると見えると思うんだけど、
PostgreSQL&MySQLリファレンス。

MySQLとPostgreSQLの最初の設定とかはネットで調べるなり
本を買うなりしないとダメだけど、その後役に立つよ。

0516nobodyさん2005/12/17(土) 14:04:05ID:???
Perlの時は、青ラクダを買ったなぁ。
Perlだけでなく、Webアプリのための一般的なプログラミング知識も得られた。

PHP版もあるの?
0517php4(sax)でのxmlの処理2005/12/17(土) 14:06:49ID:???
ブラウザから入力されたデータを、
決まった形式のxmlに変換して保存しようと思っています。

htmlタグが入力されたとき、
1:タグをエスケープしてxmlに変換
して保存してる訳ですが、そのログをxmlパーサで読むとき、
2:エスケープされたタグ文字が解釈されて"<"とかに戻る
ので、
3:タグ文字をエスケープし直してブラウザに出力

3回も変換処理が入っていて、なんだかものすごく無駄なことしてる気がするんですが、
うまい方法ないですかね。
cdata使うと、終端文字が入力できないし……
0518nobodyさん2005/12/17(土) 14:08:49ID:???
なにはなくとも、公式マニュアル。
どうしても本がよければ「技術評論社刊:PHPポケットリファレンス」
これでOK
0519nobodyさん2005/12/17(土) 14:32:55ID:nttpIBA6
本の話題があるんで便乗して聞きたいんですけど、
PHPでプログラムする際にセキュリティに関して詳しい本ってありますか?
0520nobodyさん2005/12/17(土) 14:41:32ID:???
file関数で配列に一旦格納してから
再度配列を一つのファイルに戻したいと考えています。
何かグッドな関数や方法があったらキボンヌ
0521nobodyさん2005/12/17(土) 14:46:21ID:???
>>519
PHPじゃないけどこれ。
ttp://www.ipa.go.jp/security/awareness/vendor/programming/

同じ事をPHPでもやればいい。
0522nobodyさん2005/12/17(土) 14:48:07ID:???
>>520
改行コードで implode してファイルに書き戻せば良いのでは?
05235522005/12/17(土) 14:49:59ID:???
fileで読み込んだときに改行コードがそのままなら、何も足さずにimplodeすればいいな。
確認してね。
0524nobodyさん2005/12/17(土) 15:19:20ID:???
フォームによる入力ページで、一度POSTで違うページに行っても
ブラウザの戻るボタンで戻ると必ずフォームの値が残っているサイトが
あるような気がしますが、どのように実現してるのでしょうか

あるいは、こうしたフォームページでの入力値の
ブラウザ側での保持時間というのはこちらでコントロールできる
ものなんでしょうか
0525nobodyさん2005/12/17(土) 15:25:25ID:???
送信フォームのhtmlページでsendmail.phpファイルを
読み込ませて入力結果などを表示させるスクリプト使用なのですが
テストサイトでは何の問題もなく送信結果などが実行されていたのに
いざ先方のドメインサーバーにupしてみて試しに記入せず送信ボタン
押してみると*必須記入欄の未入力エラーとして実行されるべき
画面に以下の表示結果が出て困っています。

Warning: Invalid argument supplied for foreach() in /home1/○○○.ne.jp/WWW/sendmail.php on line 132

Fatal error: Call to undefined function: mb_convert_encoding() in /home1/○○○.ne.jp/WWW/sendmail.php on line 141



ちなみに上の方Warning: 〜とかかれた行は数字違いで同じ内容であと3っつ程ありますが略してます。
もちろんphp対応のサーバーです。
WWWというのが先方サーバーの先頭ディレクトリーなんです。


0526nobodyさん2005/12/17(土) 15:28:22ID:???
>>524
つブラウザキャッシュ
つHTMLのMETAタグ
0527nobodyさん2005/12/17(土) 15:30:30ID:Hbd/Rmjf
fopen→freadでよみこんだテンプレはeregとかで置換できるのに
includeで読み込んだファイルは置換できません。


同じ「読み込む」なのに後者だけできないのはなぜですか
0528nobodyさん2005/12/17(土) 15:43:29ID:???
>>525
くだらない。実にくだらない。
せっかくメッセージを出しているのに、なぜそれを理解しようとしないの?
0529nobodyさん2005/12/17(土) 15:45:39ID:???
下らない質問文は「ドラえも〜ん」で書き始めるとよい
0530nobodyさん2005/12/17(土) 15:50:44ID:???
>>527
テンプレって何ですか?
あと、freadとincludeは”同じ「読み込み」”ではありません。
http://jp.php.net/manual/ja/function.fread.php
http://jp.php.net/manual/ja/function.include.php
どこが違うかは、日本語が理解できる人ならばマニュアルを読めばわかります。
0531nobodyさん2005/12/17(土) 15:51:26ID:???
質問する前にテンプレくらいは見ような。
>>4とか>>5とか。

>>529
不覚にもワロタ
0532nobodyさん2005/12/17(土) 16:00:56ID:???
リンクチェッカー http://www.ai2x.com/
みたいなものをPHPでも作ることって可能ですか?
0533nobodyさん2005/12/17(土) 16:03:23ID:Hbd/Rmjf
>>530
サンクス日本人なので今から理解してきます
0534nobodyさん2005/12/17(土) 16:16:35ID:???
ドラえも〜ん。
うちのパソコンは優秀だから「どらえもん」と入力すると
「ドラえもん」とドラがカタカナの正しいドラちゃんが出てくる。
0535nobodyさん2005/12/17(土) 16:30:27ID:???
>>522
それってグッドなのか?
確かに見た目スマートでかっこよさげなコードになるけど、
普通にroopして1行ずつ書くほうが所要時間はやくね?
0536nobodyさん2005/12/17(土) 16:33:06ID:???
バッファリングやOSの実装にも影響されるが
速くなる要素はないな
0537nobodyさん2005/12/17(土) 16:51:44ID:???
>>535
パフォーマンスが気になるならベンチ取るなりして確認してくれ。
そいでその結果を公表してもらえるとありがたいな。
05385202005/12/17(土) 16:56:25ID:???
>>522
うぉーありがとう!!
このためだけに10数行のコードを書いちゃうところでした。
0539nobodyさん2005/12/17(土) 16:56:27ID:???
roopってどうやるんですか?
0540nobodyさん2005/12/17(土) 16:59:40ID:???
for
0541nobodyさん2005/12/17(土) 17:02:19ID:???
http://en.wikipedia.org/wiki/ROOP
0542nobodyさん2005/12/17(土) 17:04:23ID:???
>>539
roopは擬音か何かじゃないかな
0543nobodyさん2005/12/17(土) 17:08:35ID:???
>>54
0544nobodyさん2005/12/17(土) 17:10:13ID:???
いやみな奴らだなぁ…
05455202005/12/17(土) 17:15:20ID:???
linux上で implode("\n", $array) でやってみたら
余分に改行されてしまいます。

-------
1
2
3
-------

-------
1

2

3
-------
になってしまいました。
改行コードあたりの問題の気がしますが・・・。
0546nobodyさん2005/12/17(土) 17:15:25ID:???
>>541
オンラインの情報がまるで見つからないんだけど
0547nobodyさん2005/12/17(土) 17:16:17ID:???
>>545
>>523
05485202005/12/17(土) 17:29:30ID:???
>>547
サンクス、上手くはいったんだけど、
理由がよくワカラソ。
めんどくないひと居たら教えてクリ
05495202005/12/17(土) 17:35:48ID:???
あ、理解できただす。ありがとう
0550nobodyさん2005/12/17(土) 17:38:58ID:???
>>548
file関数は配列に読み込むとき行末の改行コードを削除しないんよ。
つttp://jp2.php.net/manual/ja/function.file.php

常にマニュアルを見て確認する癖をつけたほうが、上達早いよ。
0551nobodyさん2005/12/17(土) 17:40:08ID:???
520はそそっかしい奴だな。
0552nobodyさん2005/12/17(土) 17:45:35ID:???
ここで聞くべきなのかLinux板に行くべきなのか微妙なところですが・・・
Fedra以外のディストリビューションでPHP5が公式パッケージとして用意されているものはありますか?
0553nobodyさん2005/12/17(土) 17:51:46ID:???
>>552
つFreeBSD
0554nobodyさん2005/12/17(土) 18:35:45ID:???
>>532
作れる。ヒント:PEAR HTTP
0555nobodyさん2005/12/18(日) 00:32:43ID:???
phpである関数を1秒間に1回しか使えなくして、
仮に1秒間に複数回、関数が呼び出されたら、
1秒ごとに順に関数を実行する方法はありますか?
0556nobodyさん2005/12/18(日) 02:42:42ID:???
>>555
そのようにプログラミングすればできるんじゃね?
つシングルトン
0557nobodyさん2005/12/18(日) 05:35:07ID:???
sesseion.use_trans_sidが1に設定されているのですが、
リンクに自動でSIDが付きません。
クッキーをオフにしてやっても付きません。

これは何が原因なのでしょうか?
0558nobodyさん2005/12/18(日) 05:42:41ID:???
勘違いじゃないかねぇ。
現象が再現する短いソースを見せてちょ。
0559nobodyさん2005/12/18(日) 05:46:31ID:???
.htaccessでuse_trans_sidを設定 (phpinfoで確認済み)
同じディレクトリでindex.phpをおいて

<?php
session_start();
if (!is_set($_SESSION['count'])) $_SESSION['count'] = 0;
else $_SESSION['count']++;
?>

<html>
<body>
<?=$_SESSION['count']?><br>
<a href="index.php">link</a><br>
</body>
</html>
0560nobodyさん2005/12/18(日) 06:17:09ID:???
ついでにphpinfoの内容もコピペしとけ。
0561nobodyさん2005/12/18(日) 15:55:42ID:???
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 72000 1440
session.gc_probability 1 1
session.hash_bits_per_character 4 4
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path no value no value
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 1 0

あとこれかな

url_rewriter.tags a=href,area=href,frame=src,form=,fieldset= a=href,area=href,frame=src,form=,fieldset=
0562nobodyさん2005/12/18(日) 17:08:07ID:???
test
0563nobodyさん2005/12/18(日) 19:38:22ID:???
解決しました。

セキュリティレベルを最高まで上げたらできました。
ドメインでクッキーをはじくように設定していたのですが
なぜか反映されてなかったのです。。
0564nobodyさん2005/12/18(日) 23:55:14ID:???
クッキーを使わずに強制的にGETクエリーにSIDを乗せたい
(クッキーを使った方法は強制的になしにする)と思って
session.use_cookies を 0 に設定してみましたが、できませんでした。

何か凡ミスでしょうか。
それとも他に設定箇所があるのでしょうか。
0565nobodyさん2005/12/19(月) 01:51:02ID:???
当たり前。
セッションIDを受け渡す方法がないから。
ヒント:マニュアル セッションの受け渡し
0566nobodyさん2005/12/19(月) 02:08:24ID:???
2種類あるのは解ってますよ

方法はなくはないでしょう。
クッキーではなくURLに直接埋め込む方式でやりたいんです。
0567nobodyさん2005/12/19(月) 02:19:55ID:???
session.use_trans_sid は Onになってる?
0568nobodyさん2005/12/19(月) 02:27:11ID:R4UOoyTG
PHPを自分のPCでテストするのって難しいですね・゚・(ノД`)・゚・。
もうかれこれ4日も導入に悪戦苦闘してます。
0569nobodyさん2005/12/19(月) 02:34:32ID:???
簡単だよー。
0570nobodyさん2005/12/19(月) 02:41:49ID:???
>>567
はい。ちゃんとなってます。
0571nobodyさん2005/12/19(月) 02:42:22ID:nsaG6AgK
>>568
どこかのサイトか本みてやればすぐ終わると思うのだが
0572nobodyさん2005/12/19(月) 02:43:20ID:???
>>568
そんなあなたに

っ XAMPP
0573nobodyさん2005/12/19(月) 02:47:56ID:???
An Httpd使っているんですが、関連付けが詳しく書いてあるサイトが
もしありましたら教えてくださいm(_ _)m
Apatchの方は読めず、扱いが難しいので断念しました・゚・(ノД`)・゚・。
0574nobodyさん2005/12/19(月) 02:50:06ID:???
>>573
ttp://homepage1.nifty.com/yito/anhttpd/faq/php.html
このくらいしか知らない。
0575nobodyさん2005/12/19(月) 02:52:45ID:???
皆さんレスありがとうございます。
早速今から試してみます。
0576nobodyさん2005/12/19(月) 02:54:21ID:???
>>564
session.use_only_cookies はOnになってたりしないよね?
0577nobodyさん2005/12/19(月) 02:56:22ID:???
>>564
あと思いつくのは、リンクが全部絶対パス指定になっちゃってる場合とか…
(URL付加は相対パスしか変換しないのがお約束なので)
05785682005/12/19(月) 03:31:13ID:???
おかげさまでPHPテスト実行できました!
本当にありがとうございました!!
ほんの30分で出来た・・・今までの4日間はなんだったんだ・゚・(ノД`)・゚・
0579nobodyさん2005/12/19(月) 05:17:53ID:???
>>576
session.use_cookies Off On
session.use_only_cookies Off Off
session.use_trans_sid 1 0

こんな感じです。

>>577
相対パスで書いてます・・・
0580nobodyさん2005/12/19(月) 05:25:38ID:???
>>579
>>559のスクリプトを実行してみてもだめなの?
0581nobodyさん2005/12/19(月) 05:37:51ID:???
>>580
はい。
やっぱり何故かURLではなくクッキー経由でセッションが渡ってしまいます。
0582nobodyさん2005/12/19(月) 05:53:22ID:???
        /つ_∧  < エッ!セッションが使えないのかと思ってた。
  /つ__∧ 〈( ´_>`)
  |( ´_ゝ`) ヽ ⊂ニ) < OK兄者。漏れもそうだ。
  ヽ__と/ ̄ ̄ ̄/ |
    ̄\/___/ ̄ ̄
0583nobodyさん2005/12/19(月) 11:02:27ID:???
>>581
はぁ?クッキー使用OFFにしてるのにクッキーで渡るの?
そりゃ単にphp.iniの設定が反映してないだけじゃないのか。

phpinfoの表示確認。できれば実行してるプログラム上でini_get()で設定値を確認してみれ。
0584nobodyさん2005/12/19(月) 11:11:48ID:???
>>579

session.use_cookies Off On
クライアント側にセッ ションIDを保存する際にクッキーを
使用するかどうかを指定します。

session.use_only_cookies Off Off
このモジュールがクライアント側へのセッションIDの保存に
Cookieのみを使用することを指定します。

session.use_trans_sid 1 0
透過的なセッション IDの付加をするかどうかを指定します。
デフォルトは、0(無効)です。

よってcookieが使われるように貴方が設定しているのが原因。
マニュアル読もうな。な!
0585nobodyさん2005/12/19(月) 12:48:44ID:???
>>584
Off On
ってOffが優先されるんじゃないの?
0586nobodyさん2005/12/19(月) 12:58:19ID:???
2つ並んでいるのは、local value/master valueじゃ無いの?
local valueが有効なはず
0587nobodyさん2005/12/19(月) 12:58:37ID:???
>>585
あれ?Local Value、Master Value の順番だっけ?
なら間違い。
わからん。すまん。
0588nobodyさん2005/12/19(月) 13:02:42ID:???
おいらもどっちだっけ?と思ってphpinfo()を確認してみたが、
local masterの順なのでcookieを使わない設定になってるはず。
0589nobodyさん2005/12/20(火) 03:06:25ID:???
phpが最新のバージョンかどうか確かめる関数って無いんですか?
0590nobodyさん2005/12/20(火) 03:31:47ID:???
>>589
今使ってるやつより新しいバージョンのPHPが
リリースされたかどうかなんてどうやって検索するねん。
0591nobodyさん2005/12/20(火) 04:17:56ID:???
>>589
ない。「最新の」って情報がどっかから確実に入手できれば可能。
0592nobodyさん2005/12/20(火) 04:33:40ID:???
>>590 >>591
ってことは信頼できるトコから情報を入手して比較するしかないんですね。
ありがとうございました。
0593nobodyさん2005/12/20(火) 07:38:21ID:???
変数が

・セットされていない
・NULL
・空文字列

の時1を返して
それ以外で0を返す関数ってありませんか?

issetは空文字列の時の処理が異なりました。
0594nobodyさん2005/12/20(火) 07:40:25ID:???
isset($var) or $var === ''
でいいのでは?
0595nobodyさん2005/12/20(火) 09:47:38ID:???
!$var
0596nobodyさん2005/12/20(火) 11:28:53ID:???
$varが0だとそれもtrueになる
0597nobodyさん2005/12/20(火) 11:40:27ID:???
http://www.workspot.jp/tech/php_tips2.html
この辺参照
05985942005/12/20(火) 12:01:11ID:???
ミスった。
! isset($var) or $var === ''
だわな。
ハズカチ
0599nobodyさん2005/12/20(火) 18:00:13ID:???
PHPセッションについて質問です。

携帯用のメールフォームにて入力フォームを複数ページに分けて、
最終ページでメール送信というものを作成しています。
ページ間では各値をセッション変数に保持しているのですが、
過去2回ほど最初の方のページで入力した内容が消えてしまっていることがあります。
(各ページでは必須入力チェックを行っています)

このような現象が確認される場合、どのような原因が考えられますでしょうか。

ちなみに、この現象が起こったキャリアはauです。

PHP Version 4.2.3

session.auto_start Off
session.cache_expire 180
session.cache_limiter nocache
session.cookie_lifetime 0
session.cookie_path /
session.cookie_secure Off
session.gc_maxlifetime 1440
session.gc_probability 1
session.name PHPSESSID
session.save_path /tmp
session.use_cookies On
session.use_trans_sid 1
0600nobodyさん2005/12/20(火) 18:41:02ID:???
session.gc_maxlifetime 1440
0601nobodyさん2005/12/20(火) 18:57:00ID:???
>600
ガベージコレクションで最初の値削除されてしまってるということでしょうか。
な、なるほど。
0602nobodyさん2005/12/20(火) 19:07:56ID:Lk6o0b9n
PHP5.0.4ってどこからDLすればよいのですか?
本家に行ってもPHP5.1.1をDLするよう推奨されてて、PHP5.0.4をDL出来ないようなのですが・・・
どなたかDL出来るサイト等をご存知でしたら教えてください。
0603nobodyさん2005/12/20(火) 19:16:52ID:???
>>602
「Older versions of PHP」に思いっきりあるわけだが
■ このスレッドは過去ログ倉庫に格納されています