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

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

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


【PHP】下らねぇ質問はID出して書き込みやがれ 96
http://pc11.2ch.net/test/read.cgi/php/1275032024/

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

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0645nobodyさん2010/09/12(日) 21:44:13ID:???
横槍だけど
start_session()でセッション使って値保持するのと
setcookie()でクッキー使って値保持するのって
どう使い分けるべきなのかな?

セキュリティを考えて常にstart_session使うべき?
0646nobodyさん2010/09/12(日) 22:47:40ID:hAWvhX9i
>>644
え、そうなんですかorz・・・

>>639の A.php というのは日記を記述するページ、 B.php というのは写真とそのEXIF情報を表示するための
ページだったりします。日記の A.php と写真の 0001.jpg は同一フォルダにあります。

<a href="B.php?shashin=0001.jpg">リンク</a>

みたいな感じでどの写真を表示させるかは B.php に渡すことが出来るんですが
肝心の写真のフルパス情報をどうやって渡して良いか悩んでいるわけです。
他の日記はまた別のフォルダに保存していたりするので。

セッションを使えば A.php のフルパス情報を B.phpに渡すこともできますが
セッションの受け入れを拒否している人がいるとこの方法でもダメですよね・・・
0647nobodyさん2010/09/12(日) 22:58:34ID:???
shashinにフルパスつければよくね?
0648nobodyさん2010/09/13(月) 10:23:43ID:qMibvBR2
php5.3でphp_xdebugによるデバッグが上手くいきません

zend_extension_tsとextension
xdebugの各種設定をしているのですがphpinfo()でxdebugがみあたらないのです

5.2だと上手くいくのですが何か見落としてる箇所はありますか?
0649nobodyさん2010/09/13(月) 14:13:02ID:/s7P18Wx
PHPで、カッコの中にデータを表示させようとしても表示されません。
$html = file_get_html('echo $product');
上記のような場合でもカッコの中にデータを表示させる方法はありますでしょうか?
0650nobodyさん2010/09/13(月) 14:22:35ID:???
$productの中に何が入ってるのか知らんが、
$html = file_get_html($product);
こうじゃダメなのか?
0651nobodyさん2010/09/13(月) 14:31:26ID:/s7P18Wx
以下の記述をすると
$html = file_get_html($product);
このようなエラーメッセージが出ます。
Parse error: syntax error, unexpected T_ECHO, expecting ')'


コレだけの記述だと正常にデータを表示します。
echo $product;

zencartを使用
0652nobodyさん2010/09/13(月) 14:38:43ID:???
こうだろ
$html = str_get_html($product);

file_get_htmlは引数をURLに取るんじゃないのか?
PHP Simple HTML DOM Parserの話だよね?
0653nobodyさん2010/09/13(月) 14:59:31ID:/s7P18Wx
ありがとさーん。
0654nobodyさん2010/09/13(月) 19:25:48ID:Lm2I1b13
>>647
> shashinにフルパスつければよくね?

それも一つの解決方法なんですが写真の数が多いため全てのフルパスを付けるのは
面倒なこと、将来サーバーを乗り換えたときにフルパスだとディレクトリ名が変更になった場合
全て修正する必要性がでてくるためできればフルパスは含めない方法を探していたわけです。

余談ですがクッキーの受け入れを拒否している端末でも
PUTやGETでA.phpのフルパスをB.phpに渡すことって出来ないですかね・・・
0655nobodyさん2010/09/13(月) 19:49:04ID:???
>>648
Xdebug Documentation - Install
http://xdebug.org/docs/install
より引用

-----
From PHP 5.3 onwards, you always need to use zend_extension and not zend_extension_ts.
-----
0656nobodyさん2010/09/13(月) 21:43:55ID:???
>>654
http://jp2.php.net/manual/ja/function.output-add-rewrite-var.php
これ使えばいい
0657nobodyさん2010/09/13(月) 22:12:39ID:Lm2I1b13
>>656
> http://jp2.php.net/manual/ja/function.output-add-rewrite-var.php
> これ使えばいい

ありがとうございます。
まだ簡単に調べた段階ですが、

output_add_rewrite_var('var', 'value');

関数は画像リンクに限らずページ内に存在するありとあらゆるリンクの最後に ?<var>=<value> を
付与してしまうとのことです。※リンクだけでなくフォームにも勝手に追加しちゃう?!

自分のサイトに訪問してくれた方が画像リンク以外のリンクをクリックしてもURLの最後に意味不明な
?<var>=<value> が付くことになるわけですが混乱したり不快に思ったりしないでしょうか(^-^;)?

あと余談ですが訪問者のブラウザ設定でcookieの売れ入れの有無にかかわらずこの関数は
有効に機能すると考えて差し支えないでしょうか?
0658nobodyさん2010/09/14(火) 11:56:30ID:v/2zN57l
フルパスを渡すってサイトトップからのパスではなく
サーバのTOPからのパス?

なぜそれを渡さなければならないかがわからない。
サーバのTOPからのサイトトップのパスを共通定義にでもしておいて
それ使ってプログラム書けば、
サーバ移転した時もその一行書き換えればいいんじゃないの?
0659nobodyさん2010/09/14(火) 14:23:01ID:???
クラスについての質問ありませんか?
0660nobodyさん2010/09/14(火) 14:43:54ID:wQYT6X6V
どういう時にクラスを使うべきですか?
自作関数をincludeするのとどこが違うのでしょうか?
0661nobodyさん2010/09/14(火) 14:44:44ID:???
くらすってなんですか?
0662nobodyさん2010/09/14(火) 15:11:22ID:???
>>660
・コードの保守が楽になります
・複数人での分担作業が楽になります
・データとロジックを分けることができます

class Keisan
{
public function tashizan($a, $b){
return $a + $b;
}

$keisan = new Keisan();
echo $keisan->tashizan($a, $b);
0663nobodyさん2010/09/14(火) 15:12:15ID:???
こういう風に書くこともできます

class Keisan
{
public static function tashizan($a, $b){
return $a + $b;
}

echo Keisan::tashizan($a, $b);
0664nobodyさん2010/09/14(火) 15:12:56ID:???
class Keisan
{
public function tashizan($a, $b){
return $a + $b;
}

$keisan = new Keisan();
echo $keisan->tashizan(5, 10);
0665nobodyさん2010/09/14(火) 16:12:27ID:???
単純な例出しても、
「え?なんでそんな面倒なことしなきゃいけないの?」ってなるだけだからなぁ
0666nobodyさん2010/09/14(火) 16:16:48ID:???
クラスの書き方と使い方を覚えても
オブジェクト指向がなんたるかを理解してないと
不思議なコードになるから理解できてないうちは使わんほうがいいよ
0667nobodyさん2010/09/14(火) 17:05:17ID:???
■data.php
$a=1;
$b=4;

■keisan.php
class Keisan
{
public static function tashizan($a, $b){
return $a + $b;
}

■program.php
include "data.php";
include "keisan.php";
echo Keisan::tashizan($a, $b);
0668nobodyさん2010/09/14(火) 17:20:33ID:???
何の意味もない例でした
0669nobodyさん2010/09/14(火) 19:01:21ID:???
class BBSWrite {
}

class BBSRead {
}

class 2ch {
 function write(){};
 function read(){};
}

とかクラス設計がいまいち分からないね
0670EM114-48-11-217.pool.e-mobile.ne.jp2010/09/14(火) 19:04:32ID:vtvQ2dJO
数ヶ月ぶりに規制解除されたことだしここのksユーザー共の偏差値を上げる為に俺も人肌脱いでやるか
0671nobodyさん2010/09/14(火) 19:06:30ID:???
また荒らす気かよ…
0672nobodyさん2010/09/14(火) 19:07:36ID:???
すぐ規制されていなくなるからスルーでおk
0673nobodyさん2010/09/14(火) 19:42:05ID:???
たぶん君らのレスも無駄だし不要かもしれないよね
0674nobodyさん2010/09/14(火) 19:46:42ID:J3MSx4E4
test
0675nobodyさん2010/09/14(火) 20:29:38ID:???
>>669
俺も俺も。その構造は大体理解できるんだけど
それからどうやって使うのかがいまいちわからないね
インクルードで呼び出すと思うんだけどさ。
複数あると混乱するよね
0676nobodyさん2010/09/14(火) 20:38:31ID:???
>>669
とりあえずオレならそんな設計にしないことは確かだ
0677nobodyさん2010/09/14(火) 20:42:29ID:???
とりあえずファイル一つにつき1クラスだな
判りやすいから
フレームワークの構造考えたらどう使えばいいかわかるんでないかい
0678nobodyさん2010/09/14(火) 20:50:01ID:lx9NhRJD
次スレ誘導

【PHP】下らねぇ質問はここに書き込みやがれ 98
http://pc5.2ch.net/test/read.cgi/php/1099322141/
0679nobodyさん2010/09/14(火) 20:59:57ID:???
わかりました。勉強にもなりますのでぐぐってみます。
0680nobodyさん2010/09/14(火) 21:09:55ID:???
それだが、実際に組んでベンチ取るとかしてみた方がいいみたいだぞ?
環境にも左右されるし一概に全部の環境に当てはまるとは言い切れないし
0681nobodyさん2010/09/14(火) 21:32:29ID:???
ですよね。
きっと誰かが実装したと思うので、
それを活用したいな、と。
06826462010/09/14(火) 21:42:10ID:xcl5dZPT
>>658
多数の画像リンクを全てサイトトップからのパスで記述するのは労力的にも厳しいです。
その労力を軽減するのがプログラムの役割だと思うのですが現在のPHPだと厳しそうですね・・・
0683nobodyさん2010/09/14(火) 22:03:49ID:???
$_FILEでアップロードされたファイルを取得して
クライアント側からアクセスできるパスに保存してそのパスを返せばいいんじゃね?
0684nobodyさん2010/09/14(火) 22:16:02ID:???
B.phpを同じ階層に置けばいいのでは?
0685nobodyさん2010/09/14(火) 22:17:56ID:???
>>642
なるほど。
06866462010/09/14(火) 22:19:59ID:xcl5dZPT
>>683
日記に付随する画像ファイルは日記と一緒にアップロードしたきりです。

>>684
日記(B.php)は日記毎に違うフォルダに格納してたりします・・・
06876462010/09/14(火) 22:34:20ID:xcl5dZPT
余談ですが>>656さんが紹介してくださった

output_add_rewrite_var('var', 'value');

という関数。これはURLに'var'と'value'の組を付与するという形で別ページのPHPスクリプトに
変数を渡すことを実現しています。あとは受け手のPHPスクリプトの中でGET['var']を指定すれば
'value'の値を入手することが出来る仕組みです。

output_add_rewrite_var() 関数はページ内のありとあらゆるリンクに'var'と'value'の組み合わせを付与
してしまいます。そこでGETの代わりにPUTで変数の値を受けることが出来る関数というのは無いでしょうか?
それがあればリンクを(見かけ上)汚さずに変数の組を別ページに渡すことができるようになるはずです。
0688nobodyさん2010/09/14(火) 22:49:23ID:???
>>686
記事ごとにB.phpを作って新しいフォルダに入れてるんですか?
そういう作りはそもそも避けるべきかと。
0689nobodyさん2010/09/14(火) 22:52:22ID:???
>>686
そういうときこそクラスで管理する癖をつけたほうがよい
06906462010/09/14(火) 23:00:51ID:xcl5dZPT
>>689
クラス・・・ですか
クラスで管理すると別ページに変数セットを渡したりすることができるようになるんでしょうか?
0691nobodyさん2010/09/14(火) 23:05:06ID:???
yes
0692nobodyさん2010/09/14(火) 23:15:51ID:???
>>690

class Sample
{
public $number = 1;

public function view()
{
return "ナンバーは". $this->number. "ですね!";
}

}

$obj = new Sample();
echo $obj->$number;
echo "\n";
$obj->$number = 1000;
echo $obj->view();
0693nobodyさん2010/09/14(火) 23:19:46ID:???
訂正

class Sample
{
public $number = 1;

public function view()
{
return "ナンバーは". $this->number. "ですね!";
}

}

$obj = new Sample();
echo $obj->number;
echo "\n";
$obj->number = 1000;
echo $obj->view();
0694EM111-188-77-232.pool.e-mobile.ne.jp2010/09/14(火) 23:21:21ID:o4piNMzk
692=693=名前欄参照
0695nobodyさん2010/09/14(火) 23:25:01ID:???
>>691
>>690の言ってる意味合いから言えば無理だろw
0696nobodyさん2010/09/14(火) 23:39:01ID:???
PHP5神過ぎるな
0697nobodyさん2010/09/14(火) 23:41:51ID:???
>>646
リファラとかCOOKIE使えない奴はエラーページじゃだめなの?
それがずっと疑問だったんだ
0698nobodyさん2010/09/14(火) 23:50:44ID:???
それじゃ訪問者いなくなるぞ
0699nobodyさん2010/09/15(水) 00:03:31ID:???
ブックマークできないな
0700nobodyさん2010/09/15(水) 00:04:25ID:???
これって何か問題があって出来なくなってるの?
多重継承使えば同じ事できるけど、コードが冗長になるのが気に入らない。。。
0701nobodyさん2010/09/15(水) 00:08:54ID:???
>>700
何の話?
0702nobodyさん2010/09/15(水) 00:10:03ID:???
>>700
PHPはオブジェクト指向言語じゃないけど、
多重継承なんか使わなくても問題ない。
0703nobodyさん2010/09/15(水) 00:13:47ID:???
条件
COOKIE、リファラ使えなくても表示したい
渡されるパラメータ改変されてアクセスされても表示したい

こういう謎な状態
0704nobodyさん2010/09/15(水) 00:19:15ID:???
今夜はクラスきちがいが沸いてるのか・・
07057032010/09/15(水) 00:20:59ID:???
自己解決しました。
0706nobodyさん2010/09/15(水) 00:22:57ID:???
なぜ質問でもないのに勝手に閉じられるw
状況説明してやってるだけだろks
07077032010/09/15(水) 00:37:24ID:???
ごめんなさいozr
0708nobodyさん2010/09/15(水) 08:29:41ID:1uGBmNKk
IEやchromeでセッションが保存されない問題ではまっております。
firefoxだと問題なく動きます。

ドメイン名にアンダーバーはないので、ドメイン名が原因ではなさそうです。

開発環境はcakePHPなのですが、なにか原因となりそうな部分、
もしくはやってみたらよさそうなことなどないでしょうか?

どうぞよろしくお願いします。
0709nobodyさん2010/09/15(水) 09:53:51ID:???
cookieの中身をwatchする
0710nobodyさん2010/09/15(水) 10:03:55ID:???
今時cakephp(笑い)
0711nobodyさん2010/09/15(水) 10:29:37ID:???
それを言い出すといまどきPHP(笑)なわけだが
0712nobodyさん2010/09/15(水) 10:30:00ID:???
そういうのはやめようや
0713nobodyさん2010/09/15(水) 10:35:26ID:???
とりあえずwiresharkかなんかで通信のぞいて、cookie関係のヘッダの
やりとりを観察してみたらどうだ?
0714nobodyさん2010/09/15(水) 10:39:25ID:???
そこ突っ込むといまだからPHPだろう
いまどきPerl,使うのはオッサンぐらい
Rubyは好き物が使ってるだけ
Pythonは元々CGIを行うために生まれたものじゃないし
0715nobodyさん2010/09/15(水) 11:28:53ID:???
>>714
他言語を貶すような事は書かないでくれ

perlがオッサンというのはちょっとずれてる
YAPCもPHPカンファレンスも年齢層は変わらない。

perlの方が日本発の携帯向けのフレームワークも多いし
今でも主流の一つ。

greeはPHP(藤本さんにはお世話になりました)
mixi・DeNAはperl

案件数ではLLの中ではPHPが一番多い
0716nobodyさん2010/09/15(水) 11:32:31ID:???
零細企業ならともかくいつまでもPHP使ったシステムのままってのはどうなんだ・・・
greeも儲かってんだからさっさとシステムを改修したほうがいい
そのうち積むぞ
0717nobodyさん2010/09/15(水) 11:34:51ID:???
よかったら積む理由を教えてくれないか
時代遅れだけは簡便な
0718nobodyさん2010/09/15(水) 11:39:27ID:???
Yahooのような大規模サイトでもフレームワーク使っててもあのクオリティなのに
どういう場合に積むのかこりゃ気になるな
0719nobodyさん2010/09/15(水) 11:47:54ID:???
ニフティでもCakePHPで構築されたコンテンツもあるけどね
どんだけPHPをなめてるんだろうw
0720nobodyさん2010/09/15(水) 11:56:19ID:???
処理が増大すると遅くなるとか
アクセス過多でレスポンスが遅くなるってのは
SpeedyCGIじゃなくてなんだっけか名前忘れたけど
それで改善できるんだっけ
0721nobodyさん2010/09/15(水) 11:57:05ID:???
処理が増大すると遅くなるのはPHPに限らないと思うけど
0722nobodyさん2010/09/15(水) 11:58:44ID:???
PHPの処理機構がとろくて
重アクセスでうんちゃらって記事を見たような
0723nobodyさん2010/09/15(水) 12:01:05ID:???
eAccelerator
0724nobodyさん2010/09/15(水) 12:07:59ID:???
APCとeAcceleratorどっちがいいの?
0725nobodyさん2010/09/15(水) 12:28:00ID:???
記事が書いてたからこうだって洗脳されたやつが1名いるなw
0726nobodyさん2010/09/15(水) 12:29:37ID:???
んじゃおまえがまともな記事かいて公開してやれ
0727nobodyさん2010/09/15(水) 12:31:33ID:???
誰がどんな記事書こうが、本書こうが、
洗脳されたの一言で済まされたら書く意味がない。
このスレも回答者に洗脳されたの一言で済まされるから存在意義がない。
0728nobodyさん2010/09/15(水) 12:33:06ID:???
重いと言われるsmartyもゲーム業界で利用されてるのにねw
記事マンセーおつかれ
0729nobodyさん2010/09/15(水) 12:42:41ID:???
>>727
誰が記事を書くかは自由だが自分が試したこともないのにこれは記事に書いてあるからこうだって自己主張するのは違うかな
0730nobodyさん2010/09/15(水) 13:13:06ID:???
実際レスポンスってプログラムっていうより、
DBがボトルネックになることがほとんどなんじゃないの?
0731nobodyさん2010/09/15(水) 13:20:59ID:???
smartyが遅いのは毎回コンパイルするように設定してるからだろ
0732nobodyさん2010/09/15(水) 13:32:39ID:???
>>730
個人的にはDBと回線が多いかな

SQLをあまり知らない人が、1度のクエリで済むところを何度もクエリ発行
→それをPHPで加工とかして無駄に負荷がかかるというのも結構見る

DBに登録されている時間から24時間経ったかどうか調べるだけで
PHP側でmktime使ったりとかもよくある(INTERVAL 1 dayとかdatediffとか知らない)
(この程度なら体感できる差はでないけど)

あとは無駄に凝ったJavaScriptを書いて、クライアント側で負荷がかかるとかも多い
もちろんPHPは関係無い

PostgreSQLが未だに「VACUUMするだけで早くなった」というのが多いのと同様に
php.iniとhttpd.confの設定と、アクセラレータ使うだけで問題解決の場合も結構多い
0733nobodyさん2010/09/15(水) 13:59:16ID:tjiwRP0q
要は道具は人の使いようによっていくらでも
かわるさ。
別にPerlだろうがPHPだろうがRubyだろうがJavaだろうが
好きなものを使えばいい。
0734nobodyさん2010/09/15(水) 14:03:18ID:???
木槌で金槌を叩くんですね
0735nobodyさん2010/09/15(水) 14:34:48ID:???
高木先生のサニタイズするなをどう捉えたのか分からないがまったくサイニタイズしないで出力するバカが新人にいてクソワロタ
0736nobodyさん2010/09/15(水) 14:36:06ID:???
サニタイズするなじゃなくてサニタイズ言うなっていう主張だったはずだが
0737nobodyさん2010/09/15(水) 15:31:08ID:???
サンプル見て書いたんだけど、なんか動かないんだけど???

<?php

if(a$ = 1){
 print "a$ は " + a$ + " です。":
}then{
 exit():
}else{
 b$ = *a:
 a++:
 print a:
}

?>
07387372010/09/15(水) 15:35:18ID:???
解決しました
0739nobodyさん2010/09/15(水) 15:38:28ID:???
>>735
内部では生のまま扱ってsmartyで$default_modifiers使うのが
いまのとこ俺としては一番楽だな。

入り口でエスケープ加工とかすると長さ調べたりといった処理で
わけわかんなくなってだめだわ。
0740nobodyさん2010/09/15(水) 15:44:19ID:???
解決してません。何で動かない???
0741nobodyさん2010/09/15(水) 15:45:25ID:???
パスワードをばれないようにしたいのですが
セッションに格納したらバレませんか?
0742nobodyさん2010/09/15(水) 15:46:44ID:???
>>737
すごく簡単な事だけど

スレのルールを守らない質問には答える義務はありません
0743nobodyさん2010/09/15(水) 15:50:07ID:???
義務とかどうでもいいんだけど、教えてよ!!
0744nobodyさん2010/09/15(水) 15:51:52ID:???
>>3
■ このスレッドは過去ログ倉庫に格納されています