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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
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辺り
0855nobodyさん2005/11/25(金) 09:23:04ID:???
>>854
それだとURL直叩きでもカウントしちゃうんでない?
08568532005/11/25(金) 09:34:23ID:???
>854さん、>855さん
有り難うございます。

やりたいことは、
メールに、
http://xxx.xxx/index.php?no=***
(***以下はそれぞれ別の番号)

を記載して、
そのリンクを、クリックしたかどうかを判別したいんです。
0857nobodyさん2005/11/25(金) 09:46:24ID:???
>>856
で、どこで先に進めなくなってるの?
基本的に>>854のようにやりたい事をどんどん細かく分割していって、
それがPHPの構文や関数にまで分割できたら、それで動作するプログラムになってるよ。
0858nobodyさん2005/11/25(金) 09:48:09ID:???
んじゃまぁURL直叩きは許容範囲ってことでいいんかな。
番号の振り方を、パッと見では分からないようにしておいたほうがよさそうだね。
id部分をオリジナルのエンコード方法で暗号化しておいてPHP側でデコードするって感じかな。

整数番号を順番に振ってるだけだと、URL直叩きでの不正アクセスURLが簡単に想像できちゃうしね。
08598532005/11/25(金) 09:52:03ID:???
>>857
no=***
以下を書き出すことができないんです。
08608582005/11/25(金) 09:53:12ID:???
>>858
んじゃまぁURL直叩きは許容範囲ってことでいいんかな。

はい。それは、かまわないです。
0861nobodyさん2005/11/25(金) 09:58:03ID:???
>>859
$_GET['no']
0862nobodyさん2005/11/25(金) 10:03:06ID:???
書き出せないってのは

http://xxx.xxx/index.php?no=***のHTMLの「no=***」の部分が書き出せない のか
取得したID番号をログファイルに書き出せない のか
それともID番号が書き出し処理を行うPHP内部で取得できていない のか

どれ?
0863nobodyさん2005/11/25(金) 10:05:58ID:???
セッションを使うのが一番簡単
0864nobodyさん2005/11/25(金) 11:17:15ID:???
>>853

Apacheを使ってて、Apacheのログ設定をいじる権限を持っているのなら、
Apacheのログ書き出しを、環境変数使って制御するのが、手っ取り早いかも。

つまり
http://xxx.xxx/index.php?no=
を含むアクセスだけ、書き出したログを、現在の通常のログとは別に吐かせるとか。
そんなようなことを昔やってる例を聞いたことはあるので、できるとは思うが、細かい
ところは分からないので、方法はApache関係のスレで聞いてみると良いかと。
0865nobodyさん2005/11/25(金) 11:24:12ID:5q1+9u/g
フォーム先のページは更新ボタン押すと再試行がでますが、
再試行しなくても更新できるようにできませんか?

更新ボタンをページ内に値を送るフォームにしようかと思ったんだけどよくわかりません。
0866nobodyさん2005/11/25(金) 11:39:19ID:???
>>865
フォーム先つーか、POSTされたページを再読込する時には、
POSTしたデータを送信しなければならず、その際にはユーザに許可(再試行ダイアログ)を得なきゃいかん、
つーRFCがあったよーな。番号は忘れた。
POSTの処理が終わった後でheader("location: 〜")とか使って別のページをGETさせればよい。
0867nobodyさん2005/11/25(金) 12:15:43ID:???
>>865
method="GET"
08688652005/11/25(金) 12:32:19ID:???
できました。どうもありがとうございました。
08698122005/11/25(金) 13:19:25ID:d0dndc1R
816さんできました、ありがとうございます。
それと、質問のしかたが悪いという指摘がありましたが、試したテンプレは
好意で公開してくれているようなモノだったので、詳細を省きました。
一応サイト管理者には質問のメールを出しましたが、回答がいつになるかわから
らかったので、ここで質問させてもらいました。
0870nobodyさん2005/11/25(金) 13:25:04ID:???
>>869
おまえ、つくづくアホだな。もう来るなよ。
0871nobodyさん2005/11/25(金) 13:49:17ID:???
質問させてください
実行してるファイルのURLのフルパスを調べるにはどうしたらいいでしょうか?
0872nobodyさん2005/11/25(金) 13:52:45ID:???
>>871
・マニュアルを調べたか、google検索したか(調べたキーワード)
0873nobodyさん2005/11/25(金) 13:53:39ID:???
>871
getFulltin("FULL_PATH");

>872
知らないならすっこんでろよ
0874nobodyさん2005/11/25(金) 13:57:29ID:???
>>871
872のいうことももっともだが、
ま、一度phpinfo()でも実行してみろ。
08758712005/11/25(金) 14:03:58ID:???
ええと、サーバーのフルパスはわかるのですが
URL(アドレス)のフルパス
強いて言えばhttpなのかhttpsなのかが知りたい。のです。
0876nobodyさん2005/11/25(金) 14:05:40ID:???
とりあえずだな、マニュアルも読まない、自分で検索もしないバカは
くだスレに行けってことだ。
08778712005/11/25(金) 14:09:10ID:???
すみません
解決しました・・・
08788712005/11/25(金) 14:09:12ID:???
>876
だ〜か〜ら〜、ここで調べてるんじゃないですか。
知らないのならだまっててください。

>873
すみませんエラーになってしまいます。
もう少し、ご教授ください。
08798712005/11/25(金) 14:13:27ID:???
>>878
僕の名を語って発言しないで。。。
0880nobodyさん2005/11/25(金) 14:15:54ID:???
>>871
httpかhttpsかは$_SERVER["SERVER_PROTOCOL"]をチェック。
ホスト名+ポートはHTTP_HOSTでもいいがHost:を送らないお馬鹿なブラウザにも対応したいならSERVER_NAMEとSERVER_PORTで。
あとはREQUEST_URIをつなげてやればよさげ。
0881nobodyさん2005/11/25(金) 14:16:08ID:???
getFulltinが使えないみたいなんですけど
0882nobodyさん2005/11/25(金) 14:16:10ID:???
>871
てかよ〜
解決したんならどう解決したのか書けよ
つくづく自分勝手なやつだな”お前”はよ!!!
0883nobodyさん2005/11/25(金) 14:17:49ID:???
>>881
使えないときのエラーメッセージはなんだった?w
08848712005/11/25(金) 14:20:14ID:???
マニュアル読めだの
googleで調べた検索キーワード言えだの言われたら

おしえる気にもなりません
08858812005/11/25(金) 14:20:21ID:???
NullPointerExtension
って表示されてます orz
0886nobodyさん2005/11/25(金) 14:21:33ID:???
>>883
こうですぅ
Fatal error: Call to undefined function getFulltin() in - on line 1
0887nobodyさん2005/11/25(金) 14:23:43ID:???
>>884
そういうのだけは一人前だな。
0888nobodyさん2005/11/25(金) 14:24:13ID:???
>>886
書いてある通りだろw
0889nobodyさん2005/11/25(金) 14:25:06ID:???
>886
ヒント: extensions
0890nobodyさん2005/11/25(金) 14:25:43ID:???
>>888
どうしたら使えるようになりますか?
08918712005/11/25(金) 14:27:47ID:???
ヒント:getFulltinなんてどうやっても使えないよ
0892nobodyさん2005/11/25(金) 14:29:11ID:???
げっとふるてぃん?
0893nobodyさん2005/11/25(金) 14:29:16ID:???
>891
また、無様な喪前かw
extensions で出来るんだよ。
どうやっても使えないとか嘘書くな。
0894nobodyさん2005/11/25(金) 14:37:52ID:0/Y2pKf/
ふるちん
0895nobodyさん2005/11/25(金) 14:39:30ID:???
フルチン ブ〜ラブ〜ラ♪
0896nobodyさん2005/11/25(金) 14:40:49ID:???
>>893
なんていうextensionsか教えてください
おねがいします
08978932005/11/25(金) 14:43:12ID:???
>896
答え: 872, 876
0898nobodyさん2005/11/25(金) 14:45:02ID:???
>>896
つかgetFu..をぐぐってみろよw
0899nobodyさん2005/11/25(金) 14:52:41ID:???
飽きてきた
0900nobodyさん2005/11/25(金) 14:55:32ID:???
おまんこ(><)
0901nobodyさん2005/11/25(金) 15:03:37ID:???
Eclipse2.0で使えるphpEclipseってありますか?
0902nobodyさん2005/11/25(金) 15:04:09ID:???
PHPってEUCで書く事が前提ですよね。

携帯用のサイトを作りたくて、
出力をShift_JISにしたいんですが
どうするのが一番スマートでしょうか。

誰かお願いします。
0903nobodyさん2005/11/25(金) 15:07:09ID:???
>>902
EUCで書いて、Shift_JISで出力する。
0904nobodyさん2005/11/25(金) 15:10:25ID:cPOkvRIi
文字コード変換すると消える場合も有るけどな(w
0905nobodyさん2005/11/25(金) 15:11:02ID:???
>>902
スクリプトはeucで書いてhttp出力はshift-jisにしてみてはどうでしょう?
マルチバイト関数あたりに詳しく書いてあります。
0906nobodyさん2005/11/25(金) 15:12:48ID:???
>>902
> PHPってEUCで書く事が前提ですよね。

まじで?
0907nobodyさん2005/11/25(金) 15:14:44ID:P+tdb1H/
>901
あるお

>906
なんも知らん奴だなw
0908nobodyさん2005/11/25(金) 15:16:42ID:???
UTF8で書いてます。
0909nobodyさん2005/11/25(金) 15:24:24ID:???
>>907
僕もUTF-8なんですが、そういった情報はどこにありますか?
0910nobodyさん2005/11/25(金) 15:27:07ID:???
>>905
mb_convert_encodingの存在はしっていますが、
もしかしてこれの事を言ってたりしますか?

出力の各行ごとにこの関数をかますのは
ちょっとスマートではないなあと思ったもので。
0911nobodyさん2005/11/25(金) 15:30:09ID:???
>>910
php.ini
0912nobodyさん2005/11/25(金) 15:30:47ID:???
すいません解決しました
0913nobodyさん2005/11/25(金) 15:36:09ID:???
誰だよおまい
0914nobodyさん2005/11/25(金) 15:36:57ID:???
おれだよ、おれ
0915nobodyさん2005/11/25(金) 15:41:16ID:???
よ、久しぶり
0916nobodyさん2005/11/25(金) 15:47:52ID:???
超期待してDoCoMo絵文字をUTF-8/16に変換したら化けた。ウボァー
絵文字変換テラムズス
0917nobodyさん2005/11/25(金) 15:57:46ID:???
ドコモとauは変換元エンコーディングをCP932にすれば楽勝。
ボーダフォンは鬱になるけど。
0918nobodyさん2005/11/25(金) 16:00:41ID:???
>>907
探してみたけど、ここでダウンロード出来ますか?
ttp://www.phpeclipse.de/tiki-index.php?page=PHPeclipse+Installation+for+Eclipse+2.1

リンクが見当たらない…。
sourceのsnapShotって何ですかね?
0919nobodyさん2005/11/25(金) 16:26:35ID:???
あにょ
5.1出たけど、使ってみた感じどうですか?
0920nobodyさん2005/11/25(金) 16:52:06ID:???
>>919
PDOで重いPEAR::DB使わなくてすむ
0921nobodyさん2005/11/25(金) 19:22:06ID:???
>>902
mbstring.script_encoding
0922nobodyさん2005/11/25(金) 19:28:29ID:???
特定の日付の○ヶ月後を求める処理がどうしてもうまくいかないので質問させてください。
PHP4.3とmysqlを使用しています。

全体の流れとしては、請求予定日(年,月,日)を選択して、さらに支払いの選択(当月0,翌月1,翌々月2)をします。
最終的にDBに書込む日付は請求予定日に支払いの選択で選択した値を足したものにしたいと考えています。

$transfer = $_POST["transfer"];
で、月を進めたい数を取得しています。(0,1,2のみ)

$transfer_m = mktime(0,0,0,$claim_m + $transfer);
$transfer_fin = date("Y-m-d",$transfer_m);
こんな感じで、タイムスタンプにして、足してみたのですが、年を繰り越してくれなかったりします。
$claim_mというのは、請求予定日の月の値です。

どなたかご享受ください。
0923nobodyさん2005/11/25(金) 19:31:32ID:???
>>922
きょう‐じゅ〔キヤウ‐〕【享受】
[名](スル)受け入れて自分のものとすること。受け入れて、味わい楽しむこと。
0924nobodyさん2005/11/25(金) 19:41:49ID:???
>>922
つか、mkdateに年のパラメーターわたしてないじゃん。
それに、単純に足したら$claim_mが12で、$transferが2だったら、
14になるでしょうに。
そういうところを考えてみたら?
0925nobodyさん2005/11/25(金) 20:10:51ID:???
>>922
>>mktime
>>引数は右から順に省略することができます。省略された引数は、 ローカルの日付と時刻に従って、現在の値にセットされます。

請求予定日が今月じゃないんだろ?ケチらずにセットしろや
$transfer_m = mktime(0,0,0,$claim_m + $transfer, $claim_d, $claim_y);
月が14になってもだいじょうぶ
0926nobodyさん2005/11/25(金) 20:11:24ID:???
>>922
とりあえずマニュアル嫁
つ[strtotime]
09279222005/11/25(金) 20:18:15ID:???
みなさんありがとうございます。
>>925さんの書いた通りで、ばっちりできてしまいました。
お騒がせしました。ありがとうございます。
0928nobodyさん2005/11/25(金) 20:19:33ID:???
マニュアルって本になってないの?
モニタで読むの疲れる。
0929nobodyさん2005/11/25(金) 20:32:17ID:???
>>926
ありがとうございます。
解決しました。
0930nobodyさん2005/11/25(金) 20:33:21ID:???
解決するなよw
0931nobodyさん2005/11/25(金) 21:51:39ID:???
>>928
印刷しろ
0932nobodyさん2005/11/25(金) 21:58:49ID:???
php4の出始めの頃は本の半分くらいをマニュアルに費やしていたものが
結構多かった気がするが、最近はそうでもないのかな?
というか、もれの訳した部分の印税をくれ... orz
0933nobodyさん2005/11/25(金) 22:00:08ID:???
リファレンス系はあいかわらずマニュアルの採録だろ
海外のはどうかしらんが
0934nobodyさん2005/11/25(金) 22:02:47ID:???
紙のマニュアルはすぐ古くなるから無駄
ってマニュアルには書いてあるな
0935nobodyさん2005/11/25(金) 23:09:32ID:???
PHPバージョンアップしてみた!!
Warning: mktime() expects parameter 4 to be long, string given in path
というエラーが4つ目のパラメータって「25」だけど何でだ・・・
0936nobodyさん2005/11/25(金) 23:15:30ID:???
マニュアルって訳してるやつがヴァカだから読みにくい
0937nobodyさん2005/11/25(金) 23:19:37ID:???
>>934
それはそれで趣があっていいよ
0938nobodyさん2005/11/25(金) 23:20:06ID:???
PDOはまだ実験的モジュールなんだね

ttp://www.php.net/manual/ja/ref.pdo.php
0939nobodyさん2005/11/25(金) 23:20:48ID:???
>>935
int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )
四つ目は何でしよう?
0940名無し募集中。。。2005/11/25(金) 23:24:25ID:???
つ http://www.ilovejackdaniels.com/php/php-cheat-sheet/
0941nobodyさん2005/11/25(金) 23:25:58ID:???
>>939
0から数えてdayだよね?
1から数えるのか・・月か(--;
前のバージョンの時は普通に動いてたんだけどなぁ
09429412005/11/25(金) 23:31:59ID:???
>>939
直りました(^^;ありがとうございます。
5.1.0はNovだと変換してくれなくなったみたいですね。
0943nobodyさん2005/11/26(土) 07:44:30ID:???
>>938
翻訳が追いつかないのですよ
ttp://www.php.net/manual/en/ref.pdo.php
0944nobodyさん2005/11/26(土) 08:34:30ID:???
>>940
needleとheystackの順番でいつもマニュアル確認するんだよね。
関数作るときに統一して欲しかった。
0945nobodyさん2005/11/26(土) 11:09:59ID:???
PDOって結局さ・・・DB別にあった関数を1つの関数にまとめただけだよね?
最初はPDO独自に統一した書式を用いてPDOで指定したデータベース用に
自動変換してくれるのかと想った・・・



0946nobodyさん2005/11/26(土) 11:39:30ID:???
PDOよりもPDOでないSQLite3モジュールを標準で入れて欲しいよ。
0947nobodyさん2005/11/26(土) 12:15:11ID:???
PDOの利点って何ですか?
PEARで済むような気がするんですが。
0948nobodyさん2005/11/26(土) 12:24:56ID:???
>>947
PEARを使わなくてもPDOで済む
ってのが利点だわなwww
0949nobodyさん2005/11/26(土) 12:42:13ID:etbGZx3w
rand()は必ずランダムな数を返すと考えても問題ありませんか?
0950nobodyさん2005/11/26(土) 12:43:48ID:???
>>947
PEARよりは明らかに軽くて速いだろう
0951nobodyさん2005/11/26(土) 13:01:45ID:???
>>917
sugeeeeeeeeeeeeeeeeee!!!!
SJIS→CP932で化けなくなりました!
ありがとうございます神様!
0952nobodyさん2005/11/26(土) 13:02:21ID:???
>>950
なるへそ
0953nobodyさん2005/11/26(土) 13:30:34ID:???
>>949
「『必ず』ランダムな値を返す」とは限りません
使用状況にもよるけど、少なくとも「必ず」ではありません
ランダムと考えても差し支えない値は返しますが。
詳しくはコンピュータで生成する乱数に付いての文献を参照すると良いかと

ただ、スクリプトの組み方によっては毎回同じ値を返すこともありますが
これは論外と言う事で
0954nobodyさん2005/11/26(土) 15:06:35ID:???
PostgreSQLのtimestamp型の値を消去したいんですが、
update table_name set time = ''
だと構文エラーが出ました
どうすればいいんでしょうか。
レス数が950を超えています。1000を超えると書き込みができなくなります。