【PHP】下らねぇ質問はここに書き込みやがれ Part19
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2006/04/09(日) 01:31:18ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【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あたり
0002nobodyさん
2006/04/09(日) 01:31:41ID:???【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
0003nobodyさん
2006/04/09(日) 01:32:15ID:???http://pc8.2ch.net/test/read.cgi/php/1127581425/
【PHP】下らねぇ質問はここに書き込みやがれpart11
http://pc8.2ch.net/test/read.cgi/php/1129582431/
【PHP】下らねぇ質問はここに書き込みやがれpart12
http://pc8.2ch.net/test/read.cgi/php/1130835396/
【PHP】下らねぇ質問はここに書き込みやがれpart13
http://pc8.2ch.net/test/read.cgi/php/1132921016/
【PHP】下らねぇ質問はここに書き込みやがれpart14
http://pc8.2ch.net/test/read.cgi/php/1134868212/
【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/
【PHP】下らねぇ質問はここに書き込みやがれpart16
http://pc8.2ch.net/test/read.cgi/php/1139146534/
【PHP】下らねぇ質問はここに書き込みやがれpart18
http://pc8.2ch.net/test/read.cgi/php/1142417901/
0004nobodyさん
2006/04/09(日) 01:32:54ID:???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:???0007nobodyさん
2006/04/09(日) 01:36:36ID:???全く心配は要りません。
昔と違い今は法律ができたおかげで安心して脆弱なプログラムが使えるらしいです。
0008nobodyさん
2006/04/09(日) 01:47:32ID:???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:qYTyFCRsSQLインジェクション対策って、具体的になにしてるの?
外部から渡される値をSQLに埋める時にエスケープしてればそもそも何の心配もいらないと思うんだけど、
わざわざオプションにするような“対策”ってどんなの?
0013nobodyさん
2006/04/09(日) 01:56:57ID:???mysql_escape_stringやhtmlspecialcharsをかますかどうかなんて
開発コストからしたら500円もしないもののような気がするが。
0014nobodyさん
2006/04/09(日) 02:03:26ID:???それを噛ますかどうか交渉する時間があるなら、最初からやった方が無駄が無いよな。
というか、エスケープなんてのは空気のようなもんで、あって当たり前だと思ってたよ。
エスケープしてなかったら入力にかなりの制限が付くはずだけど、エスケープしない人たちはその辺どうしてるのかな?
0015nobodyさん
2006/04/09(日) 02:09:25ID:???0016nobodyさん
2006/04/09(日) 02:11:50ID:???交渉自体は営業や担当窓口でやるものだから無駄とか関係ないんじゃ?
で、料金一覧表に最初から明記してあって、発注時に選べばいいだけになってる気がする。
0017nobodyさん
2006/04/09(日) 02:17:46ID:???>>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ばっかりだよ。もうintとか型を忘れそうだ・・・
0021nobodyさん
2006/04/09(日) 02:43:15ID:???ところありませんかあ?
0024nobodyさん
2006/04/09(日) 03:21:20ID:???プログラマとかオタクは本当に世間知らずが多いな。
3年くらい営業の仕事でもやってこいって感じだ。
0025nobodyさん
2006/04/09(日) 03:27:07ID:???> 3年くらい営業の仕事でもやってこいって感じだ。
> 3年くらい営業の仕事でもやってこいって感じだ。
> 3年くらい営業の仕事でもやってこいって感じだ。
コーディングが出来ないから営業に回されちゃったんですか^^;
かわいそうですね(´・ω・`)
00269
2006/04/09(日) 03:43:23ID:???そんなことは無い。
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:???例えば、$error という変数にはプログラム側でのエラーメッセージ(タグ含む)が入ってるかも知れんし、
全ての変数をエスケープ処理していいわけはない。
そして、前の段階でチェックをすれば、チェック漏れが生じる可能性があるため、
「出力前」の時点でエスケープ処理をするのが一番確実かと。
0030nobodyさん
2006/04/09(日) 04:19:18ID:???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:???0033nobodyさん
2006/04/09(日) 05:40:16ID:8VHURzhDecho "名前: ", $name, "<br />年齢: ", $age;
って書くなぁ。ヒアドキュメントも?>〜<?phpも汚くなるので使わない。
この辺は考え方の違いとかあるんだろうけど。
>>前スレ993
http://pc8.2ch.net/test/read.cgi/php/1142417901/993
>検索結果の2ページ目以降が、フォームで受け取った値を保持しません。
>どうしたらよいでしょうか?
2ページ目以降にもフォームで受け取った値を渡すようにする。
003534
2006/04/09(日) 05:52:04ID:???それだと確かに、
print "名前: $d['name']<br />年齢: $d['age']";
とかける。
0036nobodyさん
2006/04/09(日) 06:19:30ID:???考え方の違いが結構ありそうだなぁ。
俺は "名前: ", $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.class.phpとかController.class.phpとか)
そんな命名規約ってありましたっけ?
0039nobodyさん
2006/04/09(日) 09:18:09ID:???0040nobodyさん
2006/04/09(日) 10:52:26ID:???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)になるから、
まぁ強度が違うって感じかと。
0045nobodyさん
2006/04/09(日) 13:49:02ID:???[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:LktfeTrOPOSTで受け渡し
print $_FILES["file"]["tmp_name"];
にてjpegならimage/pjpegと表示されるのですが
bmpだけ何故か空になってしまいます。
apache2を使っているのですが、設定によるものなのでしょうか?
0047nobodyさん
2006/04/09(日) 15:19:01ID:???まず
$_FILES["file"]["tmp_name"]
ではなく
$_FILES["file"]["type"];
じゃないのか?
それはそうとMIME型なんてブラウザが吐くあいまいなものと
オレは認識しているのだが…ちがうのかな?
0048nobodyさん
2006/04/09(日) 15:30:37ID:???ブラウザが送ってくるContent-Typeを代入しているだけ。
bmpの時に送られてないだけじゃねーの?
当然詐称される可能性があるので、mime_content_type() (こいつは中身(つーか先頭部分だけ)を調べる)か、
getimagesize()なんかで、それが正しいかどうかチェックした方がよい。
004946
2006/04/09(日) 15:45:47ID:???すいません。print $_FILES["file"]["tmp_name"]; は書き間違いです^^;
なるほど、理解できました!
ありがとうございました!
0050nobodyさん
2006/04/09(日) 17:16:32ID:???PHPかApacheかどっちかは不明だけど、メモリアクセス違反とかメモリリークとか
そういった内部的な致命的エラーが発生してる確率が高い。
それ、全然くだらん質問じゃないと思う。
同種の話がいくつかML等に転がってるけど
・解決しなかった
か
・ApacheやHPのバージョンを変えたら何故か直った
のどっちかくらいしか見当たらない。
0051nobodyさん
2006/04/09(日) 17:26:36ID:???Apacheに詳しい人なら3221225477 = 0xc0000005から何か追えるかもね
とりあえず質問する場所はここじゃないと思われ
0053nobodyさん
2006/04/09(日) 18:44:04ID:???断層が深い配列がヒットしなくて困っています。
0054nobodyさん
2006/04/09(日) 18:50:30ID:???次元数が不定なら再帰呼び出しで潜っていくのが吉かと。
0056nobodyさん
2006/04/09(日) 19:02:24ID:???if (0 <= $num < 10) {
・・・
}
こういう書き方できないんですか?エラーでてしまいます。
if ($num >= 0 && $num < 10) {
・・・
}
これならうまくいくんですが。
0058nobodyさん
2006/04/09(日) 19:16:40ID:???実際に16進数の0xFFFFFFという値に変換するにはどうやればよいのでしょうか。
宜しくお願いします。
0060nobodyさん
2006/04/09(日) 19:32:15ID:???ありがとうございます。
型の変換パートと、文字列パートばっかり探してました。
mathにあるなんて思いもしませんでした。
0061nobodyさん
2006/04/09(日) 19:36:06ID:???0062nobodyさん
2006/04/09(日) 19:40:47ID:yKOq7PT+恥ずかしながら今知りました。
0063nobodyさん
2006/04/09(日) 19:59:17ID:???これがあると具体的にどのように役にたつのでしょうか?
phpだけでは掲示板とか作れませんか?
0064nobodyさん
2006/04/09(日) 20:02:58ID:???0065nobodyさん
2006/04/09(日) 20:07:33ID:???より大規模で高性能なものを作るときに、高速で安定したものが作れます。
個人サイトのちっこい掲示板くらいなら別に無くてもいいです。
006742
2006/04/09(日) 21:18:39ID:2atGm5L3RAND_MNAXの制限を受ける点については一文字ずつ生成すれば良いと思うのですが、
元々考えていたtiger192,4でのセッション文字列生成より明らかに遅い(五倍ほど)のが気になります。
for($i = 0; $i <=32; $i++) { $hash .= chr(mt_rand(62, 126)); }というコード(同じ192ビット)でベンチマークを取ってみたのですが。。
出来ればchrを\xにして、forを使わないようにすればもう少し早くなりそうなんですが。自分ではこれが限界です。
どなたか上のコード添削していただけると嬉しいです。
乱数生成であれば専用の関数を使った方が早いように思えるのですが、ハッシュの方が適しているのでしょうか?
それとも適切なコードを書けばそれより早い結果を得られるのでしょうか?どなたかご教示していただけると嬉しいです。
>>44 PHPの機能は使わず自作する場合です。PHPではハッシュを使ってるみたいですね。
0069nobodyさん
2006/04/09(日) 21:59:29ID:???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:???0071nobodyさん
2006/04/09(日) 22:09:03ID:???0072nobodyさん
2006/04/09(日) 22:10:01ID:???0073nobodyさん
2006/04/09(日) 22:18:52ID:qYTyFCRs完全な乱数を、ダブらないことを保証して作るのは少し面倒だったりしない?
0074nobodyさん
2006/04/09(日) 22:28:21ID:???007642
2006/04/09(日) 22:44:08ID:???ご返信ありがとうございます。完全に均等である(事を目指している)が故に、ハッシュを使うのも乱数を使うのもコリジョンの確率は同程度だったと記憶しております。
先程のコードを検討してみたところループで馬鹿みたいにロスをしていたので、現在二度mt_randを使って生成するように頑張ってます。
素直にハッシュ使えば良いんですが、どうしてももやもやするので。。
0077nobodyさん
2006/04/09(日) 23:01:58ID:???単純でミニマムな要素を組み合わせて大規模にした構成の方が結果的に高速だから。
ここまででかくなると普通にDBにしても性能は出ない。
凝ったDBを構築するくらいなら生datを専ブラに拾わせる今の形態の方がずっとシンプルで性能がいい。
0078nobodyさん
2006/04/09(日) 23:05:34ID:???現在使用中の他と重複しない一意の文字列を生成するのに
1番手っ取り早くてリソースも食わなくて高速だからでは。
逆にもっといい手法ってあるの?と聞きたい。
色々書いてる1桁ずつ乱数使って…とかいう話は「バカ?」としか思えない。
普段から常用するセッションIDの生成にそんなリソース食う方法使えるわけないでしょ。
007942
2006/04/09(日) 23:12:45ID:2atGm5L3素人考だとハッシュの生成(同一性も確認できる均等に分配される文字列)より、乱数の生成(均等に分配される文字列)の方が早いような気がするのですが、
もしよろしければなぜハッシュの方が早いのか教えていただけないでしょうか?気になります。。
0080nobodyさん
2006/04/09(日) 23:25:38ID:aTeqKq3o前スレ990さんいますか?
javascriptでやる方法は検討していたのですが、分かりませんでした。
小窓からjavascriptを使って、メインウインドウのselectの内容(mysqlに
新規に追加した項目)を更新したいです。
使用する関数や具体的なコードのヒントが書かれたページなど
ご存知でしたら教えてください。
よろしくお願いします。
0085nobodyさん
2006/04/10(月) 00:20:37ID:???>>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:???$_POST全部エスケープとかはしないなぁ。
必要なのはあくまでSQLに入れるデータとHTMLに吐き出すデータでしょ?
だからSQL用の関数・メソッドと表示用の関数・メソッドでそれぞれ
受け渡したデータのみ変換かけてる。
0087nobodyさん
2006/04/10(月) 00:42:07ID:???つ http://www.atmarkit.co.jp/fsecurity/rensai/webhole03/webhole01.html
0088nobodyさん
2006/04/10(月) 00:57:08ID:???> [notice] Child 5420: Starting 250 worker threads.
直接の原因は判らんがMPMあたりくさい。
workerで使ってるなら、そういうのが出るのも甘んじろというのが現状かも。
http://www.php.net/manual/ja/install.windows.apache2.php
0090nobodyさん
2006/04/10(月) 00:59:58ID:???単純な、ハッシュ値の算出vs1回の乱数ならそりゃ乱数の方が速いだろうけど、
今やろうとしてるのは30〜50桁を桁数分だけ毎回乱数取得だろ?
そんなのどうやってもハッシュほど速くなんて計算できないだろう。
009142
2006/04/10(月) 01:17:38ID:EZQH4hCw返信ありがとうございます。この実行時間差で悩んでるので、それはちょっと、、です。
>>90
forのところが悪いですか。。一度で算出しようにも桁数が大きくなりすぎてorzです。
いくつかに分ければ出来るかなぁ、と試行錯誤してますがスキル不足で出来ません><
もしよろしければコードを、、と甘えてみるテスト。
0092nobodyさん
2006/04/10(月) 01:24:52ID:???うぜえ
0093nobodyさん
2006/04/10(月) 01:35:24ID:???> もしよろしければコードを、、と甘えてみるテスト。
だからハッシュでやれって。無理だから。
何のためのハッシュだと思ってんのよ。
スキルも無いくせに「乱数の方が速いはずだ」とかいいかげんなことぬかしてんじゃねぇ。
009442
2006/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:???0098nobodyさん
2006/04/10(月) 03:16:22ID:???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:???98の続き。
4.その程度のことを自分で解決できない場合、
コンピュータのセンスが無さ過ぎのでプログラミングは諦める。
0102nobodyさん
2006/04/10(月) 06:52:57ID:???可読性が増すのでその方法を採用しようと思うのですが、
幾つか質問があります。
array_may という関数を使っているようですが、これはどのような処理のユーザ定義関数でしょうか?
0104102
2006/04/10(月) 08:44:10ID:???ありがとうございます。
幾つか質問があります、と言いましたがあまり質問しまくるのも良く無いので
続きは自分で調査、研究してみます。
0106nobodyさん
2006/04/10(月) 11:39:39ID:???0107nobodyさん
2006/04/10(月) 13:14:26ID:???ぱっと思いついた方法は file()で各行を配列に加えて、
各要素に> を加えて、再度結合です。
もっと簡単な方法あったらきぼんぬです。
010880
2006/04/10(月) 13:30:27ID:qYnFdAMkjavascript質問スレにいったのですが、あまり人がいないようで解決できていません。
onchangeとかonfocusでやるっぽいのですが、
どうやってリロードせずに新しいレコードをmysqlから引っ張るかが分からないです。
スレ違いだとは思いますが、ヒントをもらえるとうれしいです。
0109nobodyさん
2006/04/10(月) 13:30:30ID:???$text = Preg_Replace("/(.*\n|.+)/",">$1",$text);
0111nobodyさん
2006/04/10(月) 13:39:09ID:???0113109
2006/04/10(月) 13:44:37ID:???ん?どうおかしい?
0文字以上+改行か、1文字以上の行の先頭に > を付け足すようにしたつもりだけど。
.*\n だけだと $text の最後にも無条件で改行が付いちゃうし、
.* だけだと空行の先頭に改行が付かないからこんな感じに落ち着いたんだけど。
0114113=109
2006/04/10(月) 13:45:49ID:???○ .+ だけだと空行の先頭に改行が付かないからこんな感じに落ち着いたんだけど。
0115nobodyさん
2006/04/10(月) 13:53:06ID:???メインウィンドウはリロードしなくても、データ自体は小窓を開くことによって取得するんだよね?
だったら小窓の onLoad からメインウィンドウのフォームオブジェクトに値をセットするんじゃだめなの?
というか、JavaScript のリファレンスって持ってる?
無いなら http://www.tohoho-web.com/js/index.htm この辺はどうよ。
http://www.tohoho-web.com/www.htm から丸ごとダウンロードできるよ。
0116109
2006/04/10(月) 14:01:44ID:???スレ汚しとは思いつつも、気になるので書き直します。
.* だけだと $text の最後に無条件で > が付いてしまうから .*\n にしたんだけど、
これだと $text の最後の行が改行で終わってないとその行に > が付かないから
.*+ も付けてみた
が正しいです。
0118nobodyさん
2006/04/10(月) 14:09:06ID:???0120nobodyさん
2006/04/10(月) 14:21:00ID:???0121109
2006/04/10(月) 14:24:45ID:???$text は複数行で構成されているつもりだったので、
シングルラインモードならそれ付けたらうまく動かないし、
マルチラインモードでは ^ はあっても無くても同じ動作になります。
0122108
2006/04/10(月) 14:38:17ID:qYnFdAMkamazonでもオススメだった、mdnのjavascriptビジュアルリファレンスを買いました。
やりたいこととしては、
投稿フォームの真ん中あたりまで記入すると、カテゴリーのプルダウンが
出てくるん出すけど、そのプルダウンの下に「新規カテゴリーを登録」という
ボタンがあって、それを押すと小窓が開きます。
小窓には登録済みのカテゴリーのリストが出ていて、新規登録用の
inputがあって、カテゴリーの削除なんかもここでできます。
登録が完了して、小窓を閉じて、再びメインウインドウに戻ったときに
カテゴリーのプルダウンをクリックすると、さっき小窓で登録した
カテゴリーがリストに載っているという状態にしたいのです。
カテゴリーはカテゴリー名しか入っていないテーブルで管理されていて、
新規投稿フォーム(メインウインドウ)が開かれたときに
select category from categorytableみたいに呼び出されます。
小窓で新規登録した後に、リロードすれば反映させられますが、
カテゴリー選択以前に記入していた各inputの内容もクリアされてしまいます。
この場合でも、115さんの方法で解決できますでしょうか?
0123nobodyさん
2006/04/10(月) 15:15:48ID:T3nuwwG3$data = @file($file); //50行
for($i = 0; $i<10; $i++){ //最新10件表示
list($A,$B) = explode("<>", $data[$i]);
echo "<p>$A $B</p>";
}
こんな感じになってて、$dataには通し番号が入っていません。
最初に行数を数えて、
50
49
48
・・・と言う風に新しい方に大きな番号を振っていくにはどうしたらいいでしょうか?
0124nobodyさん
2006/04/10(月) 15:31:18ID:???できるよ。
小窓から登録なり削除をしたとき、submit するわけでしょ。
その応答ページに、メインウィンドウのフォームオブジェクトを書き換える JavaScript を埋めてやって、
処理完了後に小窓を閉じればいい。
メインウィンドウをリロードする必要なんて無い。
0126123
2006/04/10(月) 15:43:02ID:???そんなことは分かってるんですー。タイミングが分からないんですー。。
って思ったんですけど、言われて改めて考えたら分かりました!
$no = count($data) - $i;
ってすれば良かったんですね!$x-1とかやって悩んでました。
ありがとうございました。
0127nobodyさん
2006/04/10(月) 15:47:18ID:???0128nobodyさん
2006/04/10(月) 15:59:55ID:???0129nobodyさん
2006/04/10(月) 16:26:17ID:???0130108
2006/04/10(月) 16:41:02ID:qYnFdAMk板違いにもかかわらず、親切に答えてくださって助かります。
応答ページというのは、「登録が完了しました。」とか出るページでしょうか?
自分のコードではそこでinsert intoの処理をしています。
それとメインウィンドウのフォームオブジェクトを書き換える際に必要な
構文とかが具体的に分かれば教えて欲しいです。
それが分かればネットの情報とリファレンスを使って書いてみます。
よろしくお願いします。
0132nobodyさん
2006/04/10(月) 18:47:36ID:???必要な値を子から親にPOSTかGETで渡してリロードさせればいいんじゃないの?
というか構文とか教えたらネットの情報とリファレンスで出きるなら、
自分で調べるか諦めて業者にだしたら?その方が早い予感
0133nobodyさん
2006/04/10(月) 18:57:58ID:???元々の話が、リロードさせると入力途中のフォームの内容が失われるって話で、
JavaScriptでselectの内容だけ書き換えたいって質問。
0134nobodyさん
2006/04/10(月) 19:08:19ID:???一部の登録者のサーバーでたまにスパムだと誤認されて
届かなくなり、その人から「メルマガが届いてないぞゴルァ!」って
怒られるんだけど、これってこちらではどうしようもないよねぇ?
「おたくの会社のサーバー管理者に相談してね」って言うしかないよね?
0135134
2006/04/10(月) 19:11:14ID:???付加されていたメッセージはこれ↓
Remote host said: 450 Recognized as SPAM. Please set your server address in DNS. Till then!
0138134
2006/04/10(月) 19:16:51ID:???あ・・・・・・・今、気が付いたんだけど・・・・・・・・
こっちが使ってるサーバーが実はXREAなんだよね・・・・
そういえばXREAはここ数日、大騒動になってるんだったっけか。。。
ウチは独ドメだから関係ないと思っていたけど、この騒動と関係ありそうだな。。。
0140nobodyさん
2006/04/10(月) 19:22:28ID:???届いたり届かなかったりするならXREAがどうとかじゃないと思われる
おそらく届かないユーザーにaolだとかaolだとかaolだとかあとaolとか
のユーザーはいないか?
0142134
2006/04/10(月) 19:27:43ID:???日によって届いたり届かなかったりする登録者もいるし、
毎回必ず届かない登録者もいます。
そしてaolは見たことがありません。登録者のドメインはいろいろです。
0143134
2006/04/10(月) 19:29:21ID:???自鯖ならDNSサーバをいじればいいのかもしれませんけど、
XREAはレン鯖だからどうしようもないですよねぇ。。。
ちなみにXREAの大騒動については↓です。
http://pc8.2ch.net/test/read.cgi/hosting/1144506157/l50
0145134
2006/04/10(月) 19:32:15ID:???え? ちょっと意味がよく分からないのですが、
何を指して「無理矢理」なのでしょうか??
ちゃんと受信者からはメルマガ送信許可をもらっています。
0146nobodyさん
2006/04/10(月) 19:35:37ID:???いま、xrea.comドメインがREGISTRAR-HOLD食らってるから
DNS鯖によってはどっち向きにも引けないのよ。
だから、aolとかaolとかaolとかだと蹴られるだろうし、
先方さんが「逆引きできないMTAとは話さない」設定でも蹴られると思う。
>>139
>>134がカ)デジロックの中の人なら、ns[1-3].value-domain.comの設定をごにょごにょ。
ていうか、いくつか前のスレで「1万人の会員にメルマガを…」って言ってた人とは別?
XREAでどんくらいの数を撒いてるのか、ちょっと気になる。
0148108
2006/04/10(月) 20:56:32ID:qYnFdAMk色々ググったりして、近い処理など見つけたのですが、
とりあえず自分のjavascriptの知識が足り無さ過ぎですね。
ttp://www.game.gr.jp/about/log/board_whole_javascript.abc_seq_605.htm
↑などは近いですが(DBが絡んでない)苦戦してそうですし、
結構長いスクリプトを書かないとダメみたいですね。
やろうとしてること自体、結構難易度が高いんでしょうか?
0149nobodyさん
2006/04/10(月) 21:27:59ID:???難易度は高くないよ。スクリプトもそんなに長くならないはず。
おれだったら、メインウィンドウに JavaScript の関数を作って、そいつにフォームの select に値を設定させるようにするかな。
たとえば function setup(a) みたいな関数を作っておいて、小窓の「登録が完了しました」画面から opener.setup(a) で呼び出す。
小窓から渡す a は、Array('選択肢1', '選択肢2', '選択肢3', ...) みたいに配列にしてさ。
ようするに、PHP は小窓の完了画面の HTML にこんな風に出力する
<html>
<body onLoad="opener.setup(Array('選択肢1', '選択肢2', '選択肢3'));">
登録が完了しました
</body>
</html>
メインウィンドウに実装する setup の中身は自分で考えてみて
0150nobodyさん
2006/04/10(月) 21:29:34ID:ZFW0IoNM作成中のサイトはhttp://domain.jp/のようにアクセスすることでトップページへ飛びます。
その飛び先のデフォルトとして.htaccess内でDirectoryIndex index.phpとして
phpがコールされるようにしています。
念のためダミーでindex.htmlを作ってありますが、METAタグのrefreshで
http://domain.jp/をコールするようにしています。
ここで問題なのですが、サーバの解析ログをみたところ
http://domain.jp/を1度だけアクセスしたはずなのに
index.phpが連続して呼び出されているログが残っています。
最後にサーバ側から強制的にプロセスをシャットされているようなログも記録されています。
どのような原因が考えられますか?
0151149
2006/04/10(月) 21:45:45ID:???○ <body onLoad="opener.setup(new Array('選択肢1', '選択肢2', '選択肢3'));">
ただ、new Array は引数が 1個の場合には 2個以上の場合と機能が違って使いづらいこともあるから、
小窓からの呼び出しは
<body onLoad="opener.setup('選択肢1', '選択肢2', '選択肢3');">
にして、メインウィンドウの関数は
function setup()
{
var i;
for(i = 0; i < argments.length; i++) {
argments[i] をごにょごにょ
}
}
みたいにするとか。
0152nobodyさん
2006/04/10(月) 21:56:06ID:???まず、インターネット上で、ドメインなどを例として挙げる時は、
example.com、example.net、example.orgなりを使う。
RFC2606で規定されているから、まずはそれを覚えろ。
で、ログがあるなら、そのログをコピペしてみれ。
0153108
2006/04/10(月) 22:49:43ID:qYnFdAMkなんて親切なんだ!泣きそうなくらい感謝します。
ちょっと検証します。結果は明日また書きます。
ありがとうございました。
0154nobodyさん
2006/04/10(月) 22:54:41ID:???惚れたぜ
0155150
2006/04/10(月) 23:59:28ID:ZFW0IoNM決まりごとを知らずに失礼しました。
あらためて質問します。
作成中のサイトはhttp://example.com/のようにアクセスすることでトップページへ飛びます。
その飛び先のデフォルトとして.htaccess内でDirectoryIndex index.phpとして
phpがコールされるようにしています。
念のためダミーでindex.htmlを作ってありますが、METAタグのrefreshで
http://example.com/をコールするようにしています。
ここで問題なのですが、サーバの解析ログをみたところ次のようになっていました。
23:01 stop.example.com index.php ←おそらくサーバによるプロセス強制終了
23:01 user.example.net index.php
23:01 user.example.net index.php
23:01 user.example.net index.php
中 略
23:00 user.example.net index.php
23:00 user.example.net index.php
23:00 user.example.net index.php ← 実際にアクセスした時間
http://example.com/の呼び出しは1度だけです。
この場合どのような原因が考えられますか?
0156nobodyさん
2006/04/11(火) 00:17:56ID:???0157nobodyさん
2006/04/11(火) 00:48:25ID:???index.phpの中でindex.phpにLocationしてるとか、
実は403になってて、かつ403の飛び先がまたhttp://example.com/になってるとか。
0158nobodyさん
2006/04/11(火) 01:45:57ID:Vmfip3pdmagic_quotes on
sjisで書いてます。
文字列をPOSTすると「表」とか文字化けするのでstripslashes使ってるんですが、
ブラウザに出力する場合はこれでOKなのに、
MYSQLに送ろうとすると後ろのタグまで格納されておかしくなっちゃいます
stripslashesをはずしてMYSQLに送ると正常に動くのですが、何か納得いきません
(例:格納前の文字列は確かに「予\定」なのに、DBには「予定」で入ってます。)
この辺詳しい人いたら教えてください。
0159nobodyさん
2006/04/11(火) 01:53:59ID:???DBはEUCになってるんじゃないの?
それにSJISのコードを無理やり格納しようとするもんだから、\ 記号がエスケープ記号として有効に働いちゃってるとか。
0160158
2006/04/11(火) 02:12:01ID:Vmfip3pdいやDBはSJISなんです
それで自分で書いときながら何ですが、タグまで格納されると言うのがミソかなと
何で「予定」が「嵐・></TD></TR><TR><TD></TD><TD><SELECT、、」
みたいなとんでもない文字列になっちゃうの?
0161nobodyさん
2006/04/11(火) 02:26:55ID:???2. (設定があれば)PHPによる文字コード自動変換
3. スクリプトによる文字コード変換
4. (環境次第では)MySQL の文字コード自動変換(SQL による INSERT/UPDATE 時)
5. (環境次第では)MySQL の文字コード自動変換(SQL による SELECT 時)
6. HTML として表示する際の HTTP ヘッダと meta 要素による Content-Type の文字コード
どれかがおかしい
0162nobodyさん
2006/04/11(火) 02:48:39ID:???そういう関係の定義済み変数が載っているサイトはありませんか?
0163nobodyさん
2006/04/11(火) 03:01:50ID:???本当にDBはSJISになってるか?
MySQLのiniファイルをC:の直下に置いてみろ
MySQLはデフォルトの場所にiniファイルを置いてると読み込みに行かないことがあるぞ?
0164nobodyさん
2006/04/11(火) 03:05:23ID:???>magic_quotes on
1秒でも早くoffにしろ。
>sjisで書いてます。
5秒以内にEUCにしろ。
0165nobodyさん
2006/04/11(火) 05:04:46ID:???とりあえず
stripslashesした文字列をMySQLに投げるときはmysql_real_escape_stringとかしとくが吉
\は文字コード関係なくエスケープの必要あり。SJISは漢字に\が含まれるからいまいち
0166nobodyさん
2006/04/11(火) 07:17:53ID:h7+HNAKjしかも公式の説明では、自分で作れ。とか。知るか。
もう誰か教えれ。
0167nobodyさん
2006/04/11(火) 07:45:39ID:???0170通訳
2006/04/11(火) 10:05:36ID:???spamフィルタリングしているものを、フィルタを無視して(=無理やり)
送信できるなら、spamメールセンダーだってやってる。
0171nobodyさん
2006/04/11(火) 10:06:51ID:???ajax全盛の今、PHP使いでもjavascriptは必須だなと思ってスルー
0172nobodyさん
2006/04/11(火) 10:13:18ID:???もし使うなら対応ブラウザ以外でも正常に表示できるような等価な内容のページも作ってね。
0173nobodyさん
2006/04/11(火) 10:35:40ID:???今時なんでEUCなんてUnixOSと特定の言語に依存した文字コードを使うんだ?
UTF-8を使えば、OS、言語に依存しないのに。
0174171
2006/04/11(火) 10:42:19ID:???俺が今手を掛けてるのは単なる俺の金稼ぎ目的のサイトだから、
利用できる大半の奴が便利に利用できれば無問題。
0175172
2006/04/11(火) 10:51:47ID:???そういうサイトなら無問題だね。
政府機関のサイトとかUnixヲタ向けページではAjax版しか提供しないってのはやるべきじゃないけどね。
漏れのサイトでそれやったら、
Lynxで表示できないページなんて許せないです(><)
って言われます。
0176nobodyさん
2006/04/11(火) 10:56:35ID:???UTF-8だと日本語に3バイト使うからねぇ。
単純計算で日本語部分のサイズが5割増になるわけですよ。
じゃUTF-16か?っていうと現時点での普及状況や、全範囲の文字に2バイト使うことなど考えるとソースコード肥大化が心配でちょっと微妙。
それじゃとりあえずSJISかEUCでいいや、という話になるじゃないですか。
どうせ今時のPHPはマルチバイトも問題なくスキャンしてくれるわけだし。
・・・といいつつ俺自身はUTF-8派だったりする orz
0177173
2006/04/11(火) 11:38:32ID:???日本語に3バイト使うと何か問題起こる?
今の時代、巨大なポータル(Yahoo!)レベルで採用してもコスト上問題無いと思うけど。
ソースの容量の全体(HTMLタグ、インデント、画像、Flash、JavaScript、CSS)の中で
文字が占める割合ってそこまで多く無いと思うんだがな。
0178nobodyさん
2006/04/11(火) 11:40:14ID:???0179nobodyさん
2006/04/11(火) 11:51:14ID:???そういった関数を配布しているページをご存知な方はいらっしゃいますか?
0180nobodyさん
2006/04/11(火) 11:55:50ID:???気にならないなら気にしなければいいだけだよ。
例えば2chのログを丸ごとUTF-8に変えたら容量が大変なことになるでしょ。
文字情報が中心なサイトで容量に何らかの制限があるなら気になってもおかしくないと思うけど。
もちろん気にならなくてもおかしくないし。
つーか俺は気にならないからUTF-8使ってるっつーの。
0182nobodyさん
2006/04/11(火) 12:06:55ID:???いや、高いだろ。
プログラミングをするという時点で偏差値的にはかなり高くなるはず。
日本全国の国民を対象に数学のテストを行い、
phpユーザの偏差値の平均を出したとしよう。
そうしたら、65ぐらいにはなるな。
0183nobodyさん
2006/04/11(火) 12:08:22ID:???0185nobodyさん
2006/04/11(火) 12:09:46ID:???http://www.php.net/manual/ja/ref.stats.php
http://pear.php.net/package/Math_Stats
0188nobodyさん
2006/04/11(火) 12:27:48ID:???99%のまともにできない人と1%のまともにできる人の集合で
偏差値がどこまで上がると思ってるんだ?
PHPは底辺ユーザの人数が恐ろしくでかいことを忘れてるな?
0189nobodyさん
2006/04/11(火) 12:30:38ID:???日本語も満足に話せませんが教えてください」みたいのがごろごろしてるしな…
0190nobodyさん
2006/04/11(火) 12:36:53ID:???母集団は国民全体だぞ。
年齢層の限定をしただけで数学のテストを行った際の偏差値は一気に向上する。
例えば、16才〜35才の偏差値を出せばそれだけで60は軽く超えるだろう。
世の中には数学なんて一切関係ないような職業は山ほどある
底辺言語であってもプログラミングをやっている人に限定すれば数学の偏差値はかなり高くなることが予想される
>>189
ごろごろはしてねーよ
そんなのそれこそ一部だろ
0191nobodyさん
2006/04/11(火) 12:40:15ID:???0193nobodyさん
2006/04/11(火) 12:47:23ID:???おれは隠しフレームにフォーム作って、そこでサーバとのやりとりして Ajax みたいなことやったことあるよ。
ただ、隠しフレームってのいまいち使いづらいんだよね。
何かいい方法あるかな?
0195152
2006/04/11(火) 12:49:59ID:eIuCYO6Jindex.phpの中ではLocationなどは使っていないです。
403エラー時の飛び先設定はトップの.htaccessでは記述してませんが
トップより下の階層のフォルダでは確かに.htaccessに403エラー時の飛び先を書いています。
でもこれはトップのフォルダには関係しないですよね?
それで一応パーミッションも見直してみましたが変化ありませんでした。
自分も無限ループしています。誰か助けて・・・
0196155
2006/04/11(火) 12:51:00ID:???152じゃなくて155です。
0197nobodyさん
2006/04/11(火) 12:51:54ID:???Flash使えばいいじゃん。
Ajaxなんて生産性も対応ブラウザもFlashを下回るのに使う意味あるの?
Flash Player が使える環境は全体の 97.7% だが、JavaScript が使える環境は全体の 95%以下。
そして、Ajaxアプリケーションが動作する環境だと、93%ぐらいまで下がるんじゃないだろうか。
AjaxでできることでFlashでできないことなんてある?
例えば、Googleマップなんて普通にFlashで作れるよ。
0198nobodyさん
2006/04/11(火) 12:54:17ID:???「1番」低いやつに絡む奴がもっと低い…
素晴らしい!これほど偏差値の低そうな回答がかつてあっただろうかwww
0200nobodyさん
2006/04/11(火) 12:58:14ID:???0201nobodyさん
2006/04/11(火) 13:04:02ID:???今はFlexの時代
0202nobodyさん
2006/04/11(火) 13:08:03ID:???ここはphpのしかも質問スレです
0204nobodyさん
2006/04/11(火) 13:56:27ID:???Flash で UI 作ることを本気で考えたことがあるんだけど、
ファイルのアップロードができなかったりして、
なかなか難しいのよね
0206179
2006/04/11(火) 15:48:06ID:???偏差値のために新たな拡張モジュールをインストールするのも面倒ですので、
自力で偏差値の算出関数を作っちゃいました。
教えて頂いた情報は今後の参考にします。
// 偏差値の算出
// $allPoint ・・・ それぞれの参加者の得点を入れた配列
// $point ・・・ 偏差値を出したい参加者の得点
function u_DeviationValue($allPoint, $point) {
$average = array_sum($allPoint) / count($allPoint); // 平均値
$molecule = 0; // 標準偏差の公式の分子の初期化
foreach ($allPoint as $number) {
$molecule += pow($number - $aberage, 2);
}
$standardDeviation = $molecule / count($allPoint); // 標準偏差
$DeviationValue = (10 * ($point - $average) / $standardDeviation) + 50; // 偏差値
return $DeviationValue;
}
0207nobodyさん
2006/04/11(火) 16:11:25ID:???標準偏差求めるループの中の pow は掛け算に置き換えるとたいてい速くなるよ。
$molecule += pow($number - $aberage, 2);
↓
$d = $number - $aberage;
$molecule += $d * $d;
0209nobodyさん
2006/04/11(火) 16:42:34ID:???配列にしてる?してない?
してるなら
name="a[]"
name="a[]"
name="a[]"
とする?それともキーを指定する?
name="a[0]"
name="a[1]"
name="a[2]"
配列にしないなら
name="a1"
name="a2"
て感じ?一般的にはみんなどうなの?
0211nobodyさん
2006/04/11(火) 16:46:43ID:???用途によるんじゃない?
単純に選択されたものの一覧だけ欲しければ a[] で、
何らかのキーと対応付けた一覧が欲しければ a[xxx] でかな。
a1、a2 なんかは JavaScript と組み合わせるときに使ったりする。
JavaScript は a[] みたいな name のフォームオブジェクトを簡単には参照できないから。
0213nobodyさん
2006/04/11(火) 17:23:17ID:???その関数、もしループの中で何度も呼び出すような使い方をしてるなら
標準偏差を求める部分と
偏差値を求める部分で別の関数にした方がいいと思う。
0215206
2006/04/11(火) 17:44:56ID:???ループから200回ぐらい呼び出す処理ですが、全体でも処理時間は数十ミリ秒だったので気にしてませんでした。
確かに無駄なので別の関数にしときます。
0216nobodyさん
2006/04/11(火) 19:33:01ID:3spEuCl2下記のようなエラーがでます。
Fatal error: Call to undefined function: pg_connect()
pgsql.so のモジュールははいっており
同じスクリプトをWeb上からは問題なく実行されます。
何が原因なのでしょうか?
0217nobodyさん
2006/04/11(火) 19:40:37ID:???0218nobodyさん
2006/04/11(火) 19:53:05ID:???たとえば
0<>aaa<>aaa<>aaa
1<>bbb<>bbb<>bbb
と言う感じで1が含まれてる行だけ配列に入れたりする事は可能でしょうか?
0221nobodyさん
2006/04/11(火) 20:18:56ID:???これで容量がさらに倍(26M)くらいに増えそうなんですが。DBにした方がいいでしょうか?
0222nobodyさん
2006/04/11(火) 20:29:47ID:???0223nobodyさん
2006/04/11(火) 21:40:01ID:???0224216
2006/04/11(火) 22:01:06ID:???自己解決しました。
0225nobodyさん
2006/04/11(火) 22:31:40ID:???なんかわかりやすい解説してるサイト無い?
0226nobodyさん
2006/04/12(水) 02:19:17ID:???0227nobodyさん
2006/04/12(水) 02:37:04ID:8N7Yz7+/メール受信(from:hogehoge@hogehoge.jp)
↓
内容を変更(Subject,本文)、SQLorテキストファイルに書き込み
↓
あらかじめ登録されたメールアドレスに転送(to:burabura@hogehoge.com)
サブアドレスを無料供与するかわりに、広告を入れるようなサービスです。
メールサーバーには転送済みデータは残したくないのですが、他の形で保存しておきたいのです。
これを1万人ぐらいの登録されたユーザー相手にしたいのですが、PerlとPHPしか書けません><
PHPやCGIでメールサーバーに接続するのって負荷が大きいですよねぇ。。
cronで定期的に呼び出すのは無理かなぁと。。
MLソフトで似たような事ができるものってありますかね?
0228nobodyさん
2006/04/12(水) 03:36:09ID:???まずはコンピュータよりも日本語の勉強からやったほうがいい。
そして、そんなレベルの質問をしてるようでは、1万人も相手にした
サービスを提供するのは(危なっかしくて)不可能だから諦めろ。
0229nobodyさん
2006/04/12(水) 04:20:35ID:???その程度の認識で1万人ものユーザを相手にサービスなんて
社会の大迷惑以外の何物でもないので頼むからやめてください
0230nobodyさん
2006/04/12(水) 06:05:13ID:???0231nobodyさん
2006/04/12(水) 06:22:06ID:???法律的にはOKなのかね??
0232nobodyさん
2006/04/12(水) 07:34:49ID:ZC3dGFkj個人的に利用してなければ保存していた方が逆にいいだろ。
何かあったら使えるし
0234227とは別人
2006/04/12(水) 09:05:22ID:wIeov7Asttp://www.dolphy.gr.jp/webap/topic/postfix.html
上記URLの方法で .forward を使ってPHP cli版のスクリプトに引き渡したいんですが。
phpスクリプト側でどうやって取得すればいいんでしょうか、変数名が分かりませんっ
0235nobodyさん
2006/04/12(水) 09:46:14ID:???更新通知系pingには
・トラックバックping
・RPC ping
の2種類があることを認識した上で、
それぞれについて調べるといいよ。
一部のブログは、両方まぜてpingといったりトラックバックといったりしてるからね。
0236234
2006/04/12(水) 10:13:25ID:???php4.2.3 のCGI版で定数STDINが使えないんではまりました
-------------------------------------
print getStdinput();
function getStdinput()
{
$stdin = "";
$fp = fopen("php://stdin", "r");
while(($line = fgets($fp)))
{
$stdin .= $line;
}
fclose($fp);
return $stdin;
}
-------------------------------------
0237nobodyさん
2006/04/12(水) 14:01:54ID:???わかったんですが、ヘッダを読む方法はありますか?
header()でのヘッダ「送信」の話ではないです
0238nobodyさん
2006/04/12(水) 14:33:00ID:???array get_headers ( string url [, int format] )
// PHP5
0240nobodyさん
2006/04/12(水) 15:30:20ID:???「個人的」な考えはどうでもよくて、「法律的」にどうなのか、と。
>>234
パイプでメールを渡して、該当スクリプトを起動。
0242nobodyさん
2006/04/12(水) 16:44:07ID:???0246227
2006/04/12(水) 17:12:40ID:8N7Yz7+/2chで聞くのが無謀なのかなぁ。
本当に知りたい情報が2chで得られたためしがない。
誰でも簡単にgoogleで調べられるような事しかレスがこない。。。
0248nobodyさん
2006/04/12(水) 17:22:14ID:???自分じゃ調べられなくて困り果てて2chに来たくせに、
期待した回答が得られないと分かった途端にそういう逆ギレした態度を
とってるようじゃ、永遠に誰も教えてくれないよ。
あと、とにかく日本語がおかしいのを直しなさいよ。
誰も答えてくれないのは、質問の文章がおかしいのも一因だと思うぜ。
0249nobodyさん
2006/04/12(水) 17:26:52ID:???他人の情報や経験がタダだと思ってるバカは1秒でも早く氏んだほうがいいよ。
この世で最も価値があるのは車でも家でもダイヤでもなくて、情報だぜ。
それが分からずに調子コイた戯言をぬかしてるお前は一生底辺で終わる。
0250227
2006/04/12(水) 17:28:09ID:8N7Yz7+/そうですね。該当スレが見つからなかったもので。すいません。
それと、メール保存は違法ではないかとか、保存されるのは嫌だとかいう意見がありましたが、
メールサービスを提供した時点で、メールボックスにはメールデータは保存されます。
保存場所を移したいだけです。もちろん悪用するわけではありません。
なぜ保存場所を移したいのかというと、Webメールサービスに近いものも提供したいからです。
しかし、メールボックスの容量も制限したいです。制限値を超えた時の処理なんですが、受信拒否となっては困ります。
古いものから自動的に削除されていくような容量制限が出来れば、特に保存場所を移す必要もありません。
環境はqmail+vpopmail+ezmlm+mysqlでメールサーバーは動かしてます。
ソースが読めれば簡単なんでしょうが。。。
0251227
2006/04/12(水) 17:32:33ID:8N7Yz7+/偉そうな物言いで申し訳ありませんが、事実ではないですか?
私の経験ではそうでした。
0252nobodyさん
2006/04/12(水) 17:37:58ID:???情報が得られないとわかったなら何も言わずに立ち去れ。
いちいち捨て台詞を吐くのは非常に失礼。
事実かどうかなんていうお前の主観は発言が許される理由にならない。
>>248-249の口調もほめられたものじゃないが内容は完全に同意。
0253227
2006/04/12(水) 17:55:11ID:8N7Yz7+/小学生からやり直せとか、日本語勉強しろとか言われるために書き込みしたわけじゃない。
こいつらが人に言えるほど語学力と知識があるとは到底思えませんがね。
謙虚になれという事はそういう事かい?
人を失礼だと思う前に自分も失礼ではないかと考えてみたらいかがでしょうか。
なんて不毛な掲示板だ。
0255nobodyさん
2006/04/12(水) 18:11:41ID:LsBK61rAキミにはその仕事を請けるスキルが無いんだから、他に回すなり業者に発注するなりしなよ。
せめてここの回答やgoogle先生の結果で何とかできる程度のアタマが無いとさ。
つーか、SQL書ける?
書けるならその案件程度のテーブル設計くらいできるよね?
だったら、何が疑問?
0256227
2006/04/12(水) 18:26:46ID:8N7Yz7+/おっしゃるとおり、スキルはありません。外注も考えています。
ただ、そういうソフトがあれば教えてもらいたかったのです。
SQLは書けます。
vpopmailはSQLにメール毎ぶちこめましたっけ?
ユーザー管理にしかSQLは使っていませんが。
0257nobodyさん
2006/04/12(水) 18:30:48ID:???0258227
2006/04/12(水) 18:37:35ID:8N7Yz7+/PHPやperlで書くなら実現できます。
ただ、メール転送だけはMTUに任せたいのです。
0259nobodyさん
2006/04/12(水) 18:37:43ID:???0260nobodyさん
2006/04/12(水) 18:42:12ID:???すごいなPHP&Perl
0261nobodyさん
2006/04/12(水) 18:48:49ID:???メール転送を任されて戸惑ってるMTUやRWINの図が浮かぶ。
0262nobodyさん
2006/04/12(水) 18:57:56ID:???ファイルを作成したいのですが
そういう場合はどうしたらいいですか?
0263nobodyさん
2006/04/12(水) 19:09:40ID:???0264nobodyさん
2006/04/12(水) 19:09:42ID:???'w'ならデフォルトで新規作成される。
'r'でファイルが存在しなかった場合に新規作成したいならtouch($file);とか書けばいい。
0266nobodyさん
2006/04/12(水) 19:32:24ID:???0267nobodyさん
2006/04/12(水) 20:24:31ID:fK671VOd答えられないのに文句だけ言う奴もウザイけど
0268nobodyさん
2006/04/12(水) 20:37:47ID:zZpSpaHD<?php
$arg = input_filter($_SERVER['QUERY_STRING']);
header('HTTP/1.1 301 Moved Permanently');
header('Location: /'.anchor_replace(rawurlencode($arg)).'/');
?>
とすると、
[12-Apr-2006 20:15:54] PHP Fatal error:
Call to undefined function: input_filter() in /home/user/public_html/slash.php on line 2
というエラーが出てしまいます。
この関数やエラーについて調べてみたのですが、手がかりがつかめませんでした。
これはどうなっているのでしょうか?
0269nobodyさん
2006/04/12(水) 20:43:40ID:???input_filterて関数が無いってメッセージ出てるやん。
リンク先に
>でぃあばぁ(管理者) at 2005-11-13 (日) 20:05
>func.phpからinput_filterとanchor_replaceをコピーしてくれば動きます。ただし何のチェックもしていないので、
>一つ間違うと無限ループです 一応 RewriteOptions MaxRedirects=1 で避けていますが、正直全くお勧めできません。
とあるが、理解可能?
0270nobodyさん
2006/04/12(水) 20:57:48ID:zZpSpaHDうーん、よくわかりません…
でぃあばあ氏は、このようにスラッシュを補完しているのですが、もっと効率的な方法とかあるんでしょうか?
0271nobodyさん
2006/04/12(水) 21:15:18ID:???効率とか関係なく、func.phpからinput_filter()をコピペしてきてないから動かないだけだろ。
0272262
2006/04/12(水) 21:30:17ID:???ありがとうございます
$file = './dat/env.dat';
if( ! file_exists( $file)) touch( $file);
こう書いてみたのですが、うまく動きません
根本的に間違っているのでしょうか?
0273nobodyさん
2006/04/12(水) 21:35:33ID:zZpSpaHDありがとん。
PHPの方はエラーを吐かなくなったのですが、http://example.com/slash.php/ にリダイレクト
され、500 Internal Server Error となってしまいます。(Connection: close
)
0275nobodyさん
2006/04/12(水) 21:51:23ID:zZpSpaHDすみません、PHPやApache設定に関しては全くの無知なので・・・
「RewriteRule ^.+$ slash.php?$0 [L]」これが原因でInternal Server Errorになるのでしょうか。
0277nobodyさん
2006/04/12(水) 21:59:09ID:zZpSpaHD0279262
2006/04/12(水) 22:27:29ID:???ありがとうございます
ご指摘のとおりパーミッションの問題でした。
.datを777にしたら問題なくさくせいされました
お手数をおかけして申し訳ありませんでした
0280nobodyさん
2006/04/12(水) 22:35:28ID:KG2NZf4eダイアログが出てきた時に
デフォルトでIDが表示されているように
出来ませんでしょうか?
(PASSを入力するだけの状態)
よろしくお願いします。
0282nobodyさん
2006/04/12(水) 22:46:27ID:???標準のダイアログにID文字列を勝手に入れるのは無理じゃないかな。
やるなら、HTMLのFORMでIDとパスを受け付けるようにするとか
JavaScriptのダイアログで受け付けるようにするとかにしないと。
0283nobodyさん
2006/04/12(水) 23:38:10ID:???俺のソースは汚いぞおおおおおおおおおおおおお
0284nobodyさん
2006/04/13(木) 01:42:46ID:???$main_text = 同一ファイル内ヒアドキュメント、内容はHTML(htmlのタグ含む)
$words = '1111111111'で区切られた単語とURLが1行1レコードのファイルをfile()で拾って来た配列
で、foreach($words as $line){
list($word[],$url[]) = explode('1111111111',$line);
}
として$word、$urlをprint_r()して中に期待した配列が入っていることを確認しました。
その次に
$replacement = "<a href=" . $url . " target=_blank>" . $word . "</a>";
$main_text = preg_replace($word,$replacement,$main_text);
とすると
Warning: Unknown modifier '?' in /パス/test.php on line 410
Warning: Unknown modifier '?' in /パス/test.php on line 410
と2回エラーが表示されました。$wordと$urlの要素が2個になっていたのでそこが関係していると思うのですが…。
またpregをeregに変えるとエラーを吐かなくなりますが配列で置換できないようで要求をみたせませんでした。
何かアドバイスくださいまし
0285nobodyさん
2006/04/13(木) 02:01:28ID:???$word が正規表現として解釈されることを前提に、適切にエスケープしたり書式を整えたりしてる?
$word の中身をここにコピペしてみたら?
0286nobodyさん
2006/04/13(木) 02:07:48ID:???解像度が低いPCで書いているのですが、どうしてもよみづらくて・・。
0287nobodyさん
2006/04/13(木) 02:13:11ID:???$word[] = "/ABC/sUi";
$word[] = "/DEF/sUi";
$replacement[] = "えーびーしー";
$replacement[] = "でぃーえふ自慰";
$main_text = preg_replace($word,$replacement,$main_text);
ってこんな風に使うんじゃなかったっけ
0289284
2006/04/13(木) 02:22:12ID:???とりあえずprint_rの結果をば
Array
(
[0] => テスト
[1] => テスト2
)
Array
(
[0] => http://www.exsample.jp/1
[1] => http://www.exsample.jp/2
)
ファイルは全てEUCです。
ブラウザのエンコードをeuc以外にしたら化けたので文字コードはおk、
エンコーディングが必要な文字列は(今はテストデータだからですが)無いようでした。
>>287
ごめんなさい、提示していただいたサンプルとの違いが読み取れなかったのですが…。添字も数字になりますから一緒ですか?
0290nobodyさん
2006/04/13(木) 02:23:11ID:???> $replacement = "<a href=" . $url . " target=_blank>" . $word . "</a>";
それって「<a href="Array" target=_blank>Array</a>」にならんか?
配列をそのまま文字列として連結ってどういう意味よ
> $main_text = preg_replace($word,$replacement,$main_text);
$wordが配列なら$replacementも配列にせんと。
0293284
2006/04/13(木) 02:32:34ID:???…$replacementが
<a href=Array target=_blank>Array</a>
になってしまっていました。
これでは目的が達成できないとおもいつつとりあえず
preg_replaceのエラー吐いているのだけでも何とかしようと思い
$main_text = preg_replace($word,$url,$main_text);
としてみましたが上記と全く同じエラーを吐きました…。
ちょっと試しに>>287さんのコードをまんま試してきます。
と思ったら>>290さん、その通りでした
orz
0295284
2006/04/13(木) 02:48:19ID:???ご指摘の通りでした。
$word = "/ABC/";
$replacement = "/http:/";
として通りました。
後は配列となっているURLをどうaタグにするか、考えてみます。
ありがとうございました。
全然関係ないですが皆さん遅い時間まで起きますね。
差し支えなければ、今何なさっているか晒してもらってもいいデスカ?
0296287
2006/04/13(木) 02:56:09ID:???俺なら
foreach($words as $line){
の処理の中で
"<a href=" . $url . " target=_blank>" . $word . "</a>";
を配列に突っ込むかな。
0297nobodyさん
2006/04/13(木) 02:56:14ID:???0298nobodyさん
2006/04/13(木) 03:02:07ID:???もう寝る
0299nobodyさん
2006/04/13(木) 12:31:27ID:???を
$abc2[0] = "a";
$abc2[1] = "b";
$abc2[2] = "c";
にするにはどうすればいいでしょうか?
指定文字で分割する関数があったと思うのですが、
公式マニュアルみてもちょっとわかりませんでした。
いつも逆引きリファレンス本使ってるんですが、無いと死にますね・・・
0301nobodyさん
2006/04/13(木) 12:55:47ID:???どうすればいいですか?
0302nobodyさん
2006/04/13(木) 13:02:18ID:???を一気に 2006-04-10 18:18:53
に変更するような簡単な方法きぼんぬ
0303nobodyさん
2006/04/13(木) 13:02:58ID:???explode("\n\n", 〜
preg_split('/([\r\n]|\r\n){2,}/', 〜
とかかな
0304nobodyさん
2006/04/13(木) 13:04:18ID:???date('Y-m-d H:i:s', strtotime('Mon, 10 Apr 2006 18:18:53'))
0305303
2006/04/13(木) 13:09:41ID:???これじゃ\r\n1つでも区切っちまうわ
0306nobodyさん
2006/04/13(木) 14:18:17ID:???例えば、$textに入っている文字数が200文字だとして
一覧に表示する時は20文字しか表示しないなど
0307nobodyさん
2006/04/13(木) 14:22:10ID:???0308nobodyさん
2006/04/13(木) 14:23:23ID:???mb_strimwidth()
0309nobodyさん
2006/04/13(木) 14:25:27ID:???mb_strimwidth($text,0,20,'...');
などなど
0311nobodyさん
2006/04/13(木) 19:10:41ID:???言われるような読むのにオススメなソースコード教えてください。
0313nobodyさん
2006/04/14(金) 01:47:26ID:AD++CmCGどのように書けばいいのでしょうか。
学生なのですがよくわからないので教えてください。
0314nobodyさん
2006/04/14(金) 01:58:34ID:aAV+eb7Hチュートリアルのようなサイトご存知ないですか?
マンモス本を読み出して1部チャプター3で早くもくじけそうです・・・。
0315nobodyさん
2006/04/14(金) 06:41:02ID:???0316nobodyさん
2006/04/14(金) 07:28:18ID:???cronかスクリプトで永久ループしながらsleep
学生だから知らないちゅー言い訳はヤメレ
>>314
根性入れろや
>>315
出来ますか?じゃなくて
やってみてわからないことを質問する>強く推奨
0317nobodyさん
2006/04/14(金) 07:41:14ID:???スクリプト起動時にファイルの日付をチェックして1週間以上前のものを削除する
opendir
whileでループ
readdir
filemtimeかstat
unlink
ループ終了
closedir
0318nobodyさん
2006/04/14(金) 11:29:45ID:???アクセスって無茶苦茶重くなりそうだな
上手くやれば回避できそうだが、そこまで知ったこっちゃないか
0319nobodyさん
2006/04/14(金) 11:55:13ID:???その辺はシステムの性格に応じてチューニングでよかろ
0320nobodyさん
2006/04/14(金) 12:46:56ID:???0321nobodyさん
2006/04/14(金) 13:30:41ID:???0323nobodyさん
2006/04/14(金) 14:35:43ID:9w4nbvJuセキュリティー的に問題があるのでしょうか?
define('HTTP_SERVER', 'http://'.$_SERVER[HTTP_HOST]);
0324nobodyさん
2006/04/14(金) 14:45:48ID:???0325nobodyさん
2006/04/14(金) 14:57:36ID:???定数の定義だけじゃセキュリティ上の問題は無い。
'HTTP_HOST' は、「現在のリクエストに Host: ヘッダが もしあればその内容。」となる。
ユーザから送られてきた値だから信頼はできねーぞ。
この意味分かるな。
Apacheのデフォルト設定だと、どんなHostヘッダでも受け付ける。
バーチャルホスト上のホストなら不正なホスト名だとサーバが受け付けないこともあるが
それを信用してはならない。
0326nobodyさん
2006/04/14(金) 15:12:40ID:9w4nbvJu画像のリンクなどのURLフルパスとして利用したかっただけなので
問題ないようですね
>>325
了解しました。
ありがとうございます
0330nobodyさん
2006/04/14(金) 15:43:39ID:???設定した定数(HTTP_SERVER)を、そのままSQLに突っ込んだりすると危険
($_SERVER[HTTP_HOST] にSQLインジェクションされる文字列とか入ってり)
結局は>>324の言うとおり、使い方次第
っGoogle検索「サニタイズ」
0331nobodyさん
2006/04/14(金) 15:46:41ID:???困るのってその変なホスト名をよこしてきたユーザ本人だけでは。
0332nobodyさん
2006/04/14(金) 16:15:18ID:???PHPのCLI版で書いてcronで定期実行がスレに合ってるかな・・
シェルスクリプトでいいならそれでいい気もするけど
0333nobodyさん
2006/04/14(金) 16:21:09ID:???単純に考えてそうでも将来的にそれを利用した攻撃方法が発見されないとも言い切れないんだし、
htmlspecialcharsを通すべき。
0334326
2006/04/14(金) 16:21:41ID:???使うんですよ
>>328
分かってますが?
>>329
基本的にドメインとダミーでバーチャル切ってるので問題なし
>>330
だから「html出力で画像のリンクに使用」といってるのですが…
>>331
そのとおりだと思っています
0335333
2006/04/14(金) 16:22:17ID:???エスケープしてはならない理由があり、かつ、安全性が確認できている変数のみエスケープしないというポリシーのが安全。
0336nobodyさん
2006/04/14(金) 16:24:37ID:???function h($value) {
return htmlspecialchars($value);
}
こんな関数作ったらどうです?
変数を h( と ) で囲むのはたいした手間じゃないでしょ。
高木浩光流のセキュリティ対策ブログでも読んでみたらどうかな
0338326
2006/04/14(金) 16:32:28ID:???ついでなので以下のようにしておきました。
// HTMLタグの無効化
function h($value) {
return trim(htmlspecialchars($value));
}
0339nobodyです
2006/04/14(金) 17:25:47ID:NgSqFnSxdie(require_once('error.html'));
}
これは、何か問題が出てきますか?
0340nobodyさん
2006/04/14(金) 18:25:52ID:???if(error)って、もし error という定数が真なら if文 を実行するということだけど、それであってる?
変数じゃなくて定数ならいい。
あと、定数は一般的なコーディングルール、慣習では全て大文字で書き、単語をアンダースコアで区切る。
これは様々なC系言語やJavaでも同じ。(ただし必ず従わなければならない訳ではないが、それを配布するなら
従っている方が他の人が見やすい)
これは、pearコーディングルールでも同じ http://itbtech.itboost.co.jp/man/php_man/pear.standards.constants.html
例: DB_ERROR_MESSAGE
変数は小文字で初めて単語の区切りを大文字にする。
ちなみに、
if ($error) {
die(require_once('error.html'));
}
は、
$error or die(require_once('error.html')); と書く人もいる。
ただし、比較演算子の用途外利用なのであまりおすすめできない。
(ただ、使うことでコーディングがすっきりするときは使う)
戻り値の比較をしない分、if文の方が早いと思われる。
0341340
2006/04/14(金) 18:28:11ID:???require_once は関数では無く制御構文なので
pearコーディングルールと慣習によれば関数コールと区別するために、
require_once('error.html'); じゃなくて、
require_once "error.html"; と書くべきだな。
0342nobodyさん
2006/04/14(金) 19:07:58ID:???0343nobodyさん
2006/04/14(金) 19:16:14ID:???せっかくGoogle先生が内容も少し表示してくれてるんだから、
0344nobodyさん
2006/04/14(金) 20:57:11ID:Vr96m26aecho $req->getResponseBody();
これではlocationで転送(?)された先を表示することができないんですが、
できるようにするにはどうすればいいでしょうか。
0345nobodyさん
2006/04/14(金) 21:01:58ID:???0346nobodyさん
2006/04/14(金) 21:11:12ID:???0347nobodyさん
2006/04/14(金) 22:31:00ID:29AM62vMif文の条件で、「$hogeがあれば」みたいにすることはよくあると思うのですが、
( isset ($hoge)) {
( $hoge != "") {
if ($hoge) {
(strlen($hoge) != 0) {
などなど、似て非なるものが沢山ありますが、
これはどういう基準で使い分けているのでしょうか?
0348nobodyさん
2006/04/14(金) 23:19:47ID:???自分がどういう意味を持たせるか、によるんじゃないかな。
$hoge という変数の存在自体を調べる意図があるなら isset だし、
$hoge の中身について評価する意図があるならそれ相応の判定式だし。
ただ気をつけなくちゃいけないのは、$hoge=="" みたいな判定式。
これは、$hoge が "" のときだけじゃなくて、0 のときや false のときにも成立しちゃう。
本当に "" であるかを判断したいならば、strlen($hoge)==0 や、$hoge==="" を使う。
strlen($hoge)==0 は、$hoge が未定義か "" か false の時に成立して、0 の時には成立しない。
$hoge==="" は、$hoge が存在してその中身が "" の時だけ成立する。
関数の中でも、0 と false どっちも返す可能性があるものがあるから、そういう判定の時にも気をつけて。
ex) strpos
0349nobodyさん
2006/04/14(金) 23:25:17ID:dko7defd俺も串作るときこれがわからなくて断念した
どうやるんだ
0350nobodyさん
2006/04/14(金) 23:30:25ID:???> ( isset ($hoge)) {
その変数が定義されているかどうか。
1度も代入してない、unset()した場合、NULLを代入した場合にのみelse条件になる。
主に初期背低が存在しない、特定のsubmitボタンが押されたか、などの存在チェックに使う。
> ($hoge) {
真として評価できる値が入ってるかどうか。
1度も代入していない、unset()した、NULL、FALSE、0、"0"、""、array()のいずれかが
代入された場合にelse条件になる。
一般的な数値チェック、論理チェックなどに用いられる。
たまに、文字列の有無を判定しようとしてこれを使って「0」を入力されたときにバグってるバカがいる。
> ( $hoge != "") {
> (strlen($hoge) != 0) {
文字列として空っぽかどうか。
1度も代入していない、unset()した、NULL、FALSE、""、array()のいずれかが代入された場合に
else条件になる。
FORMデータの入力有無など文字列の存在チェックにはこれを用いる。
0351347
2006/04/15(土) 00:44:06ID:mBWU3p7Tすばらしい回答ありがとうございます。
人間リファレンスのようですね。
else条件のバリエーションをみるとなんとなく分かってきますね。
自分はなんとなくな理由でissetを多用してる気がします。
逆にstrlenはあまり使ってませんでした。
いずれもしっかりとした根拠なく使っていたので、これからは
意味合いをよく考えて適材適所な感じでいきたいです。
ありがとうございまいsた。
0352347
2006/04/15(土) 00:49:45ID:???>348 350
もう一度言いますがすばらしい回答ありがとうございます。
人間リファレンスのようですね。
else条件のバリエーションをみるとなんとなく分かってきますね。
自分はなんとなくな理由でissetを多用してる気がします。
逆にstrlenはあまり使ってませんでした。
いずれもしっかりとした根拠なく使っていたので、これからは
意味合いをよく考えて適材適所な感じでいきたいです。
ありがとうございまいsた。
0354nobodyさん
2006/04/15(土) 01:13:32ID:???0357nobodyさん
2006/04/15(土) 01:24:51ID:???0358nobodyさん
2006/04/15(土) 02:19:58ID:???0359nobodyさん
2006/04/15(土) 02:29:00ID:???どのように設定して、折り返したらよいかわかりません。
どこか参考になるサイトなどはご存じないでしょうか?
0360nobodyさん
2006/04/15(土) 02:59:27ID:???0362nobodyさん
2006/04/15(土) 06:36:20ID:???【je-pu-pu アクセス解析 有料版のご案内】ttp://je-pu-pu.jp/access/pay.php
月額\350らしいんだけど、どうも内部はこんな感じ→ ttp://je-pu-pu.jp/webalizer/
これってJE製作のツールでなくて、モロ海外フリーソフトのwebalizer↓なんでないかと思うんだけど。
ttp://www.ahref.org/webalizer.html()
勝手にコレの利用料で金取ってもいいの?ライセンス得てるんでしょうか?
それとも表面上は同じに見えるオリジナルなのでしょうか。
せいぜいあってもコードパクって部分的に改変しただけな気がするのですが・・・
もしかして人のフンドシで文字通り商売してるのでしょうか?
もしそうだったらレンタルするのが怖いです。
webalizerの権利関係詳しくないから誰かそっち方面強い人調べてみてくれないですか?
どうぞよろしくお願いします(´・ω・`)
0365nobodyさん
2006/04/15(土) 09:15:20ID:???自分で処理して飛ばすしかないのでは
$a=file_get_contents('http://example.net/');
なら自動で処理してくれるんだけどなあ・・・
いちいち個別に対応するのが面倒だったので
いじって手抜き処理加えちゃったけど
0367nobodyさん
2006/04/15(土) 12:42:19ID:???0369nobodyさん
2006/04/15(土) 15:37:56ID:???対象の文字列が.などを含んでいて、かつエンコーディングを変更したい場合、
エスケープしてからエンコーディングしたものをeregするのか
それともエンコーディングしてからエスケープしたものをeregするのか
どっちが正しいのでしょうか?
考えてたらぱにくってきました・・・おいらはあふぉです orz
0370nobodyさん
2006/04/15(土) 15:44:03ID:???基本はエンコーディングしてからエスケープ。
でないと無関係な部分(漢字の後ろ1バイトに含まれる正規表現文字など)まで
エスケープされてまともに比較できなくなる場合がある。
0371nobodyさん
2006/04/15(土) 16:03:51ID:???0372nobodyさん
2006/04/15(土) 16:06:05ID:FisXV/Qrできるのでしょうか?
0374nobodyさん
2006/04/15(土) 16:39:27ID:???ヘルプでキーワード検索すれば大概の場合自分のやりたい事が実現可能かどうかわかるので、アルゴリズムの基礎を学んだ方が効率良い事に気がつきますた
プログラムっておもすろいですね
0375nobodyさん
2006/04/15(土) 16:42:31ID:???0376372
2006/04/15(土) 16:44:33ID:FisXV/Qrstr_replace()で'%2F'を'/'に置換したんです。ありがとうございました。
0377375
2006/04/15(土) 16:52:52ID:???おまえら素人が必死に考えてる間にyahooで自己解決。
0379nobodyさん
2006/04/15(土) 17:03:07ID:FisXV/Qr0380nobodyさん
2006/04/15(土) 17:04:15ID:???0382nobodyさん
2006/04/15(土) 17:39:13ID:1qLGoaV/入力された文字が全角カタカナかどうかの判別の方法がわかりません。
半角英字は↓でできました。
if ($ename != "" && !ereg("^[a-zA-Z \']+$", $ename)) {
$error['ename'] = "<font color=\"red\"> 半角英字で入力してください。</font>";
}
その要領で全角カタカナでやったのですが、全部引っ掛かる状態になります。
if ($fname != "" && !mb_ereg("^[ァ-ヶ]+$", $fname)) {
$error['fname'] = "<font color=\"red\"> 全角カタカナで入力してください。</font>";
}
$fnameの中に全角カタカナを入れています。
0383nobodyさん
2006/04/15(土) 17:48:21ID:???0384nobodyさん
2006/04/15(土) 17:57:37ID:1qLGoaV/mbstring
Multibyte Support enabled
Multibyte string engine libmbfl
Multibyte (japanese) regex support enabled
Multibyte regex (oniguruma) version 3.7.1
0385nobodyさん
2006/04/15(土) 17:58:16ID:1qLGoaV/mbstring.encoding_translation Off Off
mbstring.func_overload 0 0
mbstring.http_input pass pass
mbstring.http_output pass pass
mbstring.internal_encoding ISO-8859-1 no value
mbstring.language neutral neutral
mbstring.substitute_character no value no value
0386nobodyさん
2006/04/15(土) 22:12:07ID:269HnUWO$a に入ってる数値が 18未満だったら・・・というif文を作りたいのですが
if($a == "15 <= 0") というのは不可能でしょうか?
不可能でしたら方法を教えていただけないでしょうか。
0387nobodyさん
2006/04/15(土) 22:21:10ID:???キミがやりたいのは、18より小さいかを調べることだろう。
ttp://www.php.net/manual/ja/language.operators.comparison.php
0389nobodyさん
2006/04/16(日) 02:35:31ID:???そこのあたりはどの言語やっても基本の部分なんだから
PHPの超初心者本とかかって勉強しとけよ
基本的な構文はC、Java、etc・・・ほとんど共通だ
0390nobodyさん
2006/04/16(日) 03:26:56ID:???> mbstring.internal_encoding ISO-8859-1 no value
これをSJISに設定
0392386
2006/04/16(日) 09:39:55ID:???あ、それが一番近いかもしれません。
0より大きくて18より小さい。
ありがとうございます。
>>387
よく考えてみるとそうですね。ありがとうございます。
>>388
その方がシンプルみたいですね。
参考になります。
>>389
二つの条件を一度にやるのがよくわかりませんでした。
勉強不足ですいません。
0393nobodyさん
2006/04/16(日) 11:40:09ID:???PHPの勉強不足って感じでなくてさ、日本語覚えたての3歳児って感じ
他の言語もやったことなくPHPから始めたんだろうけど
0394nobodyさん
2006/04/16(日) 12:20:28ID:U9is4hyDphpとmysqlで在庫管理システムみたいのを作ったのですが、
脆弱性というか、セキュリティ的なものは一切考えていません。
画像ファイルのアップロードをするときに、拡張子がjpgじゃないとダメとか、
10240バイト以下じゃないとダメとか、
あとhtmlspecialcharsとか書いたりしてますが、
そもそも何が危ないのかわかってません。
いくらわかってなくても、最低限これだけはやっとけみたいのは
ありますか?
0395nobodyさん
2006/04/16(日) 13:19:17ID:???あくまで「最低限」ってことならサイズ制限とファイル名をそのまま使わなきゃ
それで十分じゃないかって気がする。
真面目にやるなら画像形式のバイナリチェックが欲しいところ。
拡張子の判定はほとんど意味ない。htmlspecialcharsはどこでやってんだ?
0396nobodyさん
2006/04/16(日) 13:27:06ID:???PHPサイバーテロの技法―攻撃と防御の実際
ttp://www.amazon.co.jp/exec/obidos/ASIN/4883374718/
0397nobodyさん
2006/04/16(日) 15:49:40ID:nblpYMkq$rows = mysql_num_rows($result);
if ( $rows < 0 ) error();
何かで参考にして上記のようにエラー処理をしてたんだけど
もしかして↓のようにすれば mysql_num_rows って必要ないですか?
$result = mysql_query($sql) or error();
0399398
2006/04/16(日) 15:56:13ID:???それをやってるのが >$result = mysql_query($sql) or error();
よって >上記のようにエラー処理をしてたんだけど という前述コードは
「エラー処理を一切していない」
0400nobodyさん
2006/04/16(日) 16:01:25ID:???if ( $rows < 0 ) error();
おまけにこれなに?mysql_num_rows()って「0以上の数値」か「FALSE」しか返さないんじゃなかったか?
マイナスの場合なんてありえないだろ。何のチェックにもなってなくないか?
0401397
2006/04/16(日) 16:25:50ID:???ttp://allabout.co.jp/internet/database/closeup/CU20030227/
昔このあたりを参考にしました。
if ( $rows < 0 ) error();
この部分は省略しようとしてやっちゃいました。実際は
if ( $rows > 0 ) { }
else { error(); }
こういう感じになってます。
0402nobodyさん
2006/04/16(日) 16:37:45ID:???・SQLそのものがおかしくて失敗 -> mysql_queryの返り値を適切に処理
or error()でやってるのはこの部分(まぁ適切かどうかは疑問だが)
・(mysql_num_rowsだからselectしてると仮定して、)select結果が一つもなかった時の処理
こいつは正確にはエラーでは無い。結果が0個の時とそれ以外の時とで
表示の仕方を変えたい時に使うことが多い。
0403nobodyさん
2006/04/16(日) 16:38:58ID:???> if ( $rows < 0 ) error();
この条件と
> if ( $rows > 0 ) { }
この条件は全然一致してないだろ
0406nobodyさん
2006/04/16(日) 17:23:24ID:???0407nobodyさん
2006/04/16(日) 17:31:15ID:ifz+1Zn4KDDIのUAを取得したあとに、またif(preg_match〜ってするの?
0408397
2006/04/16(日) 17:39:38ID:nblpYMkq0411nobodyさん
2006/04/16(日) 17:56:03ID:???if(preg_match('/(KDDI)-(\w+)/', $_SERVER['HTTP_USER_AGENT'], $match)) {
$ua = $match[1];
}
0412nobodyさん
2006/04/16(日) 17:58:21ID:???失敗。
if(preg_match('/KDDI-(\w+)/', $_SERVER['HTTP_USER_AGENT'], $match)) {
$ua = ($match[1] == 'SN33')? "W41A": "W";
}
0413nobodyさん
2006/04/16(日) 18:39:52ID:???PHPプログラミングに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
ここは "下らない質問でもして構わないスレ" であってそれを歓迎するスレではありません。
自分のしてる質問が下らない質問だということをわきまえ、謙虚になりましょう。
下らない質問をしてるんだから当然のように罵詈雑言も浴びせられるだろうが
全て甘んじて受けましょう。そうすればひょっとすると回答をしてもらえるかもしれません。
0414nobodyさん
2006/04/16(日) 20:03:34ID:???0415nobodyさん
2006/04/16(日) 20:06:03ID:???クラスくらいは普通に使うが。
0416nobodyさん
2006/04/16(日) 20:31:30ID:???・第三者が自由に書き込めるレビューの設置
・レビューと併せた投票システムの設置
上記の三つを作成したいのですが、
全くの初心者ですのでphpを勉強するのにお勧めの教本があれば教えて頂きたいです。
宜しくお願いします。
0417nobodyさん
2006/04/16(日) 20:42:06ID:???つttp://www.amazon.co.jp/exec/obidos/ASIN/4797320974/503-6104378-4423149
0418nobodyさん
2006/04/16(日) 21:29:52ID:???という処理はできないでしょうか?
0421nobodyさん
2006/04/16(日) 21:40:57ID:???※ file()関数
※ for文、もしくはwhile文
上の二つが大ヒントだ!!
まぁ、ほかのやり方は山ほどあるけどね
0425nobodyさん
2006/04/16(日) 22:11:36ID:U9is4hyDcheckboxのnameがcheck[]となっていました。
checkboxは10項目くらいあるんですけど、全部check[]です。
これはその後どうやってばらばらに受け取るんですか?
チェックボックスはラジオボタンとちがって、複数の値が送れる(?)ので
メールフォームとかで、チェックされたものだけを出力したいのですが、
いまいちうまくいきません。
0426nobodyさん
2006/04/16(日) 22:12:41ID:???0427394
2006/04/16(日) 22:20:16ID:U9is4hyDレスどうもです。
拡張子は意味無いんですか。勉強になります。
ファイル名はdate関数とかでリネームしてます。
てゆうかなんでそのままのファイル名は危険なんですかね?
htmlspecialcharsは普通にinput textをdbに入れる前に使います。
textareaの文章とかにも使います。これも意味ないですかね?
>396
その本は気になっていて、ちょっと読んだのですが、
難しそうで自分にはまだ早いかなと思ってしまいました。
もう一回読んでみます。
0429425
2006/04/16(日) 22:24:23ID:U9is4hyDvar_dampって初めて知りました。print_fとは違うんですか?
配列に格納されていたとしても、入っているもの(チェックされたもの)だけを
判別して、取り出すにはどうすればいいですかね?
0430nobodyさん
2006/04/16(日) 22:35:23ID:???ああ、アップロード以外に文字列データもあるってことね >htmlspecialchars
それなら分かる。
しかし、普通はhtmlspecialcharsはHTML出力時に使うものであってDBに入れるときに使うもんじゃないぞ。
DBに入れるときはmysql_escape_stringしとかなきゃダメだろ。
拡張子はいくらでも嘘を書けるから、むしろ1度削除して自前で判定した拡張子を付加してやった方がいい。
0431nobodyさん
2006/04/16(日) 22:36:50ID:???元々チェックボックスってチェックされたものしか送信されないような…。
後はそれぞれのvalueの内容を見て振り分けてるんじゃないの。
0432nobodyさん
2006/04/16(日) 22:53:40ID:42+ATyOFPHPinfo()は動くんだけど
echoさえ動きません。。。orz
PHP Version 4.4.1-pl1です。。
もう、インストール&アンイストールを4回くりかえしてます。
php.iniの設定は以下の通りです。
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = EUC-JP
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none
extension=php_mbstring.dll
0433nobodyさん
2006/04/16(日) 22:55:23ID:???もっとくやしく
0434nobodyさん
2006/04/16(日) 23:12:53ID:ifz+1Zn40438nobodyさん
2006/04/17(月) 00:28:08ID:ivoWdWE5どこに行けばいい?
0439nobodyさん
2006/04/17(月) 00:53:31ID:qfnqXSjS>>437
すいません
解決しました。
PHP.iniの設定をmbstring.internal_encoding = SJISにしたら直りました。
下らねぇ質問で失礼しました
0440nobodyさん
2006/04/17(月) 01:07:46ID:???0441nobodyさん
2006/04/17(月) 03:44:51ID:???誰か、該当者やちゃってくれない?
0444nobodyさん
2006/04/17(月) 12:48:59ID:Z/1jQgcoでいいだろ。ってことでしょ。
0445nobodyさん
2006/04/17(月) 13:10:32ID:???0446nobodyさん
2006/04/17(月) 13:59:46ID:rTnmXwePPHPでGDライブラリを使いたいので、必要なライブラリをインストールしたのですが
何度やってもFreeTypeを使えるようになりません。(phpinfo()で見てもFreeType Supportが有効にならない)
GD SupportやJPG/PNG Supportは有効になっていてグラフィックス関連の関数も使えるのですが・・・
OSはRedHat9、PHPやGD等のライブラリは全てソースからインストールしています。
○挑戦中のバージョン
PHP4.4.2.tar.gz
gd-2.0.33.tar.gz
libpng-1.2.8.tar.gz
jpegsrc.v6b.tar.gz
freetype-2.1.10.tar.gz
zlib1.2.3.tar.gz
PHPでGD+FreeType環境を構築された方いらしたら、./conigureのオプション指定方法やライブラリのバージョン等を教えていただけないでしょうか?
0447nobodyさん
2006/04/17(月) 13:59:47ID:???また他人を騙るアホが出てきたな
質問者は語られたくなかったらID付けましょう
ageればID付きます。
って言うのをテンプレ化キボン
それでも本人性の確認は出来ないけどね
0451nobodyさん
2006/04/17(月) 15:00:29ID:wNvi8T9B僕はmysqlのサーバ名とか「パスワードとかを、db.iniというファイルにまとめて書いておいて、phpで呼び出すときにrequire_once("db.ini")とやって、
mysql_connect($dbserver, $dbuser, $dbpass);とかやっています。
このdb.iniは普通にphpのファイル群と一緒にアップロードしていますが、
こういうのって危険なんでしょうか?
これは別のフォルダに入れてhtaccessとかで認証かけたりしたほうがいいのでしょうか?
0452nobodyさん
2006/04/17(月) 15:05:30ID:???外からは見れないところにおくか、拡張子phpとかにして、
見られても生では見えないようにしておかなきゃダメ。
0454nobodyさん
2006/04/17(月) 15:27:03ID:???0455nobodyさん
2006/04/17(月) 15:28:46ID:???0457nobodyさん
2006/04/17(月) 16:23:04ID:???proxyを経由してfile_get_contentsすることはできますか?
できるとしたら、どうすればいいでしょうか。
0458nobodyさん
2006/04/17(月) 16:26:48ID:???とりあえずこれだけはやっておけ
君のサイトのhttp://ドメイン/ウニャウニャ/db.ini
としてdb.iniが見えるかテスト
あとhttp://ドメイン/ウニャウニャ/
でディレクトリ内一覧が表示されないかもテスト汁
見えたらアウト
0460451
2006/04/17(月) 16:50:21ID:wNvi8T9Bレスありがとうございます。
ファイルを直接指定するとばっちり中身が見えます。
ディレクトリ内の一覧も正格に表示されます。
どうすればいいでしょうか?
0461451
2006/04/17(月) 16:51:45ID:wNvi8T9Bよろしくお願いします。
0463451
2006/04/17(月) 16:59:29ID:wNvi8T9B見逃してました。どうもです。
一般的というか、こういうときはだいたいこうするみたいな
セオリー的なことが聞きたいです。よろしくおねがいします。
0465nobodyさん
2006/04/17(月) 17:20:05ID:???phpでWINMXみたいのををつくりたいんですができますか?
0466nobodyさん
2006/04/17(月) 17:22:01ID:???このサイトのマニュアルを一括でプリントできない?
紙で移動中とかに読みたいんだけど
0469nobodyさん
2006/04/17(月) 17:39:54ID:???やろうと思えば出来るかもしれません。頑張ってください。
以上
--------------解決-----------------------------------
>>466さん他の方、質疑応答どうぞ。
0470nobodyです
2006/04/17(月) 18:14:21ID:AOutErUa<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp" />
<title>無題</title>
</head>
<body>
<form action="file.php" method="POST" enctype="multipart/form-data" name="file" id="file">
<input name="csv" type="file" size="60" /><br />
<input name="" value="追加" type="submit" />
</form>
<?
if(isset($_FILES['csv']['tmp_name'])){
$handle = fopen($_FILES['csv']['tmp_name'], "r");
echo "ファイルの内容<br>";
if ($handle) {
while (true) {
echo mb_convert_encoding(fgets($handle, 8192),"EUC-JP","Shift_JIS") . "<br>";
if(feof($handle)) break;
}
fclose($handle);
}
?>
0471nobodyです
2006/04/17(月) 18:15:24ID:AOutErUa<table border="1" cellpadding="3" cellspacing="0" bordercolor="#000000">
<?
$handle = fopen($_FILES['csv']['tmp_name'], "r");
echo $_FILES['csv']['tmp_name'] . "をオープン<br>";
if ($handle) {
$arr = array();
while (true) {
$arr = fgetcsv($handle, 8192);
if($arr[0]=="") break;
echo '<tr>';
foreach($arr as $value){
echo '<td>' . mb_convert_encoding($value,"EUC-JP","Shift_JIS") . '</td>';
}
echo "</tr>\n";
if(feof($handle)) break;
}
fclose($handle);
}
}
?>
</table>
</body>
</html>
----------------------------------------------------------------------------------------
上記プログラムで、Excelで出力したCSVを読み込みたいのですがLinux環境ですと漢字が入ったCSVが読めません。
テキストエディタで漢字の部分を「"」で囲むと正常に動くのですが・・・
ちなみに、windows版のPHPだと「"」がなくても読み込めました。
Linux環境で読み込む良い方法はありませんでしょうか?
0472nobodyさん
2006/04/17(月) 18:17:35ID:???0473470
2006/04/17(月) 18:23:32ID:AOutErUaやっぱそれしかないのかな・・・
0474nobodyさん
2006/04/17(月) 19:02:12ID:???$num = count($post);
for($i=0;$i<$num;$i++)
$post[$i] = nl2br($post[$i]);
$_POST = array_map('func_nl2br', $_POST);
function func_nl2br($post) {
}
0475474
2006/04/17(月) 19:04:56ID:qA+rYU42$_POST = array_map('func_nl2br', $_POST);
function func_nl2br($value) {
$value = nl2br($value);
}
他に良い方法がありましたら宜しくお願いします。
0477nobodyさん
2006/04/17(月) 20:30:41ID:???0478466
2006/04/17(月) 20:38:00ID:???0479nobodyさん
2006/04/17(月) 21:13:28ID:???0480nobodyさん
2006/04/17(月) 22:01:11ID:???先週、HTMLという言語(?)の勉強をはじめました!
気づいたらスルスル頭に入っていくというか、どういうものか理解できてしまった!
勢いでWEBサイトを作って公開しました〜>_<
それで、僕が借りてるサーバはHTMLのソースに広告タグを付加してページを
出力するようになってるんですが、そこにJavaScriptが使われていたので今日勉強しはじめました。
すると・・・もうJavaScriptがだいたいどういうものか理解できてしまった!というかWEBがだいたい
どういうものか分かった!んで、今PHP書いてます!もちろんこれはJavaScriptと違ってサーバ側で
動くのでブラクラにはあまり関係ありませんね(笑)
ぶっちゃけプログラミングってかなり簡単。。基礎さえ分かれば関数調べるだけじゃん。。
0482nobodyさん
2006/04/17(月) 22:07:16ID:???0484nobodyさん
2006/04/17(月) 22:53:40ID:???http://jp.php.net/get/php_manual_ja.chm/from/a/mirror
0486nobodyさん
2006/04/18(火) 00:40:17ID:???0487nobodyさん
2006/04/18(火) 00:46:12ID:???ただ、公式のchm形式のドキュメントは本家のスタッフが
「手動」(恐らく)で生成してるので、普通のオンラインドキュメントの
バージョンに追従しきれてない(若干古い)ので、それには注意しとくこと。
あと生成時に文字化けが混入したりすることが昔は結構あった。
前に「需要があるのなら私家版を公開しましょうか」という人がいたが
余り要望がなかったせいか、今のところそういう動きはない(と思った)
0488nobodyさん
2006/04/18(火) 01:53:16ID:ufbV+k46どうしてでしょうか?
0490nobodyさん
2006/04/18(火) 10:43:26ID:Cv/nzOIgformからPOSTされたデータの各最後尾に、
余分な空白キャラ(タブかも・・・)がくっついてきていて困っています。
一応データ展開時にrtrimすることで、余分キャラがない状態にはできるのですが、
余分キャラがついてこないようなPOSTの方法、
または余分キャラを発生させないログの作り方などの
ヒントをいただければと思う次第です・・・。
ログの作り方は
$writeDat = $number."\t".$post['title']."\t".$post['honbun']."\t".$post['hi']."\t".$post['ji']."\t".$post['cat']."\t".$image."\n";
展開は
$lines = file($setting['logfile']);
for ($i=0; $i<count($lines); $i++) {
$dat = explode("\t", $lines[$i]);
list($number,$title,$honbun,$hi,$ji,$cat,$image) = $dat;
$cat = rtrim($cat); // なぜかトリムが必要・・・
}
こんな感じです。よろしくお願いいたします。
0491nobodyさん
2006/04/18(火) 10:48:16ID:lmSkCOac0492nobodyさん
2006/04/18(火) 10:56:00ID:???フォーマットしてくれるソフトってありませんか?
if ($a == true) { print "OK"; }
↓
if ($a == true) {
print "OK";
}
みたいな感じで
0493nobodyさん
2006/04/18(火) 11:18:33ID:???0495490
2006/04/18(火) 12:50:33ID:???レスありがとうございます。
フォームを書いている部分のソースを晒してみます。
function putForm($ua,$setting,$cate) {
echo '<div class="titlebox"><h2 class="diarytitle_2">admin mode</h2></div>';
echo '<form enctype="multipart/form-data" action="admin.php" method="post">';
echo 'title <input type="text" size="60" name="title"><br>';
echo 'category<select name="cat">';
echo '<option value="">--</option>';
while (list($key, $val) = each($cate)) {echo "<option value=$key>$cate[$key]</option>";}
echo '</select><br>';
echo '<textarea rows="6" cols="60" name="honbun"></textarea><br>';
echo '<input type="file" name="uploadfile"><br>';
echo '<input type="hidden" name="action" value="write">';
echo '<input type="submit" value="write">';
echo '</form>';
}
(原因を削除してしまうのを回避するために、関数部分まるごとコピペしました)
0497446
2006/04/18(火) 13:19:13ID:QNgm/uExどうみても素人です。本当にありがとうございました。
0498490
2006/04/18(火) 13:54:39ID:???ご意見ありがとうございます。
implodeを使うと、formのhiddenで渡している値なども、
まとめてログに格納されてしまうので・・・
あ。
POSTされた内容を$postに丸投げ($post = $_POST)しているから、
そんなことになるのですね。
$post[]の内容を整理して、implodeで見通し良くログを作成したいと思います。
ありがとうございました。
0499nobodyさん
2006/04/18(火) 14:58:11ID:???> while (list($key, $val) = each($cate)) {echo "<option value=$key>$cate[$key]</option>";}
この$cateはどこでどういう風に作ってるんだ?
そこでゴミ入れちゃってるんじゃないかと思うんだが
0500490
2006/04/18(火) 15:01:51ID:???> この$cateはどこでどういう風に作ってるんだ?
別ファイルにて$cateの設定をしております。
$cate => カテゴリーの意 です。
$cate = Array (
'news' => 'おしらせ',
'music' => '音楽',
'baseball' => '野球',
'game' => 'ゲーム',
'yota' => 'ヨタ話',
'test' => 'テスト'
)
こんな感じです。趣味がバレて(*‘ω‘ *)ィャンですが。
0501nobodyさん
2006/04/18(火) 15:10:49ID:ksf2FOYQxamppにて環境を構築しています
ファイルのアップロードをPHPで実現しようとscriptを組みましたがファイル名によっては正常にアップロードされない場合があります。
アップロード前に適当な長い文字にリネームすると正常に動作するのですが、これは私の綴りに誤りがあるからなのでしょうか。
web上でphp scriptを配布されている方のscriptも走らせて見たのですが全く同じ現象で、どこが悪いのかさっぱりです。
何かバグや仕様などあるのでしょうか?
0503501
2006/04/18(火) 15:19:11ID:ksf2FOYQレス有難う御座います。
そしてすいません。
肝心な部分が抜けていました。
FILE_003.jpgが通らず、200601071530000.jpgは問題無し
前者をリネームし00aerasfsaf5.jpgにしてみましたが通らずといった感じです。
$upfile_name = $_FILES["image"]["name"];
$upfile = $_FILES["image"]["tmp_name"];
$path = dirname($_SERVER[PATH_TRANSLATED]).IMG_DIR;
if (file_exists($upfile)) {
$dest = $path.$upfile_name;
move_uploaded_file($upfile, $dest);
$ext = substr($upfile_name,-4);
rename ($dest,$path.date("20ymdhis").$ext);
$imgname = date("20ymdhis").$ext;
echo $size = getimagesize($path.$imgname);
$W = $size[0];
$H = $size[1];
0504nobodyさん
2006/04/18(火) 15:21:28ID:ksf2FOYQ原因があるとしたら、ファイル名処理が怪しいですかね。
ケツから三行目にechoとか入ってますが、なんちゃってデバッグでちゃんと取得できているか試してた名残です(汗
0505nobodyさん
2006/04/18(火) 16:04:58ID:???以下で同じ駄目だというファイル名で実験したが普通に動いているぞ?
<?php
$upfile_name = $_FILES["image"]["name"];
$upfile = $_FILES["image"]["tmp_name"];
$path = dirname($_SERVER[PATH_TRANSLATED]).'/upfile/';
if (file_exists($upfile)) {
$dest = $path.$upfile_name;
move_uploaded_file($upfile, $dest);
$ext = substr($upfile_name,-4);
rename ($dest,$path.date("20ymdhis").$ext);
$imgname = date("20ymdhis").$ext;
echo $size = getimagesize($path.$imgname);
$W = $size[0];
$H = $size[1];
}
?>
<html>
<head>
<title>テストたぼけたれ</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body bgcolor="#FFFFFF">
<form action="./0.php" method="post" enctype="multipart/form-data">
<input type="file" name="image">
<input type="submit" value="送信">
</form>
</body>
</html>
0507nobodyさん
2006/04/18(火) 16:15:06ID:???0508501
2006/04/18(火) 16:39:57ID:???仰るとおりファイルサイズ制限によるものでした。
PHPマニュアルから関数を調べてサンプルコードをコピペした際、隠し要素のMAX_FILE_SIZEをそのままにしていたのが原因でした。
初歩的なミスで申し訳ないです。
テンパってると簡単なミスにも気づかないものですね........
0509nobodyさん
2006/04/18(火) 16:53:20ID:???$imageの後ろにゴミが付くのなら分かるが(これだと改行コードが付くだろう)
$catの方に付くってのはわからんなー
0510490
2006/04/18(火) 16:59:31ID:???レスありがとうございます。
当面は「ゴミ付データをrtrimする」という場当たり対処で乗り切りますです。
・・・目覚めは悪いですが、現状の自分のスキル不足だと割り切ります。
これから勉強していくうちに、解決策も思いつくかもしれませんし(つД`)
レスをいただいた諸氏へ感謝(。・ω・。)ゞ
0511nobodyさん
2006/04/18(火) 18:30:12ID:???$err['name'] = 'エラーメッセージ';
if( 入力チェック )
$err['tel'] = 'エラーメッセージ';
if( 入力チェック )
$err['address'] = 'エラーメッセージ';
のような入力チェックを作ったとして、
表示側を下みたいにした時、
<?= $err['name'] ?>
<input type="text" name="name"><br>
<?= $err['tel'] ?>
<input type="text" name="tel"><br>
<?= $err['address'] ?>
<input type="text" name="address"><br>
error_reportingの設定によってUndefinedが出るんだけど、
error_reporting関数か.htaccessを使って設定を変えるのと、
表示側を
<? if( isset($err['name']) ){ echo $err['name']; } ?>
とするのとどっちがいいんだろう?
0512nobodyさん
2006/04/18(火) 18:42:51ID:FgrLDE8s分数(秒数)単位で結果を出力させるにはどうしたらいいでしょうか?
http://iodine-127.no-ip.info/math/countdown.php
こんな感じなんですが、文字で出力させたいのです・・・
0513nobodyさん
2006/04/18(火) 20:30:38ID:???http://pear.php.net/package/PHP_Beautifier
0514nobodyさん
2006/04/18(火) 20:31:20ID:0MA4uQo3phpのファイルはエディタの設定をシフトJISにしています。ヘッダのcharsetはshift-jisです。phpmyadminの最初のページで、languageをjapanese(ja-sjis)にしています。php.iniのmbstringの項目ではmbstring.internal_encoding = SJISになっています。
以上が全て同じなら、文字コード的に問題無いでしょうか?作ったシステムは今のところ正常に動いています。
それと、なんだかんだいってEUC-jpでつくるのがベストみたいな話を聞いたのですが、なぜでしょうか?
よろしくお願いします。
0515nobodyさん
2006/04/18(火) 21:24:39ID:ezAkcLQV指定したディレクトリで指定した拡張子のMIME typeが何と設定されてるか
httpd.confやら.htacccessやら調べて取得してくれる関数ってありませんか
0516nobodyさん
2006/04/18(火) 23:04:17ID:???「なんだかんだでEUC-JP」の理由が理解できないうちは、
なんだかんだでEUC-JPにしとくといいと思うよ。
EUC以外のエンコードを採用するのに確固たる理由や確信が持てるように
なったら、それにすれば良いとです。
0518470
2006/04/19(水) 00:05:26ID:???http://s2.muryo-de.etowns.net/~teti/tools.phps
どっかエラーがありそう。
文字コード「EUC」の改行コード「LF」に変換してからしか使えないし
何か、良い方法無いかな・・・
0519nobodyさん
2006/04/19(水) 00:16:42ID:47s4d2RMというか、2byte文字が入っていると$_FILES['upfile']['name'];でファイル名が収得できません。
拡張子のみが返ってきます。
英数字のみのファイルはアップロード出来るので、2byte文字が原因だとは思うんですがどうすればいいのでしょうか?
$filename = $_FILES['upfile']['name'];
$enctype = mb_detect_encoding($filename);
$filename = mb_convert_encoding($filename,"EUC-JP","enctype");
if (move_uploaded_file($_FILES['upfile']['tmp_name'],$updir.$filename)
== FALSE){
print("アップロードに失敗しました。");
}else {
print( $filename . "アップロードしました。");
}
0520nobodyさん
2006/04/19(水) 00:43:16ID:???たとえばDBとコネクトするごとにtryしたほうがいいのか
クエリを発行するごとにtryしたほうがいいのか・・・
皆さんは例外結構使ってまつか?
0521514
2006/04/19(水) 01:05:36ID:3WMC/UyZレスありがとうです。
SJISとかのデメリットってなんですかねぇ?
たまにUTF8を激しく推奨みたいのも見かけますし、
なにがいいのかわからないです。
自分的にはSJISが好きなのですが、予期せぬ\マークがでたりしますが、htmlspecialcharsとかstripslashesをやると消えるので、
あまり不具合も感じません。
具体的なお話がきけると有り難いです。
よろしくお願いします。
0522nobodyさん
2006/04/19(水) 01:48:03ID:???DBへ値を保存するときにはちゃんと文字コードを意識しなければだめ。
最近はサーバ環境がユニコードのためか、viでそのまま文字が読めることに
UTF-8はいいなと感じてる。
携帯はSJISがいいでしょ?
0523nobodyさん
2006/04/19(水) 01:51:48ID:???大抵サーバがEUCだからEUCでスクリプト書いておくと何か問題があったときにviとかで直接見られる。
サーバ上にあるスクリプトを直接見ることで、何者かの手によって勝手に改変されてないかわかる。
・・・てことより、バグ見っけたらサーバ上のスクリプトをコッソリ直すってコトの方が多いなw
だからEUCで書いてた方が楽なときが多い。
全てのサーバがnkfとか入れてるわけじゃないからね。特に海外のレンタルサーバなんて・・・
まぁコメントとか日本語使わなきゃいいんだけど、日本語のコメントなきゃサッパリ分からないしー
0524nobodyさん
2006/04/19(水) 01:55:59ID:???mb_** みたいなライブラリが使えない状況だと、EUC の方が圧倒的にコーディングが楽だよ。
SJIS は、文字列を途中から評価しようとしたとき、そのバイトが2バイト文字の一部なのか、そしてそれが何バイト目なのかがすんなり判断できない。
あと環境によっては、2バイト文字の一部に \ を含むものがあるというのがネックになる。
ヘタするとスクリプトのパースすら失敗するしね。
できるだけどこでも動くものを作ろうと思うと、SJIS よりも EUC の方が苦労しないと思う。
0525nobodyさん
2006/04/19(水) 01:58:44ID:???なんかちゃんと動いてんのかわかんねー
DBへの書き込み自体はうまく行ってるみたいだし
pg_query( 'begin' )だけで問題ないよね?
0527nobodyさん
2006/04/19(水) 02:53:15ID:???サンクスコ
0528nobodyさん
2006/04/19(水) 03:51:04ID:sslsiAd8PHPでオンラインテストを作る課題を出されました。
mySQLでtest、question、answerが含まれたテーブルを作ったんですが、このテーブル1つだけで
テストを選んだら複数の問題が表示される
1つの問題に3つの答えが表示される
3つのうち1つだけが正解
というスクリプトは書けるでしょうか?
0529nobodyさん
2006/04/19(水) 04:08:09ID:enTaLLydこういう場合は引数で渡して、こういう場合はglobal宣言っていう例ない?
0530nobodyさん
2006/04/19(水) 04:12:06ID:???書けなくはないけど、効率悪いか、問題のメンテナンスに難がある。
・テストに対して問題は1対多
・問題に対して選択肢は1対多(ただし3つ固定)
てことを考えると、テストと問題は別テーブル、回答は本来別テーブルだけど、
パフォーマンスに難があれば問題に含めても良い。
…全然PHP関係ないね。DB板向け。
0531528
2006/04/19(水) 04:32:32ID:sslsiAd8最高でもテーブルは2つまでとのことなので、テーブルを2つ作り、テストのみ、問題と回答1、回答2、回答3というようにしたらいいでしょうか?
正解の回答も回答4などとして加えてスクリプトで、選んだ回答が回答4のとき、などと書いて正解を確かめるんでしょうか?
最初DB板で似たような質問したのですが普通にスルーされまして・・・(;´Д`)
PHPのスクリプトの問題なのかと思いこちらで質問させていただきました。
0533528
2006/04/19(水) 04:51:23ID:sslsiAd8分かりました。
どうもすいませんでした。
0534nobodyさん
2006/04/19(水) 07:22:37ID:???使う変数は前もって定義しておく
$err['name'] = "";
$err['tel'] = "";
$err['address'] = "";
0535nobodyさん
2006/04/19(水) 07:29:27ID:???ファイル名の最後が表とかで終わってるんじゃない
htmlの出力をshift jis以外にするしかないと思う
0536nobodyさん
2006/04/19(水) 09:08:20ID:???文字化けとかセキュリティ的な問題とか山のようにある。
http://d.hatena.ne.jp/t_komura/20060122#1137944280
携帯とかSJISのほうがいい場合は、出力直前にSJISにコンバートすりゃいい。
(ただ、最近の携帯はパソコンとほぼ同じく複数のエンコードに対応してるからEUCがオススメ)。
で、スクリプトの内部やDBではEUCで統一したほうが圧倒的に楽。
0537nobodyさん
2006/04/19(水) 09:34:24ID:???0538nobodyさん
2006/04/19(水) 09:44:08ID:???0539nobodyさん
2006/04/19(水) 09:58:26ID:???へぇ、こんなSQLインジェクションのテクニックがあったんだね。
今までSJISを避けてきたけど、SJIS使わされるハメになったら穴だらけになるところだった。
危ない危ない
0540nobodyさん
2006/04/19(水) 10:27:12ID:???SJISにこだわる理由を聞け、理由を。
っていうかそんな客なんか切るか、もしくは
「セキュリティ強度が低下しますけどいいんですね?
または強度を維持したいなら見積もり額アップしますけど」
って言えよ。
0541nobodyさん
2006/04/19(水) 10:34:25ID:???IE5の時代はよくあった
0544nobodyさん
2006/04/19(水) 11:12:26ID:???0545nobodyさん
2006/04/19(水) 11:13:47ID:???0551nobodyさん
2006/04/19(水) 12:13:20ID:???途中にあっても駄目
ディレクトリの区切り記号"\"と判定されるから
表などであって他にもある
結論はシフトジスは使わない
0552nobodyさん
2006/04/19(水) 12:13:34ID:FFPzklJQhttp://8909.teacup.com/tomi/bbs
0553nobodyさん
2006/04/19(水) 13:11:01ID:???if (!file_exists($log)){
$logが見つからなかったらパーミッション666で$logを自動生成する
}
といったことをやりたいのですが、
fopenを使った場合、ログファイルなのでパーミッションを666にしたいのですが、
パーミッションが644になってしまい(Xrea使ってます)、
ディレクリの権限を変更しないと(707や777等)作成されませんでした。
なんかいい関数とか方法ありませんでしょうか?
functionで作れるような腕はもっておりませんorz
0555nobodyさん
2006/04/19(水) 13:22:07ID:???ハァ??
PHPで動作しないと思われる文字エンコーディングの例を以下に示します。
JIS, SJIS, ISO-2022-JP, BIG-5
これらのエンコーディングで書かれたPHPスクリプトは、特に符号化された文字列がスクリプトで記述子やリテラルに使用される場合には、動作しない可能性がありますが、
入力されるHTTPクエリに関してmbstringの透過的なエンコーディングフィルタを設定することでこれらのエンコーディングをほとんど使用しないようにすることができます。
注意:
SJIS, BIG5, CP936, CP949, GB18030 は、読者がパーサ/コンパイラ、文字エンコーディングと文字エンコーディングの問題点について精通していない限り内部エンコーディングとして使用するべきではありません。
0557nobodyさん
2006/04/19(水) 13:42:26ID:???デフォでは使えないということは、対応してないというわけではない。
(デフォで対応してないのはmb系全般そうだけど)
そこの説明は「非推奨。使用する場合は注意すること」っていう説明。
0558nobodyさん
2006/04/19(水) 13:53:00ID:???SJIS使ってるときにエスケープでaddslashesなんて使う方が悪い気がするけど。
mysql_escape_string使ってれば全角文字をちゃんと認識してエスケープできる。
0562nobodyさん
2006/04/19(水) 14:51:21ID:yEjSiGYT使っているキーボードは日本語配列ですか、それとも英語配列ですか?
双方のメリット、デメリットと合わせて教えて下さい。
0563nobodyさん
2006/04/19(水) 14:59:01ID:???日本語
メリット ここは日本で私は日本人だから
デメリット 特に無し
個人的にはそんなものよりキーを押したときの硬さなどが気になる…
長時間やっても疲れないのが一番!!
0565563
2006/04/19(水) 14:59:56ID:???0567nobodyさん
2006/04/19(水) 15:28:38ID:???0568nobodyさん
2006/04/19(水) 15:34:30ID:???0569nobodyさん
2006/04/19(水) 16:23:24ID:???どうすればよかとでしょうか?
0570nobodyさん
2006/04/19(水) 16:42:28ID:???日本語配列のメリット:慣れてると打ちやすい デメリット:慣れてないと打ちにくい
英語配列のメリット:慣れてると打ちやすい デメリット:慣れてないと打ちにくい
0572nobody
2006/04/19(水) 18:05:49ID:k/ExYNcl半角カナ文字のみ条件だと文字化けします。
A.php(「検索」を押すとB.phpが実行)
<input type=text name="hankaku_kana">
<input type=text name="zenkaku_kana">
<input type="button" value="検索">
B.php
$sql = "select * from Table where col = *";
if(hankaku_kana != NULL)
$sql = $sql."and col = hankaku_kaa";
if(zenkaku_kana != NULL)
$sql = $sql."and col = zenkaku_kana";
このとき、zenkaku_kanaに全角文字が入っていると
検索できるんですが、
半角文字だけだと文字化けします。
どうしたらできますか?
0573nobodyさん
2006/04/19(水) 18:12:08ID:???オレsjisで作ったコトある・・・しかも商用orz
0574nobodyさん
2006/04/19(水) 18:14:58ID:???よく分からないなら、UTF-8 使っとけ。
EUC-JPに比べてUTF-8を使うメリット
・最近のUnix/Linux系OSではUTF-8が標準であることが多い
・国際標準なのでどの言語でも利用できる
・Windows/Macでも内部コードとして使われてきている
0575nobodyさん
2006/04/19(水) 18:19:29ID:???超大手商用サイトでもShift_JIS使ってるとこなんていくらでもあるよ
当たり前な日本語になるが、問題なければ問題ない
0576nobodyさん
2006/04/19(水) 18:39:05ID:???・UTF-8は日本語が3バイト(EUC-JPはほぼ2バイト)だから容量制限にひっかかる(DBが5MBの某鯖とか)
・Winのメモ帳などでいじるとBOMがついて誤作動する
ただ
・DBの文字コードとスクリプトの文字コードは同じほうが効率が良い
・SQLiteはUTF-8/16推奨
0577572
2006/04/19(水) 18:51:40ID:k/ExYNcl0578nobodyさん
2006/04/19(水) 18:54:06ID:???0579nobodyさん
2006/04/19(水) 18:55:51ID:???0580nobodyさん
2006/04/19(水) 19:22:43ID:???つかUTF-8とかならともかく日本語環境でなんでEUCを内部コードに使うのかわからん
0581nobodyさん
2006/04/19(水) 19:53:22ID:???0582nobodyさん
2006/04/19(水) 20:08:41ID:yEjSiGYTサーバの文字コードとDBの文字コードとスクリプトの3つを気にしなきゃいけないのですか?
0583nobodyさん
2006/04/19(水) 20:15:11ID:???サーバの文字コードとDBの文字コードとスクリプト内部処理の文字コードと
HTML出力の文字コードの全てを「UTF-8」にすれば完璧です。
それ以外の心配はいりません。
0584nobodyさん
2006/04/19(水) 20:27:20ID:lD0hd5jB$myArray_sum = array_sum($myArray)
これでは値が0になってしまいorz
配列自体に数値が入っているのは確認しました。
配列の配列 array_sum/二次元配列 array_sum/等
でググったんですけど分かりませんでした。ど
うやったらいいでしょうか?
よろしくおながいします。
PHP Version 4.3.9
0585nobodyさん
2006/04/19(水) 20:28:17ID:yEjSiGYTレンタルサーバでも変更できますか?
0586nobodyさん
2006/04/19(水) 20:40:02ID:???$myArray_sum = 0;
foreach($myArray as $a) $myArray_sum += array_sum($a);
かなぁ
もっと簡単な方法ってあるのかな。
0587nobodyさん
2006/04/19(水) 20:45:19ID:???掲示板のようなもので、データを書き込んだら
なぜか「ソ」のあとに\が付くんですが、なぜでしょう。
カタカナを確かめるとソ以外の後ろには付きません。
htmlspecialcharsと、str_replaceで、改行、キャリッジリターンを<br>で変換する処理をしたあと、
ログに書き込んでいます。ログに書き込まれた時点で\が付いてるので表示の問題ではないようです。
お願いします。
0589587
2006/04/19(水) 20:51:57ID:???0590nobodyさん
2006/04/19(水) 20:55:12ID:???OS自体の文字コード。
WindowsはShift_JISで変更不可。
Fedora Core (Linux) なら UTF-8 が標準。(設定で変更可)
かんたんに言えばこんなかんじだ。
0592nobodyさん
2006/04/19(水) 20:57:39ID:???ん、ケータイ用サイトの文字コードもUTF-8にしているよ。
auとtu-ka、WILLCOMは全機種UTF-8対応でしょ。
(ゲートウェイで変換されるから旧機種でも問題無い)
たしかDoCoMoもよっぽど古い機種じゃなけりゃ問題ないとおもう。
たぶんアクセス解析すりゃ98%以上がUTF-8対応じゃないの?
0593nobodyさん
2006/04/19(水) 20:58:05ID:???> EUC-JPに比べてUTF-8を使うメリット
> ・最近のUnix/Linux系OSではUTF-8が標準であることが多い
「多い」ってことは全部じゃない?
> ・Windows/Macでも内部コードとして使われてきている
「きている」ってことはやっぱ全部じゃない?
0594584
2006/04/19(水) 20:59:35ID:lD0hd5jBありがとうございました。
数もそう多くないんで処理できれば問題なかったんで。
加算代入の存在忘れてました。
0595nobodyさん
2006/04/19(水) 20:59:47ID:???全部では無い。
ただ、EUC-JPよりは利用率が圧倒的に高い。
> 「きている」ってことはやっぱ全部じゃない?
全部では無い。
WinはShift_JISの箇所が一番おおいしな。
EUCはUnix用のコードだからWinの内部コードではないっしょ。
0596nobodyさん
2006/04/19(水) 21:01:08ID:???容量制限の問題はたしかにあるな。
> Winのメモ帳などでいじるとBOMがついて誤作動する
そもそも、EUCだとWinのメモ帳じゃ弄れないよね。
0598580
2006/04/19(水) 21:19:24ID:???0600nobodyさん
2006/04/19(水) 22:23:19ID:???XHTMLと文字コードは関係無いわけだが。
あとMOVAでWeb巡回する人なんてそんないないだろ。
2円/1パケット=128バイト もぼったくられるでしょ。
1MBで2048円にもなる。
0601nobodyさん
2006/04/19(水) 22:24:17ID:???0602nobodyさん
2006/04/19(水) 23:38:56ID:???公式嫁。
HTMLはSJIS、XHTMLはSJISかUTF8と書いてある。
つーか、わざわざイリーガルなことをせず素直に一般的な方法を選べよ。余計な事をして後悔したくなければな。
0603nobodyさん
2006/04/20(木) 00:22:29ID:???公式の情報が正しいとは限らないわけだが。
特にDoCoMoの情報はいい加減。
hoge.@hogehoge.foo というメールアドレスが
RFC準拠だとも書いてあるぞw
0605nobodyさん
2006/04/20(木) 01:00:15ID:???いくら大丈夫だからって気持悪い。
0606nobodyさん
2006/04/20(木) 03:59:38ID:???Warning: Invalid argument supplied for foreach() と怒られます。
--------------------------------------------------
<?php
include('mainmenu.inc');
$page = new mainmenu(HOME);
$array = array('HOME' => 'home.php','SERVICES' => 'service.php','PORTFOLIO' => 'portfolio.php','CONTACT' => 'contact.php');
$page->ex = $array;
$output = $page->mainmenu('HOME');
print $output;
?>
--------------------------------------------------
0607606
2006/04/20(木) 04:01:33ID:Rr5Gf5oo--------------------------------------------------
<?php
class mainmenu
{
function mainmenu($atpage)
{
$print .= '<table align="center" width="360" cellpadding="0" cellspacing="5">';
foreach($this->ex as $key => $val)
{
$print .= ahref("$val","$key","$atpage");
}
return $print;
}
}
function ahref($link,$name,$atpage)
{
if($name != $atpage)
{
return "<td><h2><center><a href=$link>$name</a></h2></td>";
}
else
{
return "<td><h2><center>$name</h2></td>";
}
}
?>
--------------------------------------------------
正直試行錯誤しながら適当に書いたのですが、エラーの理由が分かりません。
表示をちゃんと出来ているのでエラーを黙らせるだけでもいいのですが・・。
0609606
2006/04/20(木) 04:09:36ID:Rr5Gf5ooclass mainmenu
{
var $ex;
function mainmenu($atpage)
{
といった感じで、他の変数も宣言してみましたが変わりませんでした・・。
0610nobodyさん
2006/04/20(木) 04:40:15ID:???あーわかった。
new した時点でコンストラクタが実行されるのに、その時点ではまだ ex に値が入ってないからだね。
0611nobodyさん
2006/04/20(木) 05:48:34ID:5qR+ryMI$html = implode('', file('http://hoge.com/'));
print $html;
?>
これを、ローカルで実行すると「問題が発生したため、Apache HTTP Server
を終了します。 」とでるが、XREAにアップして実行するとエラーになりません。
ローカルでエラーにならない方法知ってる方、いらっしゃいますか?
0612nobodyさん
2006/04/20(木) 05:56:37ID:A22L6gzyどのように書けばいいのでしょうか。
誰か教えてくれませんか。
0613nobodyさん
2006/04/20(木) 06:18:02ID:???リモートファイルが使えるようになってる?phpinfo()で確認
http://jp.php.net/manual/ja/features.remote-files.php
>>612
「一定時間ごとに起動」はcronやat、タスクスケジューラなど
スクリプト起動しっぱなしなら永久ループでsleepとか
0614nobodyさん
2006/04/20(木) 06:19:32ID:???意図がよくわからない。応答返さずに定期的にアクティブになるならsleepだけど、意味ないわな。
一定時間ごとに応答が欲しいなら、ブラウザにRefresh指定しなさいな。
0615nobodyさん
2006/04/20(木) 06:42:41ID:5qR+ryMIphp.ini の設定は次のようになっています。
; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
allow_url_fopen = On
ちなみにOSはWindowsXPです。
0616nobodyさん
2006/04/20(木) 07:15:59ID:A22L6gzycronとは初めて聞いたのですが、どのようなものなのですか。
書き方を知ろうと思いググってみたのですが、
どう書いたらよいのか分からなくて。
良かったら、教えていただけませんか。
0617nobodyさん
2006/04/20(木) 07:37:21ID:A22L6gzyphpinfo();で確認ってことじゃないの?
0618nobodyさん
2006/04/20(木) 08:01:58ID:???ちなみにマニュアルは読んだ?
>>注意: PHP 4.3未満のWindows版PHPは次の関数については リモートファイルアクセスをサポートしてません: include(), include_once(), require(), require_once(),
>> そして参照LVIII, イメージ関数(image)拡張によるimagecreatefromXXX関数。
はどう?
確認するのはphpinfo()で表示されるRegistered PHP Streamsにhttpがあるかどうか。
#関係ないけど最初の implode('',file('...'))はfile_get_contentsのほうがいいかなっと
>>616
OS書いてないからわかんないけど、cronは定期的に自動実行するUNIX系のツール
phpのスクリプトを設定した時間がきたら動かすってことだな。
ぐぐればわんさか出てくる。WinならVectorでもいけばそういうツールあると思うけど。
0619613
2006/04/20(木) 08:05:34ID:???べくたーにこんなんあったけど
http://www.vector.co.jp/soft/winnt/util/se232096.html
UNIXのcronみたいなの
0620nobodyさん
2006/04/20(木) 09:58:55ID:???お前、>>536で提示されてるリンク先をよく読んだか??
読んでもまだ意味がよく分からないようなら相当ヤバイので、
エンコード云々に限らず、Webプログラム開発自体を止めたほうがいいよ。
0621nobodyさん
2006/04/20(木) 10:40:57ID:???Apacheは
./configure --prefix=/usr/local/apache --enable-module=so
PHPは
./configure --without-mysql --enable-mbstring --with-apxs=/usr/local/apache/bin/apxs --prefix=/usr/local/php4
でインストールしました。
Apacheを起動し、<?php phpinfo(); ?>を書いたファイルにアクセスしたところ、php.iniのパスは/usr/local/php4/libでした。
ところが、/usr/local/php4/lib/にphp.ini-recommended⇒php.iniとして配置し、Apacheを再起動しても設定が反映されません。
何か作業に見落としがあるのでしょうか?
0622nobodyさん
2006/04/20(木) 10:55:22ID:???マニュアルは読みました。
PHP Version は 4.4.2 です。
Registered PHP Streams はphp, http, ftp, compress.zlib で
httpはあります。
0626nobodyさん
2006/04/20(木) 13:30:31ID:X9ueaSfEサーバーA には $_POST["id"]でidを受信
サーバーB には file_get_contetnsプログラムをおきます。
以下、全てサーバーBにプログラムをおきまして、サーバーAに対し
file_get_contents("http://www.hoge.com?id=3");
をする事により、引数の id 3 をデータベースに登録したいのです。
しかし、サーバーBのレンタルサーバーによっては
file_get_contents("http://www.hoge.com?id=3");
をしても id 3 がデータベースに登録されない場合があります。
どうすればどのサーバーBでも
file_get_contents("http://www.hoge.com?id=3");
をすれば登録することができるでしょうか。
ご存知の方いらっしゃいましたら、ご教授下さい。宜しくお願いします。
0627606
2006/04/20(木) 13:33:55ID:???出来ました、ありがとうございます!
クラス名とコンストラクタ名を同じにしていたのが混乱の原因だったようです。
ちなみに「クラス名と」と書こうとすると、「クラスメイト」と変換されるのもオブジェクト指向だからこそだなと思いました。
0629nobodyさん
2006/04/20(木) 13:41:16ID:X9ueaSfEレスありがとうございます。
ページ自体は表示されるのですが、
?id=3 の ?以降の文字列が全く無視されてしまいます。
引数を送りたいだけなので require や include で試しても
うまく取得してくれませんでした。
0630621
2006/04/20(木) 13:45:26ID:???たまたま手元に3があったのと、問題発生時の情報が新しいOSに比べて多く見つかること。あとは3がさほど昔のOSだとは思っていないことですね。
0631nobodyさん
2006/04/20(木) 14:03:11ID:???ちゃんとファイル名まで書け
file_get_contents("http://www.example.com/index.php?id=3");
0634nobodyさん
2006/04/20(木) 14:36:17ID:???ファイル名まで書かないとダメだったんだろうか
0635nobodyさん
2006/04/20(木) 15:55:39ID:???たまに次のようなエラーがでます。
Check the manual that corresponds to your MySQL server version for the right syntax to use near 'hogehoge hoge' <hoge@hogehogehoge.domain>', 'RE: hogehoge
<>か'あたりをエスケープしなきゃいけない感じでしょうか?
ただ、できれば<>をそのままデータベースに入れたいなと思ってます。
0636nobodyさん
2006/04/20(木) 15:59:35ID:???通せばいいって話じゃなくて?
0637nobodyさん
2006/04/20(木) 16:07:10ID:???名称・アドレス併記の際のクォートが引っかかってるんだろ。
0639nobodyさん
2006/04/20(木) 18:39:16ID:???フォーム自体は、あるボタンが押された時にjavascript(つまりはDHTML?)で表示させています
このjavascriptを外部の***.jsとした場合、HEAD部で***.jsのかわりに***.phpとする感じで
フォームの要素を動的にしたいんですが上手くいきません
行数が少なければhtml内部に書いて事なきを得るんですが・・・
どなたかヒントだけでいいのでお願いします(TT
0640nobodyさん
2006/04/20(木) 18:42:31ID:???それがAjax
0643nobodyさん
2006/04/20(木) 21:47:18ID:???<script src="PHPファイル"></script>
じゃなく
<?php require_once("PHPファイル"); ?>
にして、
外部PHPファイルで
<script>
JavaScriptコード
</script>
という内容にするのはダメ?
0644nobodyさん
2006/04/20(木) 22:16:17ID:ryIl/Q77MAMPというソフトを使ってローカル開発環境をつくりました。
MAMP付属のphpmyadminでdbを覗くと、
ちゃんと日本語表示できているんですが、
自前のスクリプトで呼び出すと文字化けします。
MAMPはutf8がいいみたいなんですけど、
自分のコードはeucです。
でもphpmyadminできちんと表示できたということは、
設定次第では自分のスクリプトでもちゃんと表示できるんでしょうか?
phpmyadminはlangageがutfで接続照会順序はujisでテーブルを作りました。
0647644
2006/04/20(木) 22:34:03ID:ryIl/Q77レスありがとうございます。
なんかだめっぽいです。
現状でもphpmyadminは文字化けしないので、
そういう設定ファイルの類ではないもので解決しそうなのですが
わからないです。
どうして同じブラウザから同じデータベースを読み込んで
片方は文字化けするんですかね?
phpmyadminのソースをみたらcharsetがutf8だったので
phpのスクリプトが書いてあるファイルのcharsetを
同じくutfにしたけどだめでした。
0648nobodyさん
2006/04/20(木) 22:42:01ID:???ひょっとしてデータベースのデータ以外にも何か日本語を表示させているのか?
それがソース上でEUCで書かれているならUTF-8にコード変換して出力させないとダメだ。
phpmyadminは出力内容を全部UTF-8にしてるから文字化けしない。
お前のは恐らくHTMLの中にUTF-8とEUCが混在してるんだろう。
ちなみに
> phpのスクリプトが書いてあるファイルのcharsetを
> 同じくutfにしたけどだめでした。
これは具体的にどうやったのかを説明しろ。ちゃんとheader()を使ったのか?
> そういう設定ファイルの類ではないもので解決しそうなのですが
設定ファイルで解決した方が簡単だろうと思ってそっちを提示しただけ。
header()で解決するならそれでもいいよ。
0650644
2006/04/20(木) 23:02:21ID:ryIl/Q77親切な回答ありがとうございます。
データベースのデータ以外にもphpのスクリプトと一緒にかかれた
html文と日本語を表示しています。
そのphpファイルはエディタでeucのファイルにして、
meta contentのcharsetもeucにしました。
phpmyadminの正しく日本語表示されてるページは
ブラウザのソースを見るってやったらmetaのcontentのcharsetがutfだったので、
自分のスクリプトもdbを読み込んでくるページで同じようにutf-8と書いたのですが
これは全然変換とかしてないんですよね?
その他文字コードを指定しなきゃいけないようなところは
みんなeucにしています。
自分のスクリプトは簡単な登録フォームみたいのですが、
最後にinsert intoというクエリを発行するところで
mysql_query($sql = set names ujis);
とやると、phpmyadminで見たときに文字化けしないで登録されます。
ぎゃくにこれをutf-8とかにすると、phpmyadmindでも文字化けします。
0651nobodyさん
2006/04/20(木) 23:12:09ID:???スクリプトのコードは別にEUCでも構わないが、
出力はせめて統一しろよ…
ややこしいというならスクリプトも全部UTF-8にしる!
0652nobodyさん
2006/04/20(木) 23:17:51ID:???> 自分のスクリプトもdbを読み込んでくるページで同じようにutf-8と書いたのですが
> これは全然変換とかしてないんですよね?
charsetの指定は「このページの文字コードはこれ」とブラウザに教えるものであって変換ではない。
HTMLの中身がEUCなのにUTF-8とか嘘ついたら化けるの当たり前だろう。
どうしてもソースをEUCにした上でソース中にHTMLも一緒に書きたいというなら
selectして取得してきたデータをmb_convert_encoding()でEUCに変換して出せ。
逆にソースコード中のHTML表示を1度変数に格納しといてUTF-8に変換する手もあるが面倒。
でも1番簡単な方法は、ソース中に直にHTMLを書くのをやめて、
UTF-8で書いたHTMLをrequireで読み込んで出力する方法だと思う。
0653644
2006/04/20(木) 23:19:54ID:ryIl/Q77どうもです。いま試してみます。
>651
わかってなくてスミマセン。
スクリプトのコードというのはエディタで指定するもので、
出力というのはcharset=utfとかそういうのですよね?
0654nobodyさん
2006/04/20(木) 23:25:46ID:6nVXOU85rawurlencode()は使わないほうが良いのでしょうか?
0655644
2006/04/20(木) 23:26:51ID:ryIl/Q77詳しい説明でたすかります。
自分のコードは簡単にいうとこうやって書いてます。
<head>
<meta http-equiv="content-type" content="text/html; charset=euc-jp">
<head>
<html>
<?php
$hoge = aaa;
?>
<p><?= $hoge ?></p>
</html>
もしくは表示したいhtml全体を$bodyとかに .= で詰め込んでって
最後にprint $bodyとかです。
これを書くときにエディタで設定(?)をeucにしてます。
0656nobodyさん
2006/04/20(木) 23:31:18ID:???> <p><?= mb_convert_encoding($hoge, "EUC-JP", "UTF-8") ?></p>
とかやれば直らないか?
0657nobodyさん
2006/04/20(木) 23:32:13ID:???> スクリプトのコードというのはエディタで指定するもので、
それはその通り。
> 出力というのはcharset=utfとかそういうのですよね?
違う。
0658nobodyさん
2006/04/20(木) 23:59:41ID:???内部コードeucでやるやつは時代遅れの要らない子
0659654
2006/04/21(金) 00:09:26ID:2Wlm0Z2o0660nobodyさん
2006/04/21(金) 00:10:04ID:xjsHzaEwこのエラーって、どういう意味?
0661名無し募集中。。。
2006/04/21(金) 00:16:31ID:IwWXiYO9@が入ってるあたりの記述が間違ってる
0662nobodyさん
2006/04/21(金) 00:19:16ID:xjsHzaEw@は、どこにもいれてないんだけど…
0663nobodyさん
2006/04/21(金) 00:20:19ID:???おいらは普段は全角空白なんて使わないから出した事がないけど。
0667654
2006/04/21(金) 00:28:40ID:2Wlm0Z2orawurlencode ("あいうえお")
でもこれってURLをエンコードする関数ですよね?
0668nobodyさん
2006/04/21(金) 00:31:00ID:???そもそもURL以外をURIエンコードしたいと思った理由はなに?その理由によるのでは。
目的が分からんのにダメとか言えんよ。
0669nobodyさん
2006/04/21(金) 00:33:03ID:???3→3
2→2
こんな感じの処理です。
0671654
2006/04/21(金) 00:38:17ID:2Wlm0Z2oフォームに入力された文字をPHPで簡単にエンコードしたいのです。
今までは専用のソフトウェアをインストールして行っていたのですが…
0673nobodyさん
2006/04/21(金) 01:10:44ID:???全部のページでsession_start();してるんですけど、
サーバの負荷たかいですか?
0675nobodyさん
2006/04/21(金) 01:51:43ID:MBv/PjUMスクリプトの書き方を教えて下さい。
0676644
2006/04/21(金) 02:41:38ID:j0KwlCv2>649
すごいです。set names ujisをdbから読んでくるページに書いたら
とりあえず全部ちゃんと表示されました。
>657
「出力」がやっぱりいまいちわかりません。
php.iniで設定するやつですか?
>658
色々調べたのですが、utf-8はもう実質標準ぽいですね。
ところで気になっていたのですが、
内部コードというのはどこで指定するのですか?
外部はcharset=Shift-jisとかいうやつですか?
0679nobodyさん
2006/04/21(金) 03:13:55ID:???http://***.com/hoge1/test.gif
http://***.com/hoge2/test.gif
別ディレクトリにある”test.gif”を、PHPのフォームからアップロードして一括更するような。
実験用にローカルで複数ディレクトリを作成しているのですが、1つを更新すると残りは
古いままのファイルが残り、常に最新状態に出来ないので、不便に感じています。
参考文献やサイトがあったら教えて下さい。(ググり方がわかりませんでした…
0680675
2006/04/21(金) 03:18:35ID:MBv/PjUMプログラムの流れでもいいのでよろしくお願いします。
0682nobodyさん
2006/04/21(金) 03:20:57ID:???その複数のtest.gifってのは全部同じ内容?
だったらPHPプログラムでいちいち何とかするより、
サーバー側で全部シンボリックリンクしてやるのが早い
0683679
2006/04/21(金) 03:28:34ID:???そうです。全く同じファイルです。ただ、内容が変わっていると言うだけで。
(タイトル画像を変更とか)
ジンボリックリンクですね。調べてみます。ありがとうございました。
0684nobodyさん
2006/04/21(金) 03:29:10ID:???POP3サーバーに接続
USER、PASSを順に送信
LISTを送信して一覧取得
受信メールがあればRETRを送信して読み込み
QUITを送信して接続終了
0685nobodyさん
2006/04/21(金) 03:41:54ID:???ttp://pear.php.net/manual/ja/package.networking.net-pop3.php
0686nobodyさん
2006/04/21(金) 04:24:33ID:???>>644はエンコードについては思いっきり浅い知識しかないみたいだ。
っていうか、まず「バイナリとは何か・テキストとは何か」って辺りから
説明しないと根本的に理解してくれないんじゃない?
0687644
2006/04/21(金) 11:31:57ID:5+Hakngk博識すぎて情けないです。
特に「出力は作るもの」という概念は目から鱗です。調べてみます。
いままでhtmlだけで何かを表示させていたときは、
とりあえず、meta content charset=を指定すれば文字化けしませんでした。
これを記述しなくても、IEなんかはかってにsjisにしていたようですし、
他のブラウザも文字判別(自動)みたいな設定があって、
特に意識する必要がなかったと思います。
phpを書くようになってから、ファイル自体にエディタで文字コードを
指定することがあると知って、何の為にやるのか??だったのですが
meta content charset=で指定したものと同じにしていました。
エディタによっては、これをバラバラにするとアラートが出ました。
問題はmysqlを絡めてからで、my.cnfやphp.ini、それから
phpmyadminなど、至るところに文字コードを指定してくれと言われて
正直目的が分からず閉口しています。
いろんなページをぐぐったのですが、
よく言及されているのはやはり「内部コード」「出力」です。
なにか体系的にまとめられているページなど
参考になりそうなものがあったら教えて頂きたいです。
まずはセオリー的に簡単に言っちゃえばここはこうするのがベターみたいな
ものがあるらな、併せて教えて頂けると助かります。
よろしくお願いします。
0688nobodyさん
2006/04/21(金) 11:32:38ID:5+Hakngk○薄識
すいません
0689nobodyさん
2006/04/21(金) 11:47:17ID:???頑張れば伸びるよ。少し体系的に学ぶといいよ。
0691nobodyさん
2006/04/21(金) 12:09:11ID:???あのさ、キミ深く勘違いしてるから念のため繰り返し言うけどさ、
このエンコードの件は、別にPHPとかMySQLとか関係ないからね。
HTMLだけだってソースのエンコードと出力指定(charset)は合わせなきゃいけないし。
キミはメールソフトはアウトルック・エクスプレスか?
だったら、受信したメールを「表示」→「エンコード」で手動で別のエンコードにしてみてごらんよ。
あるいは、Yahooのページのソース(EUCで書かれてる)をWin付属のメモ帳(SJIS専用)で開いてごらんよ。
そしたらうっすら何か分かってくるだろう。
簡単な「まとめページ」みたいなので一発で楽して覚えようとしないで、コツコツ勉強したまえ。
0692691
2006/04/21(金) 12:11:43ID:???>別にPHPとかMySQLとか関係ない
「関係ない」って書くとまた別の誤解をしそうなので、
「PHPとかMySQLとかのせいじゃない」に変更しようかな。
0693nobodyさん
2006/04/21(金) 12:27:22ID:???ここの人ならわかると思うのでちょっと付き合ってください。
BlogとかでRSSがついてるのありますよね?
あれってBlogの記事ををRSSに格納して、RSSからBlogの文章を出力しているのですか?
それともBlogの記事をhtml(php,cgi etc)とRSSに同時に出力しているのでしょうか?
RSS(Atom)系のスレあったら教えてください。
0694693
2006/04/21(金) 12:31:12ID:???簡潔に言うと、RSSはリーダーでも読めるようにオマケでついているのか、
システム全体に影響与えるような重役を担っているのかのどちらだろう?
ということです。
0695644
2006/04/21(金) 12:41:13ID:5+Hakngk恐縮です。がんばります。
>691
具体的な指示、参考になります。ありがとうございます。
ダウンロードしたヤフーのソースファイルをいじってみたのですが、
確かにエディタの機能として指定できる文字コードとhead部分に書く
charsetをバラバラにすると化けます。
コードを記述したときの指定と、表示するときの指定(headのcharset)は
合わせないとまずいという事ですね。
この感じでいくと、dbに登録される(された)ときの文字コード(mysqlの中の文字コード?)と僕が書いた、dbの内容を引っ張ってきて表示したい
ページのcharsetが違う事がいけない気がしますが
この考え方はあっていますでしょうか?
あと、687さんは出力指定(charset)とかかれていますが、
657の人は出力はcharsetではないと書いていて、謎です。
0696nobodyさん
2006/04/21(金) 12:41:28ID:???まずRSSが果たす役割を勉強した方がいいよ。
で、なぜブログにRSSが付いているのかを考える。
そこまでは完全にスレ違いなので、それ以降に考えが及んだときにまたお越し下さい。
0697644
2006/04/21(金) 13:51:20ID:5+Hakngkレンタルサーバのmysql(sjisで入ってる)をエクスポート
したのを自分のローカル環境(utf)にインポートする作業をやったんですけど、
どこをどうするとどうなるみたいのが見えてきました。
エクスポートでダウンロードしたファイルをエディタで開いたら
当然のようにsjisだったのでutfにして保存し直して
mysqlにutfでインポートしました。phpmyadminの表示も正常。
それを文字セットutfでcharsetもutfの状態で表示させました。
このままでは化けるんですが、これは環境依存ぽいのです。
最後はやはりset names utf8のクエリを打ちました。
どうもこのset namesは最強っぽい気がします。
取り急ぎ報告します。いままでアドバイス下さったかた、
最後までつきあって下さった691さん、ほんとうにありがとう。
0699nobodyさん
2006/04/21(金) 14:01:13ID:???設定できる・しなきゃならないのは、
・Mysql上で設定する、格納データの文字コード。
・PHPスクリプトを編集するエディター上で設定する、PHPスクリプトの文字コード
・PHPエンジンに教えてあげる、スクリプト本体の文字コード(PHP.iniでもスクリプト内でも指定可)
・PHPスクリプト内で指定する、Mysqlにアクセスする際の文字コード
・PHPスクリプト内で指定する、HTTP出力の際の文字コード
・ブラウザー・Webサーバーに教えてあげる、HTTPヘッダーで指定するHTMLの文字コード
・ブラウザーに教えるために出力するHTML内で指定する、HTMLの文字コード
少なくともこれらの区別・統一をきちんと図ってそれぞれ指定しなきゃダメだよ。
わかんなきゃ全部UTF-8に統一しとけ。
0700644
2006/04/21(金) 14:28:23ID:5+Hakngk素晴らしいです。感謝します。
・Mysql上で設定する、格納データの文字コード。
これはmy.iniで設定するものでしょうか?
[mysqld] default_character_set=utf8 とか。
これに従ってmysqlに登録されたデータの文字コードが決まるんですよね?
・PHPスクリプトを編集するエディター上で設定する、PHPスクリプトの文字コード
これは分かります。スクリプト自体の文字コードですね。
・PHPエンジンに教えてあげる、スクリプト本体の文字コード(PHP.iniでもスクリプト内でも指定可)
これは、,mb_convert_stringsの類ですかね。php.iniにもmb_string系の指定が結構ありますよね。
・PHPスクリプト内で指定する、Mysqlにアクセスする際の文字コード
これは、select文を打つときというか、コネクトするときに指定?
・PHPスクリプト内で指定する、HTTP出力の際の文字コード
これはechoとかするときにphpエンジンが何の文字コードを吐くかってことかな?
このへんはかなり分からないです。
・ブラウザー・Webサーバーに教えてあげる、HTTPヘッダーで指定するHTMLの文字コード
・ブラウザーに教えるために出力するHTML内で指定する、HTMLの文字コード
これは別物なんですか?特に後者はhtml文を書いているだけでも関係してきそうですが、意識したことがありません。
自分の理解はまだまだこの程度です。情けないです。
推測の範囲で申し訳ないのですが、結構省略しちゃうことがあると
思うんですけど、特別に指定しなかった場合は最終的にどこに依存するの
でしょうか?
0701nobodyさん
2006/04/21(金) 14:35:41ID:???0702nobodyさん
2006/04/21(金) 14:37:49ID:???0703644
2006/04/21(金) 14:52:20ID:5+Hakngkすいません。自分ばっかりかいて申し訳ないっす。
なんか極論的にはset names = utf8があればOKだしなければだめ的な
雰囲気になってきました。
MAMPだからかな。
0704639
2006/04/21(金) 16:02:39ID:???ををを・・・単純だけどこれで切り分け出来ますね、まったく思いつきませんでした(泣
これで逃げたいと思いますありがとうございました
ajaxも考えたんですが、この箇所だけにxml吐き出してブラウザ毎に接続アレコレしてっとなると・・・
ちょっと微妙な感じだったのでウダウダしてました。
いやその前に使ったことすら無いのですが
0707675
2006/04/21(金) 16:54:47ID:MBv/PjUM今少しずつ作っているのですが
POP3サーバに接続して、特定のメールアカウントの分だけ取得したい場合は
LISTにアカウントを書いておけば良いでしょうか?
0708nobodyさん
2006/04/21(金) 17:07:05ID:???0709675
2006/04/21(金) 17:27:25ID:MBv/PjUMあ・・・
0710nobodyさん
2006/04/21(金) 17:43:51ID:???とりあえずこの辺でも読むとか。
http://www.atmarkit.co.jp/fnetwork/rensai/netpro07/netpro01.html
0711nobodyさん
2006/04/21(金) 17:57:10ID:KwFOTHkhあ=> E3041
という結果が欲しいのですが
0712nobodyさん
2006/04/21(金) 19:10:47ID:???文字列を取得したいのか数値を取得したいのか知らないけど、bin2hex、ord、sprintfから好きなのえらんで。
0713nobodyさん
2006/04/21(金) 21:15:25ID:???aoki,32
takahashi,6013
…というような形式のファイルdata.txtがあり、
それをそれぞれの数値の部分でソートしたいのですが、どのような方法がありますでしょうか?
$lines = file('data.txt');
と配列にしましたが、その先が分かりません。
よろしくお願いします。
0714nobodyさん
2006/04/21(金) 21:20:33ID:q11WDkz80717nobodyさん
2006/04/21(金) 21:30:20ID:???カレーを作りたいんです。
お鍋に水を入れましたが、その先が判りません。
と言っている様な物だ。
もう少し自分で頑張れ。
ヒント:つ「配列廻してさらに配列生成」
0719nobodyさん
2006/04/21(金) 21:46:46ID:???array_multisortは配列の1次元目でしか(配列の関係を崩さず)ソートできない。
この場合には、usort関数を使う必要があるだろう。
0721nobodyさん
2006/04/21(金) 21:58:05ID:???…なんか釣られてる気がしないでもないが
foreach($lines as $line) {
list(, $key[]) = explode(",", $line);
}
array_multisort($key, $lines);
print_r($lines);
結果
Array
(
[0] => aoki,32
[1] => yamada,521
[2] => takahashi,6013
)
これでいいんだろ?あほですか?
0722nobodyさん
2006/04/21(金) 22:05:06ID:???>>714
無理。そんなのできたら携帯用あぷろだとか出来てる。
0723nobodyさん
2006/04/21(金) 22:16:31ID:???720 名前:nobodyさん[sage] 投稿日:2006/04/21(金) 21:57:38 ID:???
>>714
無理。そんなのできたら携帯用あぷろだとか出来てる。
0724nobodyさん
2006/04/21(金) 22:18:05ID:???722:nobodyさん :2006/04/21(金) 22:05:06 ID:??? [sage]
720 名前:nobodyさん[sage] 投稿日:2006/04/21(金) 21:57:38 ID:???
>>714
無理。そんなのできたら携帯用あぷろだとか出来てる。
0726nobodyさん
2006/04/21(金) 22:57:53ID:q11WDkz8あの・・・ありますけど・・・
0727nobodyさん
2006/04/21(金) 23:03:54ID:???試験的にセキュリティ無視でfwrite()とフォームを使ってスクリプトを書いたら***.phpで保存するといったプログラムを組んだのですが、
Warning: Unknown(): SAFE MODE Restriction in effect. The script whose gid is 1000 is not allowed to access
というエラーを吐いてくるのですが
どう対処したらよいでしょうか
0729727
2006/04/21(金) 23:07:44ID:???対処は無理なのか・・・・
0730nobodyさん
2006/04/21(金) 23:07:45ID:xjsHzaEwこれって、どういうエラー?
ちなみに221行目は、$tag .= "<form action=\"$_SERVER['PHP_SELF']\" method=\"post\">";
なんだけど・・・
0731nobodyさん
2006/04/21(金) 23:08:36ID:???どっちにしろ無駄だけど
0733nobodyさん
2006/04/22(土) 00:31:56ID:???具体的にはユーザー情報を格納したcookiesを発行なんかしちゃうと
ほかのサイトでも読み出しできてしまう
ということなんでしょうか?
でもそしたらどうやってログインして、複数のページを渡り歩けるようにすればいいんでしょうか・・・・
0734nobodyさん
2006/04/22(土) 00:49:23ID:???まず、最近話題のCSSXSSとCSSは全くの別物なので勘違いしないように。
XSSはphpでの出力時に、危険性のある全ての変数(ユーザ入力の値など)を全てhtmlspecialcharsでエスケープすれば防げる。
以上。
0735733
2006/04/22(土) 00:57:45ID:???ありがとうございます
クロスサイトスクリプティングに関しての質問でした
CSSとかくと混同するのでXSSと書くとか書かないとかまでググって来ました
タグを入れられるようにして拡張性をと考えていましたが、
便利の裏には様々な問題があるんですね・・・
0736nobodyさん
2006/04/22(土) 01:36:52ID:???0738nobodyさん
2006/04/22(土) 16:13:48ID:8MNYgK3yがあったとして、答えの二文字目までを表示させる事は可能でしょうか?
その場合どうすればよろしいでしょうか?
5/3の答えは1.666666・・・と続いていくので
2文字目、つまり 1.6まで表示させたいのです。
0741nobodyさん
2006/04/22(土) 17:19:10ID:he2KK3wFtest.phpにPOSTでデータを渡せますか?
(すれ違いでしたらすみません。。)
0742nobodyさん
2006/04/22(土) 17:20:36ID:kQFmUDLJ$birth=2006年4月22日
というデータが入っているとします。これを
$birth1=2006
$birth2=4
$birth3=22
という風に分解して各変数に入れるにはどうしたらいいのでしょうか?
0743nobodyさん
2006/04/22(土) 17:26:19ID:3kTedSI2これでエンコードしてみるものの、「"」「'」「\」といった記号をエンコードすると
それぞれ「%5c%22」(\")「%5c%27」(\')「%5c%5C」(\\)となってしまいます。
つまりエスケープされている訳ですが、こういった記号をエスケープさせないように
するにはどうしたら良いでしょうか?バックスラッシュ(\)までエンコードされて困っております。
宜しくお願いします。
0744nobodyさん
2006/04/22(土) 18:07:05ID:???$birth = "2006年4月22日";
$birth1 = mb_substr( $birth, 0, 4 );
$birth2 = mb_substr( $birth, 6, 1 );
$birth3 = mb_substr( $birth, 8, 2 );
// これで目的は達成できるが、月が2桁だったりするとだめぽ
$birth = "2006年4月22日";
list( $birth1, $birth2 ) = explode( '年', $birth );
list( $birth2, $birth3 ) = explode( '月', $birth2 );
list( $birth3, $birth4 ) = explode( '日', $birth3 );
// これだ!
0745742
2006/04/22(土) 18:24:54ID:???出来ました!こういう使い方があるんですね・・。
よくわかっていないので、関数を調べながら理解出来るようにします。
ありがとうございました。
0746743
2006/04/22(土) 18:27:38ID:3kTedSI2>>741
POSTデータを渡そうと思えば出来るけど面倒だと思われ。
クエリでいいじゃん。。
0747nobodyさん
2006/04/22(土) 18:32:48ID:???この画像って勝手に使っていいの?
0748nobodyさん
2006/04/22(土) 18:35:16ID:???今更だけど
$birth = '2006年4月22日';
preg_match('/^(\d+)年(\d+)月(\d+)日$/',$birth,$matches);
list($birth1,$birth2,$birth3) = array($matches[1],$matches[2],$matches[3]);
ってのもあり
0750741
2006/04/22(土) 19:05:13ID:he2KK3wF> POSTデータを渡そうと思えば出来るけど面倒だと思われ。
POSTで渡す方法を教えていただけないでしょうか?
#GETも考えたのですが、渡すデータが大きく無理でした。。
> クエリでいいじゃん。。
すみません、この場合のクエリがわかりません。。。
(データベースのクエリ?じゃないですよね。。)
0751nobodyさん
2006/04/22(土) 19:13:13ID:UThkpkc+0752nobodyさん
2006/04/22(土) 19:40:49ID:1mp5s2wDShift_JIS → %82%a0%82%a2%82%a4%82%a6%82%a8
EUC-JP → %a4%a2%a4%a4%a4%a6%a4%a8%a4%aa
UTF-8 → %e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a
これらのように、文字コードによって違いますよね?
この文字コードを指定してエンコーディングする方法は無いでしょうか?
0753nobodyさん
2006/04/22(土) 19:45:40ID:???送信者のメールアドレスは$fromの中に格納されます。
$write = false;で書き込みが中断されます。
//このアカウントからのみ受信
$carrier = array('docomo.ne.jp','ezweb.ne.jp','pdx.ne.jp');
//キャリア限定処理 追記部分
if(!in_array('$from',$carrier){
$write = false;
}
これだと駄目ぽみたいです。ご意見ください。
0754nobodyさん
2006/04/22(土) 20:05:35ID:???0755nobodyさん
2006/04/22(土) 20:42:50ID:???何がやりたくて何ができないの?
特に問題ないようだけど。
>>753
$host = substr(strstr($from, '@'), 1);
if(!in_array($host, $carrier){
・・・ってこと?
0757753
2006/04/22(土) 20:55:44ID:???記載ミスによるものかと何度も見ましたが違うようです。
あきらめて寝ます。おやすみなさい。
0758753
2006/04/22(土) 21:37:57ID:???一人でバカ騒ぎしてもうしわけないです。
0759752
2006/04/22(土) 22:02:27ID:1mp5s2wDじゃあ例えば、変数$strに $_POST["data"]の値を代入。
エンドユーザはそれぞれ「Shift_JIS」、「EUC-JP」、「UTF-8」といった文字コードを選択し、エンコードすることが出来ます。
出力結果はこれらの文字コードによって違います↓
Shift_JIS → %82%a0%82%a2%82%a4%82%a6%82%a8
EUC-JP → %a4%a2%a4%a4%a4%a6%a4%a8%a4%aa
UTF-8 → %e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a
mb_convert_encoding()で$_POST["data"]をエンコードするのかなー…?orz
何か良い方法を知っていたら教えてください。
0760752
2006/04/22(土) 22:08:05ID:1mp5s2wDこれです http://www.tagindex.com/tool/url.html
このように文字コードを選択リストから選択できるようになっているのですが、一体どのような仕組みなんでしょうか?
0761nobodyさん
2006/04/22(土) 23:16:50ID:???1.ます普通にPOSTやらなんやらで入力されてデータを受け取る(このときに文字コードは何でエンコードするかも!)
2.で受け取った値をエンコードする
3.エンコードしたデータを表示する
こうじゃない?
0762752
2006/04/22(土) 23:40:44ID:1mp5s2wD…うーん、(1)で文字コードを変換するための関数は一応調べはみたんだけど
mb_convert_encoding()でいいのかなぁ?
でもなんかちょっと違う気ガス。
0764761
2006/04/23(日) 02:17:22ID:???何で違うと思ったんだ?理由があるのか?
そもそもお前自分で俺の出した提案でコーディングしてみたのか?
答えだけ教えてもらおうと思うな馬鹿
ちなみにmb_convert_encoding()でOKだクソ野郎
デフォルトでは使えないようになってるけどな
そこまで教えられんよググレカレー
0765752
2006/04/23(日) 07:13:43ID:B54Vaitl(rawurlencode(mb_convert_encoding($_POST["data"], "Shift_JIS"))
とやっても「あいうえお」が「%3F%3F%3F%81%91%3F%3F%3F%3F%3F%81N」のようになってしまいます(「???¢?????¨」に文字化けする)
mb_convert_encoding()の使い方が間違ってるんだろうか
0766nobodyさん
2006/04/23(日) 07:35:05ID:???>「あいうえお」が「%3F%3F%3F%81%91%3F%3F%3F%3F%3F%81N」のようになってしまいます(「???¢?????¨」に文字化けする)
よく分からん。どっちになってるんだ?
0767nobodyさん
2006/04/23(日) 07:44:52ID:???まるごと書いてやるから、よく読めよ。
(サンプルなのでセキュリティは全く意識していないので注意)
<?php
header('Content-type: text/html; charset=Shift_JIS');
$encList = array('sjis', 'euc-jp', 'utf-8');
if ($_POST) {
$data = @$_POST['data']; // sjisで書いてあると想定
$enc = (int) @$_POST['enc'];
if (!isset($encList[$enc])) throw "(・∀・)";
echo rawurlencode(mb_convert_encoding($data, $encList[$enc], 'sjis'));
die();
}
?>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
<textarea name="data"></textarea>
<select name="enc">
<?php foreach ($encList as $enc => $encName) { ?>
<option value="<?php echo $enc ?>"><?php echo $encName ?>
<?php } ?>
</select>
</form>
0768767
2006/04/23(日) 07:50:14ID:???<input type="submit" />
0769nobodyさん
2006/04/23(日) 07:51:00ID:???0770nobodyさん
2006/04/23(日) 07:51:46ID:???0771767
2006/04/23(日) 07:54:35ID:???スマソ。不慣れだったので間違えた。
$enc_listとか$enc_nameって名前にするほうがpear標準だったっけ
0772nobodyさん
2006/04/23(日) 07:58:24ID:???知らない奴も居るだろうからまとめてみよう。勘違いがあったら教えてちょうだい
変数名:全て小文字。単語の区切りは「_」 例[ hoge_hoge ]
定数名:全て大文字 例[ HOGE ]
関数名:基本的に小文字だが、単語の区切りは大文字 例[ hogeHoge ]
0773nobodyさん
2006/04/23(日) 08:21:12ID:???pearのコーディング標準では変数名の単語の区切り方に関しては触れてないっぽいね。それ以外は>>772の通りだけど。
pearの他にもphpのコーディング規約みたいなのあったっけ?
0774nobodyさん
2006/04/23(日) 08:38:39ID:???クライスラージャパン中古車検索結果
http://www.chrysler.co.jp/servlet/chrysler.UCarSearchServlet?SV_ACTION=PAGE_CHANGE&PAGENO=1&SQL=WHERE@CLASSID@in@(@'PT'@)@AND@DELFLAG@=@'0'@&ORDER=3
WHERE CLASSID in ('PT') AND DELFLAG = '0'& ORDER = 3
(^ω^;)・・・
0776nobodyさん
2006/04/23(日) 09:25:42ID:???そうなの?ソースキボンヌ。
ちなみに「プログラマとしての」と名打つならJavaの反例出すけど、この変数名の規約はどうとらえられてるの?デファクトスタンダード的には。
http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html#367
CとかRubyとか関数名/メソッド名はアンダースコアで区切ることのほうが多いようだけど。
C++みたいにSTLの命名に従うかJava風にするかどっちつかずなのもあるし。
PHPの場合は標準関数の命名が割と無茶苦茶な前提の上だからどうしても規約みたいなのは必要でしょ。
一応公式に公開されてるのがpear標準くらいしかないから、それに従っておくのが妥当ってのはよく聞くけど。
0778nobodyさん
2006/04/23(日) 12:10:28ID:???ちゃんとSELECTしかできない権限とかにしてあるのかなぁ
これかなりヤバイ香りが漂ってるが。
おい>>774、七氏だろ お前SQLインジェクションやってみて報告しる!
0779nobodyさん
2006/04/23(日) 14:06:26ID:???0780752
2006/04/23(日) 14:56:53ID:B54Vaitlとってもありがとう。
書き方とか参考にします。
0781nobodyさん
2006/04/23(日) 15:05:20ID:???“->”なんですけど
これって
$A=1+2
$B=$A
この場合
$B=$A->1+2
こんな感じ?
0782nobodyさん
2006/04/23(日) 15:10:14ID:???-> はクラスを使った時に、クラスの変数や関数を使うためのもの。
クラスって何?って場合は、マニュアルを参照のこと。
0783nobodyさん
2006/04/23(日) 15:39:22ID:???ありがとうございます。
->なんですけど、これはPHP5〜から使えるのでしょうか?
それともPHP4の最新バージョンでも標準で使えるのでしょうか?
0784nobodyさん
2006/04/23(日) 16:22:55ID:???$this->testとかね
0786nobodyさん
2006/04/23(日) 17:30:05ID:???さっさと読むだけにして、青マンモスに進んでも良いでしょうか?
0787nobodyさん
2006/04/23(日) 17:44:42ID:???特定のディレクトリ/hogeから画像(.jpg)の名称を取得して、指定サイズで
一覧表示するという。
登録しているファイル名を出力するのはわかるのですが、画像のファイル名自体を
取得して〜というのは可能なのか?っと疑問に思いまして。(単に出来ないのですが・・・
0788nobodyさん
2006/04/23(日) 17:46:37ID:???0789nobodyさん
2006/04/23(日) 18:12:30ID:???Shift_JIS(sjis-win)
EUC-JP(eucjp-win)
iso-2022-jp(jis…だけど厳格にはすこしちがう)
utf-8
について、徹底的に学びましょう
0790787
2006/04/23(日) 18:18:13ID:???凄い!!出来ました!!所持リファレンスにも載っていない関数でしたが、
以下のようなソースで思い通りに出来ました。
<?php
$img_list=glob('./photo/*.jpg');
$count=count($img_list);
for($i=0;$i<$count;$i++){
print"<img src=\"$img_list[$i]\" width=100 height=80>";
}
?>
ありがとうございました。
0792nobodyさん
2006/04/23(日) 18:36:08ID:???0793nobodyさん
2006/04/23(日) 18:37:13ID:T/zlG2dE0794nobodyさん
2006/04/23(日) 18:46:06ID:m0Rs4MP50795nobodyさん
2006/04/23(日) 18:50:57ID:???0796nobodyさん
2006/04/23(日) 19:30:53ID:???0797nobodyさん
2006/04/23(日) 19:33:58ID:???URIって何の略??
0799nobodyさん
2006/04/23(日) 19:45:34ID:???http://www.kanzaki.com/docs/html/htminfo-uri.html#uri
0800nobodyさん
2006/04/23(日) 20:01:24ID:???以下のアドレスに示した自鯖においたのですが
http://no2.no-ip.info/up/upload.php
Undefined variable: 変数名
などがでまくってしまいます
http://no2.no-ip.info/up/1.txt
設置したあぷろだのソース
http://no2.no-ip.info/phpinfo.php
鯖のPHPの情報
エラーで検索したら
http://wonder.bms.ms/tower/bin/sugoiuploader/upload.php
気にせず使っている方もいるようです
翻訳したら未定義の変数だそうですが
$act=="envset"これはダメってことですか?
どうすれば動くようになるでしょうか
0801nobodyさん
2006/04/23(日) 20:06:08ID:???そんな変数ありませんよって言われてるだけじゃないの?
ってか、値が無いのに何で比較してるんだろ?
0802nobodyさん
2006/04/23(日) 20:14:46ID:???0804nobodyさん
2006/04/23(日) 20:25:22ID:???該当個所は多そう。
0805nobodyさん
2006/04/23(日) 20:38:32ID:???PHPのガン細胞 レッツ
0806nobodyさん
2006/04/23(日) 20:55:44ID:???0807nobodyさん
2006/04/23(日) 21:48:10ID:???変数名は間違い。
区切りに_は使わない。
例: anApple
定数名の区切りは「_」
詳しくはPearコーディングルール見ろ
あと関数名の最初は大文字
0808807
2006/04/23(日) 21:50:22ID:???変数名はコーディングルールになかったみたいだ
すまそ
0809nobodyさん
2006/04/23(日) 22:43:05ID:WZpCLvOAしたオブジェクトに要素をappendし、
saveXML
しても、何も取得できません。
DOMDocumentでは
euc-jpを使えないのでしょうか?
0810nobodyさん
2006/04/23(日) 23:54:16ID:???受信メールの取得と、こちらで用意したメッセージをそのアドレス宛に送信
これを自動化するのを実現したいのですが
ROMっていたら、同じような例が載っていたので読んでいましたが
その際にサーバの負荷は高くなってしまうのでしょうか?
CRONで一定時間で起動させる方法も良いかとは思いますが
スクリプトだけで実行するのは出来ないものでしょうか?
また、受信したメールアドレスをエンコードして
送信メールの本文にURLとして、hoge.com/test%40fuga.jpのように載せてみたいのですが
mb_encode_mimeheader()を使って良いしょうか。
良い方法をご存知の方、ご教授お願いします
0811nobodyさん
2006/04/24(月) 00:10:51ID:???環境によって方法はさまざまなわけで、
自分の環境さらさなきゃ明快な回答は得られまい。
mb_encode_mimeheader()はmimeheaderをencodeするのだ。判るかな?
0813nobodyさん
2006/04/24(月) 00:15:40ID:???勝手に人を名乗って書き込みするな
0814nobodyさん
2006/04/24(月) 00:18:23ID:MxIb/Ds6MySQL + PHP つかってます。
商品マスタと商品データの2つのテーブルがあって、双方にレコードを追加します。
$sql1='insert into 商品マスタ......';
mysql_query($sql1);
$sql2='insert into 商品データ....';
mysql_query($sql1);
としたいのですが、商品データに、追加したばかりの商品マスタのpkyをセットしたいのですが、
どうすればいいでしょう??双方のテーブルのpkyはauto increment です。
追加したばかりのレコードを取得して変数に入れるようなものや、
pkyだけ先に知るとか…そんなんあれば良いんですが
アドバイスもらえるとありがたいです。
0815nobodyさん
2006/04/24(月) 00:23:55ID:???0818nobodyさん
2006/04/24(月) 00:33:46ID:MxIb/Ds6助かったよ、ありがとう〜(;´д`)
0819nobodyさん
2006/04/24(月) 00:41:53ID:???お前は
http://pc8.2ch.net/test/read.cgi/db/1140154701/601
じゃ無いんだよな?無いんだよな?ん?無いよな?
0820nobodyさん
2006/04/24(月) 00:46:40ID:MxIb/Ds6とりあえずBカップです
0821nobodyさん
2006/04/24(月) 01:03:19ID:???0822nobodyさん
2006/04/24(月) 01:23:12ID:???0823nobodyさん
2006/04/24(月) 02:14:46ID:???質問1.
Windows上(apache)でPHP動かしたい場合は
あるいはプロバイダの鯖上でPHPを埋め込みたい場合、
Windows Binariesってのをダウソすればいいんですかね?
質問2.
Perlのが優れてる点って何?
0824nobodyさん
2006/04/24(月) 04:10:24ID:???質問1
・Windows上(apache)でPHP動かしたい場合
・プロバイダの鯖上でPHPを埋め込みたい場合
この2つを並列にしている時点で意味が分からない。帰れ。
質問2
Perl VS PHP
http://pc8.2ch.net/test/read.cgi/php/982591467/
0825nobodyさん
2006/04/24(月) 06:30:33ID:???マニュアルを読んだのですが何度読んでもよく理解できませんでした。
誰か分かりやすく解説してもらえませんか。
0826nobodyさん
2006/04/24(月) 06:50:12ID:???AAA.php
BBB.php
というファイルがあって
AAA.phpの処理後にBBB.phpをそのまま起動させたいときは
どう命令したらいいですか?
0828nobodyさん
2006/04/24(月) 08:29:46ID:???俺ならこうする
$birth = '2006年4月22日';
list($birth1,$birth2,$birth3) = sscanf($birth, "%d年%d月%d日");
0830nobodyさん
2006/04/24(月) 08:41:05ID:???0831nobodyさん
2006/04/24(月) 11:36:16ID:???されていないのか、って
どうやって調べるんですか?
0834nobodyさん
2006/04/24(月) 14:59:43ID:???SESSIONを使ってログインし、ログアウトする時はunset($_SESSION['name']);
などとしているのですが、たまにログアウトしきれない時があります。(ページが残る)
完全にセッションの内容を消去するには、どのように書けばいいのでしょうか?
0835nobodyさん
2006/04/24(月) 15:02:44ID:???ttp://jp.php.net/manual/ja/function.session-destroy.php
0837nobodyさん
2006/04/24(月) 15:17:53ID:???0838nobodyさん
2006/04/24(月) 16:08:50ID:???方法あるよ
右クリック→ソースの表示→全て選択→コピー
をしてPHPの変数(引数)に代入してファイル保存してFTPアップロード。
リアルタイムにどこかのサイトを読み込み表示したいのなら
上記の作業を素早くやり続ければOK
コツとしては、全て選択は[Ctrl+A]、コピー[Ctrl+C]、貼り付け[Ctrl+V] を駆使する
0839nobodyさん
2006/04/24(月) 16:50:25ID:???例 $hoge = `ls -l $dir`;
0843nobodyさん
2006/04/24(月) 18:41:32ID:???2006/04/24にアクセスしたら
<a href="http://hogehoge.com/20060424">本日の予定</a>
2006/04/25にアクセスしたら
<a href="http://hogehoge.com/20060425">本日の予定</a>
となるようにしたいのです。
どのように記述すればいいですか?
ちなみに鯖のPHPは4.3.2で動いています。
0844nobodyさん
2006/04/24(月) 18:53:53ID:???俺だったら、date()の結果をif()で比較演算子を用いて比較し、header()でLocationを
生成して飛ばすかな。
0845nobodyさん
2006/04/24(月) 18:56:52ID:???<a href="http://example.com/<?php echo date("Ymd") ?>">本日の予定</a>
0846nobodyさん
2006/04/24(月) 18:57:45ID:???>>843
<a href="http://example.com/<?php echo date("Ymd") ?>">本日の予定</a>
0847844
2006/04/24(月) 18:58:33ID:???それはユーザエージェントの動作を言ってるんじゃん…
それならdate()の結果をそのまま出力すればよかと。
0848nobodyさん
2006/04/24(月) 19:25:42ID:???phpスクリプトの書き始めに<?phpで始まり?>で書き終わるものだと思っていましたが
最近見たスクリプトで、<?phpでの書き出しはあったのに
?>が無いものがありました。
私には理解ができなかったのですが、正常に動作していましたし、
以上も発見されませんでした。
これは、どういうことなのでしょうか?
必ずしも<?phpで始まったものが、?>で終わる必要はないということなのでしょうか?
0849nobodyさん
2006/04/24(月) 19:26:35ID:???phpスクリプトの書き始めに<?phpで始まり?>で書き終わるものだと思っていましたが
最近見たスクリプトで、<?phpでの書き出しはあったのに
?>が無いものがありました。
私には理解ができなかったのですが、正常に動作していましたし、
以上も発見されませんでした。
これは、どういうことなのでしょうか?
必ずしも<?phpで始まったものが、?>で終わる必要はないということなのでしょうか?
0850nobodyさん
2006/04/24(月) 19:34:21ID:???マニュアルによると、
「ファイル終端におけるPHPブロックの終了タグはオプション(任意)です」ってことだ。
0851nobodyさん
2006/04/24(月) 19:45:00ID:???0852nobodyさん
2006/04/24(月) 20:38:52ID:???#!/usr/local/bin/php
header("Content-Type: text/html");
print <<<EOF
<!DOCTYPE 〜>
<html lang="ja">
EOF;
exit;
こう書くけどな。
0853nobodyさん
2006/04/24(月) 20:45:24ID:???それはそれでOKなんじゃないかなと思いますよ。
ただ、
<?php
〜
で終わっていて、何だかすっきりしないし
これでいいのか?!って思ったので聞いてみました。
0854nobodyさん
2006/04/24(月) 20:46:55ID:???そうなんですね!
親切に調べてくれてありがとうございました。
0855nobodyさん
2006/04/24(月) 23:38:00ID:UzNg/65tPHPで出てきた結果をHTMLとして出力できないでしょうか?
例えば
<?PHP $x=100; ?>
静的ブログが<?PHP echo $x ?>回ぐらいつくりたいよ〜<br>
みたいなPHPがあって、それを実行したら
HTMLファイルにそのまま
静的ブログが100回ぐらいつくりたいよ〜<br>
と出力したいのですが、むりでしょうか?
0857nobodyさん
2006/04/24(月) 23:58:28ID:???htmlファイルに書き込みたいのなら、
「出力制御関数」と「出力制御関数」あたりを使えば楽なんじゃないかな。
<?php ob_start(); ?>
<?PHP $x=100; ?>
静的ブログが<?PHP echo $x ?>回ぐらいつくりたいよ〜<br>
<?php
$a = ob_get_contents();
$fp = fopen("a.html","a");
fwrite($fp,$a);
fclose($fp);
?>
0858nobodyさん
2006/04/24(月) 23:59:47ID:UzNg/65t<br>に限ったことではないのですが
例えば「make.php」が
<?PHP $x=100; ?>
静的ブログが<?PHP echo $x ?>回ぐらいつくりたいよ〜<br>
で
「index.html」に出力を出して、内容が
静的ブログが100回ぐらいつくりたいよ〜<br>
見たいな感じにならないかなぁ〜って思って。
動的PHPから静的HTMLを作ってほしいんです。
0860nobodyさん
2006/04/25(火) 00:08:36ID:33LQjSvoありがとうございます!!
解決しました!!
0861nobodyさん
2006/04/25(火) 00:48:38ID:???エンコーディング(文字コード?)の種類を教えてもらえませんか?
0862nobodyさん
2006/04/25(火) 00:54:16ID:???たしか、EUCではなかった様な気がするゾナもし
0863nobodyさん
2006/04/25(火) 01:28:14ID:???だめだったの?
0864nobodyさん
2006/04/25(火) 01:32:56ID:???array(1, 2, 3, 4);
それらを一つずつ足していきたいのですが、方法が分かりません。
やりたいことは1+2+3+4ということです。
どういう関数を使えばいいか教えて下さい。
0865nobodyさん
2006/04/25(火) 01:49:30ID:???お前・・・それは関数どうの以前の問題ジャマイカ・・・?
とりあえず配列の要素数(上の例では4つだな)を何とか取得する。
で、配列の一番左、もしくは右から順に足していくんだ!
0866nobodyさん
2006/04/25(火) 02:23:53ID:???$sum = 0;
foreach ($array as $num) $sum += $num;
0867nobodyさん
2006/04/25(火) 03:54:07ID:???$sum = array_sum($array);
0869nobodyさん
2006/04/25(火) 07:47:48ID:???0872nobodyさん
2006/04/25(火) 15:43:13ID:???>>870
どのような関数でどんな流れでするのでしょうか?
>>871
受信側なので、それはちょっと…
0873nobodyさん
2006/04/25(火) 15:45:37ID:???pearつかってRSSのURL GETして、XMLパースして、
時間チェックして、前回のチェック時時より新しければ
必要に応じたメールを送信。
0874nobodyさん
2006/04/25(火) 15:52:13ID:???http://pear.php.net/manual/ja/package.xml.xml-rss.php
http://pear.php.net/manual/ja/package.mail.mail.php
前回チェック時の更新時刻の保存は
DBなりファイルに保存するなり、決めうちでチェック間隔以内
にするなりすきにしれ。
0875nobodyさん
2006/04/25(火) 19:46:57ID:???0876nobodyさん
2006/04/25(火) 20:11:19ID:YuLHBMcsを置換したく、
$file = str_replace(" ","", $file);
でやってみたのですがうまくいきません、
ほかに方法ありませんか?
0878nobodyさん
2006/04/25(火) 20:27:12ID:???0879nobodyさん
2006/04/25(火) 20:29:08ID:???tryするのか?もまえらは
ちなみにphp4のひとは無視してくだちい。
0882あぼーん
NGNG0883ぬる
2006/04/25(火) 22:37:49ID:???とアクセスしたとき、
http://example.com/ に相当する部分の文字列を取得したいけど
どうしたらいい?
PHP_SELF や REQUEST_URI や SCRIPT_NAME だと
そこが丸々削られてて、途方にくれた
0884nobodyさん
2006/04/25(火) 22:38:25ID:S1Of8zqn0885nobodyさん
2006/04/25(火) 22:50:19ID:1JYLmc+t0886nobodyさん
2006/04/25(火) 22:52:58ID:???ぐらいしかひとまず思いつかん
0887nobodyさん
2006/04/26(水) 00:07:22ID:???ありがとうございます。とりあえず更新しているかどうかのチェックと、XML_RSSの使い方はわかったんですが、
いちいちページにアクセスしないでスクリプトを開始させる方法はありませんかね?
毎回アクセスするならあまり意味が…
0888nobodyさん
2006/04/26(水) 00:51:31ID:???前はcron で wgetするなんて事もしていたな・・
0890nobodyさん
2006/04/26(水) 01:44:28ID:???「検索: 17件中1〜10件を表示」
の「17」だけを取りたいんですが何てかけばおkなの?
0892nobodyさん
2006/04/26(水) 01:58:58ID:???0893nobodyさん
2006/04/26(水) 02:58:36ID:???wget http://example.com/hoge.php
とか
php hoge.php
って事でしょ
0894nobodyさん
2006/04/26(水) 03:39:46ID:???そりゃcronって時間指定の他はコマンドラインでプログラム実行するのと
そのまま同じに書くだけだもの。
そんなのに具体的解説を求めるのは
「先生!マウスでクリックって何のことか分かりません!」
と言うのと同じくらい厨な話かと。
0895nobodyさん
2006/04/26(水) 03:58:34ID:???0896612
2006/04/26(水) 04:07:26ID:gSi6TGNs例えば
<?php
phpinfo();
?>
というスクリプトがあるとして、このスクリプトに直接手を加えて1分ごとに1回起動させるためには
どう手を加えたら良いのでしょうか?
0897nobodyさん
2006/04/26(水) 04:32:18ID:???cron等を使ったほうがいいと思う
スクリプト動きっぱなしは負荷高そうじゃない?
0900nobodyさん
2006/04/26(水) 09:56:46ID:???お前らWindows環境でタスクスケジューラでもつかったらどうだ。
0902nobodyさん
2006/04/26(水) 10:04:48ID:???0904nobodyさん
2006/04/26(水) 11:29:30ID:???っていうのがしたいのですが、IFで出来ると思うのですが、どうもうまくいきません・・。
文字の比較?かなにかだと思うのですが・・。アドバイス願います。
0906nobodyさん
2006/04/26(水) 11:39:07ID:???0907904
2006/04/26(水) 11:54:02ID:???これで出来ました!ありがとうございました。
<?
if(strpos($hoge,"test")){
echo"これはテストです";
}else{
echo"これはテストではありません";
}
?>
0910nobodyさん
2006/04/26(水) 12:47:45ID:???注意: もし特定の haystack に needle があるかどうかを調べるだけの場合、 より早く少ないメモリを使用する strpos() を代わりに使用してください。
>>907
if(strpos($hoge,"test") !== false)
0911nobodyさん
2006/04/26(水) 13:30:05ID:???0913nobodyさん
2006/04/26(水) 16:46:41ID:???if(strpos($hoge,"test") !== false)をつかったほうがよさそうだな
正規表現なくてもpreg_match使ってた
0914nobodyさん
2006/04/26(水) 17:02:23ID:???0916nobodyさん
2006/04/26(水) 18:48:39ID:???$a["nurupo"]=4;
とする場合は分かったんですが
$b="nurupo";
$a[$b]=4;
とするとエラーになるんですが、どうやったら使えますか?
ほんとにしょうもない質問ですが、連想配列でぐぐっても、答えになるサイトが見つからなかったんで
よろしくおねがいします。
0917nobodyさん
2006/04/26(水) 19:00:35ID:gSi6TGNs$handle = @fopen("test.txt", "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle);
echo $buffer;
}
fclose($handle);
をどうすれば良いですか?
0919nobodyさん
2006/04/26(水) 19:54:43ID:gSi6TGNsあぼーん
ですよ
0920nobodyさん
2006/04/26(水) 19:57:49ID:???実際にエラーになってるんですが、何ですかコレ。
0921nobodyさん
2006/04/26(水) 20:00:57ID:???0923nobodyさん
2006/04/26(水) 20:14:51ID:???$handle = @fopen("test.txt", "r");
if ($handle) {
//while (!feof($handle)) {
$buffer = fgets($handle);
echo $buffer;
//}
fclose($handle);
}
0924nobodyさん
2006/04/26(水) 20:57:08ID:???0925nobodyさん
2006/04/26(水) 20:58:59ID:gSi6TGNsありがとうございました。やってみます!
0927nobodyさん
2006/04/26(水) 21:33:56ID:???<? include=("/home/hoge/hoge.php"); ?>
としたとき、hoge.php内で
[/home/hoge/test.php]
もしくは、test.phpのアドレスを
取得するにはどうすれば良いでしょうか。
よろしくお願いします。
0928nobodyさん
2006/04/26(水) 21:58:41ID:???0930nobodyさん
2006/04/26(水) 22:52:57ID:bUyltefP0931nobodyさん
2006/04/26(水) 23:30:55ID:???俺はよく見るけど参考になるかな
0932nobodyさん
2006/04/26(水) 23:34:46ID:???0933nobodyさん
2006/04/26(水) 23:44:42ID:???0934nobodyさん
2006/04/26(水) 23:44:56ID:???filemtimeってローカルのファイルのものしか取得できないんですか?URLをぶち込んでもエラーになるんですが・・・
0935nobodyさん
2006/04/26(水) 23:48:40ID:???0936nobodyさん
2006/04/26(水) 23:59:40ID:???0940nobodyさん
2006/04/27(木) 01:36:21ID:???$aa[] = "http;//*****";
$aa[] = "http;//****";
ってな感じで配列に組み込まれたサイトが更新したかどうかを次々確認するにはどうすればいいでしょうか?
このスレ読んでcron使って定期的に走らせる方法はわかりましたが、
配列をまだよく理解できてないせいかスクリプト自体がうまくいきません。
データベースは無しの方向で・・・
0941nobodyさん
2006/04/27(木) 01:41:09ID:???そんな知識レベルで外部アクセスするプログラムは書いちゃダメ。
十中八九、その更新をチェックされるサイトに迷惑がかかる。
(実際、あちこちでその手の素人作成ロボットが多大な迷惑をかけてる)
その種のWindowsアプリはWWWCとか色々あるんだからそれ使いなさい。
みんな、相手先に迷惑をかけないように色々考えて作ってるんだから。
素人が気軽に考えてそんなツール作っちゃダメ。
0943nobodyさん
2006/04/27(木) 06:07:58ID:???まずは、何をもって「サイトが更新」されているかを判断するか
考えてる?それによってどうすべきかが変わると思うけどね。
0944nobodyさん
2006/04/27(木) 08:22:25ID:???304が帰ってきたら更新なし、それい以外だと更新あり
だから相手鯖のヘッダだけで更新したかしてないかわかるから
データまでは取得しなくていい
といってもPHPでheader関数使ってるとこじゃ使えなさそうだけど
0945nobodyさん
2006/04/27(木) 09:35:09ID:???>>944
「前回の更新時間」は複数サイトチェックするならデータベース使うしかない?
ファイルをそれぞれ作るわけにもいかないし
0946nobodyさん
2006/04/27(木) 10:23:10ID:???cronが1時間周期なら、1時間(5分)以内に更新したサイト
というやり方もあり。信頼性はかわるが実用レベルでは
何とでもなるだろ。
0948944
2006/04/27(木) 12:37:30ID:???946がいってるように一定周期ならその間に更新があるか判定すればいいけど
不定期ならDBとかに保存しないと駄目と思う
>>947
画像だけを更新チェックってこと?
なら>>944のIf-Modified-Sinceでできるよ
0949944
2006/04/27(木) 12:39:46ID:???すべてのページ内リンクを解析してチェックしないとできないと思う
0950nobodyさん
2006/04/27(木) 14:54:14ID:???WWWCとか見てみれば分かるが、
HEADで更新日時を確認するのと、
ページのサイズ変化を確認するのと、
GETでページ全体を比較するのと、
HTMLタグを除去した状態で内容を比較するのと、
正規表現で特定の範囲だけ比較するのと、
という感じで色々サイトごとに設定できるようになってて
それだけ手を考えないとちゃんと更新をチェックできない場合があるね。
広告挿入の処理に引っかかって軒並み更新にされちゃうサイトとかあったり。
0952nobodyさん
2006/04/27(木) 15:43:39ID:???tarで固めてMD5ハッシュ値比較保存
ってのはどうだ?
HTMLの構文解析やらアドタグの排除やら面倒な事山積みだけど。
0953nobodyさん
2006/04/27(木) 15:52:56ID:???1サイトのチェックだけで10分とかかかりそうだw
そこを短時間で一気に行くとサイト側が負荷かかりすぎで死ぬし。
こういう処理で、平気で10とか並列でアクセスかけるバカが多くて困る。
0954nobodyさん
2006/04/27(木) 16:01:46ID:???if(今の時間>$last>今の時間-3600)
じゃだめなの?
0956nobodyさん
2006/04/27(木) 16:43:29ID:???setcookie("namecookie", $name, time()+3600*24*30);
とし、
html側は<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" size="10" value="<?php echo $_COOKIE["namecookie"]; ?>">
<input type="submit" value="test">
</form>
といった感じにして、cookieの挙動を見てみたのですが、
1.名前を入れて送信→名前はセットされない→2.別の名前を入れて送信→
1回目の名前がセットされる→3.そのまま(1回目の名前がセットされているので)送信→
2回目の名前がセットされる→4.そのまま(2回目の名前がセットされているので)送信→
1回目の名前がセットされる・・・以後ループ。
といった感じになります。
cookieを使うのははじめてなのですが、これは正常な動作なのでしょうか?
1回目を送信した時点で、1回目の名前がセットされている状態がいいのですが、
何か方法はありませんでしょうか?
0957956
2006/04/27(木) 16:44:38ID:???<input type="text" size="10" value="<?php echo $_COOKIE["namecookie"]; ?>">
↓
<input type="text" size="10" name="name" value="<?php echo $_COOKIE["namecookie"]; ?>">
0958nobodyさん
2006/04/27(木) 17:17:56ID:???$name = $_POST['name'];
if (empty($_COOKIE['namecookie'])) {
$_COOKIE['namecookie'] = $name;
}
0959nobodyさん
2006/04/27(木) 17:33:32ID:???それで正常。
1回目を入れたい場合は、「クッキーがあればそれを表示。無ければPOSTの内容を表示」
という風に条件をつけて表示させるか、PHPで表示せずにJavaScriptで表示させる。
0960nobodyさん
2006/04/27(木) 17:39:09ID:???そりゃサーバがクッキー受け取るのは、アクセス時だし、
ブラウザーがクッキー保存するのはアクセスした後なんだから当たり前。
0961956
2006/04/27(木) 17:57:14ID:???皆さんレスどうもありがとうございました。
自分の書きかたが悪いのかな?と思いまして。
正常ということなら一安心です。
さっそく958さんのコードを使用させていただきます。
0962nobodyさん
2006/04/27(木) 19:42:55ID:???fopen("log", "a");だと最新ログが下にきてしまいます。
PHPマニュアルのfopen()で使用可能な modeのリストを見ましたが、
a以外にログに簡単に書き込めそうなのはありませんでした。
aとwを足して2でわったような、
書き出し用のみでオープン。ファイルポインタをファイルの先頭に置く。
ファイルサイズは0にしない。
といったことはできませんか?
rsortを使えば、表示の時には最新のが上にきましたが、
ログに書き込む時点で、最新のをファイルの先頭に書き込むようなことがしたいです。
どうかアドバイスお願いします。
0963nobodyさん
2006/04/27(木) 19:50:13ID:???0965962
2006/04/27(木) 20:00:22ID:???r+でやってみたんですが、なぜか90バイトぐらいしかログが残らなくて・・・
自分で関数作るのがベストなんでしょうがそんな力もなくorz
0966nobodyさん
2006/04/27(木) 20:02:44ID:???以前のデータは破壊されますがなにか?
0967nobodyさん
2006/04/27(木) 20:12:57ID:???0968nobodyさん
2006/04/27(木) 20:32:05ID:???$data = file_get_contents("ファイル名");
$data = "書き込みたい文字\n".$data;
$fp = fopen("ファイル名", 'w');
fwrite($fp, $data);
fclose($fp);
こんなんじゃだめ?
0969962
2006/04/27(木) 20:42:29ID:???調べてやってみましたが、ログが全部Arrayに…
やり方が悪かったんでしょうか。
>>966
そうですよね…
>>967
チャットのサンプルをいじってまして、
表示部分がJavaScriptで行われているようで、
JavaScript側でソートすればいいのでしょうが、
触ったことがなく、PHP側でどうにかしようと思った次第です。
>>968
試してみたところ、見事最新ログが上にきました。
どうもありがとうございます。
しかし仕組みがわからない…もっと勉強してまいります。
0970nobodyさん
2006/04/27(木) 20:46:07ID:???ファイルの先頭に追記(挿入)する事は不可能
それを踏まえてアルゴリズムを考えるべし
>>964に1票
>>968
一応flockも考慮していただけると・・・
0971nobodyさん
2006/04/27(木) 20:47:17ID:???$log = array_reverse($log);
これだけでファイルが逆さに表示できる。
0972962
2006/04/27(木) 20:58:29ID:???勉強になります。どうもありがとうございます。
勉強不足なのは痛感しました。
アルゴリズムの勉強もしたいと思います。
0973nobodyさん
2006/04/27(木) 21:14:29ID:???0974nobodyさん
2006/04/27(木) 21:16:51ID:???0975nobodyさん
2006/04/27(木) 21:17:42ID:???0977975
2006/04/27(木) 21:26:30ID:???12345
abcdef
klmnop
と記述されたテキストファイルがあったとして、それぞれの値をひっぱってくるにはどうしたらいいんでしょうか?
0978nobodyさん
2006/04/27(木) 21:34:15ID:???$data = file('テキストファイル');
print $data[0]; //12345
print $data[1]; //abcdef
print $data[2]; //klmnop
0979nobodyさん
2006/04/27(木) 21:34:27ID:???広告とかもないし、サイズ比較だけでいい気がするけど
0981nobodyさん
2006/04/27(木) 21:55:12ID:???0983nobodyさん
2006/04/27(木) 22:04:57ID:???0984nobodyさん
2006/04/27(木) 22:22:29ID:???0985nobodyさん
2006/04/27(木) 22:32:07ID:+MA+gFEMマニュアルに
「これらの定数は、この拡張モジュールで定義されており、この拡張モジュールがPHP内部にコンパイルされているか実行時に動的にロードされるかのどちらかの場合のみ使用可能です。」
と書いてあったのですが、これを実行時に動的に使うには、どのような設定が必要なのでしょうか?
例えば、同じディレクトリにphp.iniファイルを作って、その中で動作指定をするのですか?
全く分からなくてテンパってます。どうか教えてください!!
0988nobodyさん
2006/04/28(金) 00:23:21ID:K94bFNHB僕の書いたphpのシステムのurlで、たとえば
hogehoge.com/list.php?id=3
みたいのがあるんですけど、
故意に?以降の部分を消して表示させると、
エラーコードがいっぱい吐き出されます。
同じように世の中の有名なサイトで同じようにパラメータの部分を
消して表示させた場合は、エラーコードとかは出ません。
こういう状況を回避するための一般的な対策としては
どのようなものがあるのでしょうか?
0989nobodyさん
2006/04/28(金) 00:26:20ID:???0990nobodyさん
2006/04/28(金) 01:07:09ID:???if($_SERVER['HTTP_QUERY_STRING'] == '') exit("<html>OK</html>");
0991nobodyさん
2006/04/28(金) 01:28:29ID:Na6jyHe3>987
ありがとうございました!
自分なりに調べて使えるようになりたいと思います。
あと、.htaccessのように任意のディレクトリにファイルとして配置できて
CRONのような定期実行の命令をしたいのですが、
何か方法をご存知ではありませんか?
出来るだけ人に頼らず自分で調べて作りたいのですが、
マニュアルを見ても、ググっても分からなかったので、ヒントだけ貰えませんでしょうか?
お願いします!
0992nobodyさん
2006/04/28(金) 01:38:45ID:???>あと、.htaccessのように任意のディレクトリにファイルとして配置できて
>CRONのような定期実行の命令をしたいのですが、
何をしたいのかさっぱり
0993nobodyさん
2006/04/28(金) 03:00:51ID:???0994nobodyさん
2006/04/28(金) 04:01:08ID:Na6jyHe3CRONを使いたいのですが、レンサバの仕様で使えないのです。
定期実行をしたいのですが、もともと無いのなら、作れないだろうか。
というのが、思い立った理由です。
分かりにくいですかね?
>993
本当は、CRONを使いたいのです。
ただ前述の通りの理由により、CRONが使えないので、
CRONのような制御が出来るものを.htaccessのようにディレクトリに配置するような形で
使えたらいいなと思い、ここに書き込みました。
何か、方法を知ってある方がいらっしゃったら、ご教授願いたいです。
0995nobodyさん
2006/04/28(金) 04:06:21ID:???鯖選びでcronが使えるかどうかなんて見ない。
cronが使える安鯖か自分のPCにあるブツ(cronでもタスクスケジューラでも)から
wgetでも叩かせれば、定期的にスクリプトが走るよ。
0996nobodyさん
2006/04/28(金) 04:14:55ID:ICV8N6RN【PHP】下らねぇ質問はここに書き込みやがれpart20
http://pc8.2ch.net/test/read.cgi/php/1146165153/
0999nobodyさん
2006/04/28(金) 05:16:55ID:???1000nobodyさん
2006/04/28(金) 05:18:35ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。