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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/11/03(土) 19:07:37ID:EzkHevL1
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 57
http://pc11.2ch.net/test/read.cgi/php/1193062236/

◆質問する時の注意
・ sage進行(メール欄にsageと記入すること)「sage進行」とはスレを目立つ上部に上げないことによって、荒らしが発見できないようにすることです
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・ 書き込むときには、「公式マニュアル、リファレンス本は読みました」と明記すること
(でないと、公式マニュアル読めと煽られます)

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

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
・質問者が「公式マニュアル読んだ」と書いていないからといって、
公式マニュアルに書いてもいないのに、公式マニュアルよめと適当なことを言わないこと。
質問者は公式マニュアルを読んでいるかもしれない。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
07517502007/11/13(火) 23:55:55ID:???
>>749
すまん読み間違えてた。
「〜するべき」とかは言えないけど、DBのほうがソートやら更新やらが楽で良いよ。
07527162007/11/14(水) 00:06:12ID:???
事故解尻しました。
0753nobodyさん2007/11/14(水) 00:08:28ID:???
格納の仕方の話だろ?
すべきかどうかの話でいうなら、正規化すべき。
MysqlならENUM型使ってもいいんじゃない。
07547442007/11/14(水) 00:30:03ID:???
744です。書き忘れましたが環境はphp4です。
些細な事でも構いませんので、何かアドバイスをお願い致します。
07557492007/11/14(水) 00:32:49ID:wV0Vxe79
>>750,753
格納の話です。フリーのアンケートなどを見ると、PHPで作っており、
かつ「1,2,3」というような格納方法が多いので、どうするのが効率良いかな?
と思い、質問させていただきました。
>>753
ENUM型って予め登録したい項目を決めておかないと駄目ですよね?
そうじゃなくて、質問文もPHPから登録して、
回答もPHPから保存したいと思っています。
0756nobodyさん2007/11/14(水) 00:41:41ID:???


  いま俺のことバカって言った奴でてこいっ!


07577442007/11/14(水) 00:51:12ID:???
事故解決しました。
あなたたちの解答は期待しないので、レスは不要です。
07587442007/11/14(水) 00:57:38ID:rpeYtezF
解決していません・・・
初心者用スレに行ったほうが良いんでしょうか
0759nobodyさん2007/11/14(水) 01:05:29ID:???


  いま俺のこと笑った奴でてこいっ!


0760nobodyさん2007/11/14(水) 01:06:16ID:???
>>744
実際に再現できるデータも見せてよ
0761nobodyさん2007/11/14(水) 01:07:13ID:???
ここは性格の悪い奴等が多いから他スレのほうが良いかも
0762nobodyさん2007/11/14(水) 01:10:18ID:???
性格悪くなったのはここ最近だよな…
0763nobodyさん2007/11/14(水) 01:12:40ID:???
>>744
元データがわからんことには正規表現の書きようがない、つーか正規表現スレ行った方がいい気が・・・
あと3000行も処理すならeregよりpreg使ったほうがいいんじゃないかな
0764nobodyさん2007/11/14(水) 01:18:48ID:7Op+OI+L
>>762
なんかおかしなのが偽装してるんだよな。
07657622007/11/14(水) 01:28:10ID:???
僕の肛門も解決されそうです・・・
0766nobodyさん2007/11/14(水) 01:31:32ID:???
eregって使ったことないんだがpregに比べてメリットあるの?
0767暗黒元帥2007/11/14(水) 01:47:25ID:Om3SUPCZ
お前らって下らない事を言うのか?
0768nobodyさん2007/11/14(水) 02:03:24ID:???
板によるけどそれが何?
0769nobodyさん2007/11/14(水) 02:07:24ID:???
なぜお前らは下らないことを言うな
0770nobodyさん2007/11/14(水) 02:43:19ID:???
>>766
eregよりpregを使えと公式よりアナウンスがありますが・・・?
0771nobodyさん2007/11/14(水) 02:55:49ID:???
>>766
元々POSIX系の正規表現を覚えてる人がそのまま書式を使える。
0772nobodyさん2007/11/14(水) 03:02:57ID:???
レベルひっく・・・

0773nobodyさん2007/11/14(水) 03:10:22ID:???
perlと互換があるからつかっときゃいいんだよクズ
0774nobodyさん2007/11/14(水) 03:14:33ID:???
こんばんは。



セックスレス中高年です
0775nobodyさん2007/11/14(水) 03:14:44ID:???
PHPがPerlの真似をする必要なんてねーだろボケナス
0776nobodyさん2007/11/14(水) 03:19:15ID:???
>>766は>>744を見て"ereg"のメリットを聞いてるんだろ
逆に捉えてる奴がいるな
0777nobodyさん2007/11/14(水) 03:22:09ID:???
ここはぜんぶnobodyさんの独り言なんだから疑問系のあとに答える小言をいってもいいだろ!
0778nobodyさん2007/11/14(水) 03:48:29ID:???
まず、eregのが全然遅い
0779nobodyさん2007/11/14(水) 04:17:16ID:X7vOzj33
>>706
ズバリ、そういうのを求めてました。
ありがとうございました。
0780nobodyさん2007/11/14(水) 05:08:11ID:???
PHPは所詮Perlの資産におんぶにだっこってことか
0781nobodyさん2007/11/14(水) 08:39:18ID:???
スレタイ読めない奴よりはマシだろ
0782nobodyさん2007/11/14(水) 10:08:04ID:yU5FBGbV
mysqlを使う場合、
PHPのインストールより必ず先に
mysqlをインストールしておかなければ駄目ですか?
後からmysqlをインストールしたり、入れ直したりしても正常に動くのでしょうか?
0783nobodyさん2007/11/14(水) 10:26:56ID:???
問題なし
0784nobodyさん2007/11/14(水) 11:16:06ID:???
>>778
だからeregのデメリットじゃなくメリットを聞いてるんだっつの。
何故こんな関数が用意されてるのか理由を言え。
0785nobodyさん2007/11/14(水) 11:33:15ID:???
>>784
マニュアル嫁よwwww
思いっきり書いてあるじゃんwww
お前にはそれすら調べる能力がないってのか?w
0786nobodyさん2007/11/14(水) 11:33:57ID:???
pregと比べたらメリットもデメリットも別にないだろ
速度面なんて大量の処理してもそこまで変わらんし
好きなように好きなほうを使えでFA

まぁpregと強引に比べてメリットいえといったらデリミタがいらんぐらいか
0787nobodyさん2007/11/14(水) 11:55:24ID:XrAX72Bt
CSRF対策というほどのこともないが、二重送信対策も兼ねてセッションでワンタイムチケットを管理しようと思い、
ざっと検索してみたところ↓を見つけたのだが
http://www.phppro.jp/phptips/archives/vol21/
この中でわざわざmd5の戻り値をhtmlspecialcharsしてるのはなぜ?
md5の結果って16進(の文字列)だから、別にエスケープする必要はないと思うんだけど……。

自分、なんかボケかましてますか?(;´∀`)
0788nobodyさん2007/11/14(水) 11:57:10ID:???
>>787
ほんとにmd5しか入らない値なら、やる必要ナッシン。
0789nobodyさん2007/11/14(水) 12:03:46ID:???
出力時にやってるからお約束みたいなもんだろ
0790nobodyさん2007/11/14(水) 12:35:39ID:???
CSRF対策って何するもんなんですか?

htmlspecialchars
mysql_real_escape_string
strip_tags
あとは確認→完了の時とかにもう一度チェック。

form系のところはこれをやってます。

他にどんなことするといいんでしょうか?
0791nobodyさん2007/11/14(水) 13:39:10ID:???
>>788
>>789
ですよねーw 安心しました(苦笑)

>>790
「ぼくはまちちゃん」でググるべし。
まぁ、ワンタイムチケットはCSRF対策とサーバー側での二重送信対策の両方、という意味合いが強いと思う。
感想だけどね。
0792nobodyさん2007/11/14(水) 13:39:47ID:???
sjisまたはeucの文字コードを使用してる場合はそんな対策しても無意味だけどね
0793nobodyさん2007/11/14(水) 13:49:54ID:???
文字コード繋がりでSJISは論外(携帯用って場合あるけど)として
EUCとUTFってどっちがオススメ? 将来的にUTFがスタンダードになるのかな。
0794nobodyさん2007/11/14(水) 14:02:59ID:???
>>792
……なして文字コードが関係してくるん?
まぁ、自分も文字コード回りで難儀した経験は何度もあるが
0795nobodyさん2007/11/14(水) 14:04:22ID:???
>>792
なぜ論外?
0796nobodyさん2007/11/14(水) 14:50:29ID:???
男は黙ってutf8
07977942007/11/14(水) 14:57:57ID:???
>>796
いや、方針としては確かにそのとおりだとは思うが(;´∀`)

別に「SJISは論外」とまでは思えないし、CSRFに文字コードが関係してくる理由もちょっと思いつかないんだが……。
0798nobodyさん2007/11/14(水) 15:12:37ID:???
男は黙ってutf8
0799nobodyさん2007/11/14(水) 15:40:29ID:???
sjisとeucの場合、一度utf-8に文字エンコーディングして、また戻さないとだめなんだがね。
わかんないやつはこのスレの過去ログ嫁よ
0800nobodyさん2007/11/14(水) 15:45:10ID:???
男は黙ってutf8
0801nobodyさん2007/11/14(水) 15:47:58ID:???
もう既出の問題なのに知らない奴が多すぎてワロタ
0802nobodyさん2007/11/14(水) 15:49:08ID:???
男は黙ってutf8
0803nobodyさん2007/11/14(水) 15:54:43ID:???
>>792
CSRFと文字コードは全く関係ない。

もしかしてお前、CSRFとXSSを混同してるんじゃないかw
知ったかは恥かくぞwww
0804nobodyさん2007/11/14(水) 16:00:57ID:???
XSSの対策にもなるがCSRFにも有効なのに知らないおまえの無知さに乾杯
0805nobodyさん2007/11/14(水) 16:04:47ID:???
>>799と>>804が何を言ってるのか全然わからないよ
08066892007/11/14(水) 16:21:10ID:???
自己解決しました。mem_imageを追加し、file_get_contentsで
読み込むようにしました。ただしインターレース非対応なのでもとの画像(cgi)を
インターレースOFFに変更することに・・
<?php
define('FPDF_FONTPATH','font/');
require('fpdi.php');
require('mem_image.php');
$GLOBALS['EUC2SJIS'] = false;
$pdf =& new fpdi() & new mem_image();
$pagecount = $pdf->setSourceFile("test.pdf");
$tplidx = $pdf->ImportPage(1);

$pdf->addPage();
$pdf->useTemplate($tplidx,5,5,200);

//画像をcgiから読み込み
$url = 'http://www.hoge.com/cgi-bin/hoge.cgi?dt1=1+2+3+4';
$img = file_get_contents($url);
$pdf->Image('var://img', 20, 20, 100, 50, 'PNG');
// 表示
$pdf->Output();
?>
0807nobodyさん2007/11/14(水) 17:28:55ID:???
>>806
報告乙。よくがんばった。かn
0808武田2007/11/14(水) 18:36:17ID:ZSW+thOc
質問です。

人気度を★の数で表示したいんです。
レートは5点満点で、小数点以下2桁まであります。 (例:4.38)
今現在は数字でのみ表示されています。

これを例えば
 
4.38なら ★★★★☆
4.56なら ★★★★ ★←この星は実際には半分黒で半分白になります。

1でで割った数が黒★にして残りを白☆にして、端数が0.5以上1未満で白黒半分の星を表示したいと
考えてます。

いいアイデア、または関数はありますか?

ヨロシクおねがいします。
0809nobodyさん2007/11/14(水) 18:45:42ID:2CaJ9ydK
ちょっと皆さんに教えて下さい!
現在会員制のサイト(携帯のみ)をPHPで組もうとしています。
んで会員用ページはURLにセッションIDを埋め込んでみたのですが
これだとブックマークをしてなかった場合、IDを忘れただの何だのと
面倒な事が起こり得ますよね?

そこで、個体識別番号を取得して製造番号部分をそのままURLに
埋め込めば完全な一意なURLになりますよね?
ブックマーク忘れても、もっかい個体識別番号を取得すればいい訳だし。
FOMAカードの製造番号なら機種変更してもOKだし。

この方法はどうですか?何か問題ありますか?
URLに製造番号が入るのはよろしくありませんか?
0810nobodyさん2007/11/14(水) 18:45:56ID:???
>>808
is_floatとifを使えば?
0811nobodyさん2007/11/14(水) 18:48:06ID:???
>>809
固体識別番号が取れない機種は無視ですか?
0812nobodyさん2007/11/14(水) 18:55:16ID:???
シリアルが取れないのは"面倒な手続き"をさせるとして、
URIに埋め込むならせめてmd5やcryptでハッシュ値とったやつにでもしろよな
08138092007/11/14(水) 19:16:02ID:2CaJ9ydK
>>811
DocomoのFOMAと新型AUは全部個体識別番号出せますよね?
基本、ニュータイプ専用サイトにするつもりです。

>>812
やっぱそれは倫理的な観点からですか?
0814nobodyさん2007/11/14(水) 19:18:42ID:???
つ個人情報
0815nobodyさん2007/11/14(水) 19:39:00ID:???
>>808
何がわからんのかがわからん
0816nobodyさん2007/11/14(水) 19:39:38ID:???
>>813
利用者も不安になるしね。ばれても使い道ないけど
08178092007/11/14(水) 20:04:32ID:2CaJ9ydK
了解です!
ではやっぱり一旦md5やcryptで暗号化する事にします!
とはいえmd5関数でFOMAカード製造番号(20桁)を暗号化すると32桁になりますよね。。
いくらなんでも長すぎる…。同一の20桁の暗号化は出来ないものか…。
0818nobodyさん2007/11/14(水) 20:14:36ID:???
登録フォーム作ってるんですけど、入力して確認ボタン押したら
確認画面になって、「戻って修正ボタン」押したら前の記入ページに戻って、
フォームに入力値が入ってる状態にしたいです。

で、セッション値があれば、value="$_SESSION['namae']"とすればいいと思うんですが、
登録完了後、再度登録フォームを開いたときに、登録したDBから前回登録した
値を拾って表示するとしたら、上記のやり方はまずい気がします。

この場合、「戻って修正ボタン」のリンクに ?rewrite=1 みたいなGETのパラメータつけて
その有無を確認してあればセッション値を表示てやり方でいこうと思うんですが、
大丈夫でしょうか?  みなさんああいうのはどうやってるんですか? 
良ければ教えてくださいお願いします。
0819nobodyさん2007/11/14(水) 20:14:51ID:???
>>817
いやまぁ、利用者側としては20も32も大して変わらないだろう。
0820nobodyさん2007/11/14(水) 20:43:59ID:???
>>810
具体的にはどんな感じになるのでしょうか?
0821nobodyさん2007/11/14(水) 20:53:24ID:???
>>820
ヒントもらったなら少しは自分の頭で考えてみようぜ
0822nobodyさん2007/11/14(水) 21:02:05ID:???
考える頭がないなら条件文だけでやれ

if ($float < 0.5) {
星0個
} elseif ($float >= 0.5 && $float < 1.0) {
星0.5個
} elseif ($float >= 1.0 && $float < 1.5) {
星1.5個
}
08238082007/11/14(水) 21:11:54ID:???
自己解決しましたので、答えになってないお前らのくだらないレスは不要です。
0824nobodyさん2007/11/14(水) 21:47:35ID:???
>>823
毎度そんな事してて哀しくならない?
早くイイことあると良いね。
0825nobodyさん2007/11/14(水) 21:50:35ID:????2BP(0)
include_pathで指定したフォルダの上位フォルダのファイルを読み込みたいのですが、

include_once("./hoge.php");

と書いてもエラーになるんですが、何かよい方法ないでっしょか?
0826nobodyさん2007/11/14(水) 21:51:29ID:???
エラーを読む
0827nobodyさん2007/11/14(水) 21:52:37ID:???
>>808
0.5だったら星が半分黒、半分白ってのがほしいわけ?
0.3だったら星が30%黒、70%白ってことでOK?

だったらGD使うしかないじゃねーの?
08288252007/11/14(水) 22:00:19ID:????2BP(0)
自己解決しました。
「./ 又は ../ で始まっている場合は、 実行しているファイルのあるディレクトリからの相対パス 」
include_pathを複数していして対応したいと桃います。
08298082007/11/14(水) 22:03:07ID:ZSW+thOc
>>822
有難うございます。
たしかに
if ($float < 0.5) {
print "☆☆☆☆☆";
} elseif ($float >= 0.5 && $float < 1.0) {
print "★半分.gif";
} elseif ($float >= 1.0 && $float < 1.5) {
星1.5個
}
} elseif ($float >= 1.5 && $float < 2.0) {
星2個
}
} elseif ($float >= 2.0 && $float < 2.5) {
星2.5個
} elseif ($float >= 2.5 && $float < 3.0) {
星3個
} elseif ($float >= 3.0 && $float < 3.5) {
星3.5個
}
} elseif ($float >= 3.5 && $float < 4.0) {
星4個
}
} elseif ($float >= 4.0 && $float < 4.5) {
星4.5個
}
} elseif ($float >= 4.5 && $float < 5.0) {
星5個
}
こんな感じでやったらできそうですね。ただもうすこしスマートにできそうなものでしょうか?
0830nobodyさん2007/11/14(水) 22:07:41ID:???
>827

そうですね。そうすればベストなんですが、素人には難しいですよね?

>823
????
0831nobodyさん2007/11/14(水) 22:14:51ID:???
>>829

$star = floor($rate); // 星の数

if( floor($rate * 2) % 2 ){
 // 星半分の処理
}
08328312007/11/14(水) 22:40:00ID:???
条件式の中のfloorは不要だったわ
0833nobodyさん2007/11/14(水) 22:44:50ID:???
>>830
GD使うのが無理なら
CSSで塗る
08348082007/11/14(水) 22:48:09ID:???
>>831

ありがとうございます。 floorっていう小数点以下を切り捨てられるのがあるんですね。
ちょっとチャレンジしてみます。

0835nobodyさん2007/11/14(水) 22:56:10ID:???
808のようなシステムを作ってる人間がfloorもしらんのか・・・
08368182007/11/14(水) 23:03:06ID:???
すみません、どなたか気が向いたら>>818の質問も回答お願いします
0837nobodyさん2007/11/14(水) 23:19:56ID:???
登録フォームにDBからの値なんて表示する必要ないじゃん
08388182007/11/14(水) 23:31:01ID:???
>>837
ありがとうございます。DBからの値を表示したいと思ったのは、
修正したいと思ったときに、すぐ修正できると思ったからです。通常の
1)情報を表示 -> 2)「この情報を修正する」 -> 3)修正フォームで修正
という流れが面倒かなぁと思ったので・・
0839nobodyさん2007/11/14(水) 23:42:59ID:???
訳が分からん・・。登録フォームと編集フォームを2つ用意すればいいじゃん。
0840nobodyさん2007/11/15(木) 00:00:17ID:???
hiddenかgetで持ちまわせばいいんじゃね?
0841nobodyさん2007/11/15(木) 00:01:51ID:???
>>840
それはNGな例
0842nobodyさん2007/11/15(木) 00:02:20ID:???
>>838
やりたいことがよく分からんが、最初の登録フォームを
出すところでまずセッション変数を見てデータがあれば
それをフォームに入れ、なければDBに登録データがある
か調べて、あれば取ってきてフォームに入れ、DBにも
無ければ空のままフォームを表示する。
で、セッション変数に新規登録なのかセッション変数orDB
からもらったデータの修正なのか書き込んでおく。
確認画面を出したところで内容をセッション変数に入れ
ておく。
気が済むまで修正したら、新規か修正どちらのパターン
で登録したいのかによって分岐してINSERTだのUPDATE
だのする。

レベル低い奴の回答ですまんが。
0843nobodyさん2007/11/15(木) 00:07:32ID:???
>>842の6-7行目意味不明だった。
要するにINSERTしたいのかUPDATEしたいのか
をセッション変数に置いてDBへの書き込み時に
参照すればいいのではないかと考えた次第。
0844nobodyさん2007/11/15(木) 00:36:35ID:???
>>841
なんでNGなの?
08458182007/11/15(木) 00:46:30ID:???
みなさんほんとにありがとうございます。
情報が後出しみたいで申し訳ないですが、会員制サイトのログイン後の
自己紹介編集ページのあいさつ文を記入するフォームをイメージしてくれたら
いいかもしれないです。
ちょっと、自分でいろいろやってみます。本当にありがとう
0846nobodyさん2007/11/15(木) 01:44:00ID:???
もっと罵倒しながら質問と回答を出していかないと2ちゃんらしくない
0847nobodyさん2007/11/15(木) 01:56:27ID:???
登録する作業だけなら>>840でいいとおもうけどね
持ちまわす情報も登録用の情報だけでしょ?
カードとか重要な情報ならhttps使うだろうし
そこまで登録作業をセキュアにする必要はないと思う

ログインはまた別だけど
08488472007/11/15(木) 01:59:56ID:???
>>845見てなかった吊ってくる
0849nobodyさん2007/11/15(木) 02:26:42ID:???



おい、今俺のことバカっていったやつ出てこいっ!

0850nobodyさん2007/11/15(木) 02:39:12ID:????2BP(234)
test
■ このスレッドは過去ログ倉庫に格納されています