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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/10/25(火) 06:50:06ID:Q4oGlTH3
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辺り
0002nobodyさん2005/10/25(火) 06:50:53ID:Q4oGlTH3
前スレ
【php】part29【php】
http://pc8.2ch.net/test/read.cgi/php/1120611474/l50
【PHP】質問スレッドpart28【php】
http://pc8.2ch.net/test/read.cgi/php/1115281031/l50
【PHP】質問スレッドpart27【php】
http://pc8.2ch.net/test/read.cgi/php/1109857283/l50

関連リンク
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
0003nobodyさん2005/10/25(火) 06:51:24ID:Q4oGlTH3
関連スレ
【PHP】下らねぇ質問はここに書き込みやがれpart11
http://pc8.2ch.net/test/read.cgi/php/1129582431/l50
【PHP】PEAR Part2
http://pc8.2ch.net/test/read.cgi/php/1122899232/l50
PHPでオブジェクト指向プログラミング
http://pc8.2ch.net/test/read.cgi/php/1113724557/l50
【PHP】フレームワークについて語るスレ【総合】
http://pc8.2ch.net/test/read.cgi/php/1123608068/l50
【Smarty】PHPのテンプレートエンジン【Flexy】
http://pc8.2ch.net/test/read.cgi/php/1118799352/l50
[PHP-users MLヲチ7]今日の質問でございめう
http://pc8.2ch.net/test/read.cgi/php/1109389031/l50
正規表現道場@2ch Part4
http://pc8.2ch.net/test/read.cgi/php/1105930285/l50

関連板
データベース(SQL、DBMSの話題はこちら)
http://pc8.2ch.net/db/
プログラム(CLI、アルゴリズム、インタプリタの話題はおそらくこちら)
http://pc8.2ch.net/tech/
Web制作(クライアントサイドの話題は問答無用でこちら)
http://pc8.2ch.net/hp/
0004nobodyさん2005/10/25(火) 06:51:56ID:???
【FAQ】
1. ブラウザに何も表示されないんだけど・・・
 → error_reporting、display_errors、log_errors
2. include/requireに?a=b&c=dのようなパラメータつけたい
 → できません
3. $a1,$a2,$a3...はどうしたら?
 → 可変変数・・・というかむしろ配列使え
4. echo "$arr['hoge']['fuga']"; がうまくいかない
 → {おっぱい括弧}でくくれ
5. echo?print?
 → echoはコンマ区切りで書ける。printは関数。パフォーマンスは気にするな
6. 値渡し・参照渡しのパフォーマンス
 → これまた気にするな
7. csvやtsvを扱いたい
 → まずはfgetcsv
8. ファイル入出力関数(fopen等)でリモートファイル扱う際の限界
 → fsockopenでソケット通信で解決
9. 一定時間ごとに何かしたい
 → cron、タスクスケジューラ
10. 画像処理一般 or GDの限界
 → ImageMagick
11. 画像・音・動画はファイルで保存?DBに保存?
 → 好きにしてください
12. クッキーの情報をユーザから隠したい
 → セッション使え、ただしクッキーとセッションは仕組みが違うから同じように扱うな
0005nobodyさん2005/10/25(火) 06:52:28ID:???
「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条。
1. ハードウェア、OSのバージョン等には一字一句触れない。
2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。
3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。
  目の前で生じている現象をそのまま具体的に書くなどもっての外。
  事実より俺様の脳内解釈を優先すべし。
4. 独り言文体で必勝。
  「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。
6. もう試したことを得意げに指摘してくる奴には、厳しく対応。
  「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」
  "どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。
7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。
  「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」
  示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので
 絶対に避ける。
8. 情報は小出しに。

「エスパーきぼんぬ」 補足
上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。
そのような悪い質問に対して答えられるのは,
質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ,
という意味であって,決して,高度な技術を持つユーザに対する尊称でなはい。
まちがっても「エスパーの方,回答お願いします」
なんて痛い質問するな。つうか氏ね。
0006nobodyさん2005/10/25(火) 06:54:26ID:???
というわけで、予告通り立てました。
一応、前スレ(part29)へ来た質問にはそのまま答えるのもいいですが、なるべく誘導推奨ということで。
0007nobodyさん2005/10/25(火) 10:35:07ID:???
ちょwww前スレ使い切ってないけどいいの?
0008nobodyさん2005/10/25(火) 11:26:54ID:???
前スレがタイトルの付け方でくだ質との住み分けが
事実上できなくなってるのも現実だしな。
(この板落ちたら駄目だろ的スレの数が少ないので個人的には構わんかな)
0009nobodyさん2005/10/25(火) 11:32:58ID:lrmwE9/Z
>>1乙
0010nobodyさん2005/10/25(火) 12:25:55ID:???
>>7
前スレは>>8の通り、スレタイに「質問」という言葉が入っていないために書き込みが激減してしまった。
代わりに多くの質問者は「くだらねぇ*質問*はここで書き込みやがれ」へ集中。
事実、問題の前スレpart29とくだ質part7は同時期に立ったが、前スレがチンタラしてる間にpart11まで行ってしまった。
(レス数を比較すると、だいたい700:4600)

で、何が問題だったかと言うと、(向こうのスレでもチラホラ話題になったのだが)「くだらない」とは言えないような質問までくだ質に集中し、普段回答している側にとってもおそらく有益と言えるような質問・回答のやりとりまで、くだらない話題に埋もれてしまったこと。
あと漏れ個人としては、くだ質の方では似たような質問が何度も何度も繰り返されているにもかかわらず、回答者も同じような受け答えを何度もしているように感じた。

まあ、前スレ埋まってないのに混乱の元だと思うかもしれないが、ちょっと質問しに2chに来たって感じの香具師らは、前スレには質問という言葉が入っていないので目にも留まらないと思われ。そういう意味で混乱はさほど無さそうに思う。
くだ質の伸びから察するに、ちょっと2chに質問しに来るって感じの香具師がおそらく大半なのだろうし。
0011nobodyさん2005/10/25(火) 12:49:45ID:???
>>1乙!
0012nobodyさん2005/10/25(火) 13:50:57ID:???
>>10
把握した.

part29 にこっちへの誘導リンクを貼ったほうが良くない?
0013nobodyさん2005/10/25(火) 14:30:40ID:???
>>12
OK、貼ってきたよん。
0014nobodyさん2005/10/25(火) 14:51:02ID:???
乙
スレタイに「質問」と入れなかったりテンプレを端折った前スレの1が悪い
あとはくだ質の次スレあたりで関連スレのテンプレ貼ればokかな
0015nobodyさん2005/10/25(火) 16:31:17ID:???
IMAP,POP3,NNTP関数に前に受信したメールは受信しないなんて都合の良い機能はないんだよね?
0016152005/10/25(火) 16:41:18ID:???
またはメールサーバーがそのメールを受信した時間を取る方法はないのでしょうか?
0017nobodyさん2005/10/25(火) 23:23:54ID:???
【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
0018nobodyさん2005/10/26(水) 02:33:24ID:???
>>15
何がしたいのかよくわからんが、時間ならimap_headerとかで取れるけど
0019:2005/10/26(水) 23:20:59ID:AWxDLnDH
相対パスを取得できるようにしたいのですが、
どんな方法があるのでしょう?
0020nobodyさん2005/10/27(木) 00:10:43ID:???
>>19
意味がわかりません。
0021nobodyさん2005/10/27(木) 00:17:40ID:fD/gCp91
>>19
何をどこを基点としたときの相対パスを取得したいのですか。
0022nobodyさん2005/10/27(木) 00:18:48ID:???
日本語がおかしかった
どこを基点とした何の相対パスを取得したいのですか。 かな。。
0023192005/10/27(木) 00:44:02ID:w9P0Ohds
すいません。
自分でも意味がわからなかった。

実行するスクリプトを基点として、同じ鯖上にある任意のディレクトリ
(例えばpublic_htmlとか)の相対パスを取得したいのですが。

しかし、これもわからない気がする。
0024nobodyさん2005/10/27(木) 01:31:30ID:???
>>23
具体例を挙げてみて。
0025nobodyさん2005/10/27(木) 03:24:28ID:???
>>19
とりあえず聞くけど

function relpath($fullpath) ...

って感じで、http://example.com/abc/def.phpの中で
relpath("/path/to/the/public_html")を呼ぶと "../.." を返し、
relpath("/path/to/the/public_ftp")を呼ぶと "../../../public_ftp" を返す
ってことでおk?
(ドキュメントルートが /path/to/the/public_html であるとする)
0026192005/10/27(木) 07:47:24ID:w9P0Ohds
25
その通りです。
あの日本語が理解されて嬉しいです。

相対パスから絶対パスを取得する関数は見つかったのですが、
相対パスを取得する関数は見つからなかったので。
0027nobodyさん2005/10/27(木) 08:19:06ID:Xytq/Hms
下の様にGDライブラリを使用し、画像を縮小したのですが
とても荒く感じます。
<?php
list($width,$height)=getimagesize("img/php/20040218.jpg");
$src=@imagecreatefromjpeg("img/php/20040218.jpg");
$dst=imagecreatetruecolor(149,103);
imagecopyresized($dst,$src,0,0,0,0,149,103,$width,$height);
imagejpeg($dst,"img/php/20040218small.jpg");
?>

もう少しきれいにサムネイルしたいのですが、どのような方法が
あるのでしょうか?
0028nobodyさん2005/10/27(木) 08:40:56ID:???
>>26
自分で関数書くしかないね。
explode("/", $path)で区切ったりしてひたすら書くべし。

>>27
imagejpeg(□, □, 100)で品質を100にする。
あと、GDに不満を感じたときは>>4の10も検討。
0029nobodyさん2005/10/27(木) 08:54:42ID:???
>>27
どうでもいいことだが、GD系の関数名は無駄に長いので、
getImageSize
とか
imageCreateFromJpeg
のように大文字をからめて書くことをお勧めする
(PHPのクラス名・関数名・定数名はdefineの3番目の引数にtrueを指定しなかった場合を除いて大文字小文字の区別はされない)
0030nobodyさん2005/10/27(木) 09:12:55ID:???
>>28さん
imageJpeg(□, □, 100);
にしてみたところ、少し改善された気がします。
XREAもImageMagickに対応しているようなので、試してみます。

>>29さん
大文字小文字って区別されないんですね!
次からは見やすくなるように、区別して使っていこうと思います。

朝から質問に答えていただき、ありがとうございました。
0031nobodyさん2005/10/27(木) 16:25:35ID:???
//index.php
$uho = "ウホッ!";
<a href="ahya.php">リンク</a>


//ahya.php
echo $uho;


リンクで呼び出した先のPHPで、呼び出し元のPHPの中で宣言した変数$uhoを
参照する方法って無い?
0032nobodyさん2005/10/27(木) 16:31:55ID:???
>>31
無い。やり方教えて欲しかったら、まずは>>1見れ。
0033nobodyさん2005/10/27(木) 16:32:11ID:???
>>31
$_SESSIONか$_GET
0034nobodyさん2005/10/27(木) 16:36:14ID:???
>>33
俺なら$_SESSION使う
0035nobodyさん2005/10/27(木) 16:38:52ID:???
ページ間でデータをやり取りする方法は
・cookie
・session
・フォームかリンクに埋め込む
・ファイルかDBに保存
・shmop(環境依存)
などがある。
0036192005/10/27(木) 16:43:43ID:bGM1JPpO
>>28
わかりました。
explodeを使って何とか作ってきます。
どうもありがとうございました。
0037312005/10/27(木) 16:44:24ID:Ar3CFaXZ
>>32
スマソ・・・。というわけで
    ∧_∧  / ̄ ̄ ̄ ̄
  ∧( ´∀`)< あげ
 ( ⊂    ⊃ \____
 ( つ ノ ノ
 |(__)_)
 (__)_)

>>33-35

$_GETだとリンクのところに

<a href="ahya.php?$uho">リンク</a>

としないといけないわけか・・・。
これはちょっと面倒かな。

cookieだと閲覧者がブラウザの設定で有効にしてくれないと意味がないと。

DBは運用していないから除外。

となると残るはsessionかなぁ・・・使い方はよく分かってないが。
0038nobodyさん2005/10/27(木) 16:44:50ID:???
PHPつーかWebの基本だよね。こんなことも考えつかないなら、この先やっていけるのだろうか?
0039312005/10/27(木) 16:50:00ID:???
>>38
仕事じゃない。
単なる趣味のサイトだよ。
0040nobodyさん2005/10/27(木) 16:54:31ID:???
はいはい

- - - - - - - - - - - - - - - - - キリトリセン - - - - - - - - - - - - - - - - -

次の方ドゾー
0041312005/10/27(木) 16:57:00ID:???
ま、待て。もちつけ
     /\⌒ヽペタン
   /  /⌒)ノ ペタン
  ∧_∧ \ (( ∧_∧
 (; ´Д`))' ))(・∀・ ;)
 /  ⌒ノ ( ⌒ヽ⊂⌒ヽ
.(O   ノ ) ̄ ̄ ̄()__   )
 )_)_) (;;;;;;;;;;;;;;;;;;;)(_(
0042nobodyさん2005/10/27(木) 17:26:39ID:???
>>37
セッションも結局はセッションIDをクッキーに保存するかRLに埋め込むかになる
0043312005/10/27(木) 17:30:08ID:???
う〜む・・・、意外と難しいものだな、おい。
0044nobodyさん2005/10/27(木) 17:36:58ID:???
>>43
作ってみれば案外簡単だと思うよ

セッションとかクッキーとかでググって簡単なサンプル探してみては?
0045nobodyさん2005/10/27(木) 18:41:32ID:???
DBアクセスぐらいまでの基本的なところは
だいたいできてる気分なんですが、
フレームワーク作るとかさらに上のステップに
あがるのに適切な本とか方法とかありますか?

プロジェクトとかに参加してないとなかなか
レベルアップの機会がなくて・・・
0046nobodyさん2005/10/27(木) 19:44:57ID:???
>>45
それを聞いているようじゃ次のステップなんて・・・・
0047nobodyさん2005/10/27(木) 19:46:45ID:???
>>45
オープンソースとか,簡単に入手できる他人が書いたコードを読んでみる.
自分の作りたいものを作ってみる.
0048nobodyさん2005/10/27(木) 19:48:08ID:???
>>45
まずは作りたいと思ってるジャンルの、貴方の場合はフレームワーク、
それを色々使ってみてからじゃ米か。その上で不満とか良いところを
感じながら自分のプロダクトに盛り込む。
0049初心2005/10/28(金) 11:34:21ID:???
環境php5 Apache2 mysql4 WindowsXP
InsertやDeleteなどのsql文は問題なく動きます、ですがMAXやMINを下記参照で使うと期待した値が帰ってきませんでした。
期待した値としてはフィールド AutoNumber のint(4)型です。

$con=mysql_connect("********","*******","*******");
if(!$con){
print("era-");
}
mysql_select_db("test",$con);
//AutoNumberはPrimaryで作りました
$sql="select MAX(AutoNumber) FROM sogo";
$kekka=mysql_query($sql,$con);
$row=$kekka+1;
print("<HR> $kekka <BR> $row <BR>");
mysql_free_result($kekka);
mysql_close($con);
//結果
//Resource id #3
//4
ご教授のほどお願いします。
0050nobodyさん2005/10/28(金) 11:42:47ID:???
>>49
$kekkaは Resource id とあるように、SQLの結果へのリソースを返す。
で、実際の値は取得したリソースidを使って mysql_result()とかで取得する。
0051nobodyさん2005/10/28(金) 11:47:03ID:???
>>49
結果セットの取り扱い方法が間違っているな。
ちょっと変数の命名が変だけど、オマイさんが示したコードに無理矢理当てはめてみると
こんな感じになる。

$sql="select MAX(AutoNumber) as maxvalue FROM sogo";
$result=mysql_query($sql,$con);
$recordset = mysql_fetch_array($result, MYSQL_ASSOC);
$kekka=$recordset['maxvalue'];
$row=$kekka+1;
print("<HR> $kekka <BR> $row <BR>");
mysql_free_result($result);
0052初心2005/10/28(金) 12:02:45ID:???
早々のお返事ありがとうございます。
nobodyさん
先ほど>>49の例で試したところ期待した値が帰ってきました。
内容理解にがんばってみます。
0053初心2005/10/28(金) 12:03:30ID:???
>>52のアンカーミスです><;
0054nobodyさん2005/10/28(金) 13:04:04ID:???
>>53
意味わかんね
0055nobodyさん2005/10/28(金) 14:36:12ID:???
>>54
初心に変わってエスパーの俺が解説しよう
>>52の(レスに書いた>>49の)アンカー(は>>51の)ミスです><;
0056nobodyさん2005/10/28(金) 14:37:50ID:???
エスパーカコイイ
0057nobodyさん2005/10/28(金) 20:06:41ID:???
>>55
いや、エスパーパワーの使いどころ、そこじゃないし…
0058nobodyさん2005/10/31(月) 21:52:19ID:IQWjtyLi
環境PHP4 Apach1.3 MYSQL4 WINXP

質問:セッションIDが引き継げていない?

ttp://www.stackasterisk.jp/tech/php/php03_06.jsp
上記サイトを参考にしてローカルで試しています。

<<<<ここから>>>>
<?
session_start();
if (!isset($count)) $count=0;
session_register("count");
$count++;
?>

<html>
<body>
あなたは <?= $count ?> 回目の訪問です。
<a href="<?echo $PHP_SELF ."?PHPSESSID=". $PHPSESSID?>">カウントを増やす</a>
</body>
</html>
<<<<ここまで>>>>

試したソースは上記です。何回更新しても1回目のままです。

不審に思いifをちゃんと括弧でくくったりif内でechoさせたり色々試すと、
どうも!isset($count)が毎回trueを返して$count=0;を実行している模様。
elseをつけたり{}でくくりしっかりした書式にしても変らず。
windows\tempの中を覗いてみたらちゃんと変数はありました。

ご教授お願いします。
0059nobodyさん2005/10/31(月) 22:00:44ID:???
マニュアル嫁と言うべきだろうか?
0060nobodyさん2005/10/31(月) 22:08:21ID:???
>>58
そのサイトは
>この章で扱う PHP のバージョンは、PHP 4.0.3pl1 とします。 
なのに,
>>58 はPHP4.2以上を使ってるから.
0061582005/10/31(月) 22:31:17ID:IQWjtyLi
うー。ざっとしか目を通してないのでよく分からないんですが、
>PHP 4.2.3とそれ以前のバージョンのみに関係する問題があります。
> session_register()により新しいセッショ ン変数を登録する場合、
>グローバルスコープのエントリと $_SESSIONのエントリは、
>次の session_start()まで同じ値へのリファレンスとは なりません。
> すなわち、グローバル変数への修正は、$_SESSION のエントリには反映されません。
>PHP 4.3では修正されています。
ここいら辺の話でしょうか?
違うんであれば大体どの辺見ろとか言ってもらえると嬉しいです。
0062582005/10/31(月) 22:32:00ID:???
あ、あげちゃってごめんなさい。
0063nobodyさん2005/10/31(月) 22:46:11ID:???
・register_globals でググる
・新しいサンプル(PHP4.3.x,PHP4.4.x)を探す
0064nobodyさん2005/10/31(月) 22:48:27ID:???
session_register()なぞ使っているサンプルなんか捨てちまえ
0065nobodyさん2005/11/01(火) 00:48:13ID:cLPN4r6c
配列のチェックボックスで質問があります。

<input type="checkbox" name="test[]" value="1">
<input type="checkbox" name="test[]" value="2">
echo $_POST['test'][0];
echo $_POST['test'][1];

で期待通りに動作します。
しかし、[] がないサンプルを見かけました。

<input type="checkbox" name="test" value="1">
<input type="checkbox" name="test" value="2">
echo $_POST['test'][0];
echo $_POST['test'][1];

私の PHP4.4.0 の環境だと最後にオンになっている value しか表示されません。
PHP5 の環境だと OK ということなのでしょうか?
0066nobodyさん2005/11/01(火) 03:36:49ID:???
>>65
5でも同じ
[]が無い時は$_POST['test']だけ返って来る
0067nobodyさん2005/11/01(火) 05:52:12ID:XOKgx8G4
マルチバイト関数について質問です。

HPを移転させたら
Fatal error: Call to undefined function: mb_convert_encoding() in /home/hideaki/hideaki/mail.php on line 103
というエラーが出るようになってしまいました。
サーバによって違うものなのでしょうか?

phpinfo();
の結果をはっておきます。
http://www.1st-web.org/info.php

対処法など教えてください!お願いします。
0068152005/11/01(火) 07:24:14ID:???
>>67
読んで字のごとく
0069nobodyさん2005/11/01(火) 07:29:02ID:???
>>67
mbstring=sharedになっているのでスクリプトの先頭で
dl("mbstring.so");
とやってみる。
0070nobodyさん2005/11/01(火) 08:46:02ID:???
>>65
どこに載っていたサンプルか、言ってみ
0071nobodyさん2005/11/01(火) 08:48:29ID:???
array_pop(explode(':',$conf)); ってするとエラーになるんだね
Fatal error: Only variables can be passed by reference

はじめて気づいた・・・
0072652005/11/01(火) 09:13:05ID:???
>66
レスありがとうございます。
PHP5でも一緒ですか。

>70
ttp://www.lastcraft.com/form_testing_documentation.php
ここの下の方です。
0073nobodyさん2005/11/01(火) 09:37:51ID:???
>>72
そのページのサンプルに
 <input type="checkbox" name="test" value="1">
 <input type="checkbox" name="test" value="2">
で送られたデータを
 echo $_POST['test'][0];
 echo $_POST['test'][1];
という形式で受け取っている、とはどこにも書いてないだろ。
勝手に脳内補完するなよ。
0074nobodyさん2005/11/01(火) 09:48:05ID:???
>73
レスどうもです。
こちらのページ以外にもあったのですが、そちらは個人のサイトなので書いてないです。

配列のチェックボックスは、何通りの受け取り方があるのでしょうか?
0075732005/11/01(火) 10:07:33ID:???
>>74
鬱陶しい奴だな。自分で調べる気がないのなら素直に [] を付けりゃいいだろ。
配列もクソもPOSTデータを受け取る「方法」は一つ。
受け取ったデータをPHPが自動的に$_POSTに格納してくれているだけ。以下で確認しろや。

-- test.html --
<FORM action="test.php" method="post">
<input type="checkbox" name="test" value="1">
<input type="checkbox" name="test" value="2">
<input type="submit" value="send">

-- test.php --
readfile('php://input');
0076nobodyさん2005/11/01(火) 10:19:40ID:???
なんだかんだ言いつつ,丁寧にコード用意してくれる73萌え
0077nobodyさん2005/11/01(火) 10:25:22ID:???
>76
でも、質問の答えになってなく空回りしてるのがワロス
0078652005/11/01(火) 10:34:07ID:???
>75
どうもありがとう。
方法はひとつなのですね。

ttp://www.lastcraft.com/form_testing_documentation.php
自前でパースするのが前提のサンプルのようですね。
すっきりしました。
0079nobodyさん2005/11/01(火) 11:52:29ID:???
ちょっと質問です。
ftpでファイルを持ってくるのに
-----
for($i=0;$i<$max;$i++)
 file_get_contents("ftp://user:[email protected]/foo".$i.".txt")
-----
って感じで複数のファイルを取得してるんですが、10%弱の確率で
 331 password required for user
のエラーが返ってきます。
毎回起きてるならまだ分かるんですが、起きたり起きなかったりと
結果が不安定なので、何が悪いのかさっぱりな状態です…。

何か解決策はないものでしょうか?
(環境:php-4.3.11/Linux)
0080nobodyさん2005/11/01(火) 12:22:52ID:???
>79
$max がデカイとか?
ログファイルは?
0081nobodyさん2005/11/01(火) 12:43:24ID:7nOS7Rx3
htaccessを利用して、あるファイルを必ず読み込む方法が
あると聞いたのですが、実際の方法を教えてください。
0082nobodyさん2005/11/01(火) 12:49:18ID:???
つ [ auto_prepend_file ]
0083nobodyさん2005/11/01(火) 12:55:51ID:???
>>81
auto_append_file
これ以上のクレクレならくだ質逝け。
0084nobodyさん2005/11/01(火) 12:57:05ID:???
>>81
悪い、後から足してどうすると。
auto_prepend_file
が正解。
0085nobodyさん2005/11/01(火) 12:57:33ID:???
>>79
FTPサーバ側の設定かなんかじゃない?
再接続を繰り返しまくったらそういうエラーを返すように設定されてるとか。
fsockopenでつなげて、接続を保ったままgetで取得してみたら?
0086nobodyさん2005/11/01(火) 13:37:29ID:???
すみません。以下のperlをPHPでかいたらどうなりますか?

my $argv = shift @ARGV;
my $browser = LWP::UserAgent->new;
my $url = 'http://www.hogehoge.jp/cgi-bin/hogehoge.cgi';
my $response = $browser->post($url ,
[
foo => '2ch' ,
bar => 'orz',
file => [
undef, 'test.txt',
Content_Type => 'text/plain',
Content => $argv]
] ,
Content_Type => 'form-data'
);

die " Error!", $response->status_line unless $response->is_success;
print $response->content;
0087nobodyさん2005/11/01(火) 13:41:15ID:???
>>86
HTTP_Request を使う.

Perl→PHPの専用のスレがあったと思うけど?
0088792005/11/01(火) 14:22:49ID:???
レスありがとうございます。

>>80
$maxは今の所、最大6
該当エラーログの全文は
-----
Warning: file_get_contents(ftp://[email protected]/foo.txt): failed to open stream: FTP server reports 331 Password required for user.
in script.php on line 53
-----
と、こんな感じです。ホスト名あたりは実際のから置き換えてますが、その前後に
他のエラーは無いです。

>>85
fsockopenってことは、自前でFTPのコマンド出さないといけないんですよね?
出来ればその方法は避けたかったんですが、他に方法がなさそうだったら、
それで試してみます。
サーバー側の設定に関しては、これから調べてみます。
ちなみに、サーバーはProFTPD使ってます。
0089nobodyさん2005/11/01(火) 17:03:45ID:???
前スレが埋まったので再度質問させていただきます

foreach ($arr as $val) {
 …
}

で $arr が空の時 warning が出てしまうんですが
みなさんどう対処していますか?
empty()とかで最初に調べるのはあまりしたくないんですが。
0090nobodyさん2005/11/01(火) 17:06:20ID:???
「下らねぇ」スレが埋まってしまったので

995 名前:nobodyさん[sage] 投稿日:2005/11/01(火) 16:39:53 ID:???
セッションをURLに埋め込みたいんだが

<a href="./ahya.php?<?= SID ?>">リンク</a>

なぜかahya.phpへのURLにセッションIDが付与されない。
何か書きミスでもある?

だが

998 名前:nobodyさん[sage] 投稿日:2005/11/01(火) 16:52:25 ID:???
>>995
SIDが未定義とかエラーはでてないのけ
session_start()してる?

うん、ちゃんと冒頭でやってるよ

999 名前:nobodyさん[sage] 投稿日:2005/11/01(火) 16:59:51 ID:???
待て待て、セッションの渡し方がおかしい。

え、どこが?
0091nobodyさん2005/11/01(火) 17:19:39ID:???
えちょ?
0092902005/11/01(火) 17:22:45ID:???
きになったから

<?php echo SID; ?>

してみたんだが見事に何も表示されなかった。
session_start()すれば勝手に挿入されるんじゃなかったっけ?>>SID
0093nobodyさん2005/11/01(火) 17:36:11ID:???
>セッションIDがセッションクッキーに適切にセットされている場合には空文字列が入る。
なんて記述がマニュアルにあるが、これに該当してない?
0094nobodyさん2005/11/01(火) 17:38:45ID:???
session_id();ではあかんのか?
0095nobodyさん2005/11/01(火) 17:40:18ID:???
>>92
SIDが定義されるのは、
・cookie未使用
・cookie使用時は、一番最初の1回のみ
だと思うけど?

常に取得したければ、session_id()を使う


0096902005/11/01(火) 17:49:39ID:???
>>93-95
ウホッ(;´Д`)!
IEのクッキーをONにしているとSIDには変数が設定されないのか!

となると

<a href="./ahya.php?<?= SID ?>">リンク</a>

は、

<a href="./ahya.php?<?= session_id(); ?>">リンク</a>

に変えればいいのかな?
0097952005/11/01(火) 17:59:57ID:???
>>96
<a href="./ahya.php?<?= session_name()."=".session_id(); ?>">リンク</a>
だと思う。


0098902005/11/01(火) 18:50:54ID:???
>>97
お、ちゃんとURLに反映されたよ、ありがとう( ´∀`)ノ

ところでahya.php側でセッションを受け取るわけだけど、こちらで再度session_start()って宣言する必要
あるの?それとも$_GET['PHPSESSID']で直接session_id受け取って代入しちゃって良いのかな?
0099nobodyさん2005/11/01(火) 18:54:10ID:???
>>96 >>98
お前さぁ、少しは自分でやってみるって発想はないのか?
0100nobodyさん2005/11/01(火) 18:59:46ID:???
(´・ω・`)ショボーン
0101792005/11/01(火) 19:13:47ID:???
>>85
サーバー側にそれらしき設定は無かったです。
あと、クライアント側を改造してリクエストの間隔を10秒
あけてみても結果は変わらず。

ソースのftp_fopen_wrapper.cまで見てみたんだけど、なんで
この状態になるのかがさっぱり。
telnet使って再現実験やってみても、再現しなかったし…

引き続きどなたか思い当たる事があれば、情報をください(´・ω・`)
■ このスレッドは過去ログ倉庫に格納されています