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

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

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

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

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc10.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc10.2ch.net/db/subback.html
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
 しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
0002nobodyさん2007/02/12(月) 20:34:57ID:???
■過去ログ
【PHP】下らねぇ質問はここに書き込みやがれ 29
http://pc8.2ch.net/test/read.cgi/php/1158434799/
【PHP】下らねぇ質問はここに書き込みやがれ 30
http://pc8.2ch.net/test/read.cgi/php/1159979905/
【PHP】下らねぇ質問はここに書き込みやがれ 31
http://pc8.2ch.net/test/read.cgi/php/1161733546/
【PHP】下らねぇ質問はここに書き込みやがれ 32
http://pc8.2ch.net/test/read.cgi/php/1162818436/
【PHP】下らねぇ質問はここに書き込みやがれ 33
http://pc8.2ch.net/test/read.cgi/php/1164209222/
【PHP】下らねぇ質問はここに書き込みやがれ 34
http://pc8.2ch.net/test/read.cgi/php/1165519374/
【PHP】下らねぇ質問はここに書き込みやがれ 35
http://pc10.2ch.net/test/read.cgi/php/1166676139/
【PHP】下らねぇ質問はここに書き込みやがれ 36
http://pc10.2ch.net/test/read.cgi/php/1168395610/
【PHP】下らねぇ質問はここに書き込みやがれ 37
http://pc10.2ch.net/test/read.cgi/php/1169644229/
0003nobodyさん2007/02/12(月) 20:35:29ID:???
関連リンク
■本家マニュアル   http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル  http://pear.php.net/manual/ja/
■メーリングリスト   http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル    http://framework.zend.com/manual/ja/

(以下英語)
■Smarty       http://smarty.php.net/
■Zend本家      http://www.zend.com/
■Zend Framework  http://framework.zend.com/
■php | architect   http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
0004nobodyさん2007/02/12(月) 20:35:59ID:???
【簡易FAQ】
1.文字コードは何を使えばいいの?
 →1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
 → http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
 → Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
 → 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
  「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
 → {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
 → cronかタスクスケジューラを使え。
7.extractって危険なの?
 →変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
 → URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
 → .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
0005nobodyさん2007/02/12(月) 20:36:28ID:???
10. そもそもインストールの時点でうまくいかない
 → 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
  Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
 → データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
 → ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
 → 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
 → よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
  http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40  
15. クッキーの情報をユーザから隠したい
 → セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
 → strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
 → まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
 → C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
  参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
 → fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
  必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
 →19.を参照
21. 画像処理一般 or GDの限界
 → ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
 → 好きにしてください
0006nobodyさん2007/02/12(月) 20:37:27ID:???
>>1
乙です。

前スレ後半変なのが湧いたけど仕切り直していきまっしょい
0007nobodyさん2007/02/12(月) 20:46:16ID:???
それがPHPクオリティ(^^)
0008nobodyさん2007/02/12(月) 20:55:09ID:???
キャー!カカッタノダ♪(*゜ー゜)ノ\____((¶))
0009nobodyさん2007/02/12(月) 20:59:20ID:???
YLy/IkNCが「ご教授」と書いてたな。
php-usersに出てくる釣り質問者に通じるものを感じたw
0010nobodyさん2007/02/12(月) 20:59:53ID:YLy/IkNC
session_cache_expire(60*24);
↑セッションの有効期限を24時間にする方法ですが、
デフォルトの180分(php.iniの値)でセッションが切れてしまいます。
何か原因が分かる人は教えて貰えますか?
ちなみに、session_cache_expireの値を秒数だと勘違いしてる人が
いましたが、これは分数を指定します。
0011nobodyさん2007/02/12(月) 21:00:37ID:YLy/IkNC
>>9
単なる嫌味です。自分を優れてると勘違いしてる人へのね。
0012nobodyさん2007/02/12(月) 21:02:12ID:???
>>11があぼ〜んされてる
0013nobodyさん2007/02/12(月) 21:03:12ID:???
>>11があぼ〜んされてる
0014nobodyさん2007/02/12(月) 21:03:19ID:???
>>10
◆質問する時の注意を緑内障になるまで読み返してからこい
0015nobodyさん2007/02/12(月) 21:05:47ID:???
スキルのない大前春子みたいだな
0016nobodyさん2007/02/12(月) 21:27:26ID:???
>>1さん乙です。
0017nobodyさん2007/02/12(月) 22:13:05ID:YLy/IkNC
>>14

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

確かに↑と書いてありますね。アンカーのつけ方を知らない人は、初心者板へどうぞ
0018nobodyさん2007/02/12(月) 22:21:35ID:???
                     ,.-===ュ、__
                   ,.イ.:.:::l:i:::`丶、\``>
     r、             /.:/.:::::;:川ト、ィ;l:ヽ V、
     >\__        !.:::l:::::ノノ リ,ィtナl.::;;! 1::',
     (ミム )X^ヽ      リ.:;:Vtソ 、 `ー' |;;/ |::::',   下らねぇ質問は
     `ーく_ノ  `ー-r─‐‐ヽ:::;、  「 ヽ イ1米|:::::',   ここに書き込みやがれ
         `ヽ、   |\   i `l>、`ー' イ:::|  |::::::l   ちび人間っ
              `フ|  ヽ  |米|.:::゙、 ̄>くl米|::::::|
              ./ .:|   | ,1  |.:::::{i //介l」 |:::::r‐、
             / .:.::|__ |/:::|米「:::::{l  i;|゚j;i ヽト、ムYノ
              L_.:.:.:.:.::|_ |.::::|  |:i!::::{l. |;|゚j;| N:::}=〈::l
               \.:.:.::l/.::::|米|.:i!ニ{L `゚j´ |:|::|  |::|
               \ノ.::::::|_|.::i!三三ニ「�]|」:|  |:::|
0019nobodyさん2007/02/12(月) 22:33:17ID:???
そろそろいいですか?これ読んで考えてください
http://news22.2ch.net/test/read.cgi/newsplus/1171277039/
0020nobodyさん2007/02/12(月) 22:34:46ID:???
ディレクトリ下のファイル一覧を作ろうとしてるんですが、うまくいきません。
すみません、どこがおかしいですか?
回答よろしくお願いします。php5です

$dir_ary = scandir("./doc");
$itemNum = count($dir_ary);
for($i=0;$i<$itemNum;$i++){
if($dir_ary[$i] != "." && $dir_ary[$i] != ".."){
echo filetype($dir_ary[$i]);
}
}
0021nobodyさん2007/02/12(月) 22:41:53ID:???
>>20
filetypeの引数のパスが間違っている
"./doc/"つけて相対パスにするか絶対パスにしてから渡す
0022nobodyさん2007/02/12(月) 22:42:40ID:???
>>20
ソース的には問題はなさそうだけど
何がうまくいかんの?
0023nobodyさん2007/02/12(月) 22:47:38ID:1UHqIA+/
回答ありがとうございます

>>21
そうなんですか?
試しに"./doc/"にしてもうまくいかないです
ちなみに、"./doc"のままでも
echo $dir_ary[$i]; なら正常に動くんです。ちゃんと以下を返します。
⇒1.Intro2.Basic3.Component4.DataBase5.Appendixsample.doc

>>22
echo filetype($dir_ary[$i]);の部分がエラーが返るんですが、、
この書式ってphp.iniとかをいじらなきゃダメだったりするんですか?
うーん、、
0024名無し募集中。。。2007/02/12(月) 22:53:08ID:???
>>23
違う、filetypeに渡す時にファイル名だけになってる

echo filetype('./doc/' . $dir_ary[$i]);
0025nobodyさん2007/02/12(月) 23:32:59ID:1UHqIA+/
>>24
そっか、 すいませんfiletypeの引数のディレクトリですね。
教えてもらったのに勘違いしてました。
うまくいきました、ありがとうございました!!
0026nobodyさん2007/02/13(火) 00:03:59ID:V5Md+oDi
全スレでpregでエラーが起こると質問した858です

preg_match_all('/("(?:[^"]|"")*"|[^,]*),/',$data,$result);
↑正規表現で、画面真っ白になって、エラーメッセージも無く止まるって質問でした

エラーの理由は分かりました
文字数が10000超えるとpregで必ずエラーが起きるようです(2バイト文字の量によって、文字数は増減します)

さて… php.iniの設定かな? と思い…
max_execution_time = 450
max_input_time = 750
memory_limit = 350M

ここら辺を変えてみましたが、まだ直らず…
ぱっと思いつく、変更点はありませぬか?
0027nobodyさん2007/02/13(火) 00:26:52ID:???
>>26
pregライブラリの限界だと思う。設定じゃ回避できないかと。
つーかpreg関連に設定なんて特にないし。
0028nobodyさん2007/02/13(火) 00:28:42ID:???
test
0029nobodyさん2007/02/13(火) 00:42:27ID:???
>>26
制限なんてあるの?
試しにこんなの書いたらヌルヌル動くんだけど

for($str = '', $i = 0; $i < 10000; $i++) $str .= '("Aあ亜"),';
echo strlen($str); // 120000
preg_match_all('/("(?:[^"]|"")*"|[^,]*),/', $str, $match);
echo count($match[0]); // 10000
0030nobodyさん2007/02/13(火) 01:03:57ID:???
>>10
session_startの前に呼んでる?
0031nobodyさん2007/02/13(火) 01:26:47ID:V5Md+oDi
>27>29
レスありがとうございます

う〜ん、確かに29さんの動くなぁ

CSVデータにHTMLが入ってるやつを読み込んでいるので、HTMLコード入れて試してみました
HTMLコードのところが問題だったようです…
ごめんPreg;;

でもですね、その確実にエラーになる所は、
HTMLコードで8000文字の内、文字数減らすとエラーにならないんですよ (消す時「”」の数には注意してます)
何処を消しても、エラーが起きなくなるんですよねぇ… だから文字数だと思ったのですが…

例えばヤホーのトップページをCSVの一つのカラムに入れて、「”」を「””」にしてpregかけても真っ白になります。
そして、そのHTMLを10000文字以下にして、pregかけるとヤホーでもエラーが起きなくなる…
う〜〜〜〜〜ん… わかんね…
0032nobodyさん2007/02/13(火) 02:02:31ID:???
>>31
それってマルチバイト文字まざってる?
0033nobodyさん2007/02/13(火) 02:08:02ID:V5Md+oDi
>32
マルチバイトたくさんあります
0034nobodyさん2007/02/13(火) 02:15:48ID:WLri6D19
すみません質問です
scandir() で一覧化したファイル名は mb_convert_encoding() でエンコーディング
できないんでしょうか?
$currentDir = "./doc/";
$dir_ary = scandir($currentDir);
$itemNum = count($dir_ary);
for($i=0;$i<$itemNum;$i++){
if($dir_ary[$i] != "." && $dir_ary[$i] != ".."){
echo "<td><a href='".$currentDir.$dir_ary[$i]."'>".mb_convert_encoding($currentDir.$dir_ary[$i],"EUC-JP","SJIS")."</a></td>";

上記のスクリプトの最終行がブラウザに表示されないのは、そういうことなのか、
それとも根本的に他の間違いがあるのか 分からなくて困ってます
よろしくお願いします。
0035nobodyさん2007/02/13(火) 02:31:27ID:???
>>31
csvファイルってことだけどちゃんと読み込めてるのかどうかが怪しそう
fgetcsvをつかってるのでしょうか?
0036nobodyさん2007/02/13(火) 02:34:35ID:???
そういう時は原因の切り分けを心がけよう
もしくはもうしてるのかも知れんが、その場合は書いてくれないと分からない上に回答者に無駄手間を取らせることになる。

1.mb_conv...を通さなければ表示されるのか
表示される→mb_convの問題:(a)へ
表示されない→ファイルリストが上手く取れてない:(b)へ or HTMLの問題:(c)へ

(a) 文字列単体を持ってきて変換できてるかテストする。PHPソースとブラウザの文字コードは?
(b) var_dump($dir_ary)してみる
(c) <table>タグなくても表示されんの?ブラウザの文字コード変えてみた?HTMLソースは見た?
0037nobodyさん2007/02/13(火) 02:52:24ID:V5Md+oDi
>35
読み込みはばっちりです。fopenとfgetsでやっとります。
fgetcsvは使っていません。これがちゃんと動けば、CSVの解析なんてしなくていいのに;;
ガチで、HTMLの量が多くない限り、動くんだって〜;;
信じて;;

$fp = fopen($file,'rb');
while ($data = fgets($fp)) {
 //処理とか 例えばprint $data;
}

今、確実に止まるのを29さんのコードを元に作成中…
0038nobodyさん2007/02/13(火) 02:56:50ID:???
mysqil関数を使っています。
mysqli_queryを使って、Update文のクエリを実行したとき、
updateされたフィールドの数を取得すしたいと思っています。
mysqil関数で可能なんでしょうか?
0039nobodyさん2007/02/13(火) 02:59:03ID:???
http://jp2.php.net/mysqli
0040nobodyさん2007/02/13(火) 03:20:17ID:V5Md+oDi
やっぱり量みたい…?

$str = '"';
//for($str = '', $i = 0; $i < 10000; $i++) $str .= '(Aあ亜)'; //動く
//for($str = '', $i = 0; $i < 10000; $i++) $str .= '(""Aあ亜"")'; //動く
//for($i = 0; $i < 100; $i++) $str .= '(<input type=""text"" values = ""Aあ亜"">)'; //動く
for($i = 0; $i < 250; $i++) $str .= '(<input type=""text"" values = ""Aあ亜"">)'; //動かない文字1万ちょい
$str .= '","これは""マルチバイト""です",';
echo strlen($str)."<br>";
preg_match_all('/("(?:[^"]|"")*"|[^,]*),/', $str, $match);
echo count($match[0]);

違い全くわらかね;; 動く方が居たら、教えてください;;
もしそうならPC違いか… php.iniの設定でしょうか…
当方core 2 duo, memory1G, fedora5, PHP 5.1.6
0041nobodyさん2007/02/13(火) 03:25:31ID:???
display_errorは?
ini書き換えた後再起動した?
そもそもその書き換えたiniをちゃんとシステムは読み込んでるの?(phpinfoすべし)
0042nobodyさん2007/02/13(火) 03:33:53ID:V5Md+oDi
>41
え? このコードでエラー出ます? 漏れの環境だと、画面真っ白で止まるのですが…
display_errorはOnです。もちろん再起動しましたが… 念のため、もう一回再起動してみます
0043nobodyさん2007/02/13(火) 03:34:38ID:???
真っ白だから言ってるんだよ
0044nobodyさん2007/02/13(火) 03:47:18ID:V5Md+oDi
php.iniは、間違いなく読み込んでます
display_errors On
memory_limitとかの設定も反映されてますなぁ…
御願いですから上のコードを走らせてみて;; どうなりますか?
0045nobodyさん2007/02/13(火) 03:58:23ID:???
$time_start = microtime(true);
//検証したい方を残してもう一方をコメントアウト
$s = '(<input type=""text"" values = ""Aあ亜"">)'; //マッチしない文字列
$s = '(<input type=""text"" values = ""Aあ亜"">),'; //マッチする文字列
for($str = '', $i = 0; $i < 100; $i++) $str .= $s;
echo strlen($str)."\n"; // 4000 くらい
preg_match_all('/("(?:[^"]|"")*"|[^,]*),/', $str, $match);
echo count($match[0])."\n";
echo $time = microtime(true) - $time_start;

これでテストしてみると
マッチしない文字列 処理時間 10 秒
マッチする文字列  処理時間 0.00007 秒

つまりマッチしない文字列だとすご〜く時間が掛かるので
max_execution_time とかに引っ掛かって死ぬって事では?
0046nobodyさん2007/02/13(火) 04:46:42ID:V5Md+oDi
>45
ありがとうございます 楽しく検証できました〜 確かに時間かかりますねぇ。と言うより、マッチする文字列が早すぎですなぁ
それと死ぬって所は確かにそうだと思っています。

ちょと検証してみました。
max_execution_time 10
max_execution_time 450
max_execution_time 45000
全てループ回数235回、文字数10000+、五秒経過後、までは耐えます
その回数以上だと死ぬ感じになります

ついでにmax_execution_time 1 も試してみました
Fatal error: Maximum execution time of 1 second exceeded
やったw 久しぶりにエラー見たw pregのラインでした
0047nobodyさん2007/02/13(火) 07:21:05ID:???
>>40
俺の環境ではまったく問題ない
10532
2
と表示される

WinXP Apache2.0.59 PHP 5.2.0
0048nobodyさん2007/02/13(火) 07:56:49ID:Ns+uranC
PHPでできた、PukiWikiを使ってサイトを運営しているのですが、
コメントページにスパムの書き込みが大量にあり、
コメントページが編集不可能な状態に陥ってしまいました。

編集フォームまでは重いながらなんとかいけるのですが、
スパムコメントを削除して、
更新ボタンを押したところで応答が帰ってこなくなります。(しかも即答)
これってなんかの脆弱性ですよね?
脆弱性を報告したいのですが、どういう脆弱性なのかわかりません。

本来ならPukiWikiの専用スレを探してきくべきなのでしょうが、
こういう手の話題は、PHPでいろいろ開発してる方に聞いたほうがいいと思い、
ここで質問させていただきました。

考えられる脆弱性としてはどういうものが考えられるか教えていただければ嬉しいです。
0049nobodyさん2007/02/13(火) 08:30:24ID:???
>>40
オレも問題なくうごく
PHP4.4.4
OS:FreeBSD
Apach:1.3.37

max_execution_time 30秒だが、1秒くらいで結果が返ってくる
0050nobodyさん2007/02/13(火) 09:40:01ID:???
>>48 
それだけでわかるエスパーは流石にいないと思う
0051482007/02/13(火) 09:54:02ID:Ns+uranC
>>50
もうちょっと詳細を書くと、
入力値チェックはなく、なんでも書き込めるようになっていました。
あと一番最後の書き込みが、異様に長かったです。
750kbほどでした。

何かヒントになれば幸いです。
0052nobodyさん2007/02/13(火) 09:55:34ID:???
>>11
おまいさんは、嫌みを言うときは、誤用するのかいw
0053482007/02/13(火) 09:56:13ID:Ns+uranC
知ってる方は知っていると思うのですが、もう1つ重要なことを忘れていました。
PukiWikiはデータベースは使っていません。
ログはテキストに書き込むようになってると思います。
0054nobodyさん2007/02/13(火) 10:17:51ID:???
>>48
情報が乏しくてはっきりしないが
サーバの制限に引っ掛かってるとかじゃない?
何が750KBあるのかようわからんがなんかに引っ掛かりそう
0055nobodyさん2007/02/13(火) 11:05:43ID:???
ところでPHPエディタとエクリプスPHPプラグインとどっちがいいと思う??
0056nobodyさん2007/02/13(火) 11:26:57ID:???
>>40です。会社に来たので、申し訳ないがsage〜
>>47>>49ありがとうございます
動くのかぁ… 会社の環境でも動かないんだよなぁ…スペック以外、全く環境一緒ですが…w  ちなみにfedora5, php5.1.6, apache2.0.58
やっぱりループの回数も上限235くらい。

ループの回数500くらいでも、問題無く動きそうな感じっぽい文章ですよねぇ…
会社に来てから
set_time_limit(600);
ini_set('memory_limit', '1024M');
も試してみましたが、駄目ぽい。きっと設定なんだろうけどなぁ;;;;

>>55 Zend Studioお勧め。鯖サイドとAjaxまで含めたJavaScriptのデバッグがエクリプスで近い将来出来るらしいから、ほんとはエクリプスお勧め。両方激重なのが難点
0057nobodyさん2007/02/13(火) 11:58:19ID:???
>>56
ありがとうございます。
そうなんですよね、うちのPCもスペック低いのでEclipseしにそうになる・・orz
0058nobodyさん2007/02/13(火) 12:03:12ID:9s+Mbwue
>>55
PHP IDEがいいよ。DEBUGできるし
0059nobodyさん2007/02/13(火) 12:26:47ID:DIAK3rft
今月分のデータというのを取り出したいので、
今月初めのタイムスタンプ、終わりのタイムスタンプを取り出したい。

$nen=date("Y");
$tuki=date("n");
//今月初めと終わりのタイムスタンプ
$month_strart = mktime(0,0,0,$tuki,1,$nen);
$month_end = mktime(23,59,59,$tuki,31,$nen);

としたが、これでは上手くいかない。例えば2月は28日までしかないので、
これでやると、2月末日のタイムスタンプが欲しいのだが、
3月3日ぐらいのタイムスタンプになる。うるう年とか考えるともう・・・

解決お願いします。
0060592007/02/13(火) 12:33:31ID:DIAK3rft
date("t")を使って自己解決しました。
0061nobodyさん2007/02/13(火) 13:02:21ID:oNelk7aK
php4.4とmysql5の
try〜catchが出来ない環境だと
どういった感じでcommit rollbackをすればいいのでしょうか?
0062nobodyさん2007/02/13(火) 13:21:15ID:???
>>61
素人でよくわかりませんが
ttp://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_s03.htm
なのどうでしょうか?
0063nobodyさん2007/02/13(火) 13:36:26ID:???
>>55
phpeditorはやめとけ
サクラエディタ使ったほうがまし
0064nobodyさん2007/02/13(火) 13:45:17ID:oVwJ3IKf
imagecreateした画像から
サイズを取得したい時はどうすればいいですか?
0065nobodyさん2007/02/13(火) 13:46:24ID:???
わかりましたすみません
0066nobodyさん2007/02/13(火) 13:46:44ID:zJDkWK4f
001-002と3桁で番号をふっていくにはどうすればよいですか!
0067nobodyさん2007/02/13(火) 13:53:43ID:rCAmUKes
PDOのプリペアドステートメントについて質問です。

$stmt = $obj_dbh->prepare("INSERT INTO test (name, price) VALUES (?, ?)");
$folder=array();
for($i=0 ;$i<2 ;$i++){
    $stmt->bindParam( $i+1, $folder[$i] );
}
$data=array('ぶばぶば', 2000);
foreach($data as $key=>$value){
    $folder[$key]=$value;
}
$stmt->execute();

上のはうまく動くのですが

$stmt = $obj_dbh->prepare("INSERT INTO test (name, price) VALUES (?, ?)");
$folder=array();
for($i=0 ;$i<2 ;$i++){
    $stmt->bindParam( $i+1, $folder[$i] );
}
$data=array('ぶばぶば', 2000);
$folder=$data;

$stmt->execute();

こうすると空のデータが放り込まれるのですがなぜでしょうか?

上ので動くのでやりたいことは出来るのですが、
どうしてなのか気になったもので。
両方とも print_r($folder) すると、変数のなようはまったく一緒です。

bindというのをイマイチ良く理解していなのですがその辺が原因で何か勘違いしてますでしょうか?
0068nobodyさん2007/02/13(火) 13:53:44ID:???
for($i=1;$i<100;$i++){
$str.= $i==99 ? str_pad($i,3,"0",str_pad_left) : str_pad($i,3,"0",str_pad_left)."-";
}
とかは?
0069682007/02/13(火) 13:56:01ID:???
for($i=1;$i<100;$i++){
$str.=str_pad($i,3,"0",str_pad_left);
$str.= $i==99 ? "" : "-";
}
こうか
0070662007/02/13(火) 14:03:01ID:zJDkWK4f
>>69
む、、難しそうだ。
array(001,002)とかで定義してやってみます><

0071nobodyさん2007/02/13(火) 14:05:56ID:???
>>67
そんなこともできるるんだな。
参照でわたってるからなんだろうけど・・・
気持ち悪いことするね。
値代入してから、それを使うのが普通だろ?
0072虚弱PHP2007/02/13(火) 14:15:05ID:???
>>67
参照の問題じゃないかな。
つまり、bindParamした$folderを$dataで"上書き"しているからうまくいかない。
0073虚弱PHP2007/02/13(火) 14:23:26ID:???
>>66
$str = sprintf('%03d', $i);
でもゼロパディングした文字列作れる。
0074692007/02/13(火) 14:32:55ID:???
>>73
そんな方法もあるんですね。
勉強になりました。
0075nobodyさん2007/02/13(火) 14:43:39ID:???
文字列を探すstrpos関数を使っています。
この関数調べる文字列の、一番最初の文字を
無視してしまっているようなのですが、どうすればちゃんと探してくれるんでしょうか?
0076nobodyさん2007/02/13(火) 14:48:33ID:???
>>75
自己解決しました。
一番最初にあると、0を返してくるんですね
0077nobodyさん2007/02/13(火) 15:16:10ID:???
>>76
php.net/strpos
0078nobodyさん2007/02/13(火) 15:35:09ID:Nn5A3pDr
クッキーについて質問です

> クッキー名で配列を記述することにより、 クッキーの配列を設定することも
> 可能ですが、複数のクッキーがユーザーのシステム上に保存されることになります。
> explode() を使用してひとつのクッキー上に複数の名前と値をセットすることも考慮してください。
http://www.php.net/manual/ja/function.setcookie.php

とのことですが、みなさんはどうしていますか?
Googleなどは一つのクッキー上にまとめてセットしているようです。

配列の数が少なければ問題ありませんかねぇ?(二つだけです)
0079nobodyさん2007/02/13(火) 15:47:42ID:???
サニタイズについて、
http://bakera.jp/hatomaru.aspx/glossary/30b530cb30bf30a430ba
に、
>※なお、これは HTML 文書中の属性値が全て二重引用符で括られている場合です。そうでない場合は、単引用符やスペースなども危険な文字となることがあります。
などと書いてあります。
これってどういうこと!? スペースまでサニタイズするのって無理じゃネ??
たとえばmixiなんて属性を二重引用符で囲ってないから、危険ってこと?
0080虚弱PHP2007/02/13(火) 15:58:11ID:???
>>79
<input type=hidden value=<?php echo $_GET['a'];?>>
↓
$_GET['a'] = 'a onMouseOver="alert();"';
↓
<input type=hidden value=a onMouseOver="alert();">

二重引用符で囲んどけば、そんなに気にしなくてOK。
0081nobodyさん2007/02/13(火) 15:58:54ID:Nn5A3pDr
>>79
二重引用符で括ってある場合は「< > & "」をサニタイズすれば
(一応)問題ないが、単引用符で括ってある場合はさらに「'」もサニタイズする必要があるってこと。
属性値をちゃんと引用符で括ってあれば半角スペースまでサニタイズする必要はないと思う。

HTMLの仕様は、単引用符でも二重引用符のどちらでもよいことになっているけれど
二重引用符の方がいいんじゃないかな。
0082nobodyさん2007/02/13(火) 16:06:21ID:???
そのHTMLがどちらでも可になってるという仕様はどこで見れますか?
0083nobodyさん2007/02/13(火) 16:12:11ID:Nn5A3pDr
>>82
World Wide Webに関する技術の標準化を行っている
「W3C」が仕様書を勧告しています。

まあ、一応日本語訳:
http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/intro/sgmltut.html#h-3.2.2
0084nobodyさん2007/02/13(火) 16:16:01ID:UEm9K3UG
PHPの関数すべて覚えてるって人いる?
0085nobodyさん2007/02/13(火) 16:19:57ID:???
>>80、>>81
>たとえばmixiなんて属性を二重引用符で囲ってないから、危険ってこと?
0086nobodyさん2007/02/13(火) 16:20:01ID:oVwJ3IKf
透過GIFのサイズを変えたくて
imagecolorresampledをしたのですが、
透過でなくなってしまいます。
透過のままサイズ変更するにはどうすればいいですか?
0087nobodyさん2007/02/13(火) 16:22:33ID:???
>>80
そのマウスオーバーだと動作しちゃうぞ。
valueを二重引用符で囲うべきだ。
0088nobodyさん2007/02/13(火) 16:23:48ID:???
>>85
mixiはいきなり危険
普通にログインしてる人はe-mailとpasswordがバレバレだしw
0089nobodyさん2007/02/13(火) 16:25:46ID:???
>>88
>普通にログインしてる人はe-mailとpasswordがバレバレだしw

なにそれ。適当な嘘吐きはイカンよ。

IEでmixiにログインしてる場合はアレな部分があるけど、
メアドとパスワードなんて漏れないし。
0090nobodyさん2007/02/13(火) 16:26:20ID:???
>>89
本気で漏れないと思ってるのかおまえw
0091nobodyさん2007/02/13(火) 16:26:24ID:???
>>84
なんで? なんで全部覚えなくちゃいけないんだ?
マニュアルを参照すればいいだけなのに……。

>>87
悪い例なんじゃないの?
0092nobodyさん2007/02/13(火) 16:27:37ID:???
>>91
あ、そうか。虚弱スマン
0093nobodyさん2007/02/13(火) 16:29:30ID:???
虚弱はわざと嘘教えてるんだよ
他人がセキュリティーホール満載のページ作っても関係ねーしなw
0094nobodyさん2007/02/13(火) 16:30:08ID:???
>>90
そんなに自信あるならソース出せ、狼少年。
0095nobodyさん2007/02/13(火) 16:30:34ID:???
>>89
httpsじゃないから余裕でゲットできるって話
0096nobodyさん2007/02/13(火) 16:32:06ID:???
>>94
パケットキャプチャでググりなさい、羊くん。
0097nobodyさん2007/02/13(火) 16:35:01ID:3uUSgwIq
掲示板へ書き込むときに、相手にIPアドレスを知られない様にする方法は有りますか。
0098nobodyさん2007/02/13(火) 16:35:19ID:???
>>95、>>96
それはmixiの脆弱性というよりHTTPというプロトコル自体の脆弱性というか仕様だしww

しかもパケットキャプチャなんて実際には確率的にほぼ実行不可能だし。
キャプチャがやれるもんならやってみろよww 少なくともお前らには無理だからw
0099892007/02/13(火) 16:35:41ID:???
パケットキャプチャでググってみました。
mixiってメアドもパスワードもバレバレだったんですね^^;
お恥ずかしい発言してごめんなさい…
0100nobodyさん2007/02/13(火) 16:36:00ID:???
暗号化うんうん言い出したらネットから切断した方が良いw
例え通信でばれなくても鯖管にはわかるわけだし、中の人が信じられる保証はどこにも無い
0101nobodyさん2007/02/13(火) 16:37:10ID:???
>>95や>>96のようなバカが、にわか知識で知ったかぶって
無知な大衆の不安を無駄に煽るせいで、
むやみに「セキュリティ! セキュリティ!」と騒ぐバカがさらに増える悪循環。
■ このスレッドは過去ログ倉庫に格納されています