【PHP】下らねぇ質問はID出して書き込みやがれ 79
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/01/13(火) 21:48:25ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 78
http://pc11.2ch.net/test/read.cgi/php/1230026935/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
0577576
2009/01/22(木) 19:06:15ID:???ageます。
0579nobodyさん
2009/01/22(木) 20:21:43ID:MSLv2QA+0580nobodyさん
2009/01/22(木) 20:31:55ID:???0581nobodyさん
2009/01/22(木) 20:35:00ID:???作業効率悪いんだろうなぁ〜〜(w
0582nobodyさん
2009/01/22(木) 23:10:22ID:b9TqSffKmb_convert_kana($text,"KV","SJIS");
としたんですが、文字化けします
$text="こんにちはフジテレビ"; のように、前後に全角文字を入れればちゃんと全角かなに変換されます
半角カタカナのみだと動作しないものなんでしょうか?
0583nobodyさん
2009/01/22(木) 23:15:27ID:LyXoyyr9入力フォームの一部(アカウントID)に入力された値を別ウィンドウ
で別プログラム(PHPでDB参照して重複あるかないかechoする)に渡して
チェックしたいんですが、簡単にできるやりかたわかる方ご教授ください。
window.open("about:blank","MyName","width=400,height=130,menubar=no,titlebar=no,toolbar=no,scrollbars=no,resizable=no");
document.form1.target = "MyName";
document.form1.method = "post";
document.form1.action = "useridcheck.php";
document.form1.submit();
とかすると、今度はsubmitの「登録送信」ボタンも useridcheck.php に
いってしまいます・・・ orz
0584nobodyさん
2009/01/22(木) 23:25:11ID:RJ5BK886通常のDigest認証だと認証用ウィンドウが出てきますが、これが嫌なので、
フォームにユーザ名とパスワードを入力してDigest認証をするために
以下のようなプログラムを作成しました。
一応プログラム的には動作していますが、
セキュリティ的に間違っていないか心配です。
御指南願います。
[1] サーバ側(PHP)
(1) 変数realm, nonce, uri, qop, methodを用意し、適当な値を設定する。
(2) ユーザ名、パスワードを入力するためのフォーム1を作成する。
(3) クライアントがresponseを作成するために必要な情報(realm, uri, method, nonce, qop)
をhiddenでフォーム2に埋め込む。
(4) クライアントがサーバに認証情報(username, nc, nonce, cnonce, responce)渡すための
フォーム3をhiddenで用意する(まだ空)
[2] ユーザ側(Javascript)
(1) ユーザ名とパスワードが入力されログインボタンが押されたらJavascript関数が呼ばる。
(2) 関数中でユーザ名、パスワード、フォーム2の情報を元にresponseを得る。
(3) 関数中でフォーム3に認証で必要な情報をセットする。
(4) submit関数を呼び、フォーム3の情報をサーバにPOSTする。
[3] サーバ側(PHP)
(1) POSTされたユーザ名からそのユーザのパスワードをDBから取ってくる。
(2) POSTされた情報(username, nc, nonce, cnonce)とパスワードからhogeを生成する。
(3) hogeとPOSTされたresponceとを比較し、一致したら認証完了。
※ ユーザ側でのresponce、サーバ側でのhogeの生成方法は
Digest認証(Wikipedia) にある方法に沿っています。
0585nobodyさん
2009/01/23(金) 00:07:54ID:???下記を実行した結果が TRUE なら出力先がエンコーディングの判断ミスをしてるだけ
FALSE なら mbstring 関数のバグ
$han = "\xcc\xbc\xde\xc3\xda\xcb\xde"; // Shift-JIS表現の "フジテレビ"
$zen = "\x83\x74\x83\x57\x83\x65\x83\x8c\x83\x72"; // 同 "フジテレビ"
var_export(mb_convert_kana($han, 'KV', 'SJIS') === $zen);
>>583
スレ違い。JavaScript スレ行き
>>584
HTTPヘッダでのやりとりをHTTPボディに移すだけよね、問題無いないかと
ケチをつけるならそれはDigest認証じゃなくて”RFC 2617を流用したオレオレ認証”
0586584
2009/01/23(金) 00:49:47ID:7cLFem7vありがとうございます。
>通常のDigest認証だと認証用ウィンドウが出てきますが、これが嫌なので、
このために>>584を考えたのですが、
もっとスマートな方法ってありますか?
0587nobodyさん
2009/01/23(金) 01:32:24ID:Dv21c52aひらがなだけなぜか文字化けの?で返ってくる
全部utf-8にしてるんだけど、これが原因か?
漢字は大丈夫
0588nobodyさん
2009/01/23(金) 01:45:56ID:???0589nobodyさん
2009/01/23(金) 01:59:12ID:Dv21c52a今やってみた、けど同じで、
全角ひらがな一文字が、(黒に白字)??になる
0590nobodyさん
2009/01/23(金) 02:04:15ID:Dv21c52amb_ereg_replaceでできた!勉強になりました
ありがとうございます
0591nobodyさん
2009/01/23(金) 02:08:05ID:Dv21c52aやっぱりできなかった
>>589の通りになる
0592nobodyさん
2009/01/23(金) 02:12:50ID:Dv21c52amb_regex_encoding("UTF-8");でmb_ereg_replace
やったら、ひらがな文字化け直った
ありがとうございました
0593nobodyさん
2009/01/23(金) 02:50:20ID:???Digest認証してブラウザに Authenticate ヘッダを送信させたいのか、
認証用ID、パスワードの平文を隠したいのかで変わる
前者ならブラウザが認証が必要かどうか判断できないので機能しない
後者ならそれでいい。Yahooなんかも非SSL環境で似たようなやり方をしてたと思う
0594nobodyさん
2009/01/23(金) 03:44:20ID:ufSOhBv2print rand();
?>
このスクリプトをF5連打で実行しまくったら、
どうやら次のことがわかった。
(1)正の数しか出てこない
(2)小数はでてこない。整数のみ。
(3)35000くらいが上限らしい...?
そこで、上記のスクリプトを10回実行して、
その結果を、どんどん配列に入れていくような
スクリプトを作って、上記の仮説を検証してみたい。
どのようなコードをかけばよいか。
0595nobodyさん
2009/01/23(金) 03:47:00ID:ufSOhBv2$a[]= rand();
$a[]= rand();
$a[]= rand();
$a[]= rand();
$a[]= rand();
$a[]= rand();
$a[]= rand();
$a[]= rand();
$a[]= rand();
$a[]= rand();
$a[]= rand();
print_r ($a);
?>
とりあえず、自分の知識で上記のコードを書いてみた。
randを実行した結果がノーマル配列$aに順次、格納され、
最後にprint_rで出力されている。
今度は、この中のMAXの要素を表示したい。
どう書けばよいか?
0596nobodyさん
2009/01/23(金) 03:47:32ID:ufSOhBv2$a[]= rand();
$a[]= rand();
$a[]= rand();
$a[]= rand();
$a[]= rand();
$a[]= rand();
$a[]= rand();
$a[]= rand();
$a[]= rand();
$a[]= rand();
$a[]= rand();
この部分も、ループを使って書き直したい。
0597nobodyさん
2009/01/23(金) 03:51:08ID:ufSOhBv2for ($i = 1; $i <= 100; $i++) {
$a[]= rand();
}
print_r ($a);
?>
自分で調べて、上記のように、
forループを使って書き直すことができた。
今度は配列の要素の中の、MAX値を抜き出したい。
どうすればよいか。
0598nobodyさん
2009/01/23(金) 03:56:43ID:ufSOhBv2for ($i = 1; $i <= 100; $i++) {
$a[]= rand();
}
$b=max(($a));
print_r ($b);
?>
ついに完成に近づいてきた。
ランダムに100個の数値を生成し、
それらをすべて、配列に格納し、
その中の、最大値だけ抜き出して表示することに
成功したのだ。
これでrand関数の性質を調べることができるだろう。
0599nobodyさん
2009/01/23(金) 03:58:54ID:ufSOhBv2ところが、
$i <= 100000
にして実験してみると、
32767
で固定されることがわかった。
つまり、rand関数の仕様は、
何も引数に指定しなければ、最大値は32767だということだ。
0600584
2009/01/23(金) 04:00:22ID:7cLFem7vありがとうございます。
私の場合Digest認証をしているではなく、
”パスワードの平文を隠した認証”をしている、と言った方が良いですね。
思い付きの認証ですが、
世間から大きく脱線していない方法のようなので安心しました。
0601nobodyさん
2009/01/23(金) 04:04:48ID:ufSOhBv2最小値は0であることが確認できる。つまり、
randは0−32767の、合計、32768通りの数値を
生成するということだ。
この条件のとき、ランダムに100個の値を生成したときに、
最大値の32767が偶然、生成される確率はいくつであろうか?
実際に実験したかぎりでは、かなり低い数値だと体験的に理解しているが、、、
また、100、000(10万)個の値を生成したときに、32767がそのなかに
含まれる確率はいくつであろうか?
実際に実験してみたかぎりでは、ほぼ99.9999999%の確率で
(つまり全部の試行で)32767がMAX値として表示されたのだが、、、、
これを数学的に「○パーセント」と導き出すことはできるのだろうか?
0602nobodyさん
2009/01/23(金) 04:05:40ID:???日記ならチラシの裏かブログにかけ
自己満足検証なんてこんなとこに書かなくていい
マニュアル見れば書いてあるのにご苦労なことだ
0604nobodyさん
2009/01/23(金) 04:12:34ID:???こんなこと書いて恥ずかしくないのだろうか・・・
>>603
何が暗号センターだよ笑わせるな
意味不明もいいところだ
0605nobodyさん
2009/01/23(金) 04:30:52ID:???0606nobodyさん
2009/01/23(金) 04:38:53ID:???確かにこりゃ失笑もんだなwww
0607nobodyさん
2009/01/23(金) 04:43:10ID:???「脚気という病気は細菌によるものである」
って教科書に書いてあったら、調べもせずに
そのまま信じ込むんだろうな。
0608nobodyさん
2009/01/23(金) 04:44:37ID:???for ($i = 1; $i <= 100000; $i++) {
$a[]= rand();
}
$b=array_sum($a) / count($a) ;
print_r ($b);
?>
0から32767までの数値を、
10万個ランダムに生成し、
それらの生成された数値を
全部配列に格納し、
その平均値を求めるプログラムである。
これを実行しF5を連打すると、
平均値が安定しないことがわかる。
0609nobodyさん
2009/01/23(金) 04:48:30ID:???医学解明とただの関数解析はレベルが違いすぎる
お前のはただの自己満足
だから恥ずかしいといわれる
それでも恥ずかしいこと書きたきゃブログでやれ
高度なことを書きたいのならまずはアセンブラを勉強しろ
それとスレ違い
0610nobodyさん
2009/01/23(金) 04:55:21ID:???質問も連投してただ荒らしてるだけだし、
報告してみるといいかもしれないね。
この程度じゃ規制はされないだろうけど、注意の目はくるだろう。
0612nobodyさん
2009/01/23(金) 05:03:58ID:???for ($i = 1; $i <= 100000; $i++) {
$a[]= rand();
}
$b=array_sum($a) / count($a) ;
$c=floor($b);
print($c);
?>
先ほどのコードで、
小数点以下がウザかったので、
floor関数を使って、切り捨てて、整数にしたみた。
0613nobodyさん
2009/01/23(金) 05:06:31ID:???1行コピペ荒らしで報告すればいいかもしれない。
まぁそんなことはさておき、
マニュアルを信用できないのならプログラムやめちゃいな。
それかPHPみたいにCでの実装とかじゃなく、
自分でスクラッチから言語作ってそれを使いな。
アセンブラレベルでコンピュータの制御が信用できないならもうどうしようもないけどw
0615nobodyさん
2009/01/23(金) 07:15:36ID:ufSOhBv2このページで
「1つの場合:fetchを使いつつ、一応LIMIT 1も指定してみる」
とアホな無意味なことをやっているのはなぜ?
バカだから?
0616nobodyさん
2009/01/23(金) 07:21:11ID:ufSOhBv2bindParamとbindValueの、どちらを使うべきなのか?
0617nobodyさん
2009/01/23(金) 07:21:43ID:???0618nobodyさん
2009/01/23(金) 07:22:49ID:ufSOhBv2fetchを使うべきなのか?
そのときの、パラメーターはどうすればいいのか?
0619nobodyさん
2009/01/23(金) 07:25:43ID:ufSOhBv2複雑なド・モルガンの問題も、ボタン一発で解ける?
0620nobodyさん
2009/01/23(金) 08:13:06ID:???0621nobodyさん
2009/01/23(金) 08:15:30ID:???0624nobodyさん
2009/01/23(金) 08:23:12ID:???(しかも、思いこみで間違ってる内容多数)
0626nobodyさん
2009/01/23(金) 08:38:48ID:???1日何時間張り付いてるんだよ
0628nobodyさん
2009/01/23(金) 09:17:11ID:???0629nobodyさん
2009/01/23(金) 09:34:42ID:???0630576
2009/01/23(金) 10:35:48ID:Qlph62AH本当だ!代入でコピーされてました。
arrayはインスタンス返すもんだと思ってた。どうやらオブジェクト脳すぎたようだ・・・
<?php $a=array('hage', 1234); $b = $a; $a[0] = TRUE; var_dump($a, $b); ?>
array(2) {
[0]=>
bool(true)
[1]=>
int(1234)
}
array(2) {
[0]=>
string(4) "hage"
[1]=>
int(1234)
}
0631nobodyさん
2009/01/23(金) 10:50:20ID:Qlph62AH【PHPのバージョン】PHP 5.2.5(windows)
【質問内容】
恐縮ですが、質問させていただきます。
DateTimeクラスを用いて、日付と日付の比較するよい方法はありませんでしょうか?
やりたいことは、ある日付が今日から何時間経過していたら、処理をやめる、というようなことをやりたいのです。
DateTime::modifyとDateTimeどおし比較ができれば、いけると思ったのですが、
date_diffやDateTime::diffは実装されていないようですし、
比較演算子は定義されていないようですし、上手い方法がわかりません。
また、DateTimeのリファレンスのようなものも見つけられませんでした。
皆さんはどのように比較されているのでしょうか?
0632nobodyさん
2009/01/23(金) 11:09:16ID:???上手い方法はunixtimestampで計算
もしかして、クラスに依存するのが上手い方法だとでも?
オブジェクト指向マンセーってか。言語をなめてんの?
アンケートなら他所でやるべき
おれはZend_Dateだけどw
0633nobodyさん
2009/01/23(金) 13:21:57ID:G0q2tgbP<html%>というコードが出てきて、%の意味が分からないので教えてください。
0634nobodyさん
2009/01/23(金) 13:24:15ID:???意味は百分率でぐぐれ
0635633
2009/01/23(金) 13:46:36ID:???0636nobodyさん
2009/01/23(金) 14:16:16ID:???0637633
2009/01/23(金) 14:31:34ID:???ありがとうございました。
0639nobodyさん
2009/01/23(金) 15:27:11ID:???VALUES ( NULL , 'test' , 1234567 , '東京都' , '2008-07-17 01:10' ) SQLからこのリクエストを実行すると東京都の部分が文字化けするのですが
どなたか対処方法を教えて下さいませ。
ちなみに挿入からだと文字化けしません。
0641nobodyさん
2009/01/23(金) 17:07:46ID:mpwi3WFw先頭に「copy_(数字)」を付けたいと思います
以下のようなソースを書いたのですが、
copyの箇所が複製されたファイル名になります「copy1_copy_test.html」
どこを修正すればいいのでしょうか?
function fileMake($to_dir,$f_name,$i){
$new_file = $to_dir."/".$f_name;
if(is_file($new_file)){
$f_name = "copy".$i."_".$f_name;
$num = $i+1;
fileMake($to_dir,$f_name,$num);
}else{
touch($new_file);
}
}
$to_dir = realpath(".");
fileMake($to_dir,"test.html","");
0642641
2009/01/23(金) 17:16:44ID:???名前を変更したファイル名を再指定して再帰しているから
「copy+数字+変更したファイル名」になってしまっていました。
0643nobodyさん
2009/01/23(金) 19:03:27ID:???PHP5にはSPLという、C++でいうSTLの出来損ないみたいなのが存在する。
そいつに含まれるArrayObjectは、おまいの想定しているような動作をする。
<?php
$a = new ArrayObject(array('hage', 1234));
$b = $a; $a[0] = true; var_dump($a, $b);
?>
object(ArrayObject)#1 (2) {
[0]=>
bool(true)
[1]=>
int(1234)
}
object(ArrayObject)#1 (2) {
[0]=>
bool(true)
[1]=>
int(1234)
}
0644nobodyさん
2009/01/23(金) 19:57:05ID:???あれって、単にランダムなフォルダ名のフォルダ作って
ファイル入れてるだけじゃね?
フォルダ名ばれたらファイルまでの絶対パスもばれて
パスワードも意味ない気がするけど、そこまでシビアじゃないのかな
例えば、サイトの階層ごと丸ごとダウンロードみたいなツールで
検索かけられても大丈夫なのか
0645nobodyさん
2009/01/23(金) 20:20:06ID:???0646nobodyさん
2009/01/23(金) 20:56:44ID:???お前ら
0648nobodyさん
2009/01/23(金) 21:23:41ID:???たとえば、うpろだってサイトだと
パスワード付けたら、ttp://www.uploda.org/
の下にファイル名+適当な文字列のフォルダの下に画像ファイルが入ってる
けど、こういうのて、画像ファイルの絶対パスで接続されたら
パスワード打ち込む必要がないから、なんか条件が軽いなぁと思った
0649nobodyさん
2009/01/23(金) 21:28:48ID:???0650nobodyさん
2009/01/23(金) 21:33:56ID:???0651nobodyさん
2009/01/23(金) 21:45:04ID:???そんな風な設定がどこかでできるのかな
>>650
いや、例えば、パスワードありだと、こんな感じでのurlが生成される
ttp://www.uploda.org/uporg1454584.jpg_5gsPPFWAFEGWYfwafWAXr/uporg1454584.jpg(ダミーurl)
/uporg1454584.jpg_5gsPPFWAFEGWYfwafWAXr/
が、649が言うようにできるのかよくわからないのと、
これ含めた絶対urlパスで接続すると、画像が見れちゃうのをもっと厳しくできないかなと
0652nobodyさん
2009/01/23(金) 21:47:45ID:???0654nobodyさん
2009/01/23(金) 22:36:41ID:???0655nobodyさん
2009/01/23(金) 22:44:06ID:???かわいそうに。将来性ないわ。
0656nobodyさん
2009/01/23(金) 23:06:29ID:???http://pc11.2ch.net/test/read.cgi/tech/1232712334/
0657nobodyさん
2009/01/23(金) 23:37:27ID:???0658nobodyさん
2009/01/23(金) 23:43:34ID:???いや、上でも言ってるように
ほぼ解決はしたんだけど、あまりにも段階踏みすぎというか。
他のuploaderとかみてても大体そんな感じなんだよね
0659nobodyさん
2009/01/23(金) 23:51:24ID:???0660nobodyさん
2009/01/23(金) 23:55:26ID:???http://thumb2.uploda.org/file/uporg1958030.jpg
0662nobodyさん
2009/01/24(土) 00:21:50ID:???おまえ、「できるのかな」とか「わからない」しか書いてないのに、
>>658で「上でも言ってるようにほぼ解決」とか、ワケワケメ
# PATH_INFOとかmod_rewriteとかAddHandlerなんかでググったりするなよ。スレチだし。
0663nobodyさん
2009/01/24(土) 01:16:54ID:???ttp://pc11.2ch.net/test/read.cgi/php/1231850905/
とか
ttp://www.amazon.co.jp/dp/4894712288/
とか
ttp://www.nicovideo.jp/ranking/mylist/daily/animal
とかがディレクトリを指しているとでも思っているのだろうか。
何億ディレクトリ作ってるんだよAmazon。
0664nobodyさん
2009/01/24(土) 01:25:06ID:kFWBnpyAこのリスト 7. オブジェクトの中にあるクロージャーって
クロージャ生成と同時に実行されてませんか?
$closure = $dog->greet("Hello");
$closure();
なら分かるのですが。
何故こういう動作になるのですか?
0665nobodyさん
2009/01/24(土) 01:30:18ID:???0667nobodyさん
2009/01/24(土) 02:07:27ID:lTAVuTjGタイプヒンティングがググッても理解できません。
バカな私に優しく説明して下さい
0668nobodyさん
2009/01/24(土) 02:15:53ID:???0669nobodyさん
2009/01/24(土) 02:28:03ID:+XZf0oGOIDとパスワードがあってたら違うページに飛ぶみたいなの作りたいんですけど
どうしたらできますか?
0670nobodyさん
2009/01/24(土) 02:28:14ID:???0673nobodyさん
2009/01/24(土) 02:30:44ID:???俺のミスかな。
0675nobodyさん
2009/01/24(土) 02:47:36ID:+XZf0oGOで、条件式としてはどんな感じになるんでしょうか?
0676nobodyさん
2009/01/24(土) 02:57:11ID:???function hoge(PDO $var)
と宣言すると、関数hogeにPDOクラス(もしくはその継承クラス)のインスタンス以外の引数を渡すとエラーになる。
配列もしくはクラスしか指定できないけどな。
「この関数には配列を渡せ、文字列とか渡す屑は俺が殺す」
とコメントに書く事は、非常に良くあることだと思う。
タイプヒントを使うと、意図しない型の引数を渡す相手に対しエラーを発生させて本当にぶち殺せるようになる。
インターフェイスも指定できるし、指定されたクラスの子クラスでも通る。
引数がおかしい事が事前に分かるので「悪いのは俺様のメソッドじゃなくててめえの脳味噌だ」と容易に主張でき、
貴重な時間を脳に障害のある糞の書いたコードのデバッグに使わなくとも良くなるのが利点。
タイプヒントを使わないと実装できない機能は何一つとして無い。分からないなら放置でいい。
PHPの強みを殺す側面もあるから、「デキる奴はこれを使う」ってわけでもないしな。
■ このスレッドは過去ログ倉庫に格納されています