トップページphp
990コメント299KB

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

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

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 67
http://pc11.2ch.net/test/read.cgi/php/1207863515/
◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0665nobodyさん2008/05/18(日) 02:10:06ID:???
>>664
悪いが何言ってるのか意味が分からんw
それこそrand関数の使い道だろw
0666nobodyさん2008/05/18(日) 02:30:07ID:???
int rand ( [int $min, int $max] )
randができるのは↑のこと
今回、質問者の悩みは解決しない
0667nobodyさん2008/05/18(日) 02:33:15ID:???
rand関数で一発解決しますなんてどこにも書いてないと思うんだけどw
0668nobodyさん2008/05/18(日) 02:44:33ID:???
まだわからないのか^^;
randなんて今回は使わない
ゆとり乙
0669nobodyさん2008/05/18(日) 02:54:04ID:???
じゃ何使うの
06706372008/05/18(日) 03:02:09ID:tgzZzG90

ここのルールをよく知らないでの質問した私が悪いのですが、今更ですがIDを出します。
>>643
中身は見てます。phpに渡される時点で添え字が数字でなく文字列の場合は上書きされてしまっていますね。
と言うことはphp側ではどうしようもないということか・・・

>>646
マスターテーブルが自身をjoinして参照しなくてはならない場面があったからです。
こういう場合に、SELECT * ってSQLに書いた場合に、いちいち、
`T1`.`hoge_ID` AS `T1_ID`
`T2`.`hoge_ID` AS `T2_ID`
としないで済ませる事が出来る方法がないかと質問しました。
06716372008/05/18(日) 03:10:52ID:tgzZzG90
例えばこんな感じ

テーブル
ID|名前|好きな人id
1 |太郎|3
2 |花子|1
3 |美咲|1

で、
太郎は美咲が好き
花子は太郎が好き
美咲は太郎が好き
という結果が欲しい。

まともにASするとか、このテーブルをID=>名前ってな連想配列にしとくとか、そういう手があるのは百も承知で、

SELECT
*
FROM テーブル AS `T1`
INNER JOIN テーブル AS `T2`

みたいに「*」使った場合に上記のような結果が欲しいわけです。
0672nobodyさん2008/05/18(日) 03:24:37ID:???
それは使用するAPIの問題だからどうしてもそうしたいなら同名の場合に配慮してくれる奴探せばいいんでない
0673nobodyさん2008/05/18(日) 08:46:12ID:???
>>671
スレ違い
http://pc11.2ch.net/test/read.cgi/php/1158647441
0674nobodyさん2008/05/18(日) 08:50:37ID:???
637は謝ろうって気がないよな
向こうのスレいってこうゆとり
0675nobodyさん2008/05/18(日) 09:15:25ID:???
あなたの、ゆ〜と〜り
0676ヌルホース2008/05/18(日) 09:42:14ID:???
>>631
ありがとうございます(`・ω・´)

そういやhttp://tool-1.net/
って穴があるからスクリプト抜けるって聞いたのですが、本当ですか?
0677nobodyさん2008/05/18(日) 09:43:20ID:???
637顔真っ赤で頭から湯気がでてますw
0678nobodyさん2008/05/18(日) 09:44:06ID:???
>>676
またこの前のおまえか
0679ヌルホース2008/05/18(日) 09:51:07ID:???
>>678
穴の勉強していたのですが、(`・ω・´)
穴があるサイトの例がhttp://tool-1.net/
らしいので(・・;)
一流のプログラマーが勢揃いしているところで聞かせてもらってます。
0680nobodyさん2008/05/18(日) 09:54:37ID:???
ないよ
0681ヌルホース2008/05/18(日) 10:00:32ID:???
管理パス(英数6ケタくらい)が漏れるのはCGIが抜かれてるしか考えられないヌ
(・・;)
06822008/05/18(日) 11:59:57ID:???
そう、俺だ。
0683nobodyさん2008/05/18(日) 17:29:32ID:???
今は閉鎖されてしまった髭めがねさんの掲示板の
以下のタイプを探しています

「New NICOLE Board Type-2 v1.15b - Edit by 髭めがね」

かなり探したのですが見つけられませんでした。
再配布場所をご存知の方いらっしゃれば教えてください
0684nobodyさん2008/05/18(日) 17:31:12ID:???
テンプレ違反かつスレ違いですー
0685nobodyさん2008/05/18(日) 17:48:24ID:WBHzUPNU
Apacheのダウンロードと設定の仕方がわかりません。
本を見ながらやってますが、「ダウンロードしたソースコードをサーバー上
の適当なフォルダへアップロード」って言うのと、
「tarコマンドで解答処理」ていうのがどこでコマンド入力するのかわかりません。
0686nobodyさん2008/05/18(日) 17:49:27ID:???
それのどこがPHPと関係あるのですか?
0687nobodyさん2008/05/18(日) 18:20:09ID:???
メーラーを起動させるヘッダはどのように書けば良いのでしょうか?
(リンクなどを押されたときに処理をはさんでからメールを起動させたい)
06886872008/05/18(日) 18:20:41ID:P5qlbfWP
ID出し忘れ
0689nobodyさん2008/05/18(日) 18:26:26ID:NYmCH+10
宗教戦争になりそうですが・・・

最近のPHP開発手法のトレンドは何でしょうか?
06906832008/05/18(日) 18:28:03ID:???
どこで聞けばいいかも分からなかったので・・・
すいません
0691nobodyさん2008/05/18(日) 18:30:08ID:???
>>689
try & error
0692nobodyさん2008/05/18(日) 18:38:20ID:???
>>689
最近は寝巻き着たままかな
0693nobodyさん2008/05/18(日) 18:55:07ID:NYmCH+10
CodeIgniterよさげですね。

#ここってネタスレになってます?
0694nobodyさん2008/05/18(日) 20:12:41ID:???
>>689
テスト駆動開発じゃね?
0695nobodyさん2008/05/18(日) 20:19:49ID:???
PHP以外の開発手法も聞いてみたいねぇ。

大差ないと思うがね。
0696nobodyさん2008/05/18(日) 20:22:12ID:???
>>689
中国当たりに丸投げして安く済ませることかな
微修正は日本人が担当する
0697nobodyさん2008/05/18(日) 20:23:52ID:???
>>696
今流行のアウトソーシングってやつですね。
Javaばっかりかと思っていたら、PHPでもそうなんですか。
0698nobodyさん2008/05/18(日) 20:37:04ID:???
PHPのセキュリティについてはどんな感じで学習すれば良いですか?
PHPは基礎的な部分は簡単だけど、
安全なアプリを構築するのはかなりの知識が要るようなのですが。
0699nobodyさん2008/05/18(日) 20:43:57ID:???
>>697
アウトソースよりも、この場合はオフショア開発っていうお。

>>698
オライリーの入門PHPセキュリティおすすめ。
07006512008/05/18(日) 20:56:15ID:TyvZJlXj
流れたのでもう一度
table aaa

id pri message
11 5 あああ
12 2  いいい 
13 5  ううう
14 3  えええ

この場合id 14のメッセージが3/(5+2+5+3)の確率で
表示されるようにしたいのですが良い方法はありますか
0701nobodyさん2008/05/18(日) 21:00:05ID:???
>>700
回答者に対してザコとか発言する質問者さんにはお答えできませんのでお引取り下さい。
0702nobodyさん2008/05/18(日) 21:10:41ID:???
>>700
rand使ってあとはお前ががんばって計算式を見つけ出せwwwww 宿題は自分でやれwwww
0703nobodyさん2008/05/18(日) 21:36:04ID:???
またきのうの回答者か
rand関係ないし
07046512008/05/18(日) 21:49:17ID:TyvZJlXj
>>702
煽ってるのは僕とは別人です
宿題でもありません
0705nobodyさん2008/05/18(日) 21:49:56ID:???
>>704
rand関数でできます
07066512008/05/18(日) 21:53:40ID:TyvZJlXj
>>704
どうするんですか?
0707nobodyさん2008/05/18(日) 22:07:06ID:???
だから確率がそれぞれ設定されてるんだからrandいらねえだろ
0708nobodyさん2008/05/18(日) 22:09:24ID:???
>>700
確率なのに100か10にならないところにフイタ
0709nobodyさん2008/05/18(日) 22:10:31ID:???
>>707
確率が設定されているからrandいるんだろうw
0710nobodyさん2008/05/18(日) 22:10:54ID:???
rand使わないやり方ってあるの?
0711nobodyさん2008/05/18(日) 22:14:00ID:???
できなくはないよ
rand関数を使うってことはifなどで振り分ける処理が必要になるよな
コード量がふえるだろ、わかるか
0712nobodyさん2008/05/18(日) 22:14:27ID:???
どうやるの?
0713nobodyさん2008/05/18(日) 22:17:37ID:???
ひんと
つ配列関数
0714nobodyさん2008/05/18(日) 22:18:39ID:???
乱数表使えば作れる。乱数表使って作った関数がrand。
つまり無駄なことをすればrand使わなくてできるんじゃねw
0715nobodyさん2008/05/18(日) 22:19:12ID:???
ちなみに予想つきそうなレスを前もってかいとくが

$array = array(1,1,1,2,2,2,3,3,3,3,4,4,4,4,4,4,5,5);

↑こんなのじゃないからな
こんなめんどくさいのならrand使うのといっしょ
あとは自分で考えろってこった
0716nobodyさん2008/05/18(日) 22:20:19ID:???
randでいいじゃん簡単だし
0717nobodyさん2008/05/18(日) 22:21:37ID:???
これがわからないやつはFizzBuzzを頭の中でコード書けない池沼
0718nobodyさん2008/05/18(日) 22:26:14ID:???
とりあえずrandでできるってやろうはここにコードを書いてくれ
おれが手直ししてあげよう
07196982008/05/18(日) 22:26:23ID:???
>>699
ありがとうございます。読んでみます。

基本文法習得をなんとか終えた後、
今「PHP サイバーテロの技法」という本を読んでいますが、
ヌルバイト攻撃とかディレクトリ・トラバーサルとか、自分にはかなり難しいですね。
とはいえ一通り対策が講じれるようにならないとまずいのですが…

PHP簡単、というのは良く聞きますがセキュリティまで考えたら
そんな単純な話ではないなぁ、と。

0720nobodyさん2008/05/18(日) 22:27:41ID:???
とりあえずrand以外でできるってやろうはここにコードを書いてくれ
おれが手直ししてあげよう
0721nobodyさん2008/05/18(日) 22:28:25ID:???
意訳

早くコード書いて俺に答えを教えてくれ。もう日曜の10時半なんだよ。
0722nobodyさん2008/05/18(日) 22:28:37ID:???
>>720
おkおk
じゃあ君が先だね
0723nobodyさん2008/05/18(日) 22:31:37ID:???
個数分だけ要素作ってarray_randかけるのか?なんて無駄なことをw randでいいじゃんw
0724nobodyさん2008/05/18(日) 22:32:00ID:???
逃げの準備かw
07256512008/05/18(日) 22:36:59ID:TyvZJlXj
>>721
まあ、困り度はそんな感じです

ななしで煽るのは止めてくださいずら
0726nobodyさん2008/05/18(日) 22:43:42ID:???
宿題丸投げスレじゃありませんのでヒントもらったら自分で考えてください。
array_randでもrandでも好きなようにやればいいさ。
0727nobodyさん2008/05/18(日) 23:10:02ID:???
>>651
よし、ここは全くわからない俺が
しかもrand関数って何という俺が
風呂はいって
珈琲飲んで
パジャマに着替えてから一緒に考えてあげよう。

ところで、ID14のPRI値が3でmessage値が「えええ」だから
ID14のPRI/(全部のPRIの値)の確率でID14のmessageを表示されたいの?
0728nobodyさん2008/05/19(月) 00:10:36ID:i7qsMY9z
iframeを使った自動投稿や自動カウントアップを防ぎたいのですが
どうやればいいですか?
07296512008/05/19(月) 00:10:56ID:f/z8MzuC
そうです、そのとーり>>727
0730nobodyさん2008/05/19(月) 00:12:33ID:???
>>728
リファラ
IP
セッション
などなど
07317272008/05/19(月) 00:40:33ID:???
>>651 idが連番で抜けがないなら
$priarray
$messagearray
にDB取り込んで,取り出したいIDを$keyIdに入れ

function rndAnswer( $priarray,$messagearray,$keyId ) {
  $keyId = $keyId-1;

  $rndNum = $priarray[$keyid]/array_sum( $priarray );

/**rand使えるようにどうにかする。**/

return $answer;
}

よし、これ以上は小生には無理だ。あとはお前ががんばって教えてくれ。
0732nobodyさん2008/05/19(月) 04:44:41ID:uTe3T86T
質問させてください。

UTF-8で運用するWebフォームから、iso-2022-jpでメールを出そうとしているのですが
文字コードマッピングの問題で 鰍竅`(WAVE DASH)などがどうしても化けてしまいます。
Web上での文字コードのルールについて基本的な知識やルールは承知しているのですが
ユーザが入力してくる文字(機種依存文字が多々あり)をそのままメールに活かすように
したいのです。

もし解決法をご存じの方がいらっしゃいましたら是非お知恵をお貸しください。
よろしくお願いいたします。
07337322008/05/19(月) 04:51:38ID:uTe3T86T
書き忘れましたが、

PHP 4.4.2
FreeBSD 4.11-RELEASE-p17
Apache2系

です。
これまでは
mb_convert_string($mail_body, "iso-2022-jp", "UTF-8");
で試みています。

0734nobodyさん2008/05/19(月) 07:01:59ID:???
convertしないで添付ファイルの形にする
0735nobodyさん2008/05/19(月) 10:17:54ID:???
>>651
目的に合うかわからんけどMySQL側で。。バージョン依存あり

SELECT * FROM aaa WHERE id =14
AND RAND( ) < pri / ( SELECT SUM( pri ) FROM aaa )
0736nobodyさん2008/05/19(月) 10:38:21ID:qHM47HMz
ファイルアップロード時の変数について教えてください。

ファイルはアップロードできたのですが、
クライアント側のファイルのパスをサーバ側でも取得したいのですが
$_FILES['id']['name']にはファイル名だけしか入っていませんでした。
フルパスを取得するにはどのようにしたらよいでしょうか?

PHP Version 4.2.3 です。
0737nobodyさん2008/05/19(月) 11:12:13ID:???
んなセキュリティ的に危険なこと、出来るほうがおかしい
0738nobodyさん2008/05/19(月) 11:24:04ID:???
>>736
Javascriptで取得できるから、あとはがんばって。
ただ、ブラウザごとに微妙に動作が違った気がする。

<form onSubmit="alert(this.file.value)">
<input name="file" type="file">
<input type="submit">
</form>
0739nobodyさん2008/05/19(月) 11:46:25ID:qHM47HMz
>>738
hiddenにthis.file.valueを設定すればよいということですね。

別件で作ったJavaサーブレットのアップロードでは取得できたので
PHPが隠蔽しているのかもしれません。

Javascriptでやってみます。
ありがとうございました。

0740nobodyさん2008/05/19(月) 15:47:38ID:???
こんにちわ
PHP+Oracle接続環境を作成の際にエラーが出まして、
もし、分かる方が居たら教えて頂ければと思っております。

仮想マシン:Xen
管理OS:CentOS5
ゲストOS:CentOS5,Fedora8
apache 2.2.8
php 5.2.6

configureは出来たのですが、makeで以下のようなエラーが出ました。

libphp5.la
/usr/bin/ld: cannot find -lirc
collect2: ld returned 1 exit status
make: *** [libphp5.la] エラー 1

CentOS5,Fedora8共にエラーが出ております。
lircが見つからないといわれているので、
yum install *lirc*で全部入れてみましたが駄目でした。
両OSで出来ないのでXenのカーネルが問題なんでしょうかね…

よろしくお願いします。
0741nobodyさん2008/05/19(月) 16:02:46ID:???
>>740
自己解決できない人間はWindows使ってくださいよ
0742nobodyさん2008/05/19(月) 18:09:53ID:???
>>740
なんでライブラリの問題でカーネルが原因になるんだか
/usr/bin/ld: cannot find -lirc はlircが見つからないではなく
libirc.aが見つからないって意味だ
よって yum install *lirc* とか無駄
libircが入ったパッケージをインストールするか、強引だがリンカの指定から-lircを外して動けばOK
0743nobodyさん2008/05/19(月) 18:45:13ID:???
>>742
解答ありがとうございます。
仮想サーバーと同じ構成のマシンがもう1台ありまして、
そのマシンはFedora5なんですが、
makeまではいけたので、
Xenのカーネルが問題なのかなと思ってしまいました。
エラーの意味やライブラリを理解できていない自分には、
リンカの指定をはずすなどかなり難しいそうなので、
libircが入ったパッケージを探してみます。
0744nobodyさん2008/05/19(月) 19:41:48ID:xzrDZ7d0
Windows XP
Apache 2.0
PHP 5

$h = popen('unko.exe');
if ($h == FALSE) die('失敗したにょ!');
fputs($h, ・・・以下省略
pclose($h);

こんな処理をしたいのですが、unko.exe は実際にはありません。
無いにもかかわらず popen の戻り値が FALSE にならないので
die してくれません。ちゃんと die してほしんです。
何か良い方法はありませんか?
0745nobodyさん2008/05/19(月) 19:45:03ID:???
popenする前にfile_existsでチェックしろ
0746nobodyさん2008/05/19(月) 20:09:53ID:???
超初心者なんですが…
PEAR::AUTHを使ってみたいのですが、
パスワード暗号化の時saltを付け加える事ってできますか?
暗号化方法の選択でSMD5等が無いようなので…
07477462008/05/19(月) 20:16:05ID:???
超初心者なんですが自己解決しました
07487462008/05/19(月) 20:28:11ID:xxBfPPP+
↑自己解決してませんが…
0749nobodyさん2008/05/19(月) 20:47:56ID:???
マルチ乙
0750nobodyさん2008/05/19(月) 20:50:38ID:???
超初心者で質問もしてませんが自己解決しました
0751nobodyさん2008/05/19(月) 20:53:44ID:???
昔pearlのHPを見た記憶があるんだがurl知ってる人おしえて
07527462008/05/19(月) 20:56:08ID:xxBfPPP+
>>749
他でも聞いたのですが答えがなかったのです。
0753nobodyさん2008/05/19(月) 20:57:51ID:???
>>751
http://www.pearlgakki.com/
0754nobodyさん2008/05/19(月) 20:59:14ID:???
ちょwがっきじゃなくて
pearlってライブラリなかった?
0755nobodyさん2008/05/19(月) 21:00:11ID:???
>>754
http://www.jap.co.jp/pearl/
0756ハチミツ2008/05/19(月) 21:52:54ID:sdAnx2Kb
ハチミツと申します。私は
ttp://bbs.832tool.net/
のショボい掲示板を作って、パーミッションは604にしました。
しかし、なぜかindex.phpのスクリプトが抜かれてしまいます。
教えてください。
また、サーバはXREA.COMを借りています。

セキュリティの穴があるとか言われたことがあるのですが、誰か詳しい方教えてください。
0757nobodyさん2008/05/19(月) 21:56:08ID:???
抜かれてしまうってどういうこと?
0758ハチミツ2008/05/19(月) 22:05:23ID:sdAnx2Kb
>>757
ほぼ自作のindex.phpに穴があるせいか、パスワードの入ったログファイル(.cgiでパーミッション606)がアクセスされてしまうのです。
普通なら.cgiは、アクセスされないのですが、穴の性で見られてしまっているということです。

0759nobodyさん2008/05/19(月) 22:07:19ID:???
>>756
どっかで見たと思ったらあった。
情報小出しにするんだったら、プーさんになめられとくもんだと思う。

△▲ WebProg 初心者の質問 Part17 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1204462146/321-322
0760nobodyさん2008/05/19(月) 22:08:14ID:???
ログファイルが開けることとindex.phpに穴があることとどう関係あるの?
0761ハチミツ2008/05/19(月) 22:10:33ID:sdAnx2Kb
また、以前は
http://bbs.832tool.net/?id=test%00index.php

この不正アクセスで、index.phpがヌルバイト攻撃で不正アクセスされたのですが、%00を排除することにより、対策はできました。
今は
http://bbs.832tool.net/?id=%

こんなのは、不正アクセスとして、エラールーチンに飛ばしているのですが、

http://bbs.832tool.net/?id=test%00

が、チェックをすりぬけられます。


これは、穴になっていて、index.phpは不正アクセスされるのでしょうか?
0762ハチミツ2008/05/19(月) 22:13:02ID:sdAnx2Kb
>>759
よく意味がわからないです。

>>760

不正にindex.phpが見られたら、
同じディレクディレクトリにあったとしたら
pass.cgi
が見られたり、
../pass.cgi
と指定されたら見られてしまいます。

0763nobodyさん2008/05/19(月) 22:21:40ID:???
意味が分からない。
日本語も良く分からない。
index.phpに(不正なクエリと共に?)アクセスされと同階層にあるpass.cgiが見られてしまう?
謎。
ドキュメントルート以上に置くかapacheをちゃんと設定するかaccessで拒否るか拡張子phpにすればいいのでは?
0764ハチミツ2008/05/19(月) 22:26:56ID:sdAnx2Kb
>>763

指定されたファイルが見られてしまうと言うことです。失礼しました。
データの書き込みは
{$id}-log.cgi
と記述していまして、
id=testして、あればログファイルを記述しなければエラーをだすようにしているのですが

この$_GET['id'];
に不正に
index.phpが仕掛けれているせいか、-log.cgiが擦り抜けられてしまうという怖い攻撃らしいです。

昔はそれで、中身が表示されたのですが、今は対策したはずです。しかし、中身が漏れているらしく…


教えてほしいです。
■ このスレッドは過去ログ倉庫に格納されています