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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/04/09(日) 01:31:18ID:???
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/

【PHP】下らねぇ質問はここに書き込みやがれpart18
http://pc8.2ch.net/test/read.cgi/php/1142417901/

過去スレは>>2-3あたり
0004nobodyさん2006/04/09(日) 01:32:54ID:???
・part17よりテンプレ化

extractは極力使わないほうがいいと思います。
例えば、

hoge.php?_SESSION[user_pw]=hogehoge

って形で送られてきたとします。これを

extract($_GET)

しちゃうと、$_SESSION['user_pw']の値が、
"hogehoge"に変更されてしまいます。

もし事前にユーザのパスワードを、$_SESSION['user_pw']に
保持してたとしたら、勝手に書き換えられてしまうことになります。

それを避けるために

extract($_GET, EXTR_SKIP)

ってやって上書きを避けたとしても、
このままでは変数の初期化を忘れる危険性があります。

extract($_GET, EXTR_PREFIX_ALL, "get")

と、接頭辞をつけるのが一番安全な気はしますが、
それなら最初から
$hoge = $_GET['hoge'];
ってやるのと手間が変わらないと思いますし、可読性も増します。
確かにextractするのは楽だと思いますけど。
0005nobodyさん2006/04/09(日) 01:35:05ID:???
乙
0006nobodyさん2006/04/09(日) 01:35:33ID:???
前スレ1000、舐めてるなw
0007nobodyさん2006/04/09(日) 01:36:36ID:???
SQLインジェクションとは

全く心配は要りません。
昔と違い今は法律ができたおかげで安心して脆弱なプログラムが使えるらしいです。
0008nobodyさん2006/04/09(日) 01:47:32ID:???
PHPプログラマの心得その1

PHPに求められるものは1に開発の速さ、2に開発コストの安さです。
決してエラーチェックやセキュリティ対策を頑張ってはいけません。
それはコードの冗長化や複雑化を招き、テスト期間の長期化も招きます。
そのような堅牢なプログラムはJavaやC♯といった高性能言語に任せればいいのです。
0009nobodyさん2006/04/09(日) 01:48:32ID:???
前スレからの続き。
漏れの会社はデフォではチェックしないが
別料金でSQLインジェクションなどの対策オプションを作って依頼者にはちゃんとやってる。
XSS対策: +1000円
SQLインジェクション対策: 1500円
CSRF対策: +4000円
CSSXSS対策: 30000円

CSSXSSはWebアプリではなくInternetExporerの脆弱性であり対応が困難なので高価になっている。
0010nobodyさん2006/04/09(日) 01:52:39ID:???
・・・それは安すぎじゃないか?
0011nobodyさん2006/04/09(日) 01:53:04ID:qYTyFCRs
>>9
SQLインジェクション対策って、具体的になにしてるの?
外部から渡される値をSQLに埋める時にエスケープしてればそもそも何の心配もいらないと思うんだけど、
わざわざオプションにするような“対策”ってどんなの?
0012nobodyさん2006/04/09(日) 01:55:00ID:???
>>11
むしろ「エスケープ外せば1000円値引きできますよ」とかいうオプションにしか見えないw
0013nobodyさん2006/04/09(日) 01:56:57ID:???
>>10
mysql_escape_stringやhtmlspecialcharsをかますかどうかなんて
開発コストからしたら500円もしないもののような気がするが。
0014nobodyさん2006/04/09(日) 02:03:26ID:???
>>13
それを噛ますかどうか交渉する時間があるなら、最初からやった方が無駄が無いよな。
というか、エスケープなんてのは空気のようなもんで、あって当たり前だと思ってたよ。
エスケープしてなかったら入力にかなりの制限が付くはずだけど、エスケープしない人たちはその辺どうしてるのかな?
0015nobodyさん2006/04/09(日) 02:09:25ID:???
一言「運用でカバー」
0016nobodyさん2006/04/09(日) 02:11:50ID:???
>>14
交渉自体は営業や担当窓口でやるものだから無駄とか関係ないんじゃ?
で、料金一覧表に最初から明記してあって、発注時に選べばいいだけになってる気がする。
0017nobodyさん2006/04/09(日) 02:17:46ID:???
>>16
>>9 のオプション全部入れたって4万もしないようなもんだろ?
それをわざわざオプションを設けて作り分けるってのも、そもそも無駄な気がするけどなぁ
あヤベ、うっかり対策入りにしちまった、外さないと・・・ なんてことになったら目も当てられない

しかし、わざわざする“対策”の内容は興味あるな。
まさか単なるエスケープの有無じゃないよな?
0018nobodyさん2006/04/09(日) 02:18:12ID:???
大してデカい仕事やってるヤツいないんだな。

普通は、開発終了後は業務委託契約に切り替えて、
恒久的にバグなどの補填や、セキュリティバグなどの保証とする。
だから、もしそのセキュリティバグから何かの情報が漏れて、経済的負担が出れば、
受託したこっちにもいくらかの負担が発生する。
会社であれば、負担としては小さいかもしれないが、会社の信用が落ちる。
個人だったら、その負担だけでもう一生借金地獄もありうる。
それを極力無くす為に当然SQLインジェクションとか、XSSやらは実装は当然だろ。

100とかそんぐらいのしょぼい仕事してないで、
もうちょっと大きいクライアントとってくれば?井の中の蛙サン達。
0019nobodyさん2006/04/09(日) 02:31:34ID:???
一体どのレスに対してのレスなんだ。
0020nobodyさん2006/04/09(日) 02:38:00ID:???
PHPおもすれー

最近PHPばっかりだよ。もうintとか型を忘れそうだ・・・
0021nobodyさん2006/04/09(日) 02:43:15ID:???
RSSが更新されたらメールで知らせてくれるスクリプト公開してる
ところありませんかあ?
0022nobodyさん2006/04/09(日) 02:43:40ID:???
>>21
スクリプト探しはスレ違い
0023nobodyさん2006/04/09(日) 02:48:40ID:???
>>22
ごめんなさいです><
0024nobodyさん2006/04/09(日) 03:21:20ID:???
>>9はどう見ても釣りだろ。お前ら簡単に釣られ過ぎ。
プログラマとかオタクは本当に世間知らずが多いな。
3年くらい営業の仕事でもやってこいって感じだ。
0025nobodyさん2006/04/09(日) 03:27:07ID:???
>>24
> 3年くらい営業の仕事でもやってこいって感じだ。
> 3年くらい営業の仕事でもやってこいって感じだ。
> 3年くらい営業の仕事でもやってこいって感じだ。
コーディングが出来ないから営業に回されちゃったんですか^^;
かわいそうですね(´・ω・`)
002692006/04/09(日) 03:43:23ID:???
>>13
そんなことは無い。
print "名前: $name<br />年齢: $age"; というコードが、
print "名前: " . h($name) . "<br />年齢: " . h($age); のようになるわけで、
コードが汚くなる上、コード全体ではh関数を1000個近く入力するわけだ。
ヒアドキュメント内で使うときには別の変数への置き換えなどもいるからね。
これはかなりの手間。
それが、たった1000円とはお得だ。

顧客としては、セキュリティ対策が行われているか不安なわけで、あえて別料金にしたほうが安心感が出る。
「当社ではXSS対策、SQLインジェクション対策は標準で行ってます。」よりは、心理的にセキュリティ対策のチェックオプションを選ぶ方が安心できるわけだ。

営業の人によれば、たった1500円であの価格comのクラックの原因のSQLインジェクション対策ができるなんて!! って感激してたクラもいたそうだ。
クラは知識が無い人が多い。

ちなみに、CSSXSS、CSRFについては最近では「正しい情報」が公開されていて次のようなサイトで誰でも観覧できる。
http://www.jumperz.net/texts/csrf.htm
http://www.oiwa.jp/~yutaka/tdiary/20060330.html
http://bakera.jp/hatomaru.aspx/glossary/0043005300520046
http://bakera.jp/hatomaru.aspx/glossary/30bb30c330b730e730f356fa5b9a653b6483
http://takagi-hiromitsu.jp/diary/20050427.html
http://slashdot.jp/developers/06/04/01/2145235.shtml
http://tdiary.ishinao.net/20060331.html
http://d.hatena.ne.jp/hoshikuzu/20051204#P2005204MATANGILLON
http://kaede.to/~canada/doc/csrf-warning
http://kaede.to/~canada/doc/csrf-todo

しかし、つい1年前にはまともな情報は公開されておらず、Webからえられる情報は間違った情報、不十分な対策ばかりだった。
mixiでの被害でやっと世間に知れ渡ったって感じだったね。
Webから情報がえられないから会社で独自に対策を研究したため、CSRF関係はだいぶコスト(人件費)がかかったよ。
0027nobodyさん2006/04/09(日) 03:55:54ID:???
出力部分をまとめとけばいいじゃない
0028nobodyさん2006/04/09(日) 04:02:53ID:???
個人でやっているならそれもありだろうけど、そのコストに
1000円や1500円の代価しかつかない、付けられないってもなんだ
かなぁ。
0029nobodyさん2006/04/09(日) 04:12:05ID:???
>>27
例えば、$error という変数にはプログラム側でのエラーメッセージ(タグ含む)が入ってるかも知れんし、
全ての変数をエスケープ処理していいわけはない。
そして、前の段階でチェックをすれば、チェック漏れが生じる可能性があるため、
「出力前」の時点でエスケープ処理をするのが一番確実かと。
0030nobodyさん2006/04/09(日) 04:19:18ID:???
print "名前: $name<br />年齢: $age"; の例だと、

h ("名前: $name");
echo ("<br />");
h ("年齢: $age");

これのがチェック漏れはおきないんじゃ
0031nobodyさん2006/04/09(日) 05:34:12ID:???
うちは
function disp_xxxx($data) {
  $data = array_may('htmlspecialchars', $data);
?>
名前: $d[name]<br />
年齢: $d[age]<br />
<?
みたいな。HTMLのとこは実際は別ファイルだけど。
テンプレートライブラリ使ってることも似たような感じじゃないの?
いまどき、print "年齢: $name<br />"なんつーコードは書かんだろ。

> $error という変数にはプログラム側でのエラーメッセージ(タグ含む)が入ってるかも知れん
まぁ、エラー表示とかシステム表示系の関数はまた独自のルールで作るもんだよな。
それ以外の通常のHTML表示に関しては、HTMLを書いてる部分(デザイナーが編集してる部分)以外で
変なタグ入れられても困るので変数にタグ入れるのは絶対禁止にしてる。
0032nobodyさん2006/04/09(日) 05:34:59ID:???
あ、$d[name]じゃなくて$data[name]だったか。
0033nobodyさん2006/04/09(日) 05:40:16ID:8VHURzhD
漏れはエスケープしなくても
echo "名前: ", $name, "<br />年齢: ", $age;
って書くなぁ。ヒアドキュメントも?>〜<?phpも汚くなるので使わない。
この辺は考え方の違いとかあるんだろうけど。


>>前スレ993
http://pc8.2ch.net/test/read.cgi/php/1142417901/993
>検索結果の2ページ目以降が、フォームで受け取った値を保持しません。
>どうしたらよいでしょうか?
2ページ目以降にもフォームで受け取った値を渡すようにする。
0034nobodyさん2006/04/09(日) 05:45:23ID:???
>>31-32
興味ある。
いまいちよくわからんだけど、
$data[name] って何?
0035342006/04/09(日) 05:52:04ID:???
ようするに、予め $data をエスケープしたやつを $d['data'] のように配列に変換しちゃうってことかなるほどねー。
それだと確かに、

print "名前: $d['name']<br />年齢: $d['age']";

とかける。

0036nobodyさん2006/04/09(日) 06:19:30ID:???
>>33
考え方の違いが結構ありそうだなぁ。
俺は "名前: ", $name とか"名前" . $name ってのは、関数を通す必要が
あるとかの場合以外は極力使わないようにしてる。(関数使う場合も可能な限り事前変換)
出力内容が . とか , とかで大量に分断されてると、その文中にさらに , . " ' を含む場合に
ミスがあっても一目で判断することが至難の業になるからね。

>>31の?>HTML<?php 形式ってのは実際には別ファイルのHTMLをincludeで読み込んでるから
微妙に違う話だったりもするんだけど、ちっこいプログラムなんかでは?>HTML<?phpも使う。
理由は対応エディタなら識別してHTMLタグを色分け表示してくれたり、
<DIV>→</DIV>などの閉じタグ間で括弧とかと同様に一発ジャンプできるようになるから。
0037nobodyさん2006/04/09(日) 09:01:25ID:???
つーかさ、クラック対策とか以前に入力されたものをエスケープもしないで出力しちゃうっていうのは、使用上の大きな制限が付くわけだろ?
コードが綺麗とか汚い云々言う前に、きちんと動くものを作らなくちゃって思わないの?
たかだか < とか > とか " とか入力されただけで表示や機能が破綻してしまうわけだよ?
マニュアルにそういう入力で画面が崩れるのは仕様ですとか書いちゃうわけ?
プロがやる仕事として恥ずかしいとか思わない?

ちなみにおれは、画面表示HTMLは別ファイルにしておいて、そこでエスケープやら埋め込みやらするよ。
こんなかんじ。

(コード hoge.php)
$keyword=ほにゃらら;
$records=検索($keyword);
include 'hoge.tpl';

(別ファイル hoge.tpl)
<form>
<input type="text" name="keyword" value="<?=esc1($keyword);?>"><br />
<input type="submit" name="search" value="検索"><br />
</form>
検索結果<br />
<? if(empty($records)) { ?>
該当レコードはありません<br />
<? } else { ?>
<table>
<tr><td>名前</td><td>年齢</td></tr>
<? foreach($records as $r) { ?>
<tr><td><?=esc2($r['name']);?></td><td><?=esc2($r['age']);?></td></tr>
<? } ?>
</table>
<? } ?>
0038nobodyさん2006/04/09(日) 09:05:07ID:???
SmartyとかMojaviで、PHPファイル名に「class」という文字列を
挟むのを良く見るのですが、どんな意味があるのでしょうか?
(例えば、Smarty.class.phpとかController.class.phpとか)
そんな命名規約ってありましたっけ?
0039nobodyさん2006/04/09(日) 09:18:09ID:???
SmartyやMojaviを作った人の趣味じゃねーの?
0040nobodyさん2006/04/09(日) 10:52:26ID:???
php覚えれば2chみたいな掲示板作れますか?
0041nobodyさん2006/04/09(日) 11:11:04ID:???
はい
0042nobodyさん2006/04/09(日) 11:41:43ID:2atGm5L3
セッションの為の文字列を生成しようと思っているのですが、
一般的にハッシュが使われるのはなぜでしょうか?
mt_randを使おうと思っているのですが、何か問題があるのでしょうか?
0043nobodyさん2006/04/09(日) 12:14:58ID:???
推測が不可能(に近い)って意味じゃ対して変わらんかも知れんが、
mt_randの方は RAND_MAXの制限を受けるし、
セッションの方は md5(128bits)かSHA-1(160bits)になるから、
まぁ強度が違うって感じかと。
0044nobodyさん2006/04/09(日) 13:16:37ID:???
>>42
セッションのための文字列?? セッションIDのこと?
それはPHPが勝手に発行してくれるんでは・・・
0045nobodyさん2006/04/09(日) 13:49:02ID:???
[notice] Parent: child process exited with status 3221225477 -- Restarting.
[notice] Parent: Created child process 5420
[notice] Child 5420: Child process is running
[notice] Child 5420: Acquired the start mutex.
[notice] Child 5420: Starting 250 worker threads.

Apacheがこのようなエラーを吐いて強制終了してしまうのですが、
PHPコード上、どのような不具合が生じているのでしょうか?
パースエラー等が出るわけでもなく、一度は正常に表示されて、
リロードするとこのようなエラーが発生することが多いです。
OSはWinXPです。
0046nobodyさん2006/04/09(日) 14:52:11ID:LktfeTrO
ファイルのアップローダを作っているのですが
POSTで受け渡し
print $_FILES["file"]["tmp_name"];
にてjpegならimage/pjpegと表示されるのですが
bmpだけ何故か空になってしまいます。
apache2を使っているのですが、設定によるものなのでしょうか?
0047nobodyさん2006/04/09(日) 15:19:01ID:???
>>46
まず
$_FILES["file"]["tmp_name"]
ではなく
$_FILES["file"]["type"];
じゃないのか?
それはそうとMIME型なんてブラウザが吐くあいまいなものと
オレは認識しているのだが…ちがうのかな?
0048nobodyさん2006/04/09(日) 15:30:37ID:???
>>46
ブラウザが送ってくるContent-Typeを代入しているだけ。
bmpの時に送られてないだけじゃねーの?
当然詐称される可能性があるので、mime_content_type() (こいつは中身(つーか先頭部分だけ)を調べる)か、
getimagesize()なんかで、それが正しいかどうかチェックした方がよい。
0049462006/04/09(日) 15:45:47ID:???
>>46>>47
すいません。print $_FILES["file"]["tmp_name"]; は書き間違いです^^;
なるほど、理解できました!
ありがとうございました!
0050nobodyさん2006/04/09(日) 17:16:32ID:???
>>45
PHPかApacheかどっちかは不明だけど、メモリアクセス違反とかメモリリークとか
そういった内部的な致命的エラーが発生してる確率が高い。
それ、全然くだらん質問じゃないと思う。

同種の話がいくつかML等に転がってるけど
・解決しなかった
か
・ApacheやHPのバージョンを変えたら何故か直った
のどっちかくらいしか見当たらない。
0051nobodyさん2006/04/09(日) 17:26:36ID:???
>[notice] Parent: child process exited with status 3221225477 -- Restarting

Apacheに詳しい人なら3221225477 = 0xc0000005から何か追えるかもね
とりあえず質問する場所はここじゃないと思われ
0052nobodyさん2006/04/09(日) 18:21:24ID:???
>>51
ApacheMLでもそのエラーからは何も回答が出せてなかったよ
0053nobodyさん2006/04/09(日) 18:44:04ID:???
array_key_existsは連想配列には対応していないのでしょうか?
断層が深い配列がヒットしなくて困っています。
0054nobodyさん2006/04/09(日) 18:50:30ID:???
てか、多次元配列(のようなもの)には対応してないんじゃまいか?
次元数が不定なら再帰呼び出しで潜っていくのが吉かと。
0055nobodyさん2006/04/09(日) 18:59:30ID:???
>>53
連想配列には普通に使える。2次元以上の深さは無理。
なんでそれを一緒に語る?
0056nobodyさん2006/04/09(日) 19:02:24ID:???
ifの条件式で

if (0 <= $num < 10) {
・・・
}

こういう書き方できないんですか?エラーでてしまいます。

if ($num >= 0 && $num < 10) {
・・・
}

これならうまくいくんですが。
0057nobodyさん2006/04/09(日) 19:03:12ID:???
>>56
ムリ
0058nobodyさん2006/04/09(日) 19:16:40ID:???
"0xFFFFF"という形式のストリングを
実際に16進数の0xFFFFFFという値に変換するにはどうやればよいのでしょうか。
宜しくお願いします。
0059nobodyさん2006/04/09(日) 19:22:51ID:???
>>58
hexdec()
マニュアルくらい常備したら?
0060nobodyさん2006/04/09(日) 19:32:15ID:???
>>59
ありがとうございます。
型の変換パートと、文字列パートばっかり探してました。
mathにあるなんて思いもしませんでした。
0061nobodyさん2006/04/09(日) 19:36:06ID:???
「進数変換」って言葉知ってる?
0062nobodyさん2006/04/09(日) 19:40:47ID:yKOq7PT+
>>61
恥ずかしながら今知りました。
0063nobodyさん2006/04/09(日) 19:59:17ID:???
MySQLなどとの連携にすぐれているといわれてますが
これがあると具体的にどのように役にたつのでしょうか?
phpだけでは掲示板とか作れませんか?
0064nobodyさん2006/04/09(日) 20:02:58ID:???
データベースが無くてもつくれます。
0065nobodyさん2006/04/09(日) 20:07:33ID:???
>>63
より大規模で高性能なものを作るときに、高速で安定したものが作れます。
個人サイトのちっこい掲示板くらいなら別に無くてもいいです。
0066nobodyさん2006/04/09(日) 20:13:34ID:???
>>64
>>65
ありがとうございます
0067422006/04/09(日) 21:18:39ID:2atGm5L3
>>43
RAND_MNAXの制限を受ける点については一文字ずつ生成すれば良いと思うのですが、
元々考えていたtiger192,4でのセッション文字列生成より明らかに遅い(五倍ほど)のが気になります。
for($i = 0; $i <=32; $i++) { $hash .= chr(mt_rand(62, 126)); }というコード(同じ192ビット)でベンチマークを取ってみたのですが。。
出来ればchrを\xにして、forを使わないようにすればもう少し早くなりそうなんですが。自分ではこれが限界です。
どなたか上のコード添削していただけると嬉しいです。
乱数生成であれば専用の関数を使った方が早いように思えるのですが、ハッシュの方が適しているのでしょうか?
それとも適切なコードを書けばそれより早い結果を得られるのでしょうか?どなたかご教示していただけると嬉しいです。
>>44 PHPの機能は使わず自作する場合です。PHPではハッシュを使ってるみたいですね。
0068nobodyさん2006/04/09(日) 21:42:15ID:???
>>45
Warningエラーの行はない?Noticeだけでは落ちないと思うのだが
0069nobodyさん2006/04/09(日) 21:59:29ID:???
Warningじゃねーか。Errorか。

ttp://www.google.com/search?num=50&lr=lang_ja&UTF-8&q=Parent%3A+child+process+exited+with+status+3221225477+--+Restarting.
スタックオーバーフロー起こしてるっぽい?
0070nobodyさん2006/04/09(日) 22:02:43ID:???
2chが未だにSQLを採用しないのにはどういうわけがあるんだろ
0071nobodyさん2006/04/09(日) 22:09:03ID:???
SQL(つーかデータベース)を使うメリットがあるならそっちの方が知りたいね。
0072nobodyさん2006/04/09(日) 22:10:01ID:???
ttp://bugs.php.net/search.php?search_for=child+process+exited+with+status+3221225477+--+Restarting&boolean=0&limit=90&order_by=&direction=ASC&cmd=display&status=All&php_os=&phpver=&assign=&author_email=&bug_age=0
0073nobodyさん2006/04/09(日) 22:18:52ID:qYTyFCRs
>>67
完全な乱数を、ダブらないことを保証して作るのは少し面倒だったりしない?
0074nobodyさん2006/04/09(日) 22:28:21ID:???
完全な乱数だなんて、そんなパンドラの箱を・・・
0075nobodyさん2006/04/09(日) 22:40:32ID:???
>>73
重複を許さないのであれば、それは乱数発生ではなくてシャッフルになるだろ
0076422006/04/09(日) 22:44:08ID:???
>>73
ご返信ありがとうございます。完全に均等である(事を目指している)が故に、ハッシュを使うのも乱数を使うのもコリジョンの確率は同程度だったと記憶しております。

先程のコードを検討してみたところループで馬鹿みたいにロスをしていたので、現在二度mt_randを使って生成するように頑張ってます。
素直にハッシュ使えば良いんですが、どうしてももやもやするので。。
0077nobodyさん2006/04/09(日) 23:01:58ID:???
>>70
単純でミニマムな要素を組み合わせて大規模にした構成の方が結果的に高速だから。
ここまででかくなると普通にDBにしても性能は出ない。
凝ったDBを構築するくらいなら生datを専ブラに拾わせる今の形態の方がずっとシンプルで性能がいい。
0078nobodyさん2006/04/09(日) 23:05:34ID:???
>>42
現在使用中の他と重複しない一意の文字列を生成するのに
1番手っ取り早くてリソースも食わなくて高速だからでは。
逆にもっといい手法ってあるの?と聞きたい。
色々書いてる1桁ずつ乱数使って…とかいう話は「バカ?」としか思えない。
普段から常用するセッションIDの生成にそんなリソース食う方法使えるわけないでしょ。
0079422006/04/09(日) 23:12:45ID:2atGm5L3
>>78
素人考だとハッシュの生成(同一性も確認できる均等に分配される文字列)より、乱数の生成(均等に分配される文字列)の方が早いような気がするのですが、
もしよろしければなぜハッシュの方が早いのか教えていただけないでしょうか?気になります。。
0080nobodyさん2006/04/09(日) 23:25:38ID:aTeqKq3o
前スレ988です。
前スレ990さんいますか?
javascriptでやる方法は検討していたのですが、分かりませんでした。
小窓からjavascriptを使って、メインウインドウのselectの内容(mysqlに
新規に追加した項目)を更新したいです。
使用する関数や具体的なコードのヒントが書かれたページなど
ご存知でしたら教えてください。
よろしくお願いします。
0081前スレ9902006/04/09(日) 23:27:26ID:???
>>80
JavaScriptの質問スレいきな
0082nobodyさん2006/04/09(日) 23:30:15ID:???
>>80
Ajax をぐぐってみたら?
0083822006/04/09(日) 23:34:05ID:???
あ、小窓を開くのね。
じゃあ Ajax なんていらないね。
>>81 が正解だと思う。
0084nobodyさん2006/04/09(日) 23:37:51ID:???
>>80
JavaScriptの基礎的テク。
その辺の初心者向けサンプル集にも書かれてるんじゃない?レベル。
0085nobodyさん2006/04/10(月) 00:20:37ID:???
会社がただのhtmlとcssでwebサイト作るだけからphpとDB使った仕事も受けるようになってから、勉強しながらこなした仕事の中には全くセキュリティ対策してないのもあるや。アヒャヒャ

>>31
array_mapだよね?
array_mapで、POST、GET、SESSION、COOKIEもしくは$_REQUESTにまとめて掛けちゃうのがやっぱり定番なんですかね?
その他、エラー処理なんかどうしてますか?>エラーとする文字列の検出
例えばあきらかに悪意のある文字列が含まれてる時とか・・・
漏れは、そういうときは、もう別画面に飛ばして、全部、自分に$_REQUESTの内容をメールで飛ばすって感じ。

個別に「○○欄に○○が含まれています」みたいなエラー処理(エラー告知)は、マンドクサ
顧客が記入するフォームはめんどくさいけど、項目数たかが知れてるから力技でなんとかしてる。


>>33
漏れはたいていこう書く

echo "名前: {$name}<br />年齢: {$age}";

これが一番可読性よくない?

>>前スレ993
POSTした検索条件をセッションに入れておいたうえでページングとか?
0086nobodyさん2006/04/10(月) 00:35:01ID:???
>>85
$_POST全部エスケープとかはしないなぁ。
必要なのはあくまでSQLに入れるデータとHTMLに吐き出すデータでしょ?
だからSQL用の関数・メソッドと表示用の関数・メソッドでそれぞれ
受け渡したデータのみ変換かけてる。
0087nobodyさん2006/04/10(月) 00:42:07ID:???
>>42
つ http://www.atmarkit.co.jp/fsecurity/rensai/webhole03/webhole01.html
0088nobodyさん2006/04/10(月) 00:57:08ID:???
>>45
> [notice] Child 5420: Starting 250 worker threads.
直接の原因は判らんがMPMあたりくさい。
workerで使ってるなら、そういうのが出るのも甘んじろというのが現状かも。
http://www.php.net/manual/ja/install.windows.apache2.php

0089nobodyさん2006/04/10(月) 00:57:33ID:???
>>76
予め文字列連番を数億個生成しておいて、
都度食いつぶしていけば?
0090nobodyさん2006/04/10(月) 00:59:58ID:???
>>79
単純な、ハッシュ値の算出vs1回の乱数ならそりゃ乱数の方が速いだろうけど、
今やろうとしてるのは30〜50桁を桁数分だけ毎回乱数取得だろ?
そんなのどうやってもハッシュほど速くなんて計算できないだろう。
0091422006/04/10(月) 01:17:38ID:EZQH4hCw
>>86
返信ありがとうございます。この実行時間差で悩んでるので、それはちょっと、、です。
>>90
forのところが悪いですか。。一度で算出しようにも桁数が大きくなりすぎてorzです。
いくつかに分ければ出来るかなぁ、と試行錯誤してますがスキル不足で出来ません><
もしよろしければコードを、、と甘えてみるテスト。
0092nobodyさん2006/04/10(月) 01:24:52ID:???
なんだこいつ
うぜえ
0093nobodyさん2006/04/10(月) 01:35:24ID:???
>>91
> もしよろしければコードを、、と甘えてみるテスト。
だからハッシュでやれって。無理だから。
何のためのハッシュだと思ってんのよ。
スキルも無いくせに「乱数の方が速いはずだ」とかいいかげんなことぬかしてんじゃねぇ。
0094422006/04/10(月) 01:47:28ID:???
ごめんなさい。非常に申し訳ないのですがベンチマークで致命的で初歩的なミスを犯していました。
普通にMTでの生成が早かったです。お騒がせいたしました。
0095nobodyさん2006/04/10(月) 01:53:29ID:???
釣りウザ
0096nobodyさん2006/04/10(月) 02:54:11ID:???
質問させてもらいます
Webサイトを作っているのですが
ページの一番下段に、コピーライトなどの文を入れています。
今までは一々、1ページ枚にHTMLで記述していたのですが
それだと、その文(コピーライト等)に変更があった場合全て書き直しが必要になるので
PHPを使い、その部分を読み込もうと思いました。

ですが、実際にやってみると
そのコピーライトの部分を読み込む際に
require('./under.php');
とやると、同位のディレクトリからは問題なく読み込めるのですが
その下位のディレクトリになると
require('./../under.php');
等としていかなければならず、ディレクトリ構成に変更があった場合は
結局書き直しが必要になってしまいます。

こういう場合は、皆様はどのようにして
上記のようなことを実現しているのでしょうか?
すいませんが、教えていただけると幸いです。
どうかよろしくお願いいたします
0097nobodyさん2006/04/10(月) 03:09:59ID:???
日本語でおk
0098nobodyさん2006/04/10(月) 03:16:22ID:???
>>96
1.フルパスで書く
2.$_SERVER['DOCUMENT_ROOT']からのパスにする
3.includeパスを設定する
好み+TPOでご自由に
0099nobodyさん2006/04/10(月) 06:27:30ID:???
みなさんありがとうございました。
フレームワークのEthnaを使っていたのですが、その設定部分に
'log_facility' => 'user',
とするとこの現象が起きていたようで、結局この部分を書き換えてとりあえず
スクリプト自体は動くようになりました。
また、PEARをinclude_onceする部分をコメントアウトするとことでも
Apacheの強制終了が無くなりました(当然Fatal Errorでスクリプト自体は動きませんが)。
根本的な原因はわかりませんでしたが、PEARとEthnaのLogger周辺が原因となっていたようです。
0100nobodyさん2006/04/10(月) 06:27:49ID:???
>>96
98の続き。

4.その程度のことを自分で解決できない場合、
コンピュータのセンスが無さ過ぎのでプログラミングは諦める。
0101nobodyさん2006/04/10(月) 06:27:59ID:???
すいません、>>99は>>45です。
0102nobodyさん2006/04/10(月) 06:52:57ID:???
>>31
可読性が増すのでその方法を採用しようと思うのですが、
幾つか質問があります。

array_may という関数を使っているようですが、これはどのような処理のユーザ定義関数でしょうか?
0103nobodyさん2006/04/10(月) 07:18:38ID:???
>>102
array_mapの書き間違い
■ このスレッドは過去ログ倉庫に格納されています