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

【PHP】質問スレッド Part8

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/04/14 00:52ID:???
■本家
 http://www.php.net/

■日本 PHP ユーザ会
 http://www.php.gr.jp/

■PHP マニュアル
 http://www.php.net/manual/ja/

■PEAR マニュアル
 http://pear.php.net/manual/ja/

過去スレ, 関連スレ及び注意事項等は、アフォが居なけりゃ >>2-4
0267nobodyさん03/05/16 18:02ID:???
>>242
詳しい解説どうもです。とりあえず英語のメールでテストしてる
んですが
Warning: fsockopen() [function.fsockopen]: php_hostconnect: connect failed in
/usr/local/lib/php/Net/Socket.php on line 108
Warning: fsockopen() [function.fsockopen]: unable to connect to 192.168.0.2:25 in
/usr/local/lib/php/Net/Socket.php on line 108
こんなエラーが出ます。PHPを動かしてるのは 192.168.0.3 で、
SMTPサーバが動いてるのは 192.168.0.2 です。pingも通るし
NMAPでポートスキャンしてみてもSMTPサーバは稼働してるように
見えます。パケットフィルタリングが邪魔してるのでもなさそう
です。

ちなみに SMTPサーバ上でPHPを動かしてみました。この時は
$param['host'] = 'localhost';
としたんですが、これは成功しました。

>>244
とりあえず英語でメール出来るようになったらその方法試して
みますね。ありがとうございます。
026824203/05/16 18:13ID:???
>>267

ホントに25番空いてる?
# netstat -na | grep 25
tcp  0  0 127.0.0.1:25  0.0.0.0:*  LISTEN

↑こんな風にでてきたら空いてない。
sendmailは確かデフォルトだとlocalhostからしか無理だったような…
sendmail.cfに

DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA

こんな感じで「Addr=127.0.0.1」って書いてあったら無理だよ
0269situmon=25703/05/16 18:17ID:X9ormN/S
>>266
そうですか。

2CHはどうやってるんでしょ。
0270nobodyさん03/05/16 18:26ID:???
>>268
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
こうなります。
sendmailじゃなくてPostfixに付属のラッパー使ってるんです。

って今気づいたんですけどSMTPサーバのアドレスは
192.168.0.3 でした。。修正したらとりあえずエラー
は出なかったのでメールが届くのをしばし待ってみま
す。お騒がせしてごめんなさい。
0271パピポ03/05/16 18:44ID:J/IF4YAV
>>269
そもそも2chはPHP使ってないのではないかと、
書き換える部分ってのは全体のウチの少し
であるならば、その部分だけインクルードさせる
方が効率的。

>>267
ガムバって下さい。
普通のデスクトップPCからメールの送信を試してみれば早いんじゃない。
漏れは使うSMTPサーバがセキュリティをかけててそれで手間取った
記憶がある。POPtoSMTPとかやってたら絶望的かな。
0272_03/05/16 18:45ID:???
  ∧_∧   
 ( ・∀・)/< こんなのみつけたっち♪ 
ttp://www.yamazaki.90.kg/hankaku/hankaku04.html
ttp://yamazaki.90.kg/hankaku/hankaku10.html
ttp://www.yamazaki.90.kg/hankaku/hankaku09.html
ttp://yamazaki.90.kg/hankaku/hankaku08.html
ttp://www.yamazaki.90.kg/hankaku/hankaku06.html
ttp://yamazaki.90.kg/hankaku/hankaku05.html
ttp://www.yamazaki.90.kg/hankaku/hankaku01.html
ttp://yamazaki.90.kg/hankaku/hankaku02.html
ttp://www.yamazaki.90.kg/hankaku/hankaku07.html
ttp://yamazaki.90.kg/hankaku/hankaku04.html
0273situmon=25703/05/16 19:06ID:X9ormN/S
>>271
perlでもphpでもなんでもいいんですけど、
こういう時は処理をどうやるのが良いのかと思いまして。
インクルード方が安全てのはわかりますけど
効率的かどうかはcasebycaseですねおそらく。
何をもって効率とするか、って話も含めて。
0274bloom03/05/16 19:08ID:n/FznajZ
http://homepage.mac.com/ayaya16/
0275nobodyさん03/05/16 19:42ID:???
>>271
とりあえず英語は成功しました!次は日本語メールに
挑戦してみます。
027624203/05/16 22:59ID:???
>>275

成功したようでなによりです
0277nobodyさん03/05/16 23:20ID:???
当方 Apache/1.3.27 (Win32) PHP/4.3.1 Win 2000 なのですが、
mb_convert_kana() 文のところで、
Call to undefined function: mb_convert_kana()
のエラーになってしまいます。
マニュアルを見ると mb_convert_kana() は (PHP 4 >= 4.0.6)
となっているので使えるはずなのですが・・・

ダウンロードした PHP は
PHP 4.3.1 zip package [5,853Kb] - 17 February 2003
(CGI binary plus server API versions for Apache, Apache2 (experimental), ISAPI, NSAPI, Servlet and Pi3Web. MySQL support built-in, many extensions included, packaged as zip)
です。
どうしてなんでしょうか。詳しい方、教えてください。
0278nobodyさん03/05/17 00:09ID:1W7PV21t
>>277
mbstringは入れたの?
0279nobodyさん03/05/17 02:06ID:???
278に補足するとphp.iniでmbstringのDLLを
ダイナミックロードするように設定したのかということ。

あと、その辺が抜けてるとするとphp.iniのmbstring
に関する設定もしてないと思われ。
0280nobodyさん03/05/17 03:01ID:???
外部のSMTPサーバを使って日本語でメールを送信する
方法についてまとめてみました。PHPではEUC-JPを使う
と仮定してます。

require_once("Mail.php"); // Mail/mail.php ではない
mb_internal_encoding('EUC-JP'); // PHPで使ってる文字コードを指定
//送り先の設定
$recipients = "[email protected]"; // エンベローブの設定
//ヘッダーの設定
$headers['From'] = '[email protected]';
$headers['To'] = '[email protected]';
$subject = 'サブジェクト';
$headers['Content-Type'] = "Text/Plain; charset=iso-2022-jp"; // これはなくてもいいのかも
//サブジェクトののエンコード
$headers['Subject'] = Mb_Encode_Mimeheader($subject,"ISO-2022-JP",B);
//本文
$body = "日本語だよママン";
//本文のエンコード
$body = Mb_Convert_Encoding($body,"ISO-2022-JP","EUC-JP"); // PHPで使ってる文字コードを指定
//SMTPサーバーの設定
$param['host'] = '192.168.0.2';
$param['port'] = 25;
//オブジェクトを生成して送信
$mailer =& Mail::factory("smtp", $param);
$status = $mailer->send($recipients, $headers, $body);
028127703/05/17 12:13ID:???
>>278,279
 レスありがとうございます。
 php.ini は何もいじってませんでした。(とりあえず使えてしまったので)
 これから確認してみます。
 後でまた報告します。
028223103/05/17 13:59ID:???
sakuraでphp関数の色の換え方おしえろ包茎
028327703/05/17 14:36ID:???
使えるようになりました!
ありがとうズルズルさんたち。
0284nobodyさん03/05/17 14:42ID:???
>282
イマイチ言ってる意味が判らん。.htaccessでphpの拡張子に
AddType application/x-httpd-php .phtml
AddType application/x-httpd-php-source .php .phps
シンタックス・ハイライト表示のソースになるように呪文かけるってこと?

関数なら
http://www.php.net/manual/ja/function.show-source.php
http://www.php.net/manual/ja/function.highlight-file.php
http://www.php.net/manual/ja/function.highlight-string.php
0285 ◆AngelH/kMI 03/05/17 23:33ID:???
紛らわしいが解読。

>282の言ってる「sakura」はサクラエディタで
>284の言ってる「sakura」はさくらインターネットなんだろうな。

で、サクラエディタのことを言ってるとして。

googleで調べよう。このくらい。
一番上に出てきたよ・・・。
http://www.egroups.co.jp/files/sakura-editor/User/Data/
0286nobodyさん03/05/18 15:40ID:UKxQ/8fh
a.php → b.phpというふうにPOSTでデータを渡しているんですが、
aからbの所で、a以外から送られたデータをbで弾く方法ってありますか?
誰かがイタズラ目的で作った、偽aフォームを使えないようにするというか。

ごめんなさい。php始めたばかりで分からないこと多いんです。
質問も上手く説明できていませんが・・・よろしくお願いします。
0287nobodyさん03/05/18 16:02ID:???
a.php -get-> client -post-> b.php
このとだと解釈していいのかな。
そうなら
0288nobodyさん03/05/18 16:03ID:???
ああ途中で送信しちゃった。
0289nobodyさん03/05/18 17:09ID:???
>>287-288
で、その後何が言いたいんだ?(w
0290nobodyさん03/05/18 22:21ID:dHdqUSTR
CGIで、ファイルに書き込みしたいのに、どうしてもこのopen行が原因でエラーになります。
本とかで調べてもあってるはずなのになんでおかしいのでしょうか。

open(INIFILE,"+<$fileini");
close(INIFILE);
ローカルでこの行が入ってるファイルをテストしてみたら、
Unterminated <> operator
というエラーがでてとまってしまうんです。
この行を含まなかったらぜんぜん問題なしなんですけど、この行で全部とまってしまってるんです。
このエラーはいったいどう対処したらいいのか、そしてどう改善すればいいのか教えていただけないでしょうか?
0291nobodyさん03/05/18 22:29ID:???
PHPにopen関数なんてあったっけ?
perl なら open INFILE,"+<$fileini"; にしてみ。
0292nobodyさん03/05/19 00:12ID:???
>291
ないっす。open()もclose()も。パラメータからみてPHPとは別の言語
(Perlだと思うが)の本を見てるとしか思えない
PHPで書くなら
$inifile = fopen($fileini,"r+");
fclose($inifile);
かな

>本とかで調べてもあってるはず
他に色々と根本的な勘違いがありそうだから、
ひとつひとつ確認していきなはれ。
029328603/05/19 17:59ID:???
>>287
たぶんその解釈でいいです。続きが気になります・・・
0294nobodyさん03/05/20 02:06ID:44CvXXuY
表とか予とかの文字に勝手に\がつくんですけど、
これを取り除くにはどうしたらよいんでしょうか。
0295nobodyさん03/05/20 02:09ID:44CvXXuY
stripslashesをやっても取り除けないんですけど
0296nobodyさん03/05/20 02:19ID:???
>>294
意味がわからないが、ここみてみたら
http://www.php.net/manual/ja/ref.mbstring.php
0297nobodyさん03/05/20 02:22ID:44CvXXuY
すんません。出来ました。
0298nobodyさん03/05/20 06:12ID:ixAq+2ud
PHPのスクリプトを利用してフォルダ内のファイルごと別のフォルダに移動させるっていうのは可能でしょうか?

フォルダの中のファイルを一つ一つ移動させて、元のファイルを削除というのは出来たんですが
どうも、フォルダごと移動させると方法が見つかりません

知っている人いたら教えてください。お願いします
0299nobodyさん03/05/20 06:22ID:???
>>298
おなじファイルシステム上ならフォルダをリネーム
030029903/05/20 06:28ID:???
移動元と移動先が同じファイルシステム上にということね。
違うならあなたの「フォルダの中のファイルを・・・」でできるはずだよ。
0301bloom03/05/20 07:08ID:vZIU7+LM
http://homepage.mac.com/ayaya16/
0302動画直リン03/05/20 09:08ID:vZIU7+LM
http://homepage.mac.com/hitomi18/
030329803/05/20 12:41ID:ixAq+2ud
出来ました
ありがとうございます

・・・・頭堅いな自分…(鬱
0304nobodyさん03/05/20 12:42ID:+iHEtWpo
PNG画像の連結ってどうやるんですか?
0305nobodyさん03/05/20 14:02ID:???
>>297
すまんどうやって解決したか教えてくれ。
漏れも同じところで悩んでる・・・
ローカルでやるとうまくいくのにサーバーだと\ついちまうYo!
0306nobodyさん03/05/20 15:18ID:3F9ntp1Y
$xxに代入する変数を、$x1、無ければ$x2、無ければ$x3…
と言う感じにやりたいんですけど、簡潔な方法ありませんか?
if($x1){ } elseif($x2){ }...
と言う風にやって行くしかないんでしょうか。
これが気になって先に進まないつд`)
0307 ◆Kiss.FX29M 03/05/20 16:25ID:???
>>306
多項演算子か可変変数だな。
ま、可変変数でループさせればいんでない。
0308nobodyさん03/05/20 17:34ID:???
PHPってOracleとの相性はいいですか?
0309nobodyさん03/05/20 17:48ID:???
>>308
ネイティブでOracleに繋ぐことはできない。
PHPが動いてるPCにOracleクライアントのライブラリが必要。

そこをクリアすればOracle関数が使えるはず。

JavaはOracleにネイティブで繋げられるから、Oracleに関してはJavaがいいかもね。
0310nobodyさん03/05/20 17:50ID:???
>>309
さんくす。JSPで逝っときます。
0311nobodyさん03/05/20 21:48ID:tYb8o1Ne
ユーザ権限についてかなりの初心者です。
mkdir でディレクトリを作成したいのですが、
「許可されてねーよ」のエラーが出てしまい、
絶対ディレクトリを作ることができません。
もちろん、作る場所のディレクトリのパーミッションを777に
すれば、作ることはできるのですが、
これ以外方法はないのでしょうか??
だれかお返事お願いします〜〜
0312nobodyさん03/05/20 22:03ID:???
>>311
ユーザーとグループがapacheになってねーか?
0313nobodyさん03/05/20 22:14ID:tYb8o1Ne
なっていると思うんですが、
それはどうやって修正すればいいんでしょうか?
httpd.confかなんかでしょうか?
今色々調べたけど、そんなような内容が出てきてました。
共有サーバなんだけど、いけるでしょうか・・・
0314nobodyさん03/05/20 22:23ID:???
>>313
FTPで直せや。
多分root権限が必要だから無理だろうが。
031531103/05/20 22:49ID:tYb8o1Ne
結局無理ってことでつか・・・。
みんなどうしてるんでつか??
0316nobodyさん03/05/21 00:17ID:???
CGI ?
0317nobodyさん03/05/21 00:29ID:???
OUT ! 
0318nobodyさん03/05/21 00:35ID:???
>>315
safe-madeじゃないの?
0319nobodyさん03/05/21 00:35ID:???
すかさずsafe!
今日も阪神勝ったで〜
0320nobodyさん03/05/21 00:36ID:???
ぎょっ
0321nobodyさん03/05/21 00:37ID:???
AAA-CAFEじゃないの?
0322nobodyさん03/05/21 07:35ID:???
セッション管理について質問なんですが、セッションIDが上手く渡せません。

test.phpの内容:
session_start();
print "<a href=\"./test2.php\">link</a>";

test.php2の内容:
session_start();
print session_id();

php.ini
session.use_cookies = 0
session.use_only_cookies = 1
session.use_trans_sid = 1

test.phpにアクセスすると、リンク先は
http://example.jp/test2.php?PHPSESSID=f3458775053c469066b813846df651f7
になっていて、そこからtest2.phpに移動しても違うsidが表示されます。
何かやりかた間違ってますでしょうか?
0323nobodyさん03/05/21 10:38ID:???
>>322
設定に矛盾がある。
session.use_cookies = 0
sessionにcookieは使わない設定(url埋め込みのみ)
session.use_only_cookies = 1
sessionにcookieのみ使用する(urlでは渡せない)
0324nobodyさん03/05/21 15:22ID:L27UStsi
>>311
bash などのスクリプトファイルを直接叩くとか
0325nobodyさん03/05/21 16:36ID:???
「2chは5,6人以上逮捕された犯罪者が居るので
2chは全員、犯罪者だと思っていいと思います。
私の友達と私が被害を受けたのは本当の事実なので。」
(ウェブサイトより抜粋)

http://members.tripod.co.jp/nichkirai/index.htm
この2ちゃんねるを一方的に罵倒しているサイトである
他のスレッド・板にコピペしてくれ。

これは我々2chねらーに対する挑戦であり
善良な2chねらーを巻き込ませようとしている悪の芽を摘むことを決定した
間引きをすることにより、2chの秩序を保つのだ
0326nobodyさん03/05/21 17:03ID:???
>>323
ありがとうございます。見事成功しますた!
0327nobodyさん03/05/21 18:56ID:???
ttp://512kb.net/count/a-counter.php
のスクリプトが欲しいんですが、
どこかでこんなものが配布されていないんでしょうか?

・ページ毎にカウントできる
・HTMLに埋め込むことが出来る
PHPが欲しいのですが、なかなかいいものに出会うことができません……

検索でも相当探したんですが……良かったら教えてください
0328nobodyさん03/05/21 19:02ID:???
http://www.spencernetwork.org/ のカウンタじゃないか?
0329nobodyさん03/05/21 19:52ID:???
>328
回答ありがとうございます。
でも違うと思います。
ディレクトリ内を覗けるのですが、
http://512kb.net/count/
ファイル構成は違うし、肝心の複数のページでカウント可能という機能がないんです。
033030503/05/21 20:59ID:???
しつこくて申し訳ない。
表とか予とかの文字に勝手に\がつくのはどうやって除くんでしょうか?
多分これ
「いくつかの文字エンコーディングでは、マルチバイト文字列を開始/ 終了するためのシフト(エスケープ)シーケンスが定義されています。 」
が原因で付くんだろうけど、除く関数が見つからない・・・
ヒントだけでも下さいませ。
0331nobodyさん03/05/21 21:06ID:???
説明しよう!stripslashesだ!

思いっきり載ってるよ、ちゃんと読んでよ頼むからさぁ!
0332305=33003/05/21 21:25ID:???
>>331
 がぁん。
 あっさりうまくいきました。
 ありがとうございました。
 >>295 につられてテストしなかった自分が悪かった・・・
0333nobodyさん03/05/21 21:27ID:???
>>331
>>295によるとstripslashesでも取り除けなかったらしい。
サーバの設定を弄れるなら、magic_quotes_gpcをoffにして試してみたら?
0334nobodyさん03/05/21 21:28ID:???
マニュアルを見ているうちに本人からレスが・・・(w
とりあえず、よかったね。
0335山崎渉03/05/22 01:57ID:???
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
0336nobodyさん03/05/22 06:22ID:???
$name,$address,$tel,$mail,$loginという変数と、
Check_Valueという関数があります。この関数は
チェックする変数の種類と、文字列を受け取って
、TRUEかFALSEを返します。
たとえば携帯の番号は11桁なので Check_Value('tel','00011112222')
はTRUEを返すという感じです。そこで

$check_list = array("name","address","tel","mail");
$check_flag = 0;
foreach ($check_list as $check){
if (!(CheckValue($check,$$check))){
$check_flag++;
}
}
if ($check_flag){
exit(1);
}

こんな感じで変数をまとめてチェックしてるんですが、これだと
どの変数でエラーが起きたか分からず、フォームでデータを全て
再入力するはめになります。どこでエラーが起きたか分かるよう
にするにはどうしたらいいですか?
0337nobodyさん03/05/22 07:59ID:8zCo6E1S
>>336
$check_flag[$check]
0338nobodyさん03/05/22 08:52ID:???
>>337
配列使えばよかったんですね。
目から鱗が落ちました。さんくす。
033931103/05/22 12:22ID:I2u83FEj
safe modeについて誰かおしえてくれまつぇんか?
ぐぐったが、全然みつからない
0340nobodyさん03/05/22 13:09ID:8zCo6E1S
http://www.google.com/search?hl=ja&ie=UTF-8&oe=UTF-8&q=php+safe+mode&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
0341nobodyさん03/05/22 13:12ID:8zCo6E1S
素直にマニュアル嫁
http://www.php.net/manual/ja/features.safe-mode.php
0342nobodyさん03/05/22 14:52ID:XmLHZx3u
PHPモジュール版でなんとかSuEXECできない?
標準生成ファイル所有者がApacheの権限になってしまうのだけ修正できればいいんだけど。
034331103/05/22 17:32ID:I2u83FEj
>>341
そのマニュアルで理解できる奴がいるのかと小一時間・・・
>>342
suEXECは無理っす。サーバ管理人にはっきり言われました。
0344nobodyさん03/05/22 22:09ID:???
>>306
$hoge = array($x1,$x2,$x3);
foreach ($hoge as $key=>$val) {
  if ($val) {
    $xx = $val;
    break;
  }
}
0345nobodyさん03/05/22 22:41ID:???
>>343
>そのマニュアルで理解できる奴がいるのかと小一時間・・・

できるかできないかはその人のレベル次第だな。

>>342
>PHPモジュール版でなんとかSuEXECできない?

suEXEC の原理を考えたら無理だろ。
0346nobodyさん03/05/22 23:54ID:???
copyでスクリプトをコピーし、その中でmkdir?
0347nobodyさん03/05/23 15:30ID:i2hLkx1h
俺もセーフモードについて教えてほすぃ
0348nobodyさん03/05/23 16:37ID:4/fSbD9I
リダイレクトさせたいんですが
Warningになってしまいます

<?php
header("Location: index.php");
?>

test.php にはコレしか書いていないんですが
どうしてダメなんでしょう?
034934803/05/23 17:09ID:???
解決しますた。
引数に FALSE を入れたらうまくいきました。
0350nobodyさん03/05/24 03:03ID:???
(゚Д゚)ハァ?
0351nobodyさん03/05/25 02:35ID:qJrO97CH
教えてください

手動で動かすとファイルを作成するのに、クーロンを利用して動かすとファイルを作成しないっていうのは
PHPの仕様ですか?
0352nobodyさん03/05/25 02:43ID:???
エラー処理をしていないあなたのせいでは無いでしょうか?
0353_03/05/25 02:45ID:???
http://homepage.mac.com/hiroyuki43/
0354 ◆AngelH/kMI 03/05/25 03:11ID:???
>>351
そんなわけない。
Pathを見直せ。

全部フルパスで書いてみれ。
0355nobodyさん03/05/25 03:22ID:???
htmlファイルを渡すと i-mode用のhtmlやhdmlに
変換してくれるpearライブラリ誰か作ってくれ
ないかな。。かなり需要ありそうな気がしない?
0356nobodyさん03/05/25 10:33ID:JeioPFWc
Smartyのテンプレートをつかっているんですが、例えばテンプレートファイルを

php/templates/test.tpl

の中にいれて

php/test.php

からテンプレートを表示すると、テンプレートは php/で表示されることになるので
相対パスで入っている画像のパスとかがうまくいかなくなってしまいます。

パス部分を動的に置換したりして対処したりしてみたのですが、もっといい方法はないのでしょうか?
例えば、HTMLファイルに、自分のディレクトリを錯覚させる方法とかあります?

0357php初心者03/05/25 15:49ID:Dfig9MwF
http://www.mac68k.com/index.php
ここでダウンできるphpBBの日本語版
すばらしんだけど、アップロード機能がないのがもうひとつ。
このアプリにアップ機能を開発してくれる有志。
お願いします!!!
0358nobodyさん03/05/25 18:04ID:???
( ´_ゝ`)馬鹿が一人迷い込んできたな。
0359nobodyさん03/05/25 18:10ID:???
( ´_ゝ`)放置してるとスレを立ち上げそうだな。
0360nobodyさん03/05/25 19:21ID:Dfig9MwF
あれ
0361nobodyさん03/05/25 21:54ID:???
( ´_ゝ`)ageやがったよこの野郎
0362nobodyさん03/05/25 21:57ID:???
だからPHP房は馬鹿にされるんだよ。
買い物籠程度しか作れないとか。
0363nobodyさん03/05/25 21:59ID:???
( ´_ゝ`)また変なのが来たよ・・・
0364nobodyさん03/05/25 22:08ID:???
( ´_ゝ`)また糞スレで2ゲットしなきゃいけないのかよ・・・
0365nobodyさん03/05/25 22:16ID:???
>>357
PHP「初心者」なら少なからず開発能力はあるだろが。
なぜ他人に頼むのだ?
脱初心者のチャンスじゃないか。
0366nobodyさん03/05/25 22:50ID:???
ま、初心者脱してもPHPに出来る事はたかが知れてるけどな。
初心者脱すれば誰でも分かる事だが。
■ このスレッドは過去ログ倉庫に格納されています