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

【PHP】下らねぇ質問はID出して書き込みやがれ 109

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2011/07/28(木) 06:53:37.45ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 108
http://hibari.2ch.net/test/read.cgi/php/1309599473/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0624nobodyさん2011/08/17(水) 20:21:19.68ID:???
でも正規表現関数は使うんだw
0625nobodyさん2011/08/17(水) 20:23:01.64ID:QGqYmGAb
あ、/のかわりか。
正規表現は使いまわしできますし。
0626nobodyさん2011/08/17(水) 20:28:37.05ID:???
「PHP独自の関数」の意味が分からんが、PHP独自のネーミングセンスって意味なら、substrもrtrimもphpだけじゃなくてPerlでもCでも確かあった・・・と思うが。

まぁ、正規表現に慣れる為に、なんでもかんでも正規表現、って道は無くもないとは思う。
普通に文字列処理の関数で出来るんならそっちでやった方がコスト的にもいいが。
0627nobodyさん2011/08/17(水) 20:30:49.73ID:???
まぁ、本人がそれでいいならいいだろう
0628nobodyさん2011/08/17(水) 20:34:37.36ID:???
>>623
そう/の替りに使ってる
PHPの正規表現はセパレータが変えれるから
正規表現を読みやすくする為に変えてる

0629nobodyさん2011/08/17(水) 22:13:23.78ID:???
これで独立できる

売るものはスマートフォンアプリ WEBサイト運営
サーバーはクラウド VPS
電話はスマートフォンSkype
オフィスは地方にプレハブ型の格安高性能オフィスを建て(300万〜500万)
レンタル自習室&シェアオフィスで収入を得ながらそこで開発する
http://tinyurl. com/43xmk7m
http://tinyurl. com/3mopkfy
0630nobodyさん2011/08/17(水) 22:37:42.79ID:XqGbAqdG
CGIゲームとかで、
「1日、1回、100ゴールドの給料をやる」
ってアルゴリズムにした場合、
サーバーをずーっと起動しっぱなしで運用するなら、
毎日、夜中の00:00に、そのプログラムを走らせるように
cronとか、タスクスケジューラを組んでおけばそれで済む話だが、
お出かけするときはサーバーの電源も落とす。

てな感じの運営ポリシーだと、サーバーの電源を落としたまま
3日たってしまって、給料の支払いが3日分、たまってしまう。


この場合はどう処理すればいいのか。
なんかのキューに入れておいて、サーバーを起動しで、
最後に給料を振り込んだ日時をテキストファイルに記録しておいて、
今の日時をみて、24時間以上経っていたら、3回分を一度にまとめてふりこむ。

こんな感じの実装でいいのか。
0631nobodyさん2011/08/17(水) 22:40:41.39ID:???
シリアライズしてしまえば?
0632nobodyさん2011/08/17(水) 22:54:47.04ID:???
>>630
好きにしろ。PHPと関係ない
0633nobodyさん2011/08/17(水) 22:57:54.41ID:XqGbAqdG
>>631
もっとくわしく。
0634nobodyさん2011/08/17(水) 23:05:56.64ID:???
>>630
> 最後に給料を振り込んだ日時をテキストファイルに記録しておいて、
> 今の日時をみて、24時間以上経っていたら、3回分を一度にまとめてふりこむ。

この処理を毎日0時に実行すればいいじゃん。3回分じゃなくて経過日数分だけどな。
あとそういう情報の記録はDB使え
0635nobodyさん2011/08/17(水) 23:17:26.83ID:???
単に経過時間だけなら、最後の日から計算すればいいだけじゃん
0636nobodyさん2011/08/17(水) 23:28:02.22ID:???
やべ話題にのりおくれた
一言いわせてくれ
ぷーすURLってなんだよばーか
0637nobodyさん2011/08/17(水) 23:57:09.67ID:???
>>636
乗り遅れたと自覚してるなら口を慎め
0638nobodyさん2011/08/18(木) 00:45:24.05ID:???
(´・д・`)ヤダ
0639nobodyさん2011/08/18(木) 00:50:57.62ID:???
振り込むなんて処理すらいらね。
基礎給与  =  (今日の日付 -  開始の日付 ) * 日給額 で都度計算。
使った額だけ記録しとけ
0640nobodyさん2011/08/18(木) 01:27:28.35ID:E4ylRXF2
質問
暗号化できて不可逆なパスワードのハッシュ化をしたいと思っています。
何がいいでしょうか?
今までcryptを使っていましたが危険らしいので他の方法を考えています。
0641nobodyさん2011/08/18(木) 01:37:20.81ID:???
好きにしろ
0642nobodyさん2011/08/18(木) 01:45:22.12ID:???
暗号スレとか暗号板とかそんなのなかったっけ
0643nobodyさん2011/08/18(木) 02:23:31.86ID:???
復号できないものを暗号化と言うのか?
0644nobodyさん2011/08/18(木) 02:46:28.50ID:???
暗号学的には不可逆でも暗号化って言うよ

ただ>>640はハッシュ化したものを
さらに復号化可能なアルゴリズムで暗号化したいと聞こえる
やりたいことがいまいち謎
0645nobodyさん2011/08/18(木) 03:43:47.67ID:???
>>644
意地悪なことを言わないで教えて下さい。
暗号化できて不可逆なパスワードのハッシュ化をしたいだけです。
0646nobodyさん2011/08/18(木) 03:57:20.28ID:???
評価の観点は?
0647nobodyさん2011/08/18(木) 04:23:15.02ID:???
意地悪?スレチなんだよカス

http://stackoverflow.com/questions/4291862/what-is-the-most-secure-hashing-method-php
http://stackoverflow.com/questions/401656/secure-hash-and-salt-for-php-passwords
0648nobodyさん2011/08/18(木) 05:25:25.87ID:wM+XEC3J
しつもんです
アクセスしてきたユーザのIPアドレスから居住地を判定するライブラリみたいなものって
ありますか?
0649nobodyさん2011/08/18(木) 05:27:56.97ID:???
ある
0650nobodyさん2011/08/18(木) 05:32:42.76ID:???
俺が使ってるライブラリなら番地まで特定できる
たまに誤差が発生するけど町名までは確実に取れる
0651nobodyさん2011/08/18(木) 07:58:08.14ID:wM+XEC3J
>>649-650
おお、すみませんが教えてください
グーグルの奴を使ってみたんですが、なんか上手く動いてくれません
0652nobodyさん2011/08/18(木) 08:16:29.03ID:???
タダで教えられるか
こっちだって元手が掛かってるんだ
0653nobodyさん2011/08/18(木) 08:53:20.61ID:???
「暗号化できて不可逆なパスワードのハッシュ化」というのが、3重くらいの重言になっているから意味がわからんのだよ。
素直に解釈すると>>644の言うとおり「やりたい事が謎」としか言えん。

もう少し、それぞれの言葉の意味をよく理解してから質問しなおすのがいいんじゃね?
0654nobodyさん2011/08/18(木) 09:22:14.68ID:???
cryptより安全なハッシュおしえてってだけのことだろ。

>>650
IPの仕組的に、町名まで確実にとれるというのはありえない。
自分の使ってるIPだと都道府県すら違って出る。
0655nobodyさん2011/08/18(木) 09:33:15.94ID:???
関東と関西にわかれているプロバイダもあるけどそれでもある程度はIPの配置が決まっているから
判別できないわけではないかも?プロバイダ側も個人情報をわざわざ開示しないだろうから非公開
になっているだけでそれで地域が特定できないとは言い切れない。

ハッシュはユニークでは無いからそのキーでしか一致しない代物ではないので絶対に安全かって
言うとそうでもない。少なくともユニークな暗号よりも総当たりされた場合のリスクは高い。
内部犯行を嫌うハッシュか、外部犯行を嫌うユニークかだから好きな方を選べば良い。
0656nobodyさん2011/08/18(木) 09:38:21.52ID:???
もちろん、取れることもある。 が *確実*はないってだけ。
あるお客さんで全国の拠点どこでも同じとこになるって文句があった。
インターネットには本社からしかつながってなかったという・・・

パスワードならハッシュがユニークでなくとも別にいいのでは。 使い方の問題。
同じパスワードを使ってる人は、DBに保管されてる暗号化されたパスワードってのは同じなわけで。
0657nobodyさん2011/08/18(木) 09:39:41.10ID:???
どこを、というより全体を略さないと「cryptより安全なハッシュおしえてってだけのことだろ。」なんてならんがまぁ、
そういう事ならMD5とかsha1だろな。
どっちも脆弱性が報告されてるが。

意味も分からんのに心配してるだけなら、とりあえずストレッチしときゃぁいいだろ
0658nobodyさん2011/08/18(木) 09:40:14.87ID:???
そういう場合はIDとパスワードでハッシュ化すんじゃねーの
0659nobodyさん2011/08/18(木) 09:46:34.92ID:???
他の情報を加えてハッシュを算出すれば確かに内部犯行によるリスクは軽減されるね
0660nobodyさん2011/08/18(木) 09:47:47.60ID:???
MD5とか sha1はそろそろ卒業
0661nobodyさん2011/08/18(木) 10:00:56.07ID:???
パスワードに英単語をそのまま使っている人が多いからなー
0662nobodyさん2011/08/18(木) 10:12:54.19ID:???
crypt使えcrypt
で、アルゴリズムをsha256かsha512にしろ
0663nobodyさん2011/08/18(木) 10:26:22.37ID:???
json_encode() で json を生成するときに、下記のようにやると

$val = array("Body" => array("BooksBookSearch" =>
  array("Items" =>
    array( "Item" =>
      array( "aaa" => "bbb"),array( "ccc" => "ddd"),array( "eee" => "fff")
)));

json_encode()でJSONは

{"Body":{"Title":{"Items":{"Item":{"aaa":"bbb"},"0":{"ccc":"ddd"},"1":{"eee":"fff"}}}}}

このように生成されます。

実際は、

{"Body":{"Title":{"Items":{"Item":[{"aaa":"bbb"},{"ccc":"ddd"},{"eee":"fff"}]}}}}

の形式で生成したいのですが、どう配列を組めばよいのでしょうか。
06646632011/08/18(木) 10:28:26.52ID:5rc0bZA4
× $val = array("Body" => array("BooksBookSearch" =>
○ $val = array("Body" => array("Title" =>

でした。
0665nobodyさん2011/08/18(木) 10:36:06.36ID:???
む?なぜ"0"とか入るのかわからんが、理想の形があるってのなら、逆変換して調べてみると分かるんでね?
つまり、やりたい形をjson_decode()にでも突っ込んでみる
0666nobodyさん2011/08/18(木) 10:42:43.24ID:???
そしてvar_dumpすれば一目瞭然

おそらくデータファイルを外部から叩いてページに表示するJSあたりがあるのではないかと

0667nobodyさん2011/08/18(木) 10:48:29.99ID:???
>>663
) が一つ足りないのでは?
0668nobodyさん2011/08/18(木) 10:50:20.95ID:???
array() が抜けてるような
0669nobodyさん2011/08/18(木) 10:51:06.69ID:???
>>663
再現しない
意図する結果になってるよ
0670nobodyさん2011/08/18(木) 10:51:40.10ID:???
PHPのマニュアルにはBlowfishが推奨でソルトを加えろって書いてあるね
MD5はもちろん、SHA256もやめとけって書いてある
0671nobodyさん2011/08/18(木) 10:52:32.96ID:???
あ、ごめん
コピペじゃなくて入力してたから違った
Item => array(
  array("aa"=>"bbb")
とせずに
Item => array("aa"=>"bbb")
としてるから違う結果になる
06726632011/08/18(木) 10:52:36.63ID:???
自分の狭窄さ加減に嫌気がするわw
json_decode() と var_dump を試してきます。
06736632011/08/18(木) 10:56:27.62ID:???
>>671
>>668さんのarray() が抜けてるというのはそういうことか。
array()の構造がもう一個要るのか・・・難しい。

みなさんありがとう
0674nobodyさん2011/08/18(木) 11:09:36.40ID:8kZPbcbM
すみません。一昨日投稿した>>582です。
まだ>>582の問題が解決できません。
どのようにすればいいでしょうか?
できれば書き換えて示していただけると助かります。

while ($row = $result->fetch_array(MYSQLI_ASSOC)) {

if($value == $row['seq']){
$chk{$row['seq']} = 'checked'; }
}





<?php
$result = $mysqli->query("SELECT * FROM tbShopmenuCategory ORDER BY seq ");
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
?>
<input type="checkbox" name="category_seq[]" value="<?php echo $row[seq] ?>" <?= $chk{$row['seq']} ?>> <?php echo $row[category]; ?>

<?php
}
?>
06756632011/08/18(木) 11:14:57.69ID:???
>>674
<?php
$chk1 = "aaa";
$chk2 = "bbb";

echo "${'chk' . '1'}";
echo "${'chk' . '2'}";
?>

こういうこと?
0676nobodyさん2011/08/18(木) 11:24:43.73ID:???
だから {} → []では?
0677nobodyさん2011/08/18(木) 11:35:10.47ID:8kZPbcbM
>>676さん

while ($row = $result->fetch_array(MYSQLI_ASSOC)) {


if($value == $row[seq]){

$chk[$row[seq]] = 'checked'
}
}

<?php
$result = $mysqli->query("SELECT * FROM tbShopmenuCategory ORDER BY seq ");
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
?>
<input type="checkbox" name="category_seq[]" value="<?php echo $row[seq] ?>" <?= $chk[$row[seq]] ?>>


<?php
}
$result->close();

?>

このように{ }を[ ]に変えてやったりもしたのですが駄目でした。
0678nobodyさん2011/08/18(木) 11:41:06.96ID:???
>>677
http://masha.maakikaku.jp/2008/03/php.php
0679nobodyさん2011/08/18(木) 11:46:12.79ID:???
var_dump( $chk)で中身見てみ、もともと空なのでは?
0680nobodyさん2011/08/18(木) 11:47:23.10ID:???
可変変数なんて使おうとするなよ
それに質問きたら別の方法教えてやれよw

>>677
どうだめなのか書け
エラーが出てダメならエラーも書け
ショートオープンタグが使えても使うな
<?= → <?php
0681nobodyさん2011/08/18(木) 12:03:47.97ID:???
echoしないと表示されないぜ
0682nobodyさん2011/08/18(木) 12:06:10.48ID:???
>>675 で解決だろ。原因が可変変数ならば。
0683nobodyさん2011/08/18(木) 12:06:48.79ID:???
<?=
0684nobodyさん2011/08/18(木) 12:15:02.93ID:8kZPbcbM
返信ありがとうございます。
>>675なども試してやってみます。
できなかったらエラー内容やわかる範囲の原因なども書きます。
また後で報告させていただきます。
0685nobodyさん2011/08/18(木) 12:17:02.35ID:???
回答じゃないが
$chk なんていらない。 二回もまわしてて変だし。
<?= $row['seq'] == $value ? '"checked"' : '' ?> でいいだろ。

そもそも
if($value == $row[seq]){
$chk[$row[seq]] = 'checked'
}
も ループの中にいらないし
$chk[$value] = 'checked' でしかない。
0686nobodyさん2011/08/18(木) 12:29:21.79ID:8kZPbcbM
>>685さん
<input type="checkbox" name="category_seq[]" value="<?php echo $row[seq] ?>" <?= $row['seq'] == $value ? '"checked"' : '' ?>>
でよいということでしょうか?

<?= $row['seq'] == $value ? '"checked"' : '' ?>
のvalueから右がどうなっているかがわかりません。
?より左がtrueの時'checked'、falseのとき' 'を出力という意味でしょうか?
なんという文法でしょうか?
0687nobodyさん2011/08/18(木) 12:43:18.37ID:???
>>686
三項演算子
0688nobodyさん2011/08/18(木) 12:43:55.84ID:???
三項演算子

でも勉強段階なら、先の方法でも出来るようにしたほうがいいと思う。 
こんなの憶えるよりよっぽどいい。
ただ、どう出来ないのかがさっぱり分からんので何にも指摘出来ません。
0689nobodyさん2011/08/18(木) 15:13:21.82ID:8kZPbcbM
>>685さんのアドバイスを受けて
$chk[$value] = 'checked'を使ってできました。

他の方にも色々アドバイスをいただけて本当に助かりました。
基礎的なところがまだまだなのでほかの方が上げてくださった
やり方なども試して勉強してみます。
0690nobodyさん2011/08/18(木) 18:58:27.07ID:???
基礎的なところがまだまだな状態でプログラムやるよりまずマニュアルを一読したほうがいいと思うが
0691nobodyさん2011/08/18(木) 20:11:14.23ID:???
的を得ているレスがあった

68:以下、名無しにかわりましてVIPがお送りします:2011/07/07(木) 09:45:21.81ID:xv2pzvIpO
わからない→調べる→解決、という流れで人間学習するもの
わからない→調べる→やっぱりわからない→人に聞く、の流れはまともな人間同士ならコミュニケーションにもなり得る
わからない→人に聞く、の流れはただの馬鹿
わからない→なにもしない、無能
0692nobodyさん2011/08/18(木) 20:21:27.04ID:???
自分の過去レスですねわかります
0693nobodyさん2011/08/18(木) 20:38:38.21ID:???
>>691
>的を得ている

つまりお前は無能ってことなんだな
0694nobodyさん2011/08/18(木) 21:35:49.34ID:???
>>640
hash関数使うといい
0695nobodyさん2011/08/19(金) 04:49:56.96ID:???
的は射る
得るのは当だwwww
的なツッコミ?
0696nobodyさん2011/08/19(金) 04:58:21.28ID:???
「射る」のほうが誤用だよ
http://biff1902.way-nifty.com/biff/2010/04/post-63d8.html
0697nobodyさん2011/08/19(金) 05:30:25.18ID:???
>>696
それはあくまでそいつの自説
お前もネットの情報を鵜呑みにするなよ
0698nobodyさん2011/08/19(金) 07:44:48.81ID:???
じゃ何を元に判断すればいいの?
0699nobodyさん2011/08/19(金) 09:28:04.83ID:???
PHPやセキュリティの解説サイトでも嘘とか古い技術が書かれてることがよくあるな
素人に毛が生えた程度の奴が書いてたりするし
0700nobodyさん2011/08/19(金) 09:29:49.82ID:???
だからあちこちのサイトでデータを抜かれてるんでしょw
0701nobodyさん2011/08/19(金) 09:52:19.43ID:???
>>698
辞書を参考にすればいい
http://dictionary.goo.ne.jp/leaf/jn2/209033/m0u/%E3%81%BE%E3%81%A8/
0702nobodyさん2011/08/19(金) 13:18:56.02ID:???
>>701
その辞書は100%信用できるのですか。
辞書だって人が書いた物。間違いだって有り得る。
0703nobodyさん2011/08/19(金) 13:30:31.23ID:???
得るは歴史的に妥当な可能性があるだけで
現在一般的にはやっぱり射るが正しいって>>696にも書いてあるね
さすがに「『射る』が誤用」はない。
0704nobodyさん2011/08/19(金) 13:37:05.03ID:???
PHPのスレでそんなことを書いてる方が間違い
0705nobodyさん2011/08/19(金) 14:03:12.89ID:???
>>702
そんなこといってたら100%信用できるものなんてないでしょ
個人サイトより信頼性が高いのは確かだし、複数の辞書で確かめればある程度の信頼性は得られる
あなたが何かを100%信じるに足る根拠って何なの?
0706nobodyさん2011/08/19(金) 14:10:13.37ID:???
>>705
質問はID晒しで
0707nobodyさん2011/08/19(金) 14:11:15.60ID:???
>>705
俺は誰も信じないし誰からも信じられない。
0708nobodyさん2011/08/19(金) 14:17:32.59ID:???
>>707
誰も信じないなら質問する意味がない
外界の情報をシャットアウトして引きこもってればいいんじゃない?
0709nobodyさん2011/08/19(金) 14:46:18.09ID:???
辞書によっても様々だったりするような事を論じても意味がない
0710nobodyさん2011/08/19(金) 15:15:45.07ID:???
>>709
根拠のない妄言
0711nobodyさん2011/08/19(金) 15:19:59.28ID:???
人を信じないのに質問するのは自己矛盾だな
0712nobodyさん2011/08/19(金) 16:16:05.71ID:???
はぁ? 参考にするだけだろw
回答を自分で確かめたら信じられる
0713nobodyさん2011/08/19(金) 16:29:54.17ID:???
ガキどもそろそろ自由研究やれよ
0714nobodyさん2011/08/19(金) 19:36:41.89ID:gexz26pY
foreachとsimpleXMLでXMLのデータを順繰りに見ていっているときに
以下のような書き方をして無限ループを発生させてしまいました。

foreach($versiondate as $version){

$date = $versiondate->date

}

上記のような書き方をした場合に、$versionの中の値が全然変わらずに
foreachによるループが一向に終了しないという現象でした。

記述が正しくなく、本来は
$version->date
と書くべきで、正しい記載に変更したらループも正常に回るようになったのですが
原因がわかりません。

なにが原因で上記のような現象が発生するのか、分かる方はいらっしゃらないでしょうか?
0715nobodyさん2011/08/19(金) 20:14:19.73ID:???
あれ、値はコピーされるはずだから影響を受けないと思うんだけど本当にそれだけ?
0716nobodyさん2011/08/20(土) 03:17:49.78ID:???
>>708
俺は回答はするけど質問したことは一度もないですよ。
0717nobodyさん2011/08/20(土) 03:30:39.52ID:???
俺は質問はするけど回答したことは一度もないですよ。
0718nobodyさん2011/08/20(土) 05:41:47.74ID:???
>>717
質問ならIDを出せ
0719nobodyさん2011/08/20(土) 10:22:28.52ID:???
>>716
それなら他人の回答に「100&信用できるか」なんてケチつけずに黙って見てるか「100%信用できる証拠」をつきつけなよ
「あなたのいうことは100%信用できますか?」とそっくりそのまま返せるような水掛け論がお望み?
0720nobodyさん2011/08/20(土) 10:36:05.90ID:???
>>714
全体像を出したら判るだろうが
再現もできないコードの一部分だけ出されてもな
0721nobodyさん2011/08/20(土) 10:40:25.11ID:???
お二人とも場をわきまえない常識無しだってことだな。
0722nobodyさん2011/08/20(土) 13:41:32.05ID:lT3E7dXT
imagedestroyの質問
echo $image;echo '<br>';
imagedestroy($image);
echo $image;echo '<br>';
として実行すると
Resource id #4
Resource id #4
となるのですが、imagedestroy関数は動いてるのですか?
0723nobodyさん2011/08/20(土) 14:07:36.64ID:???
気になるならヘッダーでイメージを吐いてみれば目で確認できるよ
■ このスレッドは過去ログ倉庫に格納されています