【PHP】下らねぇ質問はID出して書き込みやがれ 85
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/06/15(月) 22:53:52ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 84
http://pc11.2ch.net/test/read.cgi/php/1240835951/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0281nobodyさん
2009/06/30(火) 12:32:00ID:???0282nobodyさん
2009/06/30(火) 14:53:51ID:Y8wbyR8h「システムの記述ミスです。申し訳ありません。」
0283nobodyさん
2009/06/30(火) 16:35:46ID:???クエリやエラーの内容にもよるけど「エラーが発生しました。もう一度お試しください。」とか書くしかないじゃん
なるべく客が納得いく表現にケースバイケースで書き換えてさ。
あとはそのエラー画面に管理者宛にエラー内容書いたメール飛ばすプログラムでも組み込んで。
ユーザに「問い合わせてね♪」なんて今時みたことない
0284nobodyさん
2009/06/30(火) 22:27:17ID:???英語だけど
0285nobodyさん
2009/07/01(水) 05:29:44ID:gkTQFvwH0286nobodyさん
2009/07/01(水) 11:26:09ID:fkYaARDwチェックボックスで選択された商品の情報をDBからPHPで取得して
その情報を商品ごとに配列にしてそのままダウンロードする処理を作成したのですが
複数選択された場合のダウンロードはできませんでした。
Javascriptを使わなければならないというところまでは
調べたのですが、どういう記述をしたらいいか分からなくて
困っています。
よろしくお願いします。
JSのスレかPHPか迷ったのですがここに書かせて頂きました。
0287nobodyさん
2009/07/01(水) 11:42:24ID:???0288nobodyさん
2009/07/01(水) 11:52:55ID:4mfkCgDjつまり、1商品データを1ファイルとして扱い、
複数選択の場合は複数のファイルをダウンロードさせたいわけ?
0290nobodyさん
2009/07/01(水) 12:23:50ID:4mfkCgDj俺もやったことがないから正確なことは言えないが、ちょっと難しい
商品それぞれにダウンロードボタンを付けるのが妥当だと思う
お役に立てなくてごめんなさい
0291nobodyさん
2009/07/01(水) 12:27:59ID:???ZIP圧縮してそれを、適当なHTTPヘッダつけて送ればいいんじゃね?
0293nobodyさん
2009/07/01(水) 16:59:02ID:/Z34wosifailed to open stream: 許可がありません
というエラーが出ます。
おそらくアクセス権限のエラーと思い、ディレクトリのパーミッションを0755にしましたが、
まだこのエラーが出てしまいます。
他に何か原因があるのでしょうか
0294nobodyさん
2009/07/01(水) 17:16:31ID:???0755ってことはウニックス系鯖だな
で、パーミッション変更はFTPで行ったと・・
つまりFTPユーザとPHP実行(ウェブ)ユーザが別であると
したがって書き込むためには、0777にすればいいんじゃないかと
0295nobodyさん
2009/07/01(水) 21:11:34ID:???あるいは、アパッチ権限で動いている?
どっち?
0296nobodyさん
2009/07/01(水) 21:24:28ID:???パーミッションを0755にしたのだから、(ftpユーザと同じ)ユーザ権限で動いていれば
0755の「7」に該当するわけで問題無い。
それで問題あるという事は、PHPはapacheの権限で動いていると思われる。
0297nobodyさん
2009/07/01(水) 21:28:57ID:???0298nobodyさん
2009/07/02(木) 10:11:16ID:???0299nobodyさん
2009/07/02(木) 10:23:04ID:???もしサーバー自前でphpをはじめて動かすとかならフォルダのパーミッションも関係あるぞ
/home以下のユーザーフォルダのパーミッション/home/*/public_html のパーミッションが700になってる可能性がある、これも755にしてやらないと動かない
そもそもhello worldが動いているのか?何はできるが何になると出来ない等、問題の切り分けをしていかないと解決しないぞ
0300nobodyさん
2009/07/02(木) 17:04:14ID:0lGL3Sc9その他のマシンではdebianのパッケージ(PHP 5.2.0-8+etch15)を入れているのですが、
ソースから入れたマシンだけ、
filter_var('test..@example.jp', FILTER_VALIDATE_EMAIL);
がfalseにならず、test..@example.jpを返す。
configureはこんな感じ。
./configure --with-apxs2=/usr/bin/apxs2
--enable-mbstring
--with-ldap
--with-imap
--without-mysql
--with-libmbfl
--with-pgsql
--with-pdo-pgsql
--with-zlib
--with-curl
--with-gd
--with-kerberos
--with-imap-ssl
php5のchangelogには仕様が変わったというような記述はないようですし、
何が原因か判る方いますか?
php.iniのどこを確認すべき、とか。
0301nobodyさん
2009/07/02(木) 17:39:03ID:???0302300
2009/07/02(木) 18:00:44ID:???自己解決。
いや、解決してないけど。
debパッケージ版のソースと見比べたら、
php_filter_validate_email内の正規表現が変わっていました。
実際に両者の正規表現で直接マッチするか試したら、
5.2.10のソース版の方だけ'test..@example.jp'がマッチすることを確認できました。
Cはよくわからないのでこれ以上追えませんでしたが。
0303nobodyさん
2009/07/02(木) 18:51:38ID:???debianパッチとか見てみた。
> + - CVE-2007-1900/MOPB-45 ext/filter Email Validation Vulnerability
これじゃね? どうもタイムスタンプとか見る限り、debianのメンテナが、
PHPの新版が出るのを待って、そこからバックポートのパッチを作る時間を
惜しんで自分で作ったパッチと、PHPの中の人が作ったパッチとが違うようだ。
危険度highのセキュリティフィックスだし、本家の更新を待たずに独自パッチ作るのは
良いと思うけど、振る舞いが本家と異なるのはダメダ
さぁDebianメンテナにケツを持ち込むんだ。
0304300
2009/07/02(木) 19:24:29ID:???サンクス。
どうも修正原因は2009-02-02のこれっぽい。
http://bugs.php.net/bug.php?id=47282
内容がちょっとおかしいですけど。
e.x.a.m.p.l.e.@example.com
や
a@com
が通るように修正されたらしい。
自分的にはdebin版(というか5.2.8以前の版?)の動作を期待していました。
> This bug has been fixed in CVS.
と、バグとして処理されているので、それが本来の振る舞いってことでしょうか。
単にFILTER_VALIDATE_EMAILが自分の期待していたものとは違ってたってことですかね...。
lenny版(5.2.6)のソースから件の正規表現を持ってきて使うことにします。
0305nobodyさん
2009/07/02(木) 19:40:17ID:???0308nobodyさん
2009/07/02(木) 20:48:04ID:???0310nobodyさん
2009/07/02(木) 23:03:27ID:FF1NZIiG毎日、午前8時に自動的にmail関数を実行する事は
可能でしょうか?
もし、不可能なら、どんな言語・技術が必要でしょうか?
0312nobodyさん
2009/07/03(金) 00:05:48ID:???0313nobodyさん
2009/07/03(金) 01:42:59ID:O2VxaChrglobal $config;
}
とすると関数外の変数をグローバル変数にして取得することが出来ます。
では、classの場合はどう書けばいいのでしょうか?
0314nobodyさん
2009/07/03(金) 01:47:49ID:DH30LmcYなんとか出来そうです
@メールを送信する度に送信日付をdat書き込み
↓
Aアクセス毎に送信日付と現在の日付を比較
↓
B一致しなければメール送信
↓
@へ戻る
0316nobodyさん
2009/07/03(金) 02:08:04ID:O2VxaChrクラスの関数内でglobalを宣言すればいけます。
ただ、それだとクラスの意味はないと思い質問しました。
メンバ変数をグローバル変数にするような事が出来ればいいのですが・・。
0317313
2009/07/03(金) 02:12:24ID:O2VxaChrclass class1{
function class1{
global $config;
$this->config = $config;
}
}
0318nobodyさん
2009/07/03(金) 04:35:44ID:???0319nobodyさん
2009/07/03(金) 06:44:13ID:???普通に受け渡しすりゃいいのに
0320nobodyさん
2009/07/03(金) 09:17:30ID:0BOHJIMnこれってGESTパラメータを受けてXMLを返せばOKってことよね?
0321nobodyさん
2009/07/03(金) 09:18:49ID:0BOHJIMn0322313
2009/07/03(金) 14:10:56ID:O2VxaChrですよねw
>>319
$configはサイト設定に値する配列なのですが、
普通に受け渡しをすると、毎回、$obj->config = $config
のような指定を書かなければいけないし、クラス内の関数じゃなくて
普通のユーザ関数内で使いたいときもあります。
その時にグローバル変数化しておくとどのページでも参照できて便利なんです。
なので、もう一つ上の書き方・効率の良いソースはないかと思い、質問しました。
0323nobodyさん
2009/07/03(金) 15:04:35ID:???http://framework.zend.com/manual/ja/zend.config.html
0325nobodyさん
2009/07/03(金) 23:54:14ID:???static変数はほぼグローバル変数と同じ感じで使える。
http://jp2.php.net/manual/ja/language.oop5.static.php
class Config{
static $hoge;
}
Config::$hoge = 'hogee';
echo Config::$hoge;
0327nobodyさん
2009/07/04(土) 01:11:23ID:LBMY5xnE同じページの最初にジャンプって
出来ますか?
headerは何も書いてないときしか
使えないんですよね?
0328nobodyさん
2009/07/04(土) 01:25:38ID:???0329nobodyさん
2009/07/04(土) 04:06:05ID:???出しちゃったらあとはできちゃったのを待つしかないように・・
ページの途中で、<img onload="やりなおし関数"> を仕込むとかw
チラっとページが見れたと思ったらまたリロード。img の中身はエロ画像な。
0330nobodyさん
2009/07/04(土) 06:51:21ID:???リロードさせたいって意味?
0331nobodyさん
2009/07/04(土) 09:07:22ID:tI0ECBzn0332nobodyさん
2009/07/04(土) 09:14:08ID:???最終出力する関数をつくって、その中で最終的なヘッダを操作するようにすればいい
関数名はコンドームで
0333nobodyさん
2009/07/04(土) 10:58:00ID:???0334nobodyさん
2009/07/04(土) 11:12:34ID:???プログラムの構造化で真っ先に取り組むべきは、画面出力箇所とロジック部分の切り分け(VとMCの分離)なわけだが、そこからしてできていない。
最低でも、echoする箇所は1つの関数内にまとめろ。
んで、その中ではループ処理とisset($var)やif($var)レベルの処理以上のロジックを扱わないようにしろ。
>333
そこまで限定されるとフレームワークっつうよりパッケージソフトだな。もしくはコンサルウェア。
PHPにあるかどうかは知らんが、あったら書いた奴の根性を尊敬するわ。
0335nobodyさん
2009/07/04(土) 16:05:04ID:???http://jp2.php.net/manual/ja/function.header-remove.php
0336nobodyさん
2009/07/04(土) 20:33:01ID:LBMY5xnEいろいろな助言ありがとうございます。
説明が下手でしたね…
echoというか、本当はソケット関数で
通信を行って、5秒後に再度同じ処理を
初めから行いたかったんです。
その場合もheader_removeでいいんでしょうか?
0337nobodyさん
2009/07/05(日) 03:42:21ID:???テキストとして保存するという処理を行うとメモリ容量エラーで終了しません。
50KBぐらいだと普通に処理できるので設計の問題ではないと思われます。
なにか別の方法があるでしょうか?
0338337
2009/07/05(日) 03:44:06ID:S+gPtyj70339nobodyさん
2009/07/05(日) 04:44:02ID:???通常、8Mだから、そんなことやってるとメモリ制約に
ひっかかる可能性がある。php.ini の値を自分で変更
できない環境なら、小出しに中間ファイルなど使って
やっていくしかないかも。
0340nobodyさん
2009/07/05(日) 14:59:44ID:7afKnISw複製した同一ファイルにアクセスがあるのとでは
前者の方が負荷は高くなりますよね?
前に、「PHPでのアクセスならファイルを分けても負荷は変わらない」
と言うようなことを聞いたので、どうだったかな?っと思い質問しました。
0341nobodyさん
2009/07/05(日) 15:13:27ID:???0342nobodyさん
2009/07/05(日) 15:13:41ID:???0343nobodyさん
2009/07/05(日) 15:51:45ID:eOwA/AWQ$contents2 = "ABCDE\n";
file_put_contents(file.txt,$contents1);
file_put_contents(file.txt,$contents1);
とやると、file.txtにはABCDEしか入ってないんですが、
なんでabcdeは入っていないんでしょうか?
0344nobodyさん
2009/07/05(日) 15:56:31ID:???0345nobodyさん
2009/07/05(日) 16:12:10ID:eOwA/AWQ自分では、\nで改行されているので、
上書きされないはずと考えてしまうのですが?
0346nobodyさん
2009/07/05(日) 16:20:12ID:???0347nobodyさん
2009/07/05(日) 16:21:13ID:???>filename が存在しない場合はファイルを作成します。
>存在する場合はそのファイルを上書きします。ただし FILE_APPEND フラグが設定されている場合は別です。
0348nobodyさん
2009/07/05(日) 16:36:03ID:eOwA/AWQわかりました、ありがとうございました!
0349nobodyさん
2009/07/05(日) 18:06:39ID:???前者のほうが僅かに軽くなる。
ただ、体感できるレベルの差ではないので気にしなくていい。
0350nobodyさん
2009/07/05(日) 23:44:16ID:eOwA/AWQ|a|a
|a|a
見たいな感じで、
文字の前に'|'を入力したら表になるようなプログラムを作りたいのですが、
<table></table>をどう処理していいかわかりません。
なにかいいアイディアはないでしょうか?
ちなみにexplodeでtxtファイルから一行ごとに取り出し、
正規表現を使って先頭の'|'を判断し、それをexplodeで分割して、
<td></td>の間に表示するというやり方で作っています。
0351nobodyさん
2009/07/06(月) 00:14:41ID:???なんでそんな入力になるの?
なんでもいいなら、FCKやMCEエディタ入れて、
ユーザーにHTML入力させればいいじゃない。
0352nobodyさん
2009/07/06(月) 00:18:32ID:???0353nobodyさん
2009/07/06(月) 00:52:20ID:MPcI6fKXweb上で使えるメモ帳みたいなものを作りたいので
>>352
preg_replaceですか?
確かに使えそうですね!やってみます!
ありがとうございました!
0354nobodyさん
2009/07/06(月) 02:47:50ID:???で、行頭に<tr><td>
パイプに</td><td>
行端に</td></tr>
終わりに</tbody></table>
explode でいいんじゃねーの?
何が難しいのか分からん。
0355nobodyさん
2009/07/06(月) 16:41:05ID:qPA0wc5K何か問題あったりする・・・よなorz
0356nobodyさん
2009/07/06(月) 16:47:44ID:???0357nobodyさん
2009/07/06(月) 17:05:31ID:???0358nobodyさん
2009/07/06(月) 17:07:03ID:qPA0wc5Kしまったそれだwwww
とりあえず
find ./ -name *.php | xargs chmod 0775
で一括変換してくるよありがとう
0359nobodyさん
2009/07/06(月) 17:22:16ID:???0360nobodyさん
2009/07/06(月) 17:24:15ID:???0361nobodyさん
2009/07/06(月) 17:24:37ID:qPA0wc5K./(ドットスラッシュ)なので大丈夫です><。
見えづらくてごめんよー
0362nobodyさん
2009/07/06(月) 19:30:04ID:Zv6if7aohttp://say-move.org/
0363nobodyさん
2009/07/06(月) 20:07:29ID:???他にjavascript、能力、やる気なども必要。
ちなみに、何か「できないかも」と思う機能があるの?
そういう懸念があるのならそれも併記すべき。
そういうことすら判らないのでとりあえず聞いてみた、
ということなら、あなたには難しいんじゃないだろうか。
0364nobodyさん
2009/07/06(月) 20:29:52ID:Zv6if7aoありがとうございます
javascriptも勉強してみます
0366nobodyさん
2009/07/06(月) 22:19:16ID:???・コンテンツごとのユーザーアップロード・コメント管理
→CMS全般・RDBMS
・動画コンテンツの再生制御
→主流はFlash。ただFlashだとツールが高いので、
SilverLightを勉強するとよろし。FLVは使えないけど、
WMVが使える。
CMSをPHPベースのものにすれば、カスタマイズする
ときにPHPが使えるよ。MT等、静的HTMLを出力する
タイプのCMSだったら、ベースがPerlでもPHPでのコン
テンツ開発ができる。
0367nobodyさん
2009/07/07(火) 10:17:56ID:???0368nobodyさん
2009/07/07(火) 11:42:17ID:???早いしわかりやすい気がするのは僕だけですね
0369nobodyさん
2009/07/07(火) 12:04:41ID:???開発ツールと同期させたり、WMVストリーミングと組み合わせると
MSのサーバー製品が必要になる。けど、Flashみたいな使い方なら
Win鯖なくてもおk
>>368
お決まりのテンプレートが自分の手中にあればいいけど。
ゼロから開発ならCMS使ったほうがいいでしょ。製品によっては、
コーディングを最小限にしてテンプレートと設定だけで実現できるし。
0370nobodyさん
2009/07/07(火) 12:09:35ID:YRT2t6kR0371nobodyさん
2009/07/07(火) 12:24:36ID:???http://www.microsoft.com/japan/msdn/vstudio/Express/
Visual Web Developer Express edition + Silverlight Tools
http://www.eclipse4sl.org/update/
Eclipse + Eclipse4SL
FlashだとSuzukaとかあるけど、使いであるんだろうか。
0372nobodyさん
2009/07/07(火) 12:59:47ID:2bX5okbx/hoge/fuga.php?id=5
で、
/hoge/fuga/id5.php
を表示させたいのですが(動的URLで静的ページを表示)
RewriteRule ^/hoge/fuga\.php?id=5$ /hoge/fuga/id5.php [L]
としても表示してくれません
記述方法が間違っているのでしょうか・・・
0373nobodyさん
2009/07/07(火) 13:39:18ID:???あとRewriteCondは正しいかとか、そもそもRewriteLogはどうなってんのとか。
0374nobodyさん
2009/07/07(火) 13:44:40ID:2bX5okbx?もエスケープしてみましたが同じでした。
RewriteLogはどこで確認すればよいのでしょうか?
0375nobodyさん
2009/07/07(火) 13:50:34ID:???0376nobodyさん
2009/07/07(火) 21:30:03ID:q2UkOan/知りたいです。
session.cookie_lifetimeの値を0にすればブラウザを閉じるまで
セッションが継続することは分かったのですが、どうもこれだけ
ではダメなようです。
session.gc_maxlifetimeの値も関係しているようですが実際どうすれば
永続化できるかが分からないです。
0377nobodyさん
2009/07/07(火) 21:37:39ID:???0378nobodyさん
2009/07/07(火) 22:41:45ID:???0379nobodyさん
2009/07/07(火) 22:55:20ID:???いつまで経っても処理が完了しないページなんて糞以外の何者でもないよな。
0380nobodyさん
2009/07/08(水) 11:39:13ID:???>session.cookie_lifetimeの値を0にすればブラウザを閉じるまで
>セッションが継続する
session.cookie_lifetimeはクライアントが保持するセッションクッキーの生存期間。
session.gc_maxlifetimeサーバー側に保管されているセッションデータの生存期間。
※サーバーがsession.gc_maxlifetimeでごみ掃除するよう設定されていれば、だが。
なお、セッションは永続化すべきでない。
セッションハイジャックのリスクについて調べてみよう。
session_regenerate_idも忘れるな。
セッションハイジャックされても困らないようなものなら、単に寿命を長くしたクッキーに保管すれば良い。
■ このスレッドは過去ログ倉庫に格納されています