【PHP】下らねぇ質問はID出して書き込みやがれ 99
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/10/13(水) 12:01:33ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 98
http://hibari.2ch.net/test/read.cgi/php/1284805237/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0735nobodyさん
2010/10/23(土) 07:30:31ID:???text_to_speech("pear", "Sam");
?>
0736nobodyさん
2010/10/23(土) 08:29:41ID:???0737nobodyさん
2010/10/23(土) 09:23:06ID:???0738nobodyさん
2010/10/23(土) 09:56:33ID:???0739725
2010/10/23(土) 10:22:02ID:???iPhoneから打ったからタップが一回足らなかったw
ベアーじゃクマーだな
globは英単語だったんだね
グロブと読むらしい
cronみたいな造語だと思ってた
0740nobodyさん
2010/10/23(土) 11:19:34ID:???0742nobodyさん
2010/10/23(土) 11:43:55ID:???0743nobodyさん
2010/10/23(土) 12:03:21ID:???0744nobodyさん
2010/10/23(土) 12:08:33ID:???0745nobodyさん
2010/10/23(土) 12:13:30ID:???発音しないんだから発音しらなくてもよくね?
口頭でやりとりする人なら人に聞きゃ済むわけだしな
0747nobodyさん
2010/10/23(土) 15:14:46ID:???こういうの面白いよね
0749nobodyさん
2010/10/23(土) 16:04:47ID:???0750nobodyさん
2010/10/23(土) 16:06:14ID:???0751nobodyさん
2010/10/23(土) 16:43:47ID:???もぞもぞする
0752nobodyさん
2010/10/23(土) 17:00:37ID:???0753nobodyさん
2010/10/23(土) 17:02:04ID:???たいてい通じないから「エイチャーレフ」って言い直す
0754nobodyさん
2010/10/23(土) 17:51:36ID:???英語読みだとウィドゥ(スは消え入る音でほとんど聞こえない)とハイトみたいだね
0755nobodyさん
2010/10/23(土) 18:43:54ID:sKO4L/iz文字化けもしてないのに、DBにいれると???????になるんですが、これは原因はなんなんでしょうか?
shift-jis->euc-jpでDBテーブルはujis_japanese_ciです。
0756nobodyさん
2010/10/23(土) 18:44:37ID:???0757nobodyさん
2010/10/23(土) 18:46:09ID:???0759nobodyさん
2010/10/23(土) 19:19:28ID:sKO4L/izこれをやるとPhpmyadmin上はちゃんと表示されるようになりました・・・
Euc-jp表示なのに文字化けしてないのはなぜ・・・
>>757
本サイトがEucで携帯がShift-jisなもんで・・・
>>758
すいません、説明間違ってました。
DefaultCharsetがujisで照合順序がujis_japanese_ciでした。
0761nobodyさん
2010/10/23(土) 21:13:08ID:???DBIniInsert時にset names sjisにして
表示時にshift-jisにしたら直りました。
0762nobodyさん
2010/10/23(土) 21:42:17ID:???0763nobodyさん
2010/10/24(日) 01:33:24ID:???0765nobodyさん
2010/10/24(日) 01:40:50ID:???0766nobodyさん
2010/10/24(日) 03:40:32ID:f6QEzh360767nobodyさん
2010/10/24(日) 12:29:37ID:YiuzekCl複数コネクションを同時にさばくとき、Railsみたくフレームワークのモデルさんが壊れないか気になるんだけど
0768nobodyさん
2010/10/24(日) 20:07:38ID:XupTldvh・・・
}
こういう構文の時、条件1でfalseが返ってきたら条件文2はそもそも検証すらされずwhileループを抜けますか?
たとえば条件1で配列の上限を超えたかどうかを調べ、
超えていればそのままwhileループを抜け出し
条件2の検証で配列の要素数オーバーを防げるかどうかを知りたいです。
0769nobodyさん
2010/10/24(日) 20:09:53ID:???0770nobodyさん
2010/10/24(日) 20:25:12ID:???条件2が検証されるかされないかなんて重要なことではなくね?
オーバーを防げるの意味がわからん
具体的な例文書いてみて
0771nobodyさん
2010/10/24(日) 20:26:19ID:???条件1がfalseなら条件2は評価されないはず、でもソース無い。
後半の「配列の上限を超える」「要素数オーバーを防ぐ」が良く分からん。
0772nobodyさん
2010/10/24(日) 20:27:13ID:???0774nobodyさん
2010/10/24(日) 20:30:24ID:???$i+=1 < 100
みたいなのってことなのかな
0775nobodyさん
2010/10/24(日) 20:34:41ID:???0776nobodyさん
2010/10/24(日) 20:36:34ID:???コードの行数とステップ数を減らすぐらいしかメリットがないけど・・・
下の例ではHello!と表示される
<?php
function example1(){
return true;
}
function example2(){
echo "Hello!";
}
example1() && example2();
?>
0777nobodyさん
2010/10/24(日) 20:42:12ID:???ttp://www.php.net/manual/ja/language.operators.logical.php
0778nobodyさん
2010/10/24(日) 21:24:52ID:???$arr = array('a', 'a', 'a');
$i = 0;
while (isset($arr[$i]) && $arr[$i] === 'a') {
var_dump($i);
$i++;
}
$i = 0;
while ($arr[$i] === 'a') {
var_dump($i);
$i++;
}
とかやってみればわかるじゃん。
0779768
2010/10/24(日) 21:56:44ID:XupTldvhありがとうございましたm(_ _)m
0781nobodyさん
2010/10/24(日) 22:39:03ID:???if (obj != null && obj.test())
って書く場合がよくある。
obj が null の場合、
後ろの obj.test() でエラーになるが、実際には実行されないので・・・
0782nobodyさん
2010/10/24(日) 23:00:25ID:Etwa0dNnここの下の方にある $_GET のところで、
>また、同じキーで複数の値が送られる以下のような場合、
>http://localhost/test.php?foo=bar&foo=bee
>キーに対応する値は配列となる。
>$_GET['foo'] = array('bar', 'bee');
このように書かれているのですが、試してみましたところ、
そのようにはなりませんでした。
php.ini等の設定がいるのでしょうか?
どうか教えてください。
0783nobodyさん
2010/10/24(日) 23:04:41ID:???[]が必要
0784nobodyさん
2010/10/24(日) 23:18:09ID:???の間違いでしょ
0785782
2010/10/24(日) 23:45:01ID:Etwa0dNnありがとうございます。
とあるソーシャルアプリの開発を行っているのですが、
id=28456&id=28969
こんな感じでスクリプトがコールされるんですね。
簡単にそれぞれ取れるような方法はないものでしょうか。
QUERY_STRINGから分割して処理する関数書くしかないですかね。
0786nobodyさん
2010/10/25(月) 00:07:03ID:???0787nobodyさん
2010/10/25(月) 00:52:51ID:???このランダム文字列をなるべく短く、かつ、絶対(あるいは無視できるほどの低確率)にぶつからないように付加したいのですが、
一般的にはどのような方法があるでしょうか?
ぶつからないようにするためには、DBに入れた値を毎回検索してダブりが無いか確認…
とやれば出来るのですが、さすがにパフォーマンス的に現実的ではない気がします。
0789787
2010/10/25(月) 01:02:33ID:???0790nobodyさん
2010/10/25(月) 01:04:11ID:???こんな感じかな、あまりいい方法じゃないけど
http://ideone.com/otchQ
<?php
$str = "id=28456&id=28969";
$str = str_replace('=','[]=', $str);
$res = array();
parse_str($str,$res);
var_dump($res);
?>
0791nobodyさん
2010/10/25(月) 01:07:03ID:???rewriteして内部の整合性をとったほうが精神衛生上よろしいんじゃないの
0792nobodyさん
2010/10/25(月) 01:18:58ID:hJcPLAGl日本語入力項目を設けた上で、同画面にPOSTを行うと
なぜか文字化けしてしまいます。
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
header("Content-Type: text/html; charset=UTF-8");
print("<form method=\"post\" action=\"test.php\" accept-charset=\"utf-8\">");
なぜ文字化けしてしまうのでしょうか?
※Windows Vista
0793nobodyさん
2010/10/25(月) 01:22:51ID:???普通こうでしょ
まったく
0794nobodyさん
2010/10/25(月) 01:26:46ID:???mb_language("ja");
mb_internal_encoding("UTF-8");
mb_http_output("UTF-8");
0795nobodyさん
2010/10/25(月) 09:35:07ID:???いずれの方法を行っても文字化けしてしまい
POSTされた値を
$test_value = mb_convert_encoding($test_value, "UTF-8", "auto");
としたところ文字化けせずに画面に表示されました。
しかし、毎回この様な文字コードの変換を行うのは面倒なのですが
根本的な原因は何なのでしょうか?
0796nobodyさん
2010/10/25(月) 09:43:32ID:???あとはスクリプト自体の文字コードとwebサーバの文字コードの確認
apacheならAddDefaultCharsetとか。
あとPOSTされた値の文字コードは何?それで原因がわかるんじゃない?
0797nobodyさん
2010/10/25(月) 10:02:30ID:???>>795で文字化けが回避出来たので恐らくsjisだと思います。
少々面倒くさいですが解決出来たので一先ず満足です。
0798nobodyさん
2010/10/25(月) 10:07:38ID:???user_id
user_name
をテーブルに保存する訳ですが、この時にuser_nameはハッシュ値で登録するので
未だ良いとは思いますが user_id は暗号化して保存しておいた方が無難でしょうか?
0799nobodyさん
2010/10/25(月) 10:34:54ID:???0800nobodyさん
2010/10/25(月) 11:03:24ID:???0801nobodyさん
2010/10/25(月) 11:08:32ID:0LkbmEJw0802798
2010/10/25(月) 11:12:18ID:???間違えました。次の列構造を予定しています。
@ user_id
A user_pass ← ハッシュで保存
B user_pass_own ← 独自の暗号化した文字列で保存予定(複合化可能にする為)
@もBと同じく暗号化して保存した方がやはり良いでしょうか?
0803nobodyさん
2010/10/25(月) 11:23:01ID:DYebYvBq「2010-10-09T22:16:28+09:00」なのですが、
このフォーマットを変換してくれる関数とかってあるんですか?
今は単純に T と +09:00 を削除しています。
0806nobodyさん
2010/10/25(月) 12:18:43ID:???SQLインジェクション対策として
:hogehoge タイプを使用しています。
個人情報等も扱うので最悪流出しても
分からない様にほとんどを暗号化してDBに保存しようと思ってますが
これだとパフォーマンスが落ちますよね。。。
しかし、安全面を考えればその方が未だ良いかと思ってますが
如何でしょうか?
0807nobodyさん
2010/10/25(月) 12:33:27ID:IEJpRj+gユーザーが投稿したコンテンツにランダム文字列を付加して、識別できるようにしたいと考えております。
このランダム文字列をなるべく短く、かつ、絶対(あるいは無視できるほどの低確率)にぶつからないように付加したいのですが、
一般的にはどのような方法があるでしょうか?
ぶつからないようにするためには、DBに入れた値を毎回検索してダブりが無いか確認…
とやれば出来るのですが、さすがにパフォーマンス的に現実的ではない気がします。
よろしくお願いします。
0808nobodyさん
2010/10/25(月) 12:36:42ID:???他人のパスワードみてニヤニヤするの?
まさかパスワードリマインダーで復号してメールで送ったりするの?
それとも、会員のパスワードを使ってログインしようとしたり・・・?
0809nobodyさん
2010/10/25(月) 13:03:23ID:???パフォ落ちても(略 ということなら、それはそれでいいんじゃね?
>>807
低確率で衝突してもいいんだったら、適当なハッシュアルゴリズム使えばいいんじゃね?
0811nobodyさん
2010/10/25(月) 13:36:30ID:YV3UDDUZどっちにしてもコンテンツを毎回DBにぶち込むんじゃ?
んなら 大して変わらないような気がするが・・・・
0812nobodyさん
2010/10/25(月) 14:07:37ID:???重複検出方式にしてもちゃんとインデックス用意しとけば
そんなに遅くはないと思いますがね。
0813nobodyさん
2010/10/25(月) 14:15:59ID:???insertとインデックスに対するselectなんて後者のほうが圧倒的に早いしな、知らんけど。
0814nobodyさん
2010/10/25(月) 14:18:01ID:???0815nobodyさん
2010/10/25(月) 14:24:10ID:???ユーザーの投稿というのは掲示板みたいなものをなんだろうか
投稿毎に識別番号を付けたいなら、>>814のようにユーザー名はダメだろう
そもそも会員制かどうかも分からないしね
通し番号だとダメな理由があるなら、重複検査してランダム文字列入れる
重複検査は(ユニークキーにするだろうし)別に重くない
0816nobodyさん
2010/10/25(月) 14:31:09ID:???0817807
2010/10/25(月) 14:55:37ID:IEJpRj+g具体的には、ユーザーを識別するのではなく、
投稿された画像や動画を一意に識別するためのランダム文字列を付加します。
通し番号が駄目な理由は
http://myservice/ランダム文字列
というシンプルなURLで各コンテンツにアクセスさせたいため、
連番が直にURLに出るのが気持ち悪いということらしいです。。
上からの指示なのでここは変えられません。
重複検索については完全に素人判断で重そうと判断していたので
避ける明確な根拠はありませんでした。
ハッシュで8桁程度の文字を作成し、重複検索を通す、という感じにしようかと思います。
ありがとうございました。
0818nobodyさん
2010/10/25(月) 15:18:31ID:???0819nobodyさん
2010/10/25(月) 16:19:59ID:dWG9M/QuSQLite Library 3.3.6
↑これで
ttp://www.crystal-creation.com/web-appli/technical-information/database/sqlite/php.htm
↑これにあるようなプログラムで読み込まないんですけど、ver.のせいでしょうか?
一応PDOだと動きます。
0821nobodyさん
2010/10/25(月) 16:25:27ID:???また、Cakeは何と読めば良いのでしょうか?
0823nobodyさん
2010/10/25(月) 16:28:17ID:???PEARってFWなの単なるライブラリじゃないの?
Cakeの読みはケイクって呼んでる人が多いよ、たまにケーキという人もいるけどね
0824nobodyさん
2010/10/25(月) 16:30:44ID:dWG9M/Qu0825nobodyさん
2010/10/25(月) 16:54:33ID:???ありがとうございます。
PHPを勉強するに当たって Cake も使える様になっておいた方が良いでしょうか?
また、実務ではPHPの開発環境はやはりLinux上で行うパターンが多いのでしょうか?
0826nobodyさん
2010/10/25(月) 17:24:39ID:???Cakeというよりmvcを理解しておいたほうがいい
まぁCakeに慣れていけば自然と身につくと思う
環境は、サーバがLinux(Apache)、開発(コーディング)はwindowsというのが一番多い
0827nobodyさん
2010/10/25(月) 17:29:12ID:???0828nobodyさん
2010/10/25(月) 18:38:16ID:dWG9M/Quデータの追加が出来ません。ちなみにディレクトリは777 PHPは666です。
↓これでやっても「データの追加に失敗しました」と出てしまいます。
$dbh->query('SET NAMES utf8');
print('追加前のデータ一覧:<br>');
$sql = 'select nunber, name, note from tab1';
$stmt = $dbh->prepare($sql);
$stmt->execute();
while($result = $stmt->fetch(PDO::FETCH_ASSOC)){
print($result['nunber']);
print($result['name']);
print($result['note'].'<br>');
}
$sql = 'insert into tab1 (nunber, name, note) values (?, ?, ?)';
$stmt = $dbh->prepare($sql);
$flag = $stmt->execute(array('104', '成田','日本'));
if ($flag){
print('データの追加に成功しました<br>');
}else{
print('データの追加に失敗しました<br>');
}
0829nobodyさん
2010/10/25(月) 18:43:32ID:???0830nobodyさん
2010/10/25(月) 18:51:14ID:???■ このスレッドは過去ログ倉庫に格納されています