トップページ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カテゴリ)の各スレで
0724nobodyさん2007/11/13(火) 20:08:38ID:???
>>722
負荷のみを軽減するなら無駄を減らすこと。
0725nobodyさん2007/11/13(火) 20:09:09ID:???
>>723
呼んだ?
0726nobodyさん2007/11/13(火) 20:11:15ID:???
>>723
バカ?

0727nobodyさん2007/11/13(火) 20:11:45ID:???
>>723
バカ
0728nobodyさん2007/11/13(火) 20:13:48ID:hvvlgRN4
Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0

Fatal error: Unknown: Failed opening required 'C:ディレクトリ&ファイル名' (include_path='.;C:ディレクトリ&ファイル名') in Unknown on line 0

とエラーが表示されるんですが、どうしたらなおりますか?
お願いします。
0729nobodyさん2007/11/13(火) 20:14:37ID:???
>>728
調べてからこい
0730nobodyさん2007/11/13(火) 20:21:55ID:hvvlgRN4
>>729
ネットでいろいろ調べたが、解決できなかったのでここにきました。
0731nobodyさん2007/11/13(火) 20:24:53ID:???
>>728
バカ?
0732nobodyさん2007/11/13(火) 20:25:03ID:???
>>730
php使うの諦めたら?
0733nobodyさん2007/11/13(火) 20:26:33ID:???
>>728
ファイルが無い
0734nobodyさん2007/11/13(火) 20:26:46ID:???
>>728
全然調べてないでしょ?
ファイルが見つからないって事だから、パスが通るようにすれば解決。
0735nobodyさん2007/11/13(火) 20:31:05ID:JpvZapzB
横からだけど

> Unknown: (error detail) in Unknown on line 0

俺、こういう Warning や Fatal 見たことがないんですけど、
どういう状況で出るんですか?( in test.php on line 15 とかは見ます)

質問なのでID出します。
0736nobodyさん2007/11/13(火) 20:32:41ID:???
>>735
自演乙
0737nobodyさん2007/11/13(火) 20:32:52ID:hvvlgRN4
他のPHPファイルは正常に動作するんですが・・。
0738nobodyさん2007/11/13(火) 20:34:05ID:???


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

  やったる。



0739nobodyさん2007/11/13(火) 20:35:31ID:???
>>738
よう、バカ
0740nobodyさん2007/11/13(火) 20:36:42ID:???
エラーがでたPHPのソースだしてみればいいでしょうに
該当ラインわからんのなら全体像みておかしいところ見つけるしかないでしょう
0741nobodyさん2007/11/13(火) 20:50:37ID:???
>>737
エスケープシーケンスって知ってる?
ていうかスラッシュ使えよ
0742nobodyさん2007/11/13(火) 22:29:26ID:???
php.iniでの読み取りファイルのパスの設定をしていて、今のphp.iniを見たら
すでにpearへのパスが指定されてました
コレにsmartyへのパスを追加するのは以下の書き方でOKですか?
include_path = ".;c:\php\includes;c:\php\pear"
include_path = ".;c:\php\includes;c:\webroot\libs\Smarty\libs\"
0743nobodyさん2007/11/13(火) 22:49:49ID:???
>>742
いいんじゃない?pearは消えてるけど
0744nobodyさん2007/11/13(火) 23:05:55ID:Az3IX4ek

すみません。ご教授ください。
3000行程あるテキストファイルの処理を行っています。
全ての行を読み込み、必要な情報がある行に関しては、
if文とeregを使用して行番号を抽出しているのですが、
eregでのマッチングが出来てる行と出来ない行があります。
記述は以下のように、#や|、半角スペースなどが混じる文字列になります。

if ( ereg("aaa# /aaa/bbb | ccc ddd", $line[$i]) ) {
$test = $i;
} elseif ( ereg("eee# /fff/ggg | hhh iii", $line[$i]) ) {
$test2 = $i;

マッチングしない行が特に、他と大きく異なって
特別な記号などを使用している訳では無く原因がつかめません。
対処法をご教授頂けないでしょうか。よろしくお願いします。
0745nobodyさん2007/11/13(火) 23:07:00ID:???
ありがとうございます  pearと共存しようとしたら、
include_path = ".;c:\php\includes;c:\php\pear;c:\webroot\libs\Smarty\libs\"
これでいいんでしょうか?
0746nobodyさん2007/11/13(火) 23:28:49ID:???
smartyって使ったことないからしらないが、見えるとこにおいて良いのか?
0747nobodyさん2007/11/13(火) 23:31:20ID:???
出来ればドキュメントルート以下におかないほうが良い。
出来ない場合はアクセス制限を掛けるしかないかな。
0748nobodyさん2007/11/13(火) 23:32:58ID:???
別にテンプレートディレクトリだけでいいのでは?
0749nobodyさん2007/11/13(火) 23:51:40ID:otS5xGSl
データの入り方・構造について質問です。

WEBアンケートでチェックボックスを複数選択し、登録する時
複数選択箇所はforなどで1つずつ分けてDBなどに保存するべきでしょうか?
それとも「1,2,3」として、カンマ区切りで保存するべきでしょうか?
0750nobodyさん2007/11/13(火) 23:53:31ID:???
>>749
DBの話だから微妙にスレチじゃないかな。
普通はなるべく1回で済ますと思うけど。
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:???
自己解決しましたので、答えになってないお前らのくだらないレスは不要です。
■ このスレッドは過去ログ倉庫に格納されています