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

【PHP】下らねぇ質問はここに書き込みやがれ 56

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん2007/10/11(木) 17:55:41ID:uObe69hr
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 55
http://pc11.2ch.net/test/read.cgi/php/1191058556/

◆質問する時の注意
・ sage進行(メール欄にsageと記入すること)「sage進行」とはスレを目立つ上部に上げないことによって、荒らしが発見できないようにすることです
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・ 書き込むときには、「公式マニュアル、リファレンス本は読みました」と明記すること
(でないと、公式マニュアル読めと煽られます)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
・質問者が「公式マニュアル読んだ」と書いていないからといって、
公式マニュアルに書いてもいないのに、公式マニュアルよめと適当なことを言わないこと。
質問者は公式マニュアルを読んでいるかもしれない。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0809nobodyさん2007/10/20(土) 22:09:54ID:???
>>806
数値を返すところで、0で返すのはまずいだろ。
それじゃ、正常処理か異常処理か分からなくなる。つまり、隠れたバグの原因になる。
0810nobodyさん2007/10/20(土) 22:10:49ID:???
>>807
>エラーを戻り値で対応するのかエラーで対応するのかは
エラーを戻り値で対応するのか例外で対応するのかは
0811nobodyさん2007/10/20(土) 22:11:57ID:???
>>809
phpのソースを見て研究をしたほうがいいと思う
0812nobodyさん2007/10/20(土) 22:17:13ID:???
>>809の問題だと、
f()==falseでは確かにまずいので、0とfalseを厳密に区別するために
f()===falseにするしかないな
(f()は数値を返すメソッド)


http://php.benscom.com/manual/ja/types.comparisons.php
0813nobodyさん2007/10/20(土) 22:23:46ID:???
釣銭勘定モジュールに渡すパラメータの定義が緩い
・購入金額は0円以上
・最低単位は10円であり1円単位の端数は無い
・購入金額は投入金額と等しいかそれ以下

購入キャンセルによる返金は親が面倒見る
0814nobodyさん2007/10/20(土) 23:38:01ID:???
>>813
うんうん、そうだね
0815nobodyさん2007/10/20(土) 23:40:56ID:???
なにいってんだよ
定義はあえて緩くしてるんだろ
その方が実力を測れるじゃねーか
0816nobodyさん2007/10/20(土) 23:41:20ID:???
>>813
ちょっとワロタ。
ちょっとだけだからな!
0817sage2007/10/21(日) 00:43:39ID:???
FreeBSDに、phpをインストールしたのですが、
phpの初期設定ファイルであるpnp.iniが見つかりません。

このファイルは、無い場合は自分で作るのでしょうか?
自分で作る場合は、インストールしたディレクトリと同じ場所におけばよいのでしょうか?

環境情報は、以下の通りです。
・OSは、5.4
・PHPは、5.2

よろしくお願いししす。
0818nobodyさん2007/10/21(日) 01:03:52ID:???
掲示板を制作しており htmlspecialchars に関する質問です。

1.意見をPOSTで送る
2.確認画面で確認
3.それから書込

2.の時点でhtmlspecialchars を入れており確認画面のソースは
<input type="hidden" name="contents" value="&lt;img src=&quot;&quot;&gt;">
(全角にしております)

でここからが問題。
こいつをまた送信すると$_POST['contents']の中身が元の「<img src="">」に
なっちゃうのはなんででしょうか?

$_POST['contents']="&lt;img src=&quot;&quot;&gt;" にならないの??
0819nobodyさん2007/10/21(日) 01:10:23ID:???
>>817
<? phpinfo(); ?> でファイル作りブラウザからでもコマンドライン実行でも見れば載ってない?
大体自分でOSインスコしたならfindとか使えないのか?
0820nobodyさん2007/10/21(日) 01:19:58ID:???
>>818
再送信で何故元に戻るかは知らないけど確認画面にhidden入れない方がいいと思う。
確認画面は表示用のみにして、送信内容(1の意見)自体はセッション関数に入れて3でそれを書き込んだ方がいい
0821nobodyさん2007/10/21(日) 01:34:05ID:???
>>817
慣れないOS使うからだよ
デフォルトのファイル名はphp.ini-dist
これをcpしてphp.iniにリネームしたのを同じ場所に置く
locatedb更新して検索してください
0822nobodyさん2007/10/21(日) 02:05:22ID:???
>>818
&をエスケープしてみろ、てかPHP関係ねぇしオパピ
0823nobodyさん2007/10/21(日) 03:47:36ID:???
でもそんなの関係ねえ
08248182007/10/21(日) 03:54:49ID:???
レスどうも。

$strForm = <<<EOF
<form method=POST action={$_SERVER['PHP_SELF']}>
{$_POST['hoge']}
<input type=submit value="ok">
<input type=hidden name=hoge value="&lt;"> ←掲示板対策で&大文字 &lt;=<
</form>
EOF;

echo $strForm;

これを動かすと「&lt;」ではなく「<」が表示された。

これ以上はスレ違いの気がするので最後に質問。
特殊文字を HTMLエンティティした場合、それを送信しちゃうと自動的に元に戻るってこと?
0825nobodyさん2007/10/21(日) 03:57:50ID:???
lol なんのためにエンティティ化するんだ
0826nobodyさん2007/10/21(日) 04:00:43ID:???
hiddenで送るなよ
08278182007/10/21(日) 04:06:00ID:???
>>825
>>なんのためにエンティティ化するんだ

ウハ! もっともなご意見(^^;
確認画面ですので入力したデータがそのまま表示されてもいい気がするんですが。

でも2ちゃんの確認画面もちゃんとエンティティ化してますよね。
そこらへんどうなんでしょ?
0828nobodyさん2007/10/21(日) 04:14:05ID:???
確認画面に出力したデータを書き込むんじゃない。
確認画面に入力したデータを書き込むんだ。
0829nobodyさん2007/10/21(日) 04:49:54ID:???
>>817
portsからぶち込んだ場合は/usr/local/etcにphp.ini-recommendedとphp.ini-distがある
いづれかをphp.iniとしてコピー
野良makeならphpのマニュアルに沿って解凍ディレクトリ下のphp.ini-recommendedか
php.ini-distをphp.iniとして/usr/local/libにコピー

推奨はphp.ini-recommendedなんだけどエラーメッセージ吐かなかったりと不自由するかも
しれないのでテスト環境ではphp.ini-distを利用するのがいいかも
0830nobodyさん2007/10/21(日) 09:59:43ID:???
>>827
2chで書き込み試したら確かにエンティティ化してhidden使ってるね
セッション使わないのは鯖負荷軽減のため?

ただ普通は、
ユーザが入力(最初)
 ↓
入力データをセッション変数へ保存
表示用にエンティティ化してHTML出力
 ↓
ユーザが確認し書き込みボタン押す
 ↓
セッション変数に保存したものをファイルやDBへ保存
(勿論DB用にエスケープする)

hiddenだろうがテキストエリアに入った文字列だろうがHTML出力する分はすべてHTMLエンティティするのは当然。
問題視してるのは書き込むデータをhiddenで送り返してまたそれを受け取りDB登録しようとしてる点。
0831nobodyさん2007/10/21(日) 10:17:27ID:???
mixi日記もhidden使ってたw こっちはエンティティ化してなかった
0832nobodyさん2007/10/21(日) 10:23:29ID:???
このスレの普通は、普通じゃなさそうだなw
0833nobodyさん2007/10/21(日) 10:38:03ID:???
所変われば常識も変わるってところか
0834nobodyさん2007/10/21(日) 12:10:29ID:k0cThTxS
自宅鯖のPHPがPHP 5.2.4で
sakuraサーバーのPHPがPHP 4.2.2で

php 5.2.4ではclass内でのrequire_once等の使用ができるのに
php 4.2.2だとつかえないみたいなんですけど
これはそういうものなんですか?
includeでも同じでした;;
なにか他に取り込む方法ってないですか?
0835nobodyさん2007/10/21(日) 12:19:55ID:???
そんな話きいたことないしソースみないとわからないが、クラスの外にだしてもどうせクラスが含まれたファイルをよみこむんだから問題ない気がするよ
0836PHPでパスワード付きExcelファイルを読み込みたい2007/10/21(日) 13:11:20ID:SzVd/yWp
Windows上でPHP5を使っています。
そのマシンにはExcelがインストールされておらず、
Excelファイルには、Excelのパスワードがかかっています。

で、そのExcelファイルをバッチ処理か何かで読み込みたいと考えています。

Perlだと、Win32::OLEかSpreadsheet::ParseExcelを使って読み込むそうですが、
前者はExcelがインストールされていないtダメですし、
後者はパスワードで保護されたExcelには対応していないんだそうです。

そこで、PHPを使おうと思っています。
ここで質問です。

調べたところによると、PHPでは、PHPExcelを使うと思うのですが、
パスワード付きのExcelは読み込めるのでしょうか?

あるいは、ほかに簡単に読み込める方法があれば、教えてください。
よろしくお願いします。
0837>>8172007/10/21(日) 14:20:59ID:???
>>819
>>821
>>829
できました!
ありがとうございます!

0838nobodyさん2007/10/21(日) 15:16:08ID:???
どういたまして
0839nobodyさん2007/10/21(日) 15:52:06ID:???
>>836
OOoを使う
あれならパスワードつきも普通に開けるだろ
0840nobodyさん2007/10/21(日) 17:04:17ID:???
>>839
ためしてからいえ
0841nobodyさん2007/10/21(日) 17:41:02ID:KqyRsNL6
質問です。
住所録みたいなツールを作って、データを登録するとします。
で、DB側ではid(自動インクリメント)を持たせてるとして、
たった今登録したデータのidを拾いたいときってどうしたらいいんですか?
phpから実行するsql文で最新のデータのidを拾えばいいと思ったんですが、
複数人から同じテーブルに次々書き込みがあった場合、自分の書き込み後に
他人が登録したデータを拾ってしまうということはないでしょうか?
0842nobodyさん2007/10/21(日) 17:51:15ID:???
>>841
マニュアルのmysqlのページ。
DB側でもできるけど。
0843nobodyさん2007/10/21(日) 18:37:14ID:???
>>840
試してから言ってるわぼけ
08448362007/10/21(日) 18:38:11ID:???
すこしだまっててくださいね、偽ってる暇人訓^^
0845nobodyさん2007/10/21(日) 18:49:34ID:???
>>836
>>1
0846nobodyさん2007/10/21(日) 18:59:57ID:???
メールフォームで送信した後、
「送信しました(2ちゃんだと『書き込みました』)」というページを表示するじゃないですか。
この際にブラウザーで戻れなくする方法ってないですかね?

何がしたいかというと二重送信を防ぎたいわけですが
チェック用のファイルを用意して防ぐようにもします。
ですがブラウザーそのものが戻らないようにできないもんですかね?

header("Location :http://example.com";)でいけるかと思ったんですがダメでした…
アドバイスを。
0847nobodyさん2007/10/21(日) 19:05:00ID:???
戻った場合の責任は負いかねますとか書いとけばok
0848nobodyさん2007/10/21(日) 19:07:21ID:???
>>846
>二重送信を防ぎたい
ぐぐればやり方はいくつか載ってるよ
ただクライアント側で何とかしようとするのは感心しない
やるならサーバ側
このへんの理由もぐぐれば書いてある
0849nobodyさん2007/10/21(日) 19:13:54ID:???
>>846
セッションに前いたページを覚えさせておいて
戻ったページで正しい遷移でなければ、前いたページにリダイレクトとか。
0850nobodyさん2007/10/21(日) 19:24:28ID:???
>>849
二画面開いてたらややこしいことにならないか?
08518462007/10/21(日) 19:40:55ID:???
レスあり〜

>ただクライアント側で何とかしようとするのは感心しない
>やるならサーバ側
そそ、書くの忘れていた。
クライアント側、たとえばJavaScriptとかでするんじゃなくて
サーバー側で処理をしたいんですよね。

「PHP 二重送信 防止」ぐらいでググッてるんですが
『クライアントサイドのスクリプトで二重送信を防止するのは難しい』
とか言われている俺ガイルww
08528462007/10/21(日) 19:45:54ID:???
ググった結果、よさそうな方法が見つかりましたw
回答ありがとうございました。
08538462007/10/21(日) 19:51:46ID:???
>>852
ちょ!必死に探しているのに詐称すんのやめて(つд`;)
つーか解決法がみつからない。
(ページの間に別のphpファイルを挟んで実行・header処理している人がいて感動)

ここって前まで上げてID表示していなかったっけ?
荒らされたんかな?
0854nobodyさん2007/10/21(日) 19:53:39ID:???
ずっとIDを出してないと意味ねーし
0855nobodyさん2007/10/21(日) 19:58:07ID:???
とりっぷつければイイノに
0856nobodyさん2007/10/21(日) 20:19:58ID:???
>>853
いや、ID出したきゃ出せばいいじゃん。
出さずに詐称すんなとかバカの言い分。
08578462007/10/21(日) 20:34:37ID:???
>>853
ちょっと待て!お前誰だよw
まぁ解決方法が見つからないのは本当なんだけどさ…。

もう少しググッてみたいと思います!
偽者が出てきたのでもう書き込まないようにします。迷惑かけてごめんなさい!
08588462007/10/21(日) 20:36:02ID:???
ちなみに852も偽者です。言い忘れました…。
0859846 ◆yBEncckFOU 2007/10/21(日) 20:41:35ID:???
>>857-858
ちょっと騙るのやめてくんない?こっちは真剣なんです!
08608462007/10/21(日) 20:41:49ID:???
偽者ばっかりで困っています
どうすれば良いですか?
08618462007/10/21(日) 20:41:56ID:???
めるぽ
0862nobodyさん2007/10/21(日) 20:45:25ID:???
ばか、ばっか
0863nobodyさん2007/10/21(日) 20:58:29ID:???
たまにこういうことがあるから面白い
0864nobodyさん2007/10/21(日) 21:07:02ID:???
最近はほぼ毎日じゃねーか
0865nobodyさん2007/10/21(日) 21:10:16ID:???
二重送信はsessionやJavaScriptで防げるが
ブラウザーのボタン制御は無理だろ?
0866nobodyさん2007/10/21(日) 21:12:26ID:???
過疎りすぎて人もよりつかないスレよりはマシだと思うよ
脱線し過ぎるのはアレだけど
08678362007/10/21(日) 21:26:20ID:SzVd/yWp
偽者がいますね(´・ω・`)

>>839
OpenOfficeでパス付きExcelが開けるのは知っていますが、
手で開くのではく、自動処理(バッチ処理等)で読み込みたいと考えています。

OOoでそういう使い方ができるのでしょうか?
0868nobodyさん2007/10/21(日) 21:43:50ID:???
>>865
送信元画面をPOSTで生成しとくとか。

いっそ送信元画面にJavaScript仕込んどいて送信完了時に
発行したCookieを発見したら強制Locationかけちゃうとかw
0869nobodyさん2007/10/21(日) 22:01:51ID:???
>>867
必要にせまられてるのはアンタだから試してみればいいんでないの?
良かったじゃん、人柱になれて
0870nobodyさん2007/10/21(日) 22:25:47ID:MevNDFNf
カレンダーを作っていますが
PHPの日付関数はunixタイムスタンプを使うので
2038年?以降のカレンダーは表示できなくなります。
unixタイムスタンプ問題を回避してカレンダーを作るには
どうすればいいですか?
0871nobodyさん2007/10/21(日) 22:28:44ID:???
>>870
日付も曜日も自分で管理したらいい

だが、そもそも30年以上も先のカレンダーを表示する必要があるのか?
0872nobodyさん2007/10/21(日) 22:47:48ID:???
>>846
まあ送信とか戻るのはユーザが行うことだからWebサーバで禁止できることじゃないとおもうけど。

期限切れで表示できないのとかあるね。
どうやっているのか知らないけど。

送信してしまった対策として一定時間内のIPや内容のハッシュでも記録しておいて
同じのがあったら無視するとか。
しつこい書き込みはIPを2chみたいにバーボンにするとか。
0873nobodyさん2007/10/21(日) 23:52:14ID:mLa5/CiA
動的ページのsitemapや更新のあったページをのせるrssを自動で発行するものを作りたいのですが、
どんな流れで作ればいいんでしょ。
0874nobodyさん2007/10/21(日) 23:55:29ID:???
更新内容→DB登録
↓
RSS出力
0875nobodyさん2007/10/22(月) 00:02:30ID:???
>>873
またおまえか
0876nobodyさん2007/10/22(月) 00:07:13ID:???
>>870も>>873も表現がおかしい
それはもう暗黙に作ってくださいとお願いしているようなもの
0877nobodyさん2007/10/22(月) 00:11:31ID:???
そうか・・?
0878nobodyさん2007/10/22(月) 00:17:27ID:???
>>876
そういう直接的な注意は不粋というものだ
どんな質問にも答えることはできる
質問者が気づくかどうかは知らんけど

0879nobodyさん2007/10/22(月) 00:19:42ID:???
>>876
870は問題ないような?
873は全然ダメだと思うけど。
0880nobodyさん2007/10/22(月) 01:31:08ID:???
プログラミング系スレで一番低レベルなスレ
0881nobodyさん2007/10/22(月) 01:34:58ID:???
2chでレベルとか言っちゃう奴って恥ずかしくないのかなぁ
0882nobodyさん2007/10/22(月) 01:41:18ID:b3zF2Ui7
またかといわれても初めて質問するのにどうすればいいんだろう。
0883nobodyさん2007/10/22(月) 01:46:50ID:???
>>880
タイトルがスレの有様を物語ってるからいいんだよ
0884nobodyさん2007/10/22(月) 01:55:22ID:???
>>882
以前に別の人間が質問して叩かれた内容と類似してるんじゃねえの
それだけ質問の内容が快く思われていないんだと思う
0885nobodyさん2007/10/22(月) 02:08:22ID:???
まあ2chに期待するなってことだ。いる人間のレベルや性格も様々。無償だしな
0886nobodyさん2007/10/22(月) 02:35:00ID:byAZxbU8
答えられないときの逃げ口上か
0887nobodyさん2007/10/22(月) 02:58:01ID:???
>>870
うる覚えなので間違ってるかも知れんが、DBを使って回避みたいなのを本で読んだ記憶がある。
time関数の範囲より広いんだと。
たしかpostgresのシーラカンス本
0888nobodyさん2007/10/22(月) 04:48:06ID:b3zF2Ui7
まーここで聞くよりぐぐったほうが正確だからな。
スレが落ちないようにたまに質問してやるだけって感じだし。
どうせ回答者もぐぐって答えさがしてんだし。
0889nobodyさん2007/10/22(月) 04:55:36ID:???
http://php.benscom.com/manual/ja/ref.calendar.php
これ組み込んだらいいんじゃね
PHPで出来たブログシステム結構あるけどどうやってんだろうな
0890nobodyさん2007/10/22(月) 04:55:37ID:???
どうしてこのスレの住人は高慢になってるんでしょ。
皆もっと寛大な心を持たないかい。
0891nobodyさん2007/10/22(月) 05:01:20ID:???
>>890
どの辺が?
0892nobodyさん2007/10/22(月) 05:25:37ID:???
初心者に初心者が教えあうスレなんだからほうっといてくれよ
0893nobodyさん2007/10/22(月) 06:59:37ID:???
例えるなら宿題丸投げの様な、いかにも「叩いて下さい」と言わんばかりの
質問を投げる奴を寛大な心で迎え入れるコミュニティは存在しない
それに気づかない奴がバカなんだよ
0894nobodyさん2007/10/22(月) 07:59:33ID:???
>>892
バカいうな、このスレは全部俺様の自作自演なんだ
0895nobodyさん2007/10/22(月) 08:15:57ID:???
>>870
PEAR::Date
0896nobodyさん2007/10/22(月) 09:13:30ID:???
>>888
>>882との態度の違いにフイタw
お前は立派な2ちゃんねる脳
0897nobodyさん2007/10/22(月) 10:18:58ID:???
下らなくない質問スレはどこですか?
0898nobodyさん2007/10/22(月) 13:33:32ID:fwkYbUt6
http://php.net/manual/ja/security.filesystem.php
PHPマニュアルでは、Nullバイトは \0 としていますが、
僕の環境では、 %00 しかNullバイトとして認識しません。
バージョンによって違うんでしょうか?
0899nobodyさん2007/10/22(月) 13:35:36ID:???
サイボウズの中の人がphpspotの中の人に粘着

元記事:
http://phpspot.org/blog/archives/2007/10/php_84.html

指摘関連記事:
http://labs.cybozu.co.jp/blog/akky/archives/2007/10/phpspot-bad-regex.html
http://labs.cybozu.co.jp/blog/akky/archives/2007/10/phpspot-issue.html
http://labs.cybozu.co.jp/blog/akky/archives/2007/10/phpspot-final.html
0900nobodyさん2007/10/22(月) 13:46:25ID:???
>>898
「僕の環境では」
お前の環境なんてしらねーよ
0901nobodyさん2007/10/22(月) 13:52:09ID:???
>>899
秋元面倒くさい奴だな
と思ったがphpspotも若干アフィ厨なのでどっちもどっちか
phpspotは記事の邪魔になるような広告はどけろよ
0902nobodyさん2007/10/22(月) 13:57:42ID:???
http://d.hatena.ne.jp/elf/20060809/1155100104
アドセンスなどは広めに「そんなつもりじゃないのについクリックしちゃったよ」
的なところに置く

phpspotって結構叩かれてたんだな・・・
0903nobodyさん2007/10/22(月) 14:03:26ID:???
>>900
しらねーなら指くわえて見てろよクズデブが
0904nobodyさん2007/10/22(月) 14:25:53ID:???
>>898
%00は\0をURLエンコードした状態だと思う。
どっちも同じじゃないか?それ。
0905nobodyさん2007/10/22(月) 14:36:18ID:???
>>902
っていうかそのサイトってphpspot叩くために存在してるのか?
そんなんばっかで楽しいのかねぇw
0906nobodyさん2007/10/22(月) 14:41:57ID:wYjDaOJp
$random = rand(2994909304500, 2994909304500);
echo $random;

出力「1317099188」

randって何桁まで可能なんですか?
0907nobodyさん2007/10/22(月) 14:41:58ID:???
>>905
本当だw
かなりの粘着ぷりでワロタ
phpspotの何が彼らをそんなにいらつかせるんだ?
0908nobodyさん2007/10/22(月) 14:48:25ID:???
>>907
彼は社内では空気のような存在なんだろ
周りに敵を欲しているんだww
0909nobodyさん2007/10/22(月) 14:50:44ID:???
902のサイトの作者も本書いたりしてるんだな
著者間戦争か
レス数が900を超えています。1000を超えると表示できなくなるよ。