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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん04/07/16 07:12ID:KvHeypq/
・PHP全般の質問スレです。
・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。


■本家
 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


抜けているものがあったら補足願います
0855初心者04/08/05 05:07ID:???
1ページ目で、変数を$Aに入れる
2ページ目で変数を$Bに入れる
3ページ目で$Aと$Bを表示させる
$Aはカラッポ、$Bにはちゃんと入ってる。。。
という現象です・・・
0856nobodyさん04/08/05 05:08ID:???
>>855
ページを切り替えるときにPOSTなりGETなりCOOKIEなりで渡してやらねば・・・
0857初心者04/08/05 05:10ID:???
ごめんなさい、GET、COOKIEについてはサッパリです・・・
POSTはこの状況じゃ使えないです。
0858nobodyさん04/08/05 05:12ID:???
>>857
とりあえず何がやりたいのかわからんが
example.php?A=$A&B=$B
こんな感じで呼び出してやればいいんでない?
0859nobodyさん04/08/05 05:13ID:???
>>853
サーバサイドとクライアントサイド・スクリプトの
違いについて勉強してこい。してきた上で
「シリアライズしてファイル化」について調べると
幸せになれるかもしれぬ。
0860nobodyさん04/08/05 05:20ID:???
>>855
それも課題なのだろうか…という疑問がちょっと沸いた。
それなら「セッション変数」「hidden」だな。
0861初心者04/08/05 05:27ID:???
とりあえずhiddenで解決できました。
しかしなぜ3ページ目まで変数が渡らないんだろう・・・
0862nobodyさん04/08/05 05:31ID:???
あたり前田のクラッカー
0863nobodyさん04/08/05 05:44ID:???
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting ']' in 〜 on line 35
0864nobodyさん04/08/05 05:58ID:???
print " <CENTER>$idrrが$dmgに餌をあげた!</CENTER><BR>";

この文何かおかしいかな?
これがエラーの原因なんだが
0865nobodyさん04/08/05 06:08ID:???
{$foo}
0866nobodyさん04/08/05 06:49ID:???
sjis馬鹿は死んでも治らない。
0867nobodyさん04/08/05 07:25ID:???
for文を使って数回同じ文を使いたいのですが
$Aが0または$Bが0になった場合抜け出したいのですが
どうすればよいですか?
086886704/08/05 07:34ID:???
for ($i=0;$i<=$A || $i<=$B;$i=$i+0){}
こんな文が使えるなんて初めて知りました><
0869nobodyさん04/08/05 08:08ID:???
> $i=$i+0
キモッ
while(...) でいいじゃん
0870nobodyさん04/08/05 08:15ID:???
>869
お前の方がよっぽどきもいわパゲッ!
0871nobodyさん04/08/05 08:24ID:???
> $i=$i+0
コスモを感じる
0872nobodyさん04/08/05 08:29ID:???
(=゚ω゚)ノィョゥ
クッキーの使い方教えてくださいおながいします

P.S マニュアル読んでもわかんねーよヽ(`д´)ノウワァァァァン
0873nobodyさん04/08/05 08:43ID:???
>>872
これ嫁
http://www.sra.co.jp/people/t-ishii/php_new/php4_new.html
087453604/08/05 09:04ID:???
おはよー。今日もマニュアルひき頑張ろうぜ。

>>869
>>871
お前ら言い過ぎw
0875nobodyさん04/08/05 09:06ID:???
while ($A != 0 and $B != 0)
0876軟式PHP04/08/05 09:07ID:???
>>874
他スレでの名前になってた。・゚・(ノ∀`)・゚・。
0877nobodyさん04/08/05 09:10ID:???
クッキーにa'b"cという文字を保存してそれを出力するとa\\\\\\\'b\\\\ってなってしまうのですが
どうしたらいいでしょうか?
0878nobodyさん04/08/05 09:14ID:???
$data = file($gdata);
$count = count($data);
$fp = fopen($gdata,"w");
flock ($fp,LOCK_EX);
for ($x;$x<=$count;$x++){
list ($idx,$passx,$lvx,$expx,$chax,$winx,$losex,$hpx,$atcx,$defx,$masx,$dexx) = split( ",", $data[$x]);
if ($x == $i2){
$expx = $expr;
$winx = $winr;
$losex = $loser;
fputs($fp, $data[$x]);

}elseif($x==$i3){
$expx = $exprr;
$winx = $winrr;
$losex = $loserr;
fputs($fp, $data[$x]);
}else{
fputs($fp, $data[$x]);
}
fclose ($fp);
}

データが消えてしまう・・・
何がおかしいんだろうか・・・
0879軟式PHP04/08/05 09:14ID:???
magic_quotes_gpcをOFFにしてみれ。
0880軟式PHP04/08/05 09:19ID:???
とりあえず添削を。
for ($x;$x<=$count;$x++)
$x=0ぐらいしる。

で、データが消えてしまうってどういう意味で言ってるのか分からないけど
fopen($gdata,"a")でやってみれ。
0881軟式PHP04/08/05 09:22ID:???
あとsplit(",",rtrim($data[$x]));も試してみちょくれ。
0882nobodyさん04/08/05 09:49ID:???
クッキーに保存されたa"b'cを抽出して出力するとa\\\\ になってしまうのはなじぇ?
0883軟式PHP04/08/05 09:56ID:???
>>882
エスケープされるから( ´−`)
0884nobodyさん04/08/05 09:59ID:???
どうやったらうまく出力できるでしょうか?
0885nobodyさん04/08/05 10:15ID:???
magic_quotes_gpcをoffにすることは できません。
で、stripslashesを使ってもうまくいきません。。。
0886nobodyさん04/08/05 10:21ID:???
>>862
懐かしいよ・・
0887nobodyさん04/08/05 10:23ID:???
>>886 >>862
学校の先生が言ってた
0888軟式PHP04/08/05 10:26ID:???
>>885
\だけ消したいならreplace使って消すといいよ。
0889nobodyさん04/08/05 10:35ID:???
>>885
>>magic_quotes_gpcをoffにすることは できません。
他の処理で使うからかな?それともoffにしたくてもphp.iniをいじれないからかな?

後者なら.htaccessで
php_flag magic_quotes_gpc Off
これも.htaccessが使用可能だければだけど
0890nobodyさん04/08/05 10:38ID:???
はい。クッキーにはa'b"cが保存されていて
$a = str_replace("\\","",$a);とやってみましたが
表示される文字はa'b になってしまう。。だぶるくおーてーしょん以降が表示されないのです。。
0891nobodyさん04/08/05 10:49ID:???
除去してもいいんじゃない?
$a = str_replace("\"", "", $a);
0892nobodyさん04/08/05 10:52ID:???
( ´゚д゚`)えーーー
除去でいいの?
なんか不安なんだけど
クッキーの文字自体に\があった場合はどうするのよ
0893nobodyさん04/08/05 11:03ID:???
ちなみにみなさんはフォームからの入力データをクッキーに保存させるときってどうしてますか?
0894nobodyさん04/08/05 11:10ID:???
俺は全てDB任せですが
0895nobodyさん04/08/05 11:13ID:???
>>894
クッキーもDBにお任せですか?
0896nobodyさん04/08/05 11:14ID:???
>>895
クッキーには最低限の情報を与えます
例えばID
あとはクッキーからIDを読み取り、そのIDの情報をDBから取り出します
0897nobodyさん04/08/05 11:15ID:???
ID変えたら終わりだろ
0898nobodyさん04/08/05 11:18ID:???
>>896
ホームラン級のバカだな
0899nobodyさん04/08/05 11:18ID:???
>>893
大事な情報なら自作暗号化アルゴリズムで暗号化します
0900nobodyさん04/08/05 11:19ID:???
>>896
コスモを感じる
0901nobodyさん04/08/05 11:24ID:???
あとは空気から雰囲気を読み取り、その雰囲気の情報を経験から取り出します
0902nobodyさん04/08/05 11:25ID:???
COOKIE嫌いなん?(俺も嫌いだが…)
PHP3か?
4ならSESSIONでも良いじゃないか。
0903nobodyさん04/08/05 11:37ID:???
俺もクッキーは大嫌いだね。
セッションが一番いい。
まぁセッションもクッキー使ってるわけだけど
0904nobodyさん04/08/05 12:27ID:???
何で嫌いなん?の何が嫌いなん?
090588204/08/05 12:38ID:???
どうやっても無理でしたので896さんの方法でやることにします。
結果は同じなのでま、いいか
0906nobodyさん04/08/05 12:43ID:???
>>892
urlencodeでも汁
0907nobodyさん04/08/05 12:45ID:???
>>905
これでどう?
if (get_magic_quotes_gpc()) {
$a = stripslashes($a);
}
0908nobodyさん04/08/05 12:48ID:???
>>878
}
fclose ($fp);
}
  ↓
}
}
fclose ($fp);
0909nobodyさん04/08/05 12:54ID:???
>>905
"を&quot;に変換する。
0910nobodyさん04/08/05 12:55ID:???
>>907無理です。。
\\\がついてくる

ちなみにIDだけ保存してDBから取り出すと
cryptされたパスワードが抽出されてしまってだめでした。。
0911nobodyさん04/08/05 13:08ID:???
>>910
907のstripslashesってまんまその為のものなんだが・・
ttp://jp.php.net/manual/ja/function.stripslashes.php

クォート取り除いた変数名と、クッキーに書き込んでる変数名が違うなんてことはないよね?
0912nobodyさん04/08/05 13:27ID:dWrkED0y
PHP4で処理の途中で何秒間か止めたりする方法って
ありませんでしょうか?
0913nobodyさん04/08/05 13:27ID:???
クッキーに保存されてる変数$aのデータはクオート取り除いたデータです
クッキーにはa%27b%26quot%3Bcと保存されていますので。。
で、$aをクッキーから抽出して表示するとa\\\'bと。。こうなってしまうのです
0914nobodyさん04/08/05 13:32ID:???
>>912
寝ろ
0915nobodyさん04/08/05 13:33ID:???
>>912
すりーぷ
0916nobodyさん04/08/05 13:35ID:???
そういえば
眠れない時に羊を数えるのってsheepがsleepに似てるからなんだよ
0917nobodyさん04/08/05 13:45ID:UeFJsakm
>>904
クッキー使えなくしているクライアントが結構いる。
クッキーからIEの穴つつけたりした。
091891204/08/05 14:04ID:dWrkED0y
>>914 >>915
ありがとうございました。
0919nobodyさん04/08/05 14:07ID:???
>>913
Windowsで動かしてます?
Shift-JISなら入力データをEUC-JPに変換、クォートしたらクッキーに書き込み、
クッキーから抽出したらShift-JISに戻して表示でどうです?
$a = mb_convert_encoding($a, "EUC", "SJIS");
0920nobodyさん04/08/05 14:51ID:???
自分自身のファイル名(index.phpなど)を取得できる関数ってありますか?
0921nobodyさん04/08/05 14:59ID:???
>>920
var_dump($_SERVER);
0922nobodyさん04/08/05 15:04ID:???
>>920
__FILE__
0923nobodyさん04/08/05 15:06ID:???
>>921-922
どうもです
0924nobodyさん04/08/05 15:12ID:???
>>916
へぇ〜 へぇ〜 へぇ〜 
3へぇ〜 
0925nobodyさん04/08/05 15:17ID:???
Unsupported operand types なんですが以下の変更で起きました (T-T)

$list1、$list2 ともに配列です。

$all = array_merge($list1, $list2);
  ↓
$all = $itemList1 + $itemList2;

なにが原因と考えられるでしょうか?
0926nobodyさん04/08/05 15:20ID:???
>>916
今日の一番にします。
092792504/08/05 15:36ID:???
自己解決

$list1 or $list2 が array の 他に undef の場合があった。

array_merge()は undef でもマージできるけど
+ だと 型違いでマージできず。
0928nobodyさん04/08/05 19:28ID:???
セッションってやたら便利だけど
キャッシュが効かないのが嫌。仕方ない?
0929nobodyさん04/08/05 20:01ID:???
>>928
そんなおまいのためにsession_cache_limiterですよ
0930nobodyさん04/08/05 20:09ID:???
>>928
>>929
0931nobodyさん04/08/05 20:34ID:4UXeuveB
質問です。

今、ラジオボタンでの入力を取り出すプログラムを書いてるんですが、
name属性が可変の場合、取り出す時にどうやって指定すればいいのでしょう?

具体的には下のようなソース。
<input type="radio" name="<?php echo $groupCode ?>" value="rw" >
<input type="radio" name="<?php echo $groupCode ?>" value="r" >
<input type="radio" name="<?php echo $groupCode ?>" value="n" >

↑で取り込んだやつを、
if( $groupCode == "rw" ){
   $readStatus = "T";
   $writeStatus = "t";
}

のような感じで取り出したいのですが、
if文の中が、文字列の比較になってしまって、
どうしても取り出せないんです。

どなたかアクロバットなやり方を知りませんか?


0932nobodyさん04/08/05 20:47ID:???
こんな感じでどうですか

<input type="radio" name="groupCode" value="rw"<?php if ($groupCode== "rw") { print " checked"; };?>>
<input type="radio" name="groupCode" value="r"<?php if ($groupCode== "r") { print " checked"; };?>>
<input type="radio" name="groupCode" value="n"<?php if ($groupCode== "n") { print " checked"; };?>>

if( $groupCode == "rw" ){
   $readStatus = "T";
   $writeStatus = "t";
}
0933nobodyさん04/08/05 20:58ID:???
あ、すまぬ可変って内容でしたね・・ちょっと寝ぼけてまつ
hiddenで別に渡せないかなぁ?
0934nobodyさん04/08/05 21:09ID:???
・・・hiddenでも出来ないかな、これでどうかな?

if( ${$groupCode} == "rw" ){
   $readStatus = "T";
   $writeStatus = "t";
}

何度も書き込んですまぬ、そろそろ寝よう・・
093593204/08/05 21:20ID:???
>>934
無理ですー。

うーむ、全面的につくり変えないとあかんのかな・・・
0936nobodyさん04/08/05 21:21ID:???
$groupCode = "rw";
$data = "groupCode";
echo $$data; //rw
093793204/08/05 21:32ID:???
>>936
できましたー、こんな単純なことでいいんですねー。
まじで、ありがとうございます。

0938nobodyさん04/08/05 21:34ID:???
$groupCode = "A00";
$A00 = "rw";
echo $$groupCode; //rw
実は逆だった…
0939nobodyさん04/08/05 22:24ID:???
なんども、出ている質問かもしれませんけど、
PHP version4.2.xで動いていたソースが4.3.xで動かなく
なる場合はどうすればいいんですか?
0940nobodyさん04/08/05 22:33ID:???
>>939
ソースを書き換えるか4.2.xで永遠に動かし続ける。
0941nobodyさん04/08/05 22:36ID:???
どう書き換えればいいですか?
0942nobodyさん04/08/05 22:40ID:???
動かなくなったところの関数等をgoogleとかで調べて書き換えればいいと思うよ。
0943nobodyさん04/08/05 22:40ID:???
俺っちには説明できない内容と量だからhttp://www.php.gr.jp/
でRelease Announcementの和訳でも見てくれ。

もしくは説明できる人説明よろろ
0944nobodyさん04/08/05 23:07ID:???

  い  夏
  ん  厨
  じ  い
  ゃ  っ
  ん  ぱ
     い
0945nobodyさん04/08/05 23:18ID:sAzaKBea
NTT代理店がメアド晒し・スパムのマニュアル・社内掲示板・会議予約を一般公開!(社外秘丸見え)
しかも出会い系やアダルトグッズの販売も。今日行われたちんぽ会議の謎とは・・・

【突撃】広告部隊作業マニュアル公開中5【OFF】
http://ex7.2ch.net/test/read.cgi/news4vip/1091710263

まとめサイト
ttp://www.geocities.jp/syupam_chinpou/index.html
0946nobodyさん04/08/05 23:20ID:???
ファイルのアップロードのやり方がわかりません。
<form enctype="multipart/form-data" action="_URL_" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000000">ファイル<input name="userfile" type="file">
</form>
としたのですが、どこにうpするか決められるのですか?
(送信ボタンは別にあるものとして・・・)
0947nobodyさん04/08/05 23:22ID:???
>>946
マニュアルの目立つ所に書いてあるだろ。
094894604/08/05 23:23ID:???
すまん、マニュアル読んでわかんなかったから
ここで聞いたんだが・・・もう一度見てくるぽ
0949nobodyさん04/08/05 23:28ID:???
ttp://jp.php.net/manual/ja/features.file-upload.php
内容を理解できなかったって言うならやばいぞ。
0950nobodyさん04/08/05 23:29ID:???
$_FILES['userfile']['name'];
の使い方が理解できんのよ・・・
0951nobodyさん04/08/05 23:33ID:???
$_FILES['userfile']['name']はアップロードしたファイルの名前だ。
サンプルを見て試して手加えて身体で覚えろ。
マヌアル10回声を出して読んで来い。
0952nobodyさん04/08/05 23:37ID:???
>>946
アップロードされる場所の話ならむしろこっちかな。
http://jp.php.net/manual/ja/ini.sect.file_uploads.php

>>950
理解できないなら使わなければいいじゃない。
つーかクライアント側の元ファイル名なんて使いたいとも思わないな。
どんな文字入ってるか分からんし。
095394604/08/05 23:53ID:???
Warning: move_uploaded_file(***): failed to open stream: Permission denied in /usr/home/free/home/phpworld/public_html/pu/upload.php on line 8
Warning: move_uploaded_file(): Unable to move '/var/tmp/phpxgdg4W' to '***' in /usr/home/free/home/phpworld/public_html/pu/upload.php on line 8
0954nobodyさん04/08/05 23:55ID:???
>>953
で、訳してみたらどういう意味だった?
レス数が950を超えています。1000を超えると書き込みができなくなります。