【PHP】下らねぇ質問はここに書き込みやがれ 67
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/04/11(金) 06:38:35ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは970が立ててください立たなかった場合は980よろ
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 66
http://pc11.2ch.net/test/read.cgi/php/1205655807/
◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくは質問時のトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0042nobodyさん
2008/04/12(土) 16:23:20ID:???違うなら違うで良いけど、俺の理解はそうなんです。
0044nobodyさん
2008/04/12(土) 16:38:27ID:???_/ィV"Vj
/Oィ(゚Д)
〈 <`ー"^"^i だからカイマンだと言っているんだけど。
rシ つ三づ
i\rシ ノ三ノ
ヾ__イ_)シ_)
004528 ◆IiyUHoZM0E
2008/04/12(土) 16:54:45ID:???$hogeの中には実際のデータの塊とかが入るのではなくて、
mysql内のデータを参照するためのポインタのようなものが
入っている、という解釈でよろしいでしょうか?
0046nobodyさん
2008/04/12(土) 16:55:26ID:???カードを持ってレジのお姉さんに渡すとビデオ本体を奥からもってくるとこ、
つまり
ID :カード
リソース:ビデオ本体
に例えろ、IDそのものには何の価値もないのだ、
くれぐれもパッケージと中身の違いに騙されるな。
0047nobodyさん
2008/04/12(土) 17:10:55ID:???0048名無しさん@アイコンいっぱい。
2008/04/12(土) 19:26:42ID:QH24pWr1http://kakitarou.com/url/files/accel.html
0051nobodyさん
2008/04/12(土) 20:00:26ID:???0052nobodyさん
2008/04/12(土) 20:57:30ID:???結局複雑なリレーションはSQL書かないといけないのね、イヤン!
0053nobodyさん
2008/04/12(土) 20:59:17ID:???0054nobodyさん
2008/04/12(土) 21:10:36ID:pm7T1kPT0055nobodyさん
2008/04/12(土) 21:17:35ID:???0056nobodyさん
2008/04/12(土) 21:49:43ID:???0057nobodyさん
2008/04/12(土) 22:07:14ID:???0058nobodyさん
2008/04/12(土) 22:10:44ID:???0059nobodyさん
2008/04/12(土) 22:12:18ID:???これもだよな
006054
2008/04/12(土) 22:22:06ID:pm7T1kPTだが生のSQL文を弄れてしまうとSQLインジェクションの知識が必須になってしまうから
そこをライブラリ側で隠蔽化してやってくれるもので、なるべく独立したライブラリってないの?
006354
2008/04/12(土) 23:31:51ID:pm7T1kPTあ、なるほと、プレースホルダって何なのか今理解した。
PDOってのを使ってprepareではユーザ入力値を入れないようにすれば良いわけか。
何かこれ常識なことを質問してしまったみたいだな。皆ごめん、どうもありがとう。
0064nobodyさん
2008/04/12(土) 23:36:36ID:???損害賠償くらわないようにね。
0065nobodyさん
2008/04/12(土) 23:55:06ID:???末端プログラマが皆セキュリティ技術者では居られないし。
公表されたセキュリティ問題に低リスク/コストで対応するためにライブラリを使うんだし。
0066nobodyさん
2008/04/13(日) 00:12:05ID:???個人的にはむしろ、入門書でも最初に教えるぐらいしないと。と、思う。
0067nobodyさん
2008/04/13(日) 00:22:36ID:???↓
ライブラリ使って楽しよう
とかいろんな意味で終わってる(笑)
0068nobodyさん
2008/04/13(日) 01:26:09ID:???SQLインジェクションにおいて新しい攻撃法が今後発見されることは100%ないの?
セキュリティ技術者ってのは最新の攻撃を常に把握してるよね、それが仕事だもん。
でもプログラムを書いたらその後運営には携わらない末端プログラマは居るでしょ。
そしてそのプログラマは当時のSQLインジェクションの知識で自前でサニタイズしていたら。
つまり「解っている」というのが、その時点についてのみではダメってことでしょ。
これを名の知れたライブラリと一般化したサニタイズ手法を使って文書として残しておけば、
保守として全てを理解していなければならないプログラマは不要であり、
かつ必要な最低限のセキュリティのチェックは可能になるでしょ。
俺はWebの仕事はやったことないからズレてること言ってるのかも知れないけど、
殆どの仕事はASP的な形態で同じプログラマがずっと関われるようなものなの?
0069nobodyさん
2008/04/13(日) 03:26:06ID:???概念上それくらい常識として知っておけ、
ってことじゃねーの?
0071nobodyさん
2008/04/13(日) 03:54:16ID:bEpE13Rlただし、画像ファイル名に保存日を書き込めないとします(20080413.jpgなどはダメ)
phpの関数でそんなのあるんでしょうか?
一定期間が過ぎたら削除する処理に利用したいと思っています
0072nobodyさん
2008/04/13(日) 04:24:29ID:hN58mjIP(クーロンを使えというのはなしで)
前回のデータ取得はキャッシュされていて更新時間は変数として使えます。
現在の日付時間、デーの更新時間、毎朝6時
これらをどう組み合わせて計算すればいいでしょうか?頭がこんがらがってしまいました(?_?)
よろしくお願いします。
0073nobodyさん
2008/04/13(日) 05:23:53ID:???if(date(更新時間-6時間)<date(今-6時間)){
0074nobodyさん
2008/04/13(日) 05:27:15ID:???○mktime
orz
0076nobodyさん
2008/04/13(日) 05:51:50ID:hN58mjIP6時間じゃなくて朝6時です
6時以降の最初のアクセスをトリガーとして作動させたいのです
0077nobodyさん
2008/04/13(日) 06:49:43ID:???0079nobodyさん
2008/04/13(日) 08:06:52ID:???入ってるデータが全部タイムスタンプなら>>77でよさそうだけど、寝起きだから自信ないな
0080nobodyさん
2008/04/13(日) 08:54:53ID:y9NKt7wS(現在のセッションの、全てのセッションデータの廃棄ではありません)
マニュアルを見た感じではみつかりません。
http://jp2.php.net/manual/ja/ref.session.php
具体的には、PHPのプログラムを更新する場合に、その前からのセッションが生きてるのは、嫌だなぁって事なんですが。
PHPは5.2 使ってます。
0082nobodyさん
2008/04/13(日) 09:25:53ID:y9NKt7wSなるほど。
session.nameはPHP_INI_ALLだから session_startより前で設定すればできそうですね。
ありがとうございました。
0083nobodyさん
2008/04/13(日) 09:52:09ID:/FusEZA8008683
2008/04/13(日) 10:09:53ID:/FusEZA8ありがとうございます。
cronについて調べてみましたが、いまいち使用方法がわかりません。
簡単なサンプルを示していただけませんか?
(1時間ごとにtest.PHPを呼び出す例など)
使用しているサーバはoroti.comのw8サーバです。
http://www.abcoroti.com/~rent/rspace/server.html
0088nobodyさん
2008/04/13(日) 10:43:16ID:???読んでないけど、クーロソが使えると言うならば、鯖屋の指示通りに
設定すればいいだけ
(本来は鯖の設定ファイルを書き換えるようなのだから、それなりの権限がなければできない)
使えなければ、前に出てたアクセスをトリガー
(アクセスがあったら、それを契機に)スクリプトで処理するという方法で解決
0089nobodyさん
2008/04/13(日) 10:43:55ID:???0091nobodyさん
2008/04/13(日) 12:13:21ID:???0092nobodyさん
2008/04/13(日) 12:57:13ID:???でっていうwww
009383
2008/04/13(日) 13:02:10ID:/FusEZA8ありがとうございます。
質問板にてcronに関するスレを発見しました。
質問者:cronは使えまか?
管理人:cronつかえますよ。
cronに関するスレはこれだけで、鮎の方にも設定方法が紹介されていませんでした。
この場合どうすればいいでしょうか?
htaccessみたいなかんじで毎時間処理するよう記述したファイルをUP
するんですか?
0094nobodyさん
2008/04/13(日) 13:14:28ID:???xpath使えって話?
0095nobodyさん
2008/04/13(日) 13:22:57ID:/XYVoWCvPEAR::Image_Graph(オープンソース)を使用して
円グラフを作成しています。
マーカー部分に、"項目名 XX%"の用に表示させたいと思っています。
項目名を表示する方法をわかる方がいれば教えてもらえないでしょうか?
PHPとは少し違いますがお願いします。
0096nobodyさん
2008/04/13(日) 13:28:26ID:???いい加減PEARはスレ違いだっつうの
0097nobodyさん
2008/04/13(日) 13:37:47ID:???任意の引数でタイムスタンプ作成する、dateの逆関数みたいなものって無いものかね
mktimeより楽に使えると思うのだがどうか。
$timestamp=inv_date('08年04月13日13時40分','y年m月d日H時i分');
みたいな
0098nobodyさん
2008/04/13(日) 13:41:24ID:???0099nobodyさん
2008/04/13(日) 13:48:35ID:???HACKER SAFE使ってたって書いてあるけど、
ああいう外部からのチェックサービスって
結局CGIプログラムのソースコードは見ないんだろうから、
その中にある脆弱性には甘いんだと思うよ。
色んなサービスを動かすサーバ建てて、
その中に脆弱性のあるバージョンや機能が無いか調べるには良いと思うけど。
0100nobodyさん
2008/04/13(日) 14:55:35ID:/XYVoWCvすみませんでした。
0101nobodyさん
2008/04/13(日) 16:58:04ID:mSGmcBg3たとえば、数十個のディレクトリ名を定数として利用する場合、配列でなくdefineでも問題ないと思いますが、
状態遷移に必要な情報を管理する多次元の配列の定数が必要な場合、どのようにするのがベターなのでしょうか?
・グローバルなところに変数として置く(現在はこの考えを利用)
・オブジェクト定数で管理
・XML/YAMLなどでデータ分離
あたりが思いつくのですが、常套手段などがあったらご教授お願いします。
0103nobodyさん
2008/04/13(日) 18:29:39ID:cn35Eo4dord()とchr()を使用することでバイナリの扱いを解決することができました。
答えてくださった方々、ありがとうございます。
もうひとつ質問なのですが、phpの配列の要素数に上限はあるのでしょうか?
要素数が100000くらいのときはプログラムが正常に動くのですが、
要素数が1000000くらいになると途中でプログラムが止まってしまいます。
どなたかご存知であれば教えてください。
お願いします。
0104nobodyさん
2008/04/13(日) 18:56:04ID:cn35Eo4d追記します。
このようなプログラムを組んでおり、
容量が1MBを超えるようなファイルだとプログラムが途中で止まります。
$fno = fopen("sample.mp3", 'rb');
while (!feof($fno)) {
$data[] = fread($fno, 1);
}
fclose($fno);
0105nobodyさん
2008/04/13(日) 19:33:29ID:???[PHP] 配列に値を入れていくとエラーになりプログラムが落ちます。
http://q.hatena.ne.jp/1145420732
と同じ現象じゃないかな。
つまりPHPスクリプト一つに許可されている使用メモリ量をオーバーしているんだと思うよ。
デフォルトでは8MBか16MBに設定されているらしいのに、
たった1Mのファイルでオーバーしちゃうなんておかしいと思われるかも知れないけど、
PHPは配列の要素毎にも変数の型を持っているだろうから、余計にメモリを食っちゃうんだろうね。
単純に読み込んだデータにバイト単位でアクセスしたいのなら、
$data = fread($fno, filesize("sample.mp3"));
として一つの変数へ一気に読んじゃえば、配列と同じに$data[0]って感じで読めるんじゃない?
上のは試してないから嘘かもしれないけど。
0106nobodyさん
2008/04/13(日) 21:43:31ID:RGnLfYK/NOTE: You must have cookies enabled to use setup and header admin!*
ブラウザ側ではクッキーは有効にしてるんですが・・・・どうすればいいでしょう?
0107nobodyさん
2008/04/14(月) 00:14:07ID:???http://www.borujoa.org/upload/source/upload18138.zip
0108nobodyさん
2008/04/14(月) 00:42:56ID:???0109nobodyさん
2008/04/14(月) 00:46:10ID:???0112nobodyさん
2008/04/14(月) 11:41:38ID:6hAyd3lAならなかったりします。どういうルールで変換されているんでしょうか。
php -n -r "print(floatval(1100000));" → 1100000 が表示される。
php -n -r "print(floatval(1200000));" → 1.2E+6 が表示される。
php -n -r "print(floatval(1300000));" → 1300000 が表示される。
php -n -r "print(floatval(1300000));" → 1.4E+6 が表示される。
php -n -r "print(floatval(1500000));" → 1500000 が表示される。
環境は以下の通りです。
$ php --version
PHP 5.2.5 (cli) (built: Mar 3 2008 14:30:26)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with eAccelerator v0.9.5.2, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
with Xdebug v2.0.2, Copyright (c) 2002-2007, by Derick Rethans
OS:Windows XP SP2
0113nobodyさん
2008/04/14(月) 14:26:42ID:???PHP5に元から入っているSQLiteのバージョンは2ですよね?
これを、バージョン3にしたいのですがインストールがいまいち分かりません。
環境は、WinXP Apache2 PHP5 です。
DB板に書くべきか悩みましたが、
PHP関係なのでこちらに書きました。
0114nobodyさん
2008/04/14(月) 14:39:54ID:???0116nobodyさん
2008/04/14(月) 17:23:23ID:???0117nobodyさん
2008/04/14(月) 18:17:04ID:???PHPを記述しているページのアドレスをhttp://○○.phpではなく
http://○○.htmlまたは.php以外のモノにしたいのですが
やりかたが分かりません。
PHPを使っていると思われるサイトでも
アドレスが、http://○○.htmlとなっているのを見かけるのですが
どうやっているのでしょうか?
知っている方がいましたら教えてください。
0119nobodyさん
2008/04/14(月) 18:47:51ID:???検索してやり方を調べてみます。ありがとうございました。
0120nobodyさん
2008/04/14(月) 19:11:38ID:???Apacheに拡張子htmlをPHPとして動かすように指示するだけ
Add-Type application/x-httpd-php .html
とかにすれば拡張子htmlのものがApacheでPHPとして扱われる
まぁこれ以上は板違いなんで
.htaccessについて深く知りたければWeb制作板へどうぞ
0121nobodyさん
2008/04/14(月) 19:42:46ID:???拡張子phpを使いたいという理由だけでPHPを始めた俺が来ましたよ
(突っ込みは無用)
アドレスが*.phpなのがオサレなんだと思ってた時期もありました
0123すのっぶ
2008/04/15(火) 02:01:01ID:LJ3oHWbNmd5だと32桁の16進数値になりますが、大文字小文字を区別した表示でもっと短いhashはどのようなものがありますか?
ある携帯サイトで送られてくるメールのURLにそれらしきものがあり、「RJgYbxmTqnN5」という表記でした。
0124nobodyさん
2008/04/15(火) 02:04:11ID:???0125nobodyさん
2008/04/15(火) 02:12:30ID:???0126nobodyさん
2008/04/15(火) 02:38:46ID:???0127nobodyさん
2008/04/15(火) 07:42:07ID:LJ3oHWbNcrypt だった。サンクス > 126
ちょっと古いサーバで試したんだけど、salt を指定しない場合、「$1$Qgv55ZYN$likCiswhSgaLSaWdJeObY.
」とかで、しかも毎回内容が変わってた。これはこれで役にたつものなの?どうやってパスワードチェックするんだろう。
ちなみにそのサーバの定数値は以下
CRYPT_SALT_LENGTH 12
CRYPT_STD_DES 1
CRYPT_EXT_DES 0
CRYPT_MD5 1
CRYPT_BLOWFISH 0
OS REDHAT 9
0128nobodyさん
2008/04/15(火) 09:26:21ID:???パスワードのチェックの時は、ソルトを読み取ってから
入力されたパスワードのハッシュを計算する
つ man 3 crypt
0129nobodyさん
2008/04/15(火) 14:10:49ID:???あれの滞在時間とか、直帰率とか、再訪とか、
ああいうのの開発手法について、概要でも良いので
説明しているサイトをご存じないですか?
ググっても、ASPとかWeb屋とかが出てくるばかりで・・・・
0130nobodyさん
2008/04/15(火) 14:31:23ID:???だいたいどういうことすればできるかイメージつくだろ。
クッキー、セッション、リファラーetc
それすらイメージできないうちは作れるレベルにないということ。
0131nobodyさん
2008/04/15(火) 14:43:24ID:tEWEzoyOimapでpop3サーバーにつないで、読んだメッセージをDBにしまい
ごにょごにょしようかと思ってるのですが、
メッセージを既読にするにはどうしたらよいのでしょうか?
imap_setflag_full()
はimapでつないだ時だけ見たいだし、
imap_body()
に「既読フラグをたてないオプション」みたいのがあるので、読めば自動的に立つのかと思ったけど
だめっぽいです。
立てられないと、毎回すごい数のメールを見に行かなきゃならないのでちょっと現実的じゃないかなと。
わかりましたらお願いします。
0132nobodyさん
2008/04/15(火) 14:47:25ID:???ログは取ってるんですよ。
IPアドレスとかUAとか、アクセス時刻とか。
それらをどういうふうにデータとして加工・保存していけばいいかのヒントになるようなものがあればということです
書き方が悪かったですね。スマソ
0133nobodyさん
2008/04/15(火) 15:31:02ID:???0134nobodyさん
2008/04/15(火) 15:43:29ID:6h+mXfU6人大杉の板を.dat直読みさせることで、表示を可能にしてるらしい
.datがどこにあるか教えてください
例えば、ここのスレ http://pc11.2ch.net/test/read.cgi/php/1207863515/ の.datってどこでしょうか
0135nobodyさん
2008/04/15(火) 15:49:37ID:???あまり詳しくないのですがDB使う場合とファイルをそのまま読み書きするのでは
やっぱ違いますか
0136nobodyさん
2008/04/15(火) 16:02:39ID:???なんでこんな糞システムになるのか理解できないが改善できるなら改善してくれ
じゃないと色んなところに迷惑がかかる
アクセス数が1日数件なら問題ないけど
>DB使う場合とファイルをそのまま読み書きするのではやっぱ違いますか
違う
扱うデータ件数が多ければ多いほどDBのほうが有利
0137nobodyさん
2008/04/15(火) 16:19:15ID:???10MBのログに吐き出すだけならデータベースよりも軽石。
0138135
2008/04/15(火) 16:28:06ID:???ちょっと説明不足でした
プログラムファイルが10MBというわけではなく読み書きするデータファイルが10MBあるということです
最初は0でだんだんたまっていくという仕組みです
cgiで動かしていたのですが10MBぐらいで鯖の限界がきました
なのでPHPで作り直そうと思い、どのやり方が負荷が少ないかということで聞いてみました
やはりDBの方がいいのでしょうか
0139nobodyさん
2008/04/15(火) 16:51:25ID:???おそらく使用可能なメモリが足りてないんでしょ?
だとするとcgiがだめでphpなら平気そうとかそういうレベルじゃないような気がする
特にPHPやPerlでWebプログラム組んでる人は特段意識しないだろうけど
扱うファイルが膨大となるとメモリ管理を効率よくおこなうプログラムを意識しないとだめだと思う
全てを配列に読み込むとかしただけでも相当メモリ使用量が増えるから
というわけでどういうものなのか想像できないのでなんともいえないけど
プログラム側の設計とファイルの扱い方についてを根本的に変えないといけないと思う
0140nobodyさん
2008/04/15(火) 17:09:48ID:???http://www.filebank.co.jp/wblink/b326ee425cd825e972e0e8c931e33383
0141nobodyさん
2008/04/15(火) 17:24:26ID:???別にログにレコード追記するだけなら別に10Mが100Mでも遅くならんだろう。
ただまぁ、段々増えると言っている割りに、読み書きと言っているし、
なんとなく、file()とかで読み込んで...とか考えてそうだから素直にDBを使った方がいいね。
違ったらごめんよ
■ このスレッドは過去ログ倉庫に格納されています