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

【PHP】質問スレッドPart3

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん@お腹いっぱい。02/02/17 13:23ID:N+9Uw5dE
レスは気長に待つのが良い感じかも。
答えられる方、返答よろしくお願いします。

<<参考リンク>>
■本家
http://www.php.net/
■PHP日本語マニュアル
http://www.php.net/manual/ja/
■JapanPHPUsersGroup
http://www.php.gr.jp/
■PHP日本語ページ
http://www.cityfujisawa.ne.jp/~louis/apps/phpfi/index.html
■Pearのドキュメント
http://phpdocu.sourceforge.net/peardocs/

<<過去スレ>>
■【PHP】質問スレッドPart1
http://ebi.2ch.net/test/read.cgi/php/982687820/
■【PHP】質問スレッドPart2
http://pc.2ch.net/test/read.cgi/php/1003283567/

<<教えて君>>
■ここ見習って書き込んじゃ、駄目よ
http://pc.2ch.net/test/read.cgi/unix/1011345180/242-245
0881nobodyさん02/05/20 20:03ID:???
>>880
某レンタル鯖に聞いて下さい。
0882nobodyさん02/05/20 20:27ID:3waXCUcX
>864
DB(mysql)のsqlで対応しています。(left関数)
(最近のPHP <4.1 とか 4.2とか> であれば、マルチバイト関数で、すんなりできるかも。)

mysqlの例)
mysql> select left('あいうえお1234567890',5);
+--------------------------------+
| left('あいうえお1234567890',5) |
+--------------------------------+
| あいうえお |
+--------------------------------+
1 row in set (0.00 sec)

mysql> select left('あいうえお1234567890',6);
+--------------------------------+
| left('あいうえお1234567890',6) |
+--------------------------------+
| あいうえお1 |
+--------------------------------+
1 row in set (0.00 sec)

mysql> select left('あいうえお1234567890',7);
+--------------------------------+
| left('あいうえお1234567890',7) |
+--------------------------------+
| あいうえお12 |
+--------------------------------+

引数は、バイト単位ではなく、文字数の模様。
詳細は、mysqlのマニュアル参照して。。。。
0883nobodyさん02/05/20 21:20ID:3waXCUcX
>>878
ちょっと時間かかったけど、できたよ。
>>879のアルゴで。
function fnc_2monday($pi_yyyy,$pi_mm){
//******************************************//
// ある年の月の第2月曜日を求める関数 //
// 引数 $pi_yyyy ある年(一応、4桁でね) //
// 引数 $pi_mm ある月(1〜12) //
//******************************************//

//******************************************//
// >>879 のアルゴリズムでコーディング
//******************************************//
//1.ある年の月の第1月曜日を求める
$wk_1day = mktime(0,0,0,$pi_mm ,1 ,$pi_yyyy)."<BR>";
//一日から順に第一月曜を求める(べたべたやけど、確実にね)
for ($i=1;$i<= 7;$i++){
$wk_aaa = date("D",mktime(0,0,0,$pi_mm ,$i ,$pi_yyyy));
if ($wk_aaa=="Mon"){
//第一月曜日の場合、抜ける
$wk_1monday = $i;
break;
}
}
//2.1で求めた数字に7を足す
//つまり第二月曜日ね
$wk_2monday = $wk_1monday + 7;
return $wk_2monday;
}
//呼び出し側
print fnc_2monday(2002,1);
print fnc_2monday(2002,10);
どう?
088488302/05/20 21:23ID:3waXCUcX
1つ訂正
$wk_1day = mktime(0,0,0,$pi_mm ,1 ,$pi_yyyy)."<BR>";

$wk_1day = mktime(0,0,0,$pi_mm ,1 ,$pi_yyyy);
0885nobodyさん02/05/20 21:33ID:3waXCUcX
>>848
スレ違い回答
OO4O
088687802/05/21 10:06ID:Khg2tXr/
>>879
自分で書くしかないんですね。

>>883
おお!助かります!
まぁ、たしかに改正祝日法で休日を求めたかったんですけどね。
来年から海の日と敬老の日は第3月曜日が休みらしいので
ちょっと改造して使いたいと思います。m(_ _)m
088788002/05/21 10:56ID:Y+BXE95A
>>881
鯖屋さんは「サポートはしないが、CGIならなんでも使ってOK」と言ってて、
それならCGIとしてphpを使ってみようと思ったんですが、前述のような構成なので
情報が少なく、(Windows以外では普通CGIとして使わないでしょ?)
そもそもFreeBSD4.5+apache1.2.4 なんて環境で動く可能性があるのかどうか、
やったことある人がもしいればいいなぁと。

だめだったら鯖屋変えます。
0888nobodyさん02/05/21 11:28ID:???
>>883
> //一日から順に第一月曜を求める(べたべたやけど、確実にね)

とするなら、はじめから8日から14日の間で月曜を探す、とした方が
早いでしょ。第n週目なら
for ($i=($n-1)*7+1; $i<= $n*7; $i++)

「第2月曜はX日?」ではなく、「X日は特別な日かどうか」と
逆方向からアプローチする解もあるんで参考までに。
0889nobodyさん02/05/21 12:40ID:???
>>887
PHP のバージョンは……つーかやめちまえ、そんなサーバ。
0890nobodyさん02/05/21 15:57ID:???
(´-`).。oO(FreeBSDのバージョンが4.5なのに、なんでApacheが1.2.4なんて古いバージョンなんだろ・・・)
089188002/05/21 19:37ID:???
ふぅ、phpinfo() ができました。

>(´-`).。oO(FreeBSDのバージョンが4.5なのに、なんでApacheが1.2.4なんて古いバージョンなんだろ・・・)

それが不思議なんですが、本当なんです。httpd -v で確認。
こんな古いのでもphp4.2.1が動きました。ついでにNCSA HTTPdでもw
0892nobodyさん02/05/22 08:15ID:xP9u5upA

<?php
echo"<a href=$PHP_SELF?hoge=test>テスト</a>\n";

print ($hoge);
?>

こういう使い方は論外ですか?
テストのリンク以外
何も表示されないんですが

というか、基本的に解っていないような気もする・・
0893nobodyさん02/05/22 09:08ID:???
何をやりたいのか、理解に苦しみます。
0894nobodyさん02/05/22 11:53ID:NOISo+Qe
>>892
$hogeが表示されねーんだろ?
「register_globals」「$_REQUEST」について調べろ。
いい加減、この同じような質問見るの飽きたんだが。
MLでもこんなんが定期的に出てくるし。
にしても親切だな。MLの連中。
「過去ログ見ろ」の一言ですまさず、ちゃんと教えてやがんの。
0895nobodyさん02/05/22 15:00ID:???
>>894
ありがと
さっそく調べてみます
0896nobodyさん02/05/22 20:41ID:eoMNTnSb
へたれな質問です。
$this->hoge = $aaa["hoge"]
というような処理が連続でいっぱいあるんですが、whileをつかって簡潔にする方法はありませんか?
0897親切な人02/05/22 20:43ID:???

ヤフーオークションで、凄い人気商品、発見!!!

「高性能ビデオスタビライザー」↓
http://user.auctions.yahoo.co.jp/jp/user/NEO_UURONNTYA

ヤフーオークション内では、現在、このオークション
の話題で、持ちきりです。
0898nobodyさん02/05/22 20:59ID:???
>>896
クラスに関する関数を調べれ
089987902/05/22 21:16ID:???
>>883
ごめん、適当に答えたのに実装してくれるなんて(w

お詫びに、第一月曜日を求める方法
$dai1getsuyou = ( (8-date("w",mktime(0,0,0, $pi_mm ,1 ,$pi_yyyy)) ) %7 +1);

第二月曜日を求める方法
$dai2getsuyou = ( (8-date("w",mktime(0,0,0, $pi_mm ,1 ,$pi_yyyy)) ) %7 +8);

>>878 は >>883 に感謝しれ
0900nobodyさん02/05/23 21:01ID:HecqOJNe
MySQLで、任意の行にINSERTすることは可能でしょうか?
0901nobodyさん02/05/23 21:30ID:vIfw4Hg/
WEBサーバーとDBサーバーを別のPCに設定すると負荷が分散する?
負荷がかかるのはDB(Postgresとか)なのかPHPのスクリプトなのか?
スクリプトだとしたらスクリプトもDBサーバー側におかないと意味がないですかね。
0902nobodyさん02/05/23 22:06ID:vpWkcYfm
さて、スクリプトをDBサーバに置いたとして、そいつはどこで
実行されるのか見物だ。
報告を待つ。
0903 ◆AngelBlk 02/05/23 23:22ID:???
>901
最近の報告。
PHP4+Postgresでアクセス数多いサイト抱え込んでいて、
CPUアベレージ40〜50でかなり苦しかったんだけど
pconnectにしたら0.5くらいまで下がったよw

どうやら、DBに大しての接続/切断にコストがかかるらしい。

まあ、サーバ複数台でやれば確かに負荷分散はされるだろうけど
PHP用サーバ<>DBサーバ間で当然トラフィック発生するし
それよりはサーバの設定きっちりやって一台でやったほうがいいかも。
0904nobodyさん02/05/24 00:43ID:HdKAqX0e
>903
ありがとうございます。PHPスクリプトのプログラミングの方法によっても
ずいぶん負荷が違うようですね。1台にして、様子を見ます。
0905 ◆AngelBlk 02/05/24 00:51ID:???
>904
http://jp.php.net/manual/ja/function.pg-pconnect.php
このあたり参照のこと。

とりあえず、
httpdの最大接続数 <= Postgresの最大接続数
にしておかないと、エラーになる可能性あるけど。
0906nobodyさん02/05/24 11:21ID:w/ckmNwW
すみません、初歩の質問です。

setcookie関数に関してなんですが、
setcookie("cookieNm","1",time()+3600);
上記のようにクッキーを発行しているんですが、その後に
if(isset($cookieNm){
と、クッキーの有無の判断では、falseと判断されて
クッキーの存在が無い事になっています。

setcookieの使い方がおかしいのでしょうか?
Webのドキュメントや本にもあまり詳しく書かれていないので、質問しました。
0907 ◆AngelBlk 02/05/24 12:00ID:???
>906
PHPのバージョンくらい書いてくれ・・・。
まあ、予想は出来るけど。

http://jp.php.net/release_4_1_0.php

本当に調べたのかと、問い詰めたい。
0908nobodyさん02/05/24 15:12ID:IikL0GY5
http://www.php.net/search.php(本家) や
http://tw.php.net/search.php (台湾) や
http://kr.php.net/search.php (韓国) では
Restrict the search to: whole site で、
pg_execを検索できますが、
http://jp.php.net/search.php
http://jp2.php.net/search.phpでは
There was an error executing this query. Please try later.
となって、いくら待っても検索できません。
私だけでしょうか?
無理してミラー使う事もないですが、気になったので...
0909 ◆AngelBlk 02/05/24 15:22ID:???
>908
「ミラー」はコピーであって同じものじゃないから
バージョンに差があってもしかたないんじゃ・・・。

まあ、ちゃんとミラーリングされていない原因まではわからないけど。

(jpの方、pg_queryが無い事から古いドキュメントだと思われ)
0910nobodyさん02/05/24 15:51ID:???
あ、ちとすまそ
pconnectの件で、これって複数ページにまたがってても接続維持してくれる
んですよね?
pg_closeで普通に閉じればOKなん?
あともしcloseし忘れた場合って適度に切ってくれるのかしらん?
0911nobodyさん02/05/24 16:10ID:???
誰か教えてください。私がよく行く掲示板で
文字の色を変えて、書きこみしたいのですが
そこの掲示板は、最初から文字の色が決まって
いて、タグをつかっても、大きさとかは、
変わるんですが、文字の色変わりません、
どうかお願いします。
0912 02/05/24 16:18ID:???
>>911
そこの管理人に聞いてください
0913nobodyさん02/05/24 16:20ID:Huj+PVcs
>>910
pconnectで接続してたら、明示的に切断するまで
プロセス残るよ。
0914 ◆AngelBlk 02/05/24 16:29ID:???
>910 >913
先に答えられてしまったので、新たな疑問。
pconnectを明示的に切断する必要があるのって
一体どんなとき?



どうもまだ、仕組みわかってないな・・・自分。

0915nobodyさん02/05/24 16:43ID:NPp4aT3o
>>914
あるsessionが終了するときとかじゃない?
システムによると思うが。

Javaとかのコネクションプーリングとは別物だから
永続的(?)に残す物でも無いと思うけど。
0916guess02/05/24 17:05ID:???
草薙ぃ、みなまで言うなよぉ、おもろないやっちゃなぁ。。。
山内ぐらいのでええんや、あれでも教えすぎやとは思うけどな。
0917 ◆AngelBlk 02/05/24 17:15ID:???
>915
んー。
ちょっと考え纏めつつ。

httpの通信ってのは単発だからpconnectの動作ってのは
「httpdのプロセスにアクセスして、
 そのhttpdプロセスが既にpconnectでDBに接続されていたらそれを使う。
 されていなければ新規にDBとの接続を開く」
ですよね。

で、例えページA>ページB>ページCって感じに一連の流れでページ見ていても、
接続しているhttpdプロセスが同じとは限らないわけで。
となると、接続閉じる意味って?っと思ったわけです。

(例えば、今の例でいくと
 ページCでpg_close()した場合、ページAで使っていた接続を
 閉じることにはなりませんよね)

何か、勘違いしてることあったら指摘よろしくっス。
0918nobodyさん02/05/24 20:05ID:???
>>917 おそらく915よりあんたの方が正しい
設定間違ってなければ、明示的に閉じる必要はほぼないかと思われ
「閉じられる」のは
「関数作るのがカンタンだったからついでに実装してやれ」という、
開発者の気持ちの問題だけかと(笑)
0919nobodyさん02/05/24 22:40ID:PwbaMwAZ
漏れもあまり理解してないから勉強になります。

>917
どういう意味かもうちょっと詳しく説明キボーン!

「httpdのプロセスにアクセスして、
 そのhttpdプロセスが既にpconnectでDBに接続されていたらそれを使う。
 されていなければ新規にDBとの接続を開く」

「httpdプロセス」ってのがよくわからん。>プロセスIDのこと?
httpdのpidが変わったら新規でDBに接続にいくってこと?
httpdのpidって頻繁に変わるものじゃないの?
「httpdプロセス」(?)とどう関係してるのか教えて。

>918
http://jp.php.net/manual/ja/function.pg-pconnect.php

「pg_close() は、 pg_pconnect()によりオープンされた持続的接続は 閉じません。」
って あるから閉じることはできないんじゃないの?
もちろん閉じる必要もないと思うけど。

0920 ◆AngelBlk 02/05/24 23:20ID:???
>918
やっぱそうなんですかね〜。
ちょっと疑問解決。
っていうか今pg_closeの説明見たら

>注意 持続的でない接続はスクリプトの実行終了時に時動的にクローズされる ため、pg_close()は通常は必要ありません。
>pg_close() は、 pg_pconnect()で生成された持続的なリンクは閉じ ません。

これが正しいとすると、pg_closeの意味って・・・。

>919
とりあえずサーバにログインしてps -axとかtopしてみればわかるけど
apache1.3はシングルスレッド(だったはず)なので
例えば同タイミングで10人がページを見ようとした場合、
10個httpdを起動してそれをさばいてる。

で、pconnectってのはhttpdのプロセスが死ぬまで接続を閉じない、
ってことなのでは。
0921nobodyさん02/05/25 07:15ID:???
0922nobodyさん02/05/25 10:18ID:???
とりあえずpconnect使ってプロセス監視してみるか
テストあるのみだね
0923nobodyさん02/05/26 01:50ID:XrXi+HAS
PHP 4.0.6 => PHP 4.2.1 にしたが、

Socket.php が入ってないんじゃないか? Mail.php が使えん
0924nobodyさん02/05/26 11:14ID:???
> 入ってないんじゃないか?

無いなら入れれば済む。
0925nobodyさん02/05/27 15:13ID:Ljs/HuU/

>echo() には、次のように開始タグのすぐ
>後に等号 を付ける省略形があります。
> I have <?=$foo?> foo.

>注意 この省略形はshort_open_tagのオプションを
>有効にしないと使用できません。

日本語のマニュアルには、
この注意のところがなかったので
少し、はまったよ
0926nobodyさん02/05/27 16:13ID:xVyONfkD
テキストコンテンツを楽に更新するためには、PHP+DBとXMLどちらがいいですか?
それぞれの利点、欠点をしりたいです。
0927nobodyさん02/05/27 19:22ID:ftR3tely
>>926
お好きな方をどうぞ
0928nobodyさん02/05/27 21:26ID:zZy+Uwrs
xmlでデータ管理は楽じゃないよ
0929nobodyさん02/05/27 23:02ID:bVOs1lxa
PHPをWindowsにインストールしたんですが、
MySQLも必要とか書いてあるHPがありましたがApacheとPHPをインストールしただけでPHPが動作しました。
MySQLは必要なんですか?
0930nobodyさん02/05/27 23:07ID:???
別に。
もしかしてネタ?
0931nobodyさん02/05/28 10:33ID:ddwqkdLJ
>>929
たしかにそういう本あるね。
DBとの連携をその本でやるのであればこれだけインストールしろって意味だと
思うんだけどさ。
0932nobodyさん02/05/29 13:11ID:BTyiqr4V
php_extension形式のパッケージを作った場合、
商用パッケージ化するってできるの?
当然Zend APIばりばりコールするわけだけど。
0933仕様書無しさん02/05/29 13:14ID:???
初心者なんですが、Apatchサーバーで普通にマニュアルどおりインストール
して、マニュアルどおりフォームからphpに変数として渡すプログラムを組ん
だのですが、POSTがうまくいってないのかなんなのか、phpの変数にフォーム
の内容が入ってきません・・・name も指定してるのになんでだろう???
0934名無しさん02/05/29 13:19ID:???
$_POST?
0935nobodyさん02/05/29 13:52ID:???
>>933
過去ログ嫁。
つーか、バージョンとconfigureの引数くらい書けやゴルァ(゚Д゚)
0936nobodyさん02/05/29 16:03ID:rc13816W
mb_send_mail()で、CcやBccってできないの?

http://www.php.net/manual/ja/function.mail.php
http://www.zend.com/zend/comments/show_comment.php?article=sendmimeemailpart1&id=581&pid=374&days=10000&f_id=sendmimeemailpart1&mode=&kind=sl
などを参照すると、追加ヘッダを記述できるようですが、

$mail_to = "aaa@aaaa.aaaa";
$mail_cc = "bbb@aaaa.aaaa";
$mail_bcc = "ccc@aaaa.aaaa";
$mail_from = "ddd@aaaa.aaaa";
$mail_subject = "test";
$mail_text = "test";

$headers = "From: $mail_from\r\n";
$headers .= "Cc: $mail_cc\r\n";
$headers .= "Bcc: $mail_bcc\r\n";
mb_send_mail($mail_to,$mail_subject,$mail_text,$headers);

のようにヘッダを記述してもFromは設定されるのにCc,Bccのアドレスへメール送信されません。
何かテクニックがあるのでしょうか?

php4.0.6(RedHat7.2のrpm)+mbstring.so
0937SupportDESK ★02/05/29 16:10ID:???
記念カキコ
0938SupportDESK ★02/05/29 16:12ID:???
>>936
> mb_send_mail($mail_to,$mail_subject,$mail_text,$headers);

ここ見直せ。
0939nobodyさん02/05/29 16:17ID:???
phpからメールを出したことはないんでアレだけど、メールの一般論としては
envelope recipient とヘッダのTo/Cc/Bccは別です。

sendmailの場合、起動オプションに -t を追加すればヘッダから
recipientを読みとってくれるようになるので、
mb_send_mail($mail_to,$mail_subject,$mail_text,$headers,"-t");
とすればうまくいくんじゃないですかね。どうですかね。
0940nobodyさん02/05/29 16:22ID:lnkev8xS
もしかしてfgetcsv()ってマルチバイト文字食わせちゃダメですか?

while($tmp = fgets($fp, 1000)){
$data[++$n] = explode(",", $tmp);
}
↑これはうまくいくけど、↓これは文字化けします。
while($data[++$n] = fgetcsv($fp, 1000, ","));

EUC-JPなんですが。
0941仕様書無しさん02/05/29 17:52ID:???
configure って何?
0942仕様書無しさん02/05/29 17:54ID:???
Apatch で ASP 使えんのか??噂じゃ信用できん。スレ違いでスマソ
0943nobodyさん02/05/29 21:02ID:za7l8984
>>938,939
早速のレスありがとうございます。
試させていただきます。
0944nobodyさん02/05/29 22:30ID:???
>>942
http://www.chilisoft.com/chiliasp/default.asp
http://www.halcyonsoft.com/
http://www.ipa.go.jp/security/ciadr/20020412iis.html
人柱さんへ
0945nobodyさん02/05/30 08:01ID:???
Apatch 萌え
0946nobodyさん02/05/30 13:18ID:???
>>945
apacheでなくapatchかい!
apatchって有名なのね。718件
http://www.google.co.jp/search?q=apatch&hl=ja&lr=lang_ja
0947apatch02/05/30 13:58ID:???
アンテナの設計に使うんだそうな…
http://www.saic.com/products/software/apatch/
0948nobodyさん02/05/30 16:02ID:???
>>941
RPMでインストールしたん?普通はそのコマンド使わなきゃいかんはずだが
0949FAQ02/05/30 20:52ID:???
外部変数はデフォルトではグローバル変数として登録
されません。変わりにスーパーグローバル配列を利用
することを推奨します。
http://www.php.gr.jp/history/release_4_2_1.html

スーパーグローバル変数:
$_GET - GETを通じて送信された内容が格納されます
$_POST - POSTを通じて送信された内容が格納されます
$_COOKIE - HTTPクッキーの内容が格納されます
$_SERVER - サーバ変数の内容が格納されます(例:REMOTE_ADDR)
$_ENV - 環境変数が格納されます
$_REQUEST - GET, POST, クッキーの内容が格納されます。
言い換えると、 ユーザから送信された全ての情報と
いうことです。セキュリティ的側面 から見ると必ず
しも信頼できるものではありません。
$_SESSION - セッションモジュールにより登録された内容が格納
されます
http://www.php.gr.jp/history/release_4_1_0.html
0950FAQ02/05/30 20:56ID:5rwZOSAr
-[form.php]---------------------------------
<html><body>
<form action="<?= $_SERVER["PHP_SELF"]?>" method="POST">
<input type="text" name="name1">
<input type="submit" value="Go">
</form>
<?php
echo $_POST["name1"];
?>
</body></html>
0951nobodyさん02/05/30 23:50ID:???
PHPとXMLの絡みについて学べるサイトはありませんか?
Googleで探しても見つからなかったです。
0952nobodyさん02/05/31 01:08ID:???
>>951
このへんどうよ?
ttp://www18.tok2.com/home/koumori27/xml/
0953nobodyさん02/05/31 04:33ID:???
Apache 2.0.36とPHP 4.2.0でPOST後に,自分自身をリダイレクトしようと
しているのですが header("Location: ".$_SERVER['PHP_SELF']); のところで
エラーが発生してしまいます。

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
 header("Location: ".$_SERVER['PHP_SELF']);  ←ここでエラー
}

エラーメッセージは,Warning: Cannot add header information - headers
already sent by ...... です。

どうしたら,POST後に自分自身をリダイレクトできるのでしょうか?
0954名無しさん02/05/31 05:37ID:???
POST後とかじゃなくて・・・。
改行とか先に出力されてたりしない?
0955nobodyさん02/05/31 06:24ID:???
>>953
メッセージ嫁。
0956FAQ02/05/31 07:45ID:???
覚えておいて頂きたいのは、header() 関数は、
通 常の HTML タグまたは PHP からの出力にかか
わらず、すべての実際の出 力の前にコールする
必要があることです。 頻出するエラーとして、(以下略)
http://www.php.net/manual/ja/function.header.php

http://ns1.php.gr.jp/pipermail/php-users/2002-February/005678.html
http://ns1.php.gr.jp/pipermail/php-users/2002-February/005680.html
http://ns1.php.gr.jp/pipermail/php-users/2002-February/005681.html
http://ns1.php.gr.jp/mailman/listinfo/php-users

>エラーメッセージは,Warning: Cannot add header information - headers
>already sent by ...... です。
質問なんですが、この by の意味は?
0957nobodyさん02/05/31 09:29ID:???

 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 |  ♪聞いてうにゅうリーナ ちょっと言いにくいんだけど
 |  ♪聞いてうにゅうリーナ
 |
 |  最近、エラーメッセージも読まずに質問する厨がふえてるんだよ
 |  ぐんにょり
 |
 |  聞いてくれてあーりがと うにゅうリーナ♪
  \____ __________________
           V
      , -―- 、    ./ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   /了 l__〕      〈]  |  火炎瓶投げてきていいで
    7| K ノメノ )))〉  |  不審美や。
    l」 |」(l| ( | | ||    \_  _____________
    | |ゝリ " (フ/リ       V
     | | /\_V〕、      _/l__
.    l l | /ヽ/<ノ|〉ヘ.     /   く
     !リl〈 〈〉、_ト .〉     | ´ω`  |
        V^i` ―lV     |  C=' |
      `ァ'/  l|-'    | ̄ ̄ ̄ ̄ ̄|
      / \/V|    ~|  ̄ ̄ ̄ ;|~
       ゝ     |     |    .;;|
0958名無しさん02/05/31 10:24ID:???
PocketPCで排他の機能を作ろうとしています。
PocketPCでは新規にウインドウを開くことや、モーダルダイアログ
などのイベントは一切発生しません。

まず、テキストファイルにフラグを立てるやり方をしていましたが、
フラグを消す処理を違うフレームに配置して
onunLoadイベントで実行させる方法がうまく動かずに苦労しています。

そこでそれとは違う方法も模索しています。
PHPではどのクライアントからでも参照できるグローバルな変数を
持つことは可能でしょうか?回答を宜しくお願いします。
0959nobodyさん02/05/31 13:10ID:kQ6/O1xW
スレ違いな気もするのですが、

<script language="javascript">

function test1 (){

for (i=0;i<document.test_form.test.length;i++){
document.test_form.test[i].checked=true;
}

}

</script>

<form name="test_form">
<input type="checkbox" name="test" value="">
<input type="checkbox" name="test" value="">
<input type="button" value="test" onclick="test1()">
</form>

と同等の処理を、PHPで配列として扱えるようにnameを

<form name="test_form">
<input type="checkbox" name="test[]" value="">
<input type="checkbox" name="test[]" value="">
<input type="button" value="test" onclick="test1()">
</form>

として処理したいのですが、
どのようにすればいいのか、どなたか教えてもらえないでしょうか?

0960nobodyさん02/05/31 14:52ID:???
>>958 PHPでファイルに変数を保存する事はできます
誰に何をいつまでさせたくないのか分からないので
後は何とも。

>>959 はずしたらスマソ。 しかしセンスないなぁ>>960
<html><body>
<?php
foreach($_POST["test"] as $value) {
echo $value;
}
?>
<form method="post" action="<?= $_SERVER["PHP_SELF"];?>">
<input type="checkbox" name="test[]" value="MA">MA
<input type="checkbox" name="test[]" value="MUKO">MUKO
<input type="submit" value="Go">
</form>
</body></html>
0961名無しさん02/05/31 16:02ID:???
>>960
回答ありがとうございます。

質問の仕方がまずかったのであまり趣旨が伝わらなかったようで
すみません。要するに、ASPでいうところのGlobal.asaのような
グローバルなセッションを持つことは可能でしょうか?
096295902/05/31 16:48ID:OsEG1hGV
>960
うーん、javascriptをどう書けば name が test[] の項目を一括で変更できるかという話なんですよ。
PHP使ってる人の方が同じ状況に陥った人が多そうなのでここに書いてみたんですが。。。
0963nobodyさん02/05/31 18:00ID:3WIJ9xDF
>>962
JavaScriptがわかりゃだれでもできるだろ
Web制作板でも逝け
0964qqq02/05/31 21:08ID:Yl9y3+1W
聞くのも恥かしいほどの初歩的なことですが、すでに4時間試行錯誤していますが
解決できません。助けて下さい。

フォーム送信データを変数として取り込めないのです。

参考書に付いていた、サンプルがあるのですが、

sample3.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<title>サンプル3</title>
</head>
<body>
<form method="post" action="sample3.php">
お名前: <input type="text" name="YourName"><br>
<input type="submit" value="GO">
</form>
</body>
</html>

------------------------

sample3.php

<?
header("Content-type: text/html; charset=euc-jp");
?>
<html>
<head>
<title>サンプル3</title>
</head>
<body>
お名前: <b><? print($YourName); ?></b><br>
</body>
</html>

----------------------
つづく。。。
0965qqq02/05/31 21:08ID:Yl9y3+1W
つづき

php自体は普通のプログラム(時間表示)などはちゃんと
動作しています。上のサンプルも、送信ボタンを
押すとsample3.phpを実行してくれるのですが、
変数が空白で表示されてしまいます。

他の参考書でも入力フォームの物は変数が空白で
帰ってきてしまいます。変数名の大、小文字
対策もしています。(付録のcdromから直接使っても
結果は同じでした。)

なんかすんごい初歩的なことを見逃しているのは
十分わかっているのですが、それがなにかわからなくて。。

redhat7.2
apache1.3.24(ソース版)
php-4.2.1(ソース版)
0966nobodyさん02/05/31 21:12ID:???
<?xml version="1.1"?>
これをインクルードしたり記述すると止まります
先輩!解決方法教えてください
0967nobodyさん02/05/31 21:34ID:???
質問させて頂きます。

list($v['name'],$v['msg'],$v['ipaddr'],$v['icon'])
= explode("\t",trim(fgets($fp, 4096)));
というところで、もし
 名無しさん\tage\t\tface.png
というログだった場合、undef代入したということで Undefined offset 3 と
怒られてしまうのですが、うまい方法無いでしょうか。
やっぱlistを放棄してせこせこ切り分けするしか無いんでしょうか。

# error_reporting(5);じゃあんまりだなぁ…と思うのです。
# 別にundef代入してもいいじゃん…
0968qqq02/05/31 22:02ID:Yl9y3+1W
>>964-965
自己レスです。

4.2からはグローバル変数がデフォルトでoffになっていたようですね。
おさわがせしました。

それにしてもphp.iniなんかも探しまくったのですが、見つからないと思ったら
手動なんですね。この手の設定があやしいと思っていたのですが。
3冊の参考書にはそれらしい注意事項も書かれていなかった(4.1まで)ので
まさか初期状態で使えなくなるとは。。。初心者にはマジできつかったです。



096996702/05/31 23:31ID:???
>>966
これ。
http://jp.php.net/manual/ja/language.basic-syntax.php#language.basic-syntax.phpmode
最初の方法は、短縮型のタグが有効な場合にのみ利用可能です。
短縮型のタグは、short_tags() 関数を使用するか (PHP 3のみ)、
PHPの設定ファイルに short_open_tagを設定する か
--enable-short-tags オプションを configure に 指定して
PHP をコンパイルすることにより、有効にできます。
097095102/06/01 00:12ID:???
>>952
おお、ありがとうございます!!
では、じっくり読みたいとおもいます。
0971nobodyさん02/06/01 03:05ID:???
>>966

<? echo('<?xml version="1.1"?>'); ?>
0972nobodyさん02/06/01 03:20ID:???
次スレ テンプレにはFAQとしてPHP4.2.1の変更点を書いといたほうが良いかもね。
メジャーバージョンがあがるまでは間違える人が後を断たないだろう・・。
097396702/06/01 06:16ID:???
自己解決しました。
http://jp.php.net/manual/ja/function.array-pad.php

list($v['name'],$v['msg'],$v['ipaddr'],$v['icon'])
= array_pad(explode("\t",trim(fgets($fp, 4096))), 4,0);
でなんとか。綺麗じゃないけど
0974nobodyさん02/06/01 12:44ID:???
セッション変数ってやっぱ変数だから数字だけだとまずいんだよね?
ショッピングカート作ってて
商品番号=商品個数
みたいなデータを渡そうと思ってたんだけどうまくいかないや
多分これが原因かな?
0975nobodyさん02/06/01 13:13ID:???
<html>
<body>
<?php
session_start();
if(!isset($_SESSION["num"])) {
$_SESSION["num"] = 10;
} else {
echo "num = ".$_SESSION["num"];
//リロードしてください
}
?>
</body>
</html>
0976nobodyさん02/06/01 13:28ID:???
>>973 >>967を再現したくて、↓してみたけど
error_reporting = E_ALLで

$str = " 名無しさん\tage\t\tface.png";

list($v['name'],$v['msg'],$v['ipaddr'],$v['icon'])
= explode("\t",trim($str));
すると、警告なしで下記のようになりました。
$v['name'] => 名無しさん
$v['msg'] => age
$v['ipaddr'] =>
$v['icon'] => face.png
ファイル使わないとダメ?
PHP 4.2.1です。


0977nobodyさん02/06/01 13:36ID:???
>>975
おお!ありがとうございます。
勉強不足でした。
0978y2kbest@k9.dion.ne.jp02/06/01 13:50ID:???

「 RX-2001 」がパワーアップした、
「 RX-2000V 」↓
http://user.auctions.yahoo.co.jp/jp/user/NEO_UURONNTYA

店頭販売価格は、13900 円なんですが、
今回だけ、破格の 7100 円に設定して
おります。

購入希望の方は、名前の所にも書いて
ある、y2kbest@k9.dion.ne.jp 迄、
メールを下さい。

不安な方は、落札をして頂いても
構いません。
0979nobodyさん02/06/01 14:47ID:PQ5ydhwv
PHP-4.2.1 Apache 1.3.24 linux(kernel 2.4.18)

./configure \
--with-apxs=/usr/local/apache/bin/apxs \
--enable-mbstring \
--enable-mbregex \
--enable-mbstr-enc-trans \
--with-pgsql=/usr/local/pgsql \
--enable-sockets

---e.hdml (EUC)
<hdml version="3.0">
<display>ほげほげ</display>
</hdml>

---p.php
<?php
mb_http_output('SJIS');
ob_start('mb_output_handler');

header('content-type: text/x-hdml; charset=shift_jis');

require './e.hdml';
?>

p.phpにアクセスするとEUCなんです。
e.hdmlをshift_jisにコンバートして試すと、SJISなんです。
php.iniのmbstring.http_outputなどをいじっても結果は変わりません。
requireではなく、fopenで読み込みechoしても結果は変わりません。

私、何か勘違いしてますか?
098096702/06/01 16:47ID:???
>>976
レスありがとうございます。
こうだと転けてくれるみたいです、こちら4.2.1です。

$str ="1\t2\t\t\t\t\t\n";
list($v['name'],$v['msg'],$v['ipaddr'],$v['icon'])
= explode("\t",trim($str));

Undefined offset: 3
Undefined offset: 2
レス数が950を超えています。1000を超えると書き込みができなくなります。