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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/05/26(土) 21:03:53ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

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

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0488ひろみつ2007/06/17(日) 12:40:42ID:???
>>487
うるせえ。おまえこそ、だまってろ。
0489nobodyさん2007/06/17(日) 12:45:54ID:???
これは、酷い。
こういう一方的に自己主張だけして、混乱に陥れようとしているところは、
将に共産党員の典型。赤は死ね。
お前らは、国家の屑だ!!!

次の選挙で、どこの党に票を投じるべきか、もう分かるよね。
0490nobodyさん2007/06/17(日) 14:13:33ID:???
あぶない文字列がmail関数のところで変な動作したら穴にならないか?
だからやるべきじゃねえのか?あ??
0491nobodyさん2007/06/17(日) 14:31:36ID:???
mail関数のところはデータをそのまま扱うだけだから大丈夫でしょ。
不特定なユーザから入力されたデータをHTMLメール上に乗せるなら
htmlspecialcharsするべき。scriptタグは動かないけど表示が崩れるおそれがあるので。
0492nobodyさん2007/06/17(日) 15:48:44ID:/YxgTj0k
普通の掲示板作るときにはどんな風に安全に気を配れば良いですか?
とりあえずhtmlspecialcharsを使うくらいですが、なにかこれだけはしておけってのあります?


ちなみに記事はデータベースに保存します
0493nobodyさん2007/06/17(日) 16:10:40ID:???
'


これについての対策
0494nobodyさん2007/06/17(日) 17:35:37ID:???
ログイン認証があるページで、
HTMLのソース中に、一部PHPの変数がミスで漏れているサイトがあるのですが、
セキュリティ的に何か問題ありますか?
漏れているのはform actionで指定したアドレスを変数にいれたものと、
ドメイン名を変数に入れたものと、
そのドメイン名の変数後に$smarty.server.PHP_SELFという記述があります。
0495nobodyさん2007/06/17(日) 18:25:43ID:???
問題があるにきまってるだろ、そんなサイト
0496nobodyさん2007/06/17(日) 19:53:30ID:???
>>495
PHPは詳しくないのでどの変が問題か具体的に教えていただきたいのですが、
とりあえずそこをなおしてもらえないとログインできないので、
ログインできないとだけ報告したいと思います。
0497nobodyさん2007/06/17(日) 20:03:09ID:???
>>496
>>1
0498nobodyさん2007/06/17(日) 20:13:42ID:???
この手の質問はageたとこで誰も答えないだろ
0499nobodyさん2007/06/17(日) 20:19:50ID:???
ageるんじゃねーだろ
ID出すんだよ、死ね

答える以前にお前は質問する権利がないんだよ
0500nobodyさん2007/06/17(日) 22:21:46ID:???
>>499
|-`).。oO(うざ…)
知らないやつは黙ってろ
0501nobodyさん2007/06/17(日) 22:31:04ID:???
htmlspecialchars(笑
使ったことねーよ
0502nobodyさん2007/06/17(日) 22:42:27ID:???
>>501
使ったことないのか・・・普通に多様するから覚えておいたほうがいいぞ
0503nobodyさん2007/06/17(日) 23:17:56ID:???
>>501はPHP初心者とみた
0504nobodyさん2007/06/18(月) 00:13:20ID:???
htmlspecialchars相当の自前の関数を持ってるんじゃね?
別にたいしたことやってないしな
0505nobodyさん2007/06/18(月) 00:15:11ID:???
>>502-504
まさか本気で言ってるわけじゃないよな?
05065042007/06/18(月) 00:18:10ID:???
>>505
用意されてる関数より自作の関数のほうが使いやすい場合だってあるだろ
0507nobodyさん2007/06/18(月) 01:20:52ID:l0/c4g1G
現在開いているスクリプトから
目的のファイルへの相対パスを取得する関数ってありますか?
なければどのようにして作るのが賢いでしょうか。
0508nobodyさん2007/06/18(月) 01:24:23ID:???
>>507
絶対パス
0509nobodyさん2007/06/18(月) 01:28:04ID:???
htmlspesialcharsが正確にタイピングされているかどうかのドキドキ感がPHPの醍醐味
0510nobodyさん2007/06/18(月) 01:35:40ID:???
>>509
正確にタイピングできたら色かわる
0511nobodyさん2007/06/18(月) 01:44:11ID:???
>>509
間違ってるwww
0512nobodyさん2007/06/18(月) 01:55:56ID:3Ht3k2HG
>>492
493の言うとおり
addslashesとか使用しているDB用のエスケープを使用して
クエリーをエスケープするとか、プレイスフォルダを使うなど
SQLインジェクション対策。

あとは、PHPから複数文のクエリーを実行できるDBを使っているなら
;
↑こいつもどうにかしないとまずい?
プレイスフォルダ使うなら平気か。
素直に、何かフレームワークのDBを使えば良いんじゃない?


ほかになにかある?
0513nobodyさん2007/06/18(月) 01:59:04ID:3Ht3k2HG
そうだ!
ダブルポストというのか、連続投稿対策もした方が良いかな。
0514nobodyさん2007/06/18(月) 02:02:09ID:???
なんだかんだダブルポスト対策って難しいよな
0515nobodyさん2007/06/18(月) 04:53:55ID:MK7V8bwo
htmlspecialchars より使いやすい自前関数みてみたい。
0516nobodyさん2007/06/18(月) 09:21:02ID:???
名前を短くして入力しやすくするw
0517nobodyさん2007/06/18(月) 09:22:03ID:???
>>514
冗談もほどほどにしてくれw
0518nobodyさん2007/06/18(月) 09:32:06ID:???
""の文字列の中に改行を入れたいのですが、eclipseで改行を入れると、
スクリプトエラーが発生して入れることができません。
秀丸でやっても、ノートパッドでやっても駄目でした。
何かいい方法はないでしょうか?
座標指定とかやればできるとは思うのですが、
座標軸が一意に定まらないため、多次元の環が重畳的に生成され、
計算が収束できず八方塞がりで、苦慮しております。
宜しくお願いします。
0519nobodyさん2007/06/18(月) 10:06:30ID:???
釣りとして6流ぐらい
一年ラムってろ
0520nobodyさん2007/06/18(月) 11:13:59ID:???
>>518
座標ワロス

"" → "\r\n"
0521nobodyさん2007/06/18(月) 11:23:32ID:???
"
"
0522nobodyさん2007/06/18(月) 11:30:56ID:???
>>520
無事できました。ありがとうございました!

ちょっと、\r\nについて今調べてみたのですが、
\nでも改行って書いてありまして、試しに\nだけでも
同じように出来たのですが、これってどちらもいいのでしょうか?
使い分けとかありますか?
0523nobodyさん2007/06/18(月) 11:38:19ID:???
>>522
調べたところに書いてあるはずなのでもう一度読んで来い
0524nobodyさん2007/06/18(月) 11:49:38ID:???
>>522
基本\nだけでいいけど
Windowsの改行コードは\r\nなので
\nだけのソースをメモ帳とかで開くと改行されない
0525nobodyさん2007/06/18(月) 13:42:29ID:???
>>523
いや、それが、「Windows2003の時は、\nの改行でも大丈夫だった」みたいな記述しかないんです。
>>524
Windowsのソフトの問題だったんですね。
念のため、\r\nで書いてみます。
ありがとうございました。
0526nobodyさん2007/06/18(月) 14:36:16ID:???
ラムだっちゃ
0527nobodyさん2007/06/18(月) 16:35:13ID:???
みなさん、お元気ですか。
ちんちん珍太郎です。
お久しぶりです!!
0528nobodyさん2007/06/18(月) 17:16:10ID:yh/RT3YN
if文で、□□□に「○○○」を含むとき、ってどうやればいいですかね
0529nobodyさん2007/06/18(月) 17:17:22ID:???
>>528
はい、ヒント
http://jp.php.net/manual/ja/ref.strings.php
0530nobodyさん2007/06/18(月) 18:29:52ID:???
>>528
$str = "□□□";
if (strstr($str, "○○○") {
}

strstrにしたけど、正規表現使ったほうがいいかも。
0531nobodyさん2007/06/18(月) 18:36:15ID:???
初めて「join」って関数知った
今までこれ知らなくてループさせてつなげてたよorz
0532nobodyさん2007/06/18(月) 18:43:56ID:???
>>530
strpos
0533nobodyさん2007/06/18(月) 19:06:25ID:cNf541yn
FedoraCore6に古いバージョンのPHP(4.3.0)を導入し、動作確認を行いたいのですが、
古いバージョンを置いているサーバーがあればURLを教えていただければとおもいます。
よろしくお願いします。
0534nobodyさん2007/06/18(月) 19:16:00ID:???
>>533
スレ違い
0535nobodyさん2007/06/18(月) 19:49:08ID:???
turbolinux mysql4.0 php4 apacheの環境で、下記のコマンドを実行したいのですが上手くいきません…

$ret = shell_exec ("/usr/bin/mysqldump -u root --opt hogedb tbl_hoge > /test/tbl_hoge.sql");

コマンドを直接打つと実行されるので、記述方法あたりがあやしそうなのですが
戻り値も得られないので全てが憶測になり行き詰ってしまいました。
何か気をつけることなどあればアドバイスよろしくお願いします。
0536nobodyさん2007/06/18(月) 19:50:47ID:???
>>535
スレ違い
0537nobodyさん2007/06/18(月) 19:53:41ID:???
あらまじですか?コマンドは合ってる様なのでphpの問題かと思ったんですが
どこスレになるんでしょう?
0538nobodyさん2007/06/18(月) 20:17:07ID:???
そんなレベルの奴がshell_execって・・・アブねぇ俺は釣られないぞ。
0539nobodyさん2007/06/18(月) 20:29:12ID:???
釣りでもなんでもないです。ヒントでもすがりたい状況なのでお願いします。
0540nobodyさん2007/06/18(月) 20:37:49ID:???
>>531
joinじゃなくてimplode使えよ。
ていうかimplodeなら聞いたことあるだろ?
0541nobodyさん2007/06/18(月) 20:38:20ID:9cN+wr54
フォームから送信した[""]ダブルクォーテーションをhtmlファイルに保存します。
しかし、いざブラウザで見てみると\"\"のようになっています。
0542nobodyさん2007/06/18(月) 20:45:15ID:???
>>541
そうですか。
0543nobodyさん2007/06/18(月) 20:47:48ID:9cN+wr54
先ほど質問した者ですが
なぜこのように\が追加されてしまうのか教えて下さい。
0544nobodyさん2007/06/18(月) 20:48:09ID:???
>>539
コマンドがあっているなら
セーフモードとかそんなんじゃないの?
0545nobodyさん2007/06/18(月) 20:49:39ID:???
>>533
公式サイト(http://www.php.net)

FC6用に古い奴のRPMという話なら、そんな酔狂なのは
自分でSRPM利用してビルドせい。
0546nobodyさん2007/06/18(月) 21:07:10ID:???
>>541
magic_quote_gpc
0547先ほど質問した者ですが2007/06/18(月) 21:22:12ID:9cN+wr54
>>546
意味がわかりません。
0548nobodyさん2007/06/18(月) 21:34:37ID:???
答え書いてまで意味わからないと言うのならPHPやめればいいよ。
マニュアルでひけばいいのに。
0549先ほど質問した者ですが2007/06/18(月) 21:38:10ID:9cN+wr54
ひいても載っていない。
0550nobodyさん2007/06/18(月) 21:44:47ID:???
>>549
普通にのってるじゃねぇか
0551先ほど質問した者ですが2007/06/18(月) 21:45:53ID:9cN+wr54
なぜか載っていないのです。
0552nobodyさん2007/06/18(月) 21:46:27ID:???
>>549
関数のなかから探してるとかじゃないの?
載ってないって言うんなら、あなたが見てるのはマニュアルじゃない何か。
0553nobodyさん2007/06/18(月) 21:50:10ID:???
×載っていない→○チラッと見たけどわかんない、誰かリンク貼れよ
05545352007/06/18(月) 21:52:06ID:???
>>536>>538>>544
phpのセーフモードの概念を初めて知りました。

・ソースの1行目に#!usr/bin/phpと書いて、シェルスクリプトとして動かすことで
セーフモードの制限を抜ける事が出来る
・セーフモードを解除することは出来るけど、セキュリティ上出来ないものとして
他の手段で逃げた方が無難らしい。

おかげさまでやりたい事ができました、ありがとうございました
ひとつ勉強になりました。
0555nobodyさん2007/06/18(月) 21:56:34ID:???
デフォルトのfunction listからでも
get_magic_quotes_gpcというものが太字で出てくるだろ?
これが関連あるとは考えないのかね?
応用が利かない頭だな。
0556先ほど質問した者ですが2007/06/18(月) 21:56:39ID:9cN+wr54
>>552
stripslashesで大丈夫でしょうか?
0557nobodyさん2007/06/18(月) 21:57:26ID:???
ほっとけよ、こういうバカは
0558nobodyさん2007/06/18(月) 23:12:58ID:???
うるさい^^;
0559nobodyさん2007/06/19(火) 01:05:47ID:???
googleを知らないやつってまだいるんだな
0560nobodyさん2007/06/19(火) 02:56:30ID:???
yahooも知らないと言うから驚きだ
このスレにたどり着いた事が軌跡とも言える
0561nobodyさん2007/06/19(火) 05:06:23ID:???
いいかげんあおってないで真でくれますか?
0562先ほど質問した者ですが2007/06/19(火) 10:40:53ID:/NP+8h6q
ググりましたよ
そしてあの関数に辿り着きました
おわかりですか?
0563nobodyさん2007/06/19(火) 10:48:55ID:???
早く強制IDにならないかな
0564nobodyさん2007/06/19(火) 10:51:54ID:rXeGFaDA
ヒントください

$_POSTで文字を送ってもらってそのデータを使って

PHPで他のサイト(アマゾンなど)にアクセスし、

XMLデータをとりに行きたいのです

PHPでどのような処理すればいいのでしょうか?
0565nobodyさん2007/06/19(火) 10:58:20ID:???
Socket関数、PEARのHTTPライブラリ

XML RPC関数、SimpleXML関数、PEARのXMLライブラリ
0566nobodyさん2007/06/19(火) 11:11:45ID:???
>>564
ソケット関数とxmlを取得するとこまでやってみろ
0567nobodyさん2007/06/19(火) 11:42:24ID:FDzFvTKr
*テストA
*テストB
**テストB-1
**テストB-2
*テストC
*テストD

このような文章を
<ul>
<li>テストA</li>
<li>テストB</li>
<li>
<ul>
<li>テストB-1</li>
<li>テストB-2</li>
</ul>
</li>
<li>テストC</li>
<li>テストD</li>
</ul>

このように置き換えたいのですが、どうすれば良いですか?
0568nobodyさん2007/06/19(火) 11:45:26ID:meY+OYJb
pg_queryで複数のトランザクションを一回で行うことができますが
マニュアルには推奨しないとあります
出来るのになぜ推奨されていないのでしょうか?
何かバグが存在したりするのでしょうか??
0569nobodyさん2007/06/19(火) 11:49:45ID:???
>>567
正規表現
0570nobodyさん2007/06/19(火) 11:51:02ID:???
>>569
はい、正規表現で置き換えてやっているのですが、
一行ずつループさせたほうがいいですか?
それとも一度に変換してしまったほうがいいですか?
0571nobodyさん2007/06/19(火) 11:53:48ID:???
>>570
動けばどっちでもいい。両方書いてみて自分で見やすい方を採用。
0572nobodyさん2007/06/19(火) 12:01:20ID:???
>>568
DBのトランザクションを保証する事自体がクリティカルな処理だから
PHP側でもうまくやるようにはしてあるけど
安全第一でやるなら明示的にBEGIN/COMMITしてねってこと
0573nobodyさん2007/06/19(火) 12:03:43ID:???
>>571
有難う御座います。

*がひとつの場合は前後を調べて「<ul>」「</ul>」を付加することはできましたが、
**のように2つある場合はどのように対処すれば良いのでしょうか?
*が先頭にいくつあるか数えるようなものはありませんか?
0574570,5732007/06/19(火) 12:05:52ID:FDzFvTKr
すみません、ID表示を忘れていました
0575nobodyさん2007/06/19(火) 12:07:03ID:???
/^(\*+)(.+)$/
で1つ目のマッチしてる部分を数えるとか
0576nobodyさん2007/06/19(火) 12:25:27ID:meY+OYJb
>>572
ありがとうございます
0577nobodyさん2007/06/19(火) 12:37:54ID:rXeGFaDA
>>565,566
サンクスコ!
0578nobodyさん2007/06/19(火) 12:45:16ID:???
>>573
*の数が多い順に置換してけばいいじゃん。
0579nobodyさん2007/06/19(火) 12:52:31ID:???
切なくなってくる
0580nobodyさん2007/06/19(火) 14:22:42ID:iqDz2KhQ
質問です。

PHPで、ユーザがアクセスしてきたブラウザがJavaScriptを許可しているかどうか引く方法はありますか?
0581nobodyさん2007/06/19(火) 14:27:50ID:0vGze7Tn
そんなものはねぇ
0582nobodyさん2007/06/19(火) 14:28:21ID:???
つAjax
05835802007/06/19(火) 14:28:35ID:iqDz2KhQ
やはりそうですか・・・ありがとうございました。
0584nobodyさん2007/06/19(火) 14:30:19ID:???
通信できなければ0
通信できたら    1
05855802007/06/19(火) 14:32:36ID:iqDz2KhQ
デフォルトを警告ページにし、利用できたらJavaScriptを飛ばす方法でなんとかやってみます。
微妙に板違いで申し訳ありませんでした。
0586nobodyさん2007/06/19(火) 14:37:47ID:???
Ajaxでもやれるけど、その方法がベターかな
0587nobodyさん2007/06/19(火) 15:22:51ID:2JSWWtAr
PHPで書かれた、webminのようなコントロールパネル的なスクリプトって
何かありませんか?
OSはUNIX系で使う予定
■ このスレッドは過去ログ倉庫に格納されています