トップページ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カテゴリ)の各スレで
06386372008/05/17(土) 22:32:30ID:???
すいません、自己解決しました
0639nobodyさん2008/05/17(土) 22:34:30ID:???
>>638
勝手に解決したとか書かないで下さい
06406372008/05/17(土) 22:39:39ID:???
あなただれですか?
0641nobodyさん2008/05/17(土) 22:40:47ID:2uwsWgrz
ああ、過去レス読んだらIDださないといけないみたいですね
これで満足ですよね、解決したいので回答よろ
0642nobodyさん2008/05/17(土) 22:41:51ID:???
>>641
>>1
0643nobodyさん2008/05/17(土) 22:47:36ID:???
>>641
全くわからんけど
今から風呂はいって
頭洗って
珈琲ノンでから考えてみる。


とりあえず、ptint_rでrowの中身みてみた?
0644nobodyさん2008/05/17(土) 23:08:16ID:???
みたけどわかりません
0645nobodyさん2008/05/17(土) 23:08:50ID:2uwsWgrz
while($row = @mysql_fetch_array($result)){
$row[]←ここでどうかけばいいの?
}

この部分聞いてるのでおねがいしますよ
0646nobodyさん2008/05/17(土) 23:09:01ID:???
結合したのに何故混同するw
06476372008/05/17(土) 23:10:29ID:1fE1M1vI
>>641
勝手に私を騙ってID出さないで下さい。
もう解決したんですから。
06486432008/05/17(土) 23:59:54ID:???
>>637 解決したのか!
print_r($row)で中身みると
Array (
[0] => NULL
[hoge1] => NULL
[1] => NULL
[hoge2] => NULL
[2] => NULL
[hoge3] => ぱんつ
・・・エンドレスはめ殺し・・・
)
だから
while($row = @mysql_fetch_array($result)){
$orz = $row[2];
}
とすれば、hoge3のカラムが取り出せる。
0649nobodyさん2008/05/18(日) 00:48:21ID:YbibvtLr
よくわからないけどなんで2をしていするの?
0650nobodyさん2008/05/18(日) 01:05:20ID:Ye23aTZk
指定したディレクトリの.csvファイルのみを配列に格納するPHPスクリプトが書けなくて悩んでいます・・・。

ここまではなんとかなったのですが・・・。

<?php

header("Content-type: text/html; charset=shift_jis");
$filedir='.';#取得したいディレクトリ //[.]はカレントディレクトリを表す
$dirlist=array();#格納先の配列を準備

$strDir=opendir($filedir);#ディレクトリを開く
while($str=readdir($strDir)){array_push($dirlist,$str);}#1つづつ配列に格納
closedir($strDir);#ディレクトリを閉じる

//print_r($dirlist);#配列を表示


$filelist=array();#格納先の配列を準備
foreach ($dirlist as $filename){
if(filetype($filename) == "file"){array_push($filelist,$filename);}#ファイルだけを格納
}

?>
0651nobodyさん2008/05/18(日) 01:10:51ID:TyvZJlXj
table aaa

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

この場合id 14のメッセージが3/(5+2+5+3)の確率で
表示されるようにしたいのですが良い方法はありますか
0652nobodyさん2008/05/18(日) 01:16:46ID:???
>>650
人のコード丸々コピーじゃなくて少しは自分の頭で考えたほうがいいよ。
>>651
rand関数
0653nobodyさん2008/05/18(日) 01:19:14ID:???
<?php

if (!($dir = opendir("./"))) {
die;
}
while ($fnm = readdir($dir)) {
if (ereg('.csv$', $fnm)) {
print "<P>$fnm</P>\n";
}
}
closedir($dir);

?>
0654nobodyさん2008/05/18(日) 01:20:59ID:???
---------------------ここまで俺の誤爆------------------
0655nobodyさん2008/05/18(日) 01:21:08ID:???
>>652
rand関数じゃないし
0656nobodyさん2008/05/18(日) 01:23:14ID:???
>>655
じゃなんだよw
0657nobodyさん2008/05/18(日) 01:37:51ID:gOK6sC5j
質問よろしくお願いします。

get_defined_varsで
ユーザ定義の変数のみを取り出すスマートな方法があったら教えてください。

よろしくお願いします。
0658nobodyさん2008/05/18(日) 01:41:31ID:???
まず自分で書けるスマートなコードを書いてもらわないと回答に困る
0659nobodyさん2008/05/18(日) 01:49:01ID:TyvZJlXj
>>656
重み付けがあるので
06606572008/05/18(日) 01:51:46ID:gOK6sC5j
>>658
自分で考えつくのは、
GLOBALSなどをひとつずつ排除していって、
残ったものがユーザ定義変数である・・・とかそんな感じです。

じっさいに試してはいませんが・・・。

よろしくお願いします。
0661nobodyさん2008/05/18(日) 02:04:38ID:???
$array= array(
0=>"a",
1=>"b",
2=>"c",
"あ"=>"d",
"い"=>"e"
);

array_valuesを使ってひらがなのキーの値だけ取り出すスマートな方法がありますか?
コードにして書いてください

ここは宿題スレじゃないので、必要最低限コードぐらいは自分で考えて書いてください
0662nobodyさん2008/05/18(日) 02:06:44ID:???
>>659
重み付けがある時にrand関数が使えない理由は?
0663nobodyさん2008/05/18(日) 02:07:31ID:???
>>661
なんでキーを取り出したいのにarray_values使うんだよw
0664nobodyさん2008/05/18(日) 02:08:10ID:???
>>662
それぞれの値ごとに確率が設定されてるだろザコ
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:???
んなセキュリティ的に危険なこと、出来るほうがおかしい
■ このスレッドは過去ログ倉庫に格納されています