【PHP】下らねぇ質問はここに書き込みやがれ 29
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2006/09/17(日) 04:26:39ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・質問者は必ずIDを表示させてください。(メール欄に何も記述しないでください。)
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
(逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
(荒らし、煽りは除く。逆に煽られたときも、無闇に反論せずスルーすべし)
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0002nobodyさん
2006/09/17(日) 04:26:57ID:???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/
【PHP】下らねぇ質問はここに書き込みやがれpart10
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/
0003nobodyさん
2006/09/17(日) 04:27:25ID:???http://pc8.2ch.net/test/read.cgi/php/1139146534/
【PHP】下らねぇ質問はここに書き込みやがれpart18
http://pc8.2ch.net/test/read.cgi/php/1142417901/
【PHP】下らねぇ質問はここに書き込みやがれ Part19
http://pc8.2ch.net/test/read.cgi/php/1144513878/
【PHP】下らねぇ質問はここに書き込みやがれpart20
http://pc8.2ch.net/test/read.cgi/php/1146165153/
【PHP】下らねぇ質問はここに書き込みやがれpart21
http://pc8.2ch.net/test/read.cgi/php/1148389517/
【PHP】下らねぇ質問はここに書き込みやがれ 22
http://pc8.2ch.net/test/read.cgi/php/1149710968/
【PHP】下らねぇ質問はここに書き込みやがれ 23
http://pc8.2ch.net/test/read.cgi/php/1150995543/
【PHP】下らねぇ質問はここに書き込みやがれ 24
http://pc8.2ch.net/test/read.cgi/php/1152251693/
【PHP】下らねぇ質問はここに書き込みやがれ 25
http://pc8.2ch.net/test/read.cgi/php/1153652403/
【PHP】下らねぇ質問はここに書き込みやがれ 26
http://pc8.2ch.net/test/read.cgi/php/1154923910/
【PHP】下らねぇ質問はここに書き込みやがれ 27
http://pc8.2ch.net/test/read.cgi/php/1156262092/
【PHP】下らねぇ質問はここに書き込みやがれ 28
http://pc8.2ch.net/test/read.cgi/php/1157284868/
0004nobodyさん
2006/09/17(日) 04:27:41ID:???■本家マニュアル http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル http://pear.php.net/manual/ja/
■メーリングリスト http://ns1.php.gr.jp/mailman/listinfo/
(以下英語)
■Smarty http://smarty.php.net/
■Zend本家 http://www.zend.com/
■Zend Framework http://framework.zend.com/
■php | architect http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■ZFマニュアル http://framework.zend.com/manual/en/
■PECL本家(英語) http://pecl.php.net/
まだ英語しかないマニュアルも後々/manual/en/を/manual/ja/に変えてみたら日本語があるかもしれません。
0005nobodyさん
2006/09/17(日) 04:28:13ID:???PHP関連の書籍 第3版
http://pc8.2ch.net/test/read.cgi/php/1150558685/
PHP関連サイト
http://pc8.2ch.net/test/read.cgi/php/982694601/
【PHP】PEAR Part2
http://pc8.2ch.net/test/read.cgi/php/1122899232/
【Smarty】PHPのテンプレートエンジン【Flexy】
http://pc8.2ch.net/test/read.cgi/php/1118799352/
[PHP]フレームワークについて語るスレ4[総合]
http://pc8.2ch.net/test/read.cgi/php/1151706907/
Webでオブジェクト指向プログラミング
http://pc8.2ch.net/test/read.cgi/php/1133489897/
【PHP】セッションについて語ろう!【PHP】
http://pc8.2ch.net/test/read.cgi/php/1064399467/
【ZendStudio】PHP統合開発環境 Part2【Eclipse】
http://pc8.2ch.net/test/read.cgi/php/1154082822/
最強のPHPエディタはなに?
http://pc8.2ch.net/test/read.cgi/php/1133785416/
[PHP-users MLヲチ9]丸投げした覚えは全くありません
http://pc8.2ch.net/test/read.cgi/php/1143731062/
中学生がPHPを習得するスレ
http://pc8.2ch.net/test/read.cgi/php/1139746974/
【PHP】Lvうpしたいので宿題ください
http://pc8.2ch.net/test/read.cgi/php/1147830986/
0006nobodyさん
2006/09/17(日) 04:33:11ID:???ヽ/:.:.:/:.:.:/:.:.:.:.:.:.:.:.:.:.:/:./:/:.:.:.:.!ヽ ヽlヽ
/:.:.:.:|:.:./:.:.:.:.:.:.:.:.:.:.:///:.:l:.:.:.:|:.:ヽ / l
. |:.:.:.:..|ィ‐_-_、_. -///;ハ:.:|:.:.:.:!:.:.:.V l
. |l:.:.:.:.N r‐ァ-、` ̄ メ/‐-ヽ|、:.:|:.:.:.:| _」
ハ:.:.:.:l 弋:ソ /´ ィ=‐、、\/:.:.:./-r ´
/:.li \_\ , 弋:ソ '´/:.:.:./:.:.:.l
. __ /:.:.li il、 , -- ‐、 _/:.:./:.:.:.:.:.!
/´‐-、ト,:./:li ※ il:.:\ {__ } ア ̄/l:.:.:.:.:.:l:.l 下らねぇ質問はここに書き込みやがれ、ちび。
. / ‐-〈//li il:.:.:.:.:.> 二ニ´ィ:li ※〃:.l:.:.:.:.:.:.l:l
l `ニ7'´: :.li il ̄ ̄ _\ノヽ._l:li il-lユ‐_-、:.:!l
r‐l |フ!: : にli il〃 ̄ ィトK\ li ilこ|ー‐ |:.:.:.l
|〉l イ _): :.にli※/ \///)l:l l:l ヽli. ilこ!|二 /:.:.:.:.:!
/>にLイ<:.:にli /´ //(!|:| L!==li※!こl./ /!:.:.:.:.:.:.l
丁L__|ーLノ:.:.:.にX // )!|:| ハ ilこ! l /ヽl:.:.:.:.:.:.:l
0007nobodyさん
2006/09/17(日) 05:03:55ID:WkDxxiWw16進数で8桁以上になると、
PHP_MAX_INTを超えてしまい、
正確な余が算出できなくなります。
大きな16進数をn進数にするには
どうすればいいのでしょうか?
0008nobodyさん
2006/09/17(日) 05:37:11ID:???使ったことないけどpearのMath_Basex?
http://pear.php.net/package/Math_Basex
とにかくintの範囲を超える数値演算は、string(もしくは配列?)を使うしかないよ。
0009nobodyさん
2006/09/17(日) 05:43:36ID:???http://pc8.2ch.net/test/read.cgi/php/1140786348
0012えがみボンバイエイ
2006/09/17(日) 07:12:52ID:???require_once("XML/RSS.php");
$rss=new XML_RSS("http://manabekawori.cocolog-nifty.com/blog/index.rdf");
$rss->parse();
?>
<h2><?php print(mb_convert_encoding( $rss->channels['title'],"EUC-JP","auto")); ?>
</h2>
<?php foreach($rss->items as $item){ ?>
<?php print(date(($item['dc:date']))) ?> <a href="<?php print($item['link']); ?>" target="_blank">
<?php print(mb_convert_encoding($item['title'],"EUC-JP","auto")); ?>
</a><br>
<?php }
?>
と書くと
2006-09-17JST00:41:11+09:00 夫婦別姓制度はまだなのか
2006-09-13JST22:46:23+09:00 おやすみ投稿か
2006-09-08JST00:08:49+09:00 カッチカチやぞ
2006-08-31JST22:40:11+09:00 エロかわ…?
言う風に表示されるのですが、
JST00:41:11+09:00の部分を削りたいのですが、
どうすれば宜しいか分かる方いらっしゃいましたら宜しければ教えていただけると幸いです。
0014nobodyさん
2006/09/17(日) 07:26:38ID:???001512
2006/09/17(日) 07:40:49ID:???ほんと、自分はまだまだでして、、、
まったくなんですよね。。。
ちょっとわからないでん。。。
>14
すみません、
もう少し詳しくもらえると嬉しいです。。。
0016nobodyさん
2006/09/17(日) 07:45:34ID:???<?php print(date(($item['dc:date']))) ?>を
<?php print(substr($item['dc:date'], 0, 10)) ?>に
001812
2006/09/17(日) 07:52:09ID:???おお!
すごす!
できました!
有難う御座います!
>>17
なるほど、substrが大事なのですが、
ネットで調べまくります!
0019nobodyさん
2006/09/17(日) 07:57:55ID:???http://www.php.net/manual/ja/
0020nobodyさん
2006/09/17(日) 08:04:18ID:???違う!そうじゃないぞぉ!
ちゃんと毎回これがどういうことをしてどういう結果になっているのか
って言うのを理解していかないと良いプログラマンにはなれんのだよ!
002112
2006/09/17(日) 08:05:58ID:???なるほど、今色々調べてたのですが
最初のヒント10文字ってのはそういうことだったんですね、、、。
0022nobodyさん
2006/09/17(日) 10:55:24ID:lKV/vaA2これって XML.phpとRSS.phpのふたつのファイルを読み込むって意味ですか?
なら、$Data=file("data/database.csv");
でdata.csvとdatabase.csv2つのCSVファイルを読み込むことはできますか?
0024えがみボンバイエイ
2006/09/17(日) 11:10:04ID:???一覧を出して自分のサイトのメタタグの参考できるようなサイトにしたいなと。
<html><head><title>メタタグ参考ツール</title></head><body><h1 style="background:#CCCCCC">メタタグ参考ツール</h1>
<?php
//URL
$url = array("http://ega.chu.jp/all","http://www.bb-chat.tv/","http://www.snsnavi.jp/","http://yahoo.co.jp","http://mixi.jp","http://livedoor.jp","http://iki.2ch2.net/");
//$url配列を一個づつ処理
foreach ($url as $value){
//メタタグの内容を取得
$array = get_meta_tags($value);
$array = mb_convert_encoding($array, "EUC-JP", "auto");
//メタタグの内容を表示
echo "<p>サイト名(サイトへリンク):"."<a href=".$value.">サイト名</a>";
echo "<p>サイトのサムネイル:";
echo "<p>サイトの内容:".$array["description"];
echo "<p>サイトのキーワード:".$array["keywords"];
echo "<p>はてなブックマーク数:";
echo "<hr />";
}?></html></body>
今できない事が
1、サイト名を表示させたい
2、文字化けしてる所を文字エンコードで直したい。
3、サイトのサムネイルを自動で表示させたい
4、サイトのURLを外部で書き込みできるようにし、
「url.dat」みたいな外部ファイルから読み取りたい。
と言うことをしたいなと、全部は流石にあれなので一つでもいいので教えていただけると嬉しいです。宜しくお願いします。
0025nobodyさん
2006/09/17(日) 11:24:04ID:lKV/vaA2すいません、2つ以上のファイルを読み込むにはどうしたらいいでしょうか?
$Data=file("data/database.csv"); ???
0027nobodyさん
2006/09/17(日) 12:06:36ID:???$Data[] = file("data/data.csv");
$Data[] = file("data/database.csv");
0028nobodyさん
2006/09/17(日) 12:13:34ID:lKV/vaA2$Data= を $Data[] にすればいいんですね。
ありがとうございました。
0030nobodyさん
2006/09/17(日) 12:46:13ID:???0031nobodyさん
2006/09/17(日) 12:56:58ID:???0032nobodyさん
2006/09/17(日) 13:00:09ID:Zr3tx6hp私A - 同窓会関連のテキストや画像などを自宅サーバにて管理(Linux+Apache+PHP+MySQL)しています
友人B - 同窓会員で自宅PCから接続してきます
Bが複雑な検索をしてきて(私の技術のなさからなのですが、検索に2分ほどかかるとします)
待ちきれずに1分ほどでブラウザの停止や、ブラウザを閉じてしまうなどをしてしまうと
プログラムがecho,printなどで出力しようとしているデータはどこで消えてしまうのでしょうか?
BのPCまで行ってブラウザが閉じているのでそこでなにもせずに消える
Bが要求をやめてしまっているのでAのサーバ内で消える
など漠然と考えてはいるのですが検索などしてみても答えが分かりません
”検索速くしてよ、途中で止めることあるよ”
とか言われて、いろいろと試行錯誤はしているのですが、
ふと、途中で止められたデータはどこに行ってるんだろう?と疑問に思ったのです
こういうのはネットワーク系(?)のスレッドのほうがいいかとも思ったのですが
ご存知の方おられましたらよろしくお願いいたします
0033nobodyさん
2006/09/17(日) 13:10:26ID:???ブラウザ閉じたことはサーバーは知らないから
処理を最後までやって出力→そのデータは誰も受け取らない
ってなるだけ
0034nobodyさん
2006/09/17(日) 13:17:18ID:???ttp://www.php.net/manual/ja/features.connection-handling.php
0036nobodyさん
2006/09/17(日) 17:20:52ID:???trim関数では日本語が扱えないため、全角スペースを消せません。
この場合、どうするのが一番良いでしょうか? 正規表現などでしょうか?
0037nobodyさん
2006/09/17(日) 17:33:09ID:???$str = mb_ereg_replace(' $', '', $str);
とか。実行してないけど
0038nobodyさん
2006/09/17(日) 17:36:11ID:???でよくね?
0039nobodyさん
2006/09/17(日) 17:51:35ID:???0040nobodyさん
2006/09/17(日) 19:05:08ID:Eys1a2Y2どっかにオススメ無い?有料(事業者登録)OK。
今も自分のWEBサーバに事業者登録してるのを入れてるんだけど、
妙に使いにくくて、人に貸しにくい。
ちなみにプログラムなんて書けません。
0041nobodyさん
2006/09/17(日) 19:06:31ID:???004240
2006/09/17(日) 19:07:13ID:Eys1a2Y2思いっきり失礼しました。
0043nobodyさん
2006/09/17(日) 19:27:13ID:???win2000では普通に動かせていたのに
色々なphpインストールtips見てその通りやったのに何回やっても404表示だお(´Д`)
考えられる原因を並べてくださいエスパーたん(*´Д`)
0045nobodyさん
2006/09/17(日) 19:32:08ID:???0046nobodyさん
2006/09/17(日) 20:50:13ID:???$rm = "( | )";
preg_replace("/^$rm+|$rm+$/","", $text);
デフォルトのtrimに全角SPを追加したいだけなら $rm = "( | |\\t|\\n|\\r|\\0|\\x0B)";
textareaとかで各行対象なら "/(?<=\r|\n|^)$rm+|$rm+(?=\r|\n|$)/"
0047nobodyさん
2006/09/17(日) 20:51:43ID:5LNOCvxaその正規表現じゃダメだろ。
前後両方に空白が入っていた場合。
0048nobodyさん
2006/09/17(日) 21:09:27ID:???eregは推奨しないがmb_eregは問題ない。
具体的にはeregがバイナリセーフでなく、且つpreg系関数より大抵10倍前後遅い。
mb_eregはバイナリセーフだし、代用できる関数も無い。
0050nobodyさん
2006/09/17(日) 22:00:51ID:???UTF-8でスクリプト書いてりゃpreg_関数で
/[あ-ん]+/みたいなことは出来るけど?
それとバイナリセーフのソースは?
0051nobodyさん
2006/09/17(日) 22:11:12ID:???用にはなってないだろう、それは。
mb_eregとmb_ereg_replaceは最新版ではバイナリセーフの模様。
mb_ereg_matchはバイナリセーフじゃなかった。
0052nobodyさん
2006/09/18(月) 12:24:53ID:???自分はMELON使っているのですが、携帯にメールができなくて・・・
0053nobodyさん
2006/09/18(月) 12:38:38ID:???0055nobodyさん
2006/09/18(月) 12:50:12ID:???スパム業者扱いされてIPでブロックされてるのかもな。
だったらソフトをいくら変えても無駄だと思う。
0056nobodyさん
2006/09/18(月) 12:52:59ID:9uSI0qsKhttps://ybb.softbank.jp/support/op25b/
http://www.itt-web.net/modules/xeblog/?action_xeblog_details=1&blog_id=445
0057nobodyさん
2006/09/18(月) 13:54:16ID:crSwhLpgFTP関数でログインする際に、パスワードをパラメータに指定するのですが
これって(ファイルを誰かに見られる事はないとは思うけど)例えると「紙にパスワードをメモしておく」のと等しいよね?
大丈夫なのかな?
0058nobodyさん
2006/09/18(月) 14:16:10ID:???セキュリティとしては大穴だと思うけどな。
0059nobodyさん
2006/09/18(月) 14:16:33ID:???サーバのユーザが特定の人しかいないなら問題無いんじゃね
パスワード書いてるファイルにパーミッションなり、MD5にするなり、サーバのセキュリティなりによって違うでしょ。
0060nobodyさん
2006/09/18(月) 14:43:16ID:???DOCUMENT_ROOTより上位のディレクトリに置いておく
くらいは常道かなと思う。
あとパーミッションも他のユーザ・グループでは
閲覧できないようにしてもいいよね。
0061nobodyさん
2006/09/18(月) 17:24:05ID:???そもそもFTPは平文でパスワードが流れるんだから、心配してもしょうがない。
気になるのなら、SFTPやSCPを使うこと。
0062nobodyさん
2006/09/18(月) 20:23:41ID:???いいたいことはわかるけど、より正確には、
ネットワーク上に平文で流れることと、
ソースコード中にパスワードが平書されていることは、
次元が違う話でしょ。
ソースコード中にユーザID/パスワードを書きたくない。
もしくは最小限にしたい。という発想は大いに結構だと思いますが。
ようは、そこをがんばってもFTPである以上平文パスワードという
限界があるんだよ。ということを知ってればよいと思います。
0063nobodyさん
2006/09/18(月) 21:24:29ID:S7kQJtixregister_shutdown_functionがうまく利きません。
具体的には
<?php
function hoge($param) {
sleep(3);
echo $param;
}
register_shutdown_function(hoge, 'TEST!!');
?>
を実行しても3秒後に'TEST!!'が表示されてしまいます。
特にregister_shutdown_functionの記述に不備はないと思うのですが、
この現象について解説していただけばと思います。
0065nobodyさん
2006/09/18(月) 21:28:55ID:???0066nobodyさん
2006/09/18(月) 21:29:36ID:???ブラウザで動かしたらそれエラーになるだろ?
0067nobodyさん
2006/09/18(月) 21:30:20ID:???プログラムを実行したら、メイン処理終了後に3秒経ってechoが実行されたんだろ?
記述通りに動いてるようにしか見えないが何が問題なんだ?
そもそもそれはどのように動くべきだと考えてるんだ。
マニュアル記載ではsutdown_functionではechoは使えないことになってるが
それはブラウザとの通信が途切れるSAPI版の話であってCLIでは関係ないしな。
0068nobodyさん
2006/09/18(月) 21:44:59ID:S7kQJtixテスト用としてCLIの例を挙げましたが実際はSAPIでの結果です。
私の勘違いかもしれないですけどregister_shutdown_functionは
レスポンス後に実行される関数と思っているのですが、
それは間違いでしょうか?
ちなみにSAPIの場合でもechoは</HTML>の後に表示されましたが
マニュアルの注意書き(printまたはechoのような文を使用してデバッグを行うことはできません。 )は
「できるけどやってはいけない」ということでしょうか?
0069nobodyさん
2006/09/18(月) 21:45:49ID:S7kQJtix0071nobodyさん
2006/09/18(月) 21:52:48ID:???ttp://php.plus-server.net/function.register-shutdown-function.html
> PHP 4.0.6 以前のバージョンを Apache で動かしている場合、 登録されたシャットダウン関数は
> リクエストの完了後(結果の 出力を含む)に実行されます。そのため、echo() や print() を用いて
> ブラウザに出力したり ob_get_contents() を用いて出力バッファの内容を 取得したりすることが
> できませんでした。
> PHP 4.1 以降、シャットダウン関数はリクエストの一部として実行される ようになり、そこから結果を
> 出力できるようになりました。
0072nobodyさん
2006/09/18(月) 21:54:36ID:???でも、apacheで動かした場合は何故か「START!」もTEST!!と同時に3秒後に表示されちゃった
<?php
echo "START !";
register_shutdown_function(hoge, 'TEST!!');
function hoge($param) {
sleep(3);
echo $param;
}
?>
0073nobodyさん
2006/09/18(月) 21:55:57ID:???START!の出力が3秒後に出たのは出力のバッファリングのため。
フラッシュをかけない限り、出力はある程度溜まらないとブラウザに送信されない。
0075nobodyさん
2006/09/18(月) 22:12:19ID:???0076nobodyさん
2006/09/18(月) 22:21:45ID:???スレッドを実行したいみたいだが
FAだとしても現実問題の正解はなんだ?
phpのバグ?
Apacheのバグ?
環境の不備?
0078nobodyさん
2006/09/18(月) 22:35:36ID:???> phpのバグ?
> Apacheのバグ?
> 環境の不備?
仕様の不理解、じゃないの?どっからバグなんて話が出てるのよ。
リクエスト/レスポンスに影響を与えずバックグラウンドで動作する処理を書きたい場合は
普通はsystem()辺りで標準出力/エラー出力をcloseしたプログラムを&付きで実行させる、
とかの手段を使うと思う。
0079nobodyさん
2006/09/18(月) 22:58:33ID:???>仕様の不理解、じゃないの?どっからバグなんて話が出てるのよ。
可能性の話だよ。プログラムにはバグは憑き物だから
当然理解不足だって可能性はある。
>register_shutdown_functionはレスポンス後に実行される関数と思っているのですが、
おれもそのように理解していている。
俺の理解も間違ってなかったとしたら
sleepした時間待たされてechoした文字が
レスポンスされるのはおかしいと思わないか?
0081nobodyさん
2006/09/18(月) 23:09:48ID:???たしかに>>71が紹介した
ttp://php.plus-server.net/function.register-shutdown-function.html
echoに関してはにはそのように書いているが、同時にこのようにも書いている。
>シャットダウン関数はすべての出力バッファを閉じてからコールされます。
矛盾しているようにも思えるが、この仕様はどのように理解すればいいの?
0082nobodyさん
2006/09/18(月) 23:11:42ID:???コーヒーでも飲んで落ち着いてからマニュアル嫁
閉じるのは「出力バッファ」だ、どこが矛盾してるのか俺に教えてくれ
0083nobodyさん
2006/09/18(月) 23:15:12ID:???PHPの出力バッファ機能とブラウザへの出力コネクションは全然別の話。
出力バッファが閉じることで出力ハンドラを通した加工出力処理は一切使えなくなるが
出力そのものができなくなるわけでは無いのだよ。
0084nobodyさん
2006/09/18(月) 23:31:16ID:???今、酎杯呑んでるからコーヒーとのちゃんぽんは合わんな。
>>83
なるほどよくわかりました。
>>82もコーヒーでも飲んで落ち着いてから
このように教えてくれればいいのに。
0085nobodyさん
2006/09/19(火) 00:13:12ID:???0087nobodyさん
2006/09/19(火) 01:43:35ID:???0088nobodyさん
2006/09/19(火) 01:49:40ID:sfulj2+A>>78
具体的にはブラウザにレスポンスした後に
外部サーバ上のDBの更新したいとの思いからですが、
その更新は返って来るまで平均10秒くらい掛かって、
しかも外部の範疇の処理のため、チューニングなど手を加えることができず
そのためにはregister_shutdown_functionを使うことで対応できるかと
思って実験的にsleepで試したのですが・・・
そのような場合もsystem()など使うのが妥当なのでしょうか?
シェルを経由すると環境や共通関数など単純に流用できないですね。
ちょっと実機の環境で再度register_shutdown_functionを確認してみます。
0089nobodyさん
2006/09/19(火) 02:00:47ID:???プログラム終了時に必ず実行する処理を書くためのもので、
並列実行のスレッド処理を書くためのものじゃないだろう…
そもそも最大リクエスト数の制約を受けるApacheプロセスを
10秒も起動しっぱなしにさせてたら困ることが多すぎないか?
10秒もかかるDB更新をリクエスト毎に処理なんて無謀だから
俺だったら処理データをファイルなりローカルDBデータなりにセットしといて
cronで数分〜1時間おきくらいに動かしたバッチに処理させるな。
0090nobodyさん
2006/09/19(火) 02:09:41ID:???クライアントがわでタイムアウト扱いされるとやっぱ問題あり?
タイムアウトとして処理されていいのなら
http://jp.php.net/manual/ja/function.ignore-user-abort.php
こっちのほうが適切だとおもう。
タイムアウト扱いが嫌なら、systemとか使うしかないだろうな。
0092nobodyさん
2006/09/19(火) 04:47:25ID:???これについてやり方や実例が詳しく解説してあるページとかないですか?
0093nobodyさん
2006/09/19(火) 05:24:15ID:???unixシェルに関するページなら大抵あるのでは?
まぁ、あれだ
PHPマニュアルのUser Contributed Notesを読まないのは凄くもったいないと思うんだ。
http://jp.php.net/manual/ja/function.system.php
0094nobodyさん
2006/09/19(火) 06:35:21ID:DMPs8Yp+2.echoでhtmlファイルの内容を出力
どちらのほうが負荷が小さいでしょうか?
0095nobodyさん
2006/09/19(火) 06:44:29ID:???微々たるものだからメンテナンス性の方が重要よ?
0096nobodyさん
2006/09/19(火) 07:38:27ID:???0098nobodyさん
2006/09/19(火) 09:50:13ID:9qvktJUTregister_shutdown_functionを実機環境で試した結果。
やっと理解できました。
ブラウザには即時にレスポンスを返しますが、register_shutdown_function
で登録した関数がが完了するまでクライアントは次の操作を行えないようですね。
ということはregister_shutdown_functionでは要件を満たせないということで
この方法は却下します。
色々なご意見を参考に別な方法を検討したいと思います。
0099nobodyさん
2006/09/19(火) 09:52:01ID:RXMAlMKxと、三段階にページをわけてます。
入力した情報を加工してから書込みを行いたいのですが、
基本画面で危険なコードを入力されたら確認画面で実行されされてしまうし、
確認画面で情報を加工しても、情報を改ざんされて書き込み処理画面で情報に
不正なコードが潜んでるかもしれません。
確認画面と書き込み処理画面の両方で加工したほうがよろしいのでしょうか?
0100nobodyさん
2006/09/19(火) 10:18:04ID:???基本画面で<form>に入力。
↓
[サーバ側]
入力されたデータの正当性チェックと、必要ならデータ加工。
データをセッションに保存。
↓
[ブラウザ側]
確認画面に内容表示。
確認ボタン(?)か何かクリック。
↓
[サーバ側]
セッションのデータを復元し、DBなどに書き込み。
↓
[ブラウザ側]
書き込み完了しました。とか表示。
0102nobodyさん
2006/09/19(火) 11:48:43ID:???ttp://ns1.php.gr.jp/pipermail/php-users/2004-May/022383.html
をためしてみましたがうまくいかず
Transfer-Encoding: chunkedとなってしまいます。
Content-Length と Transfer-Encoding: chunked が両方送信されて
Transfer-Encoding: chunkedが優先されているように感じます。
どうすればいいでしょうか。
phpinfo
PHP Version 4.3.2
output_buffering no value
output_handler no value
mbstring.http_input pass
mbstring.http_output pass
0103nobodyさん
2006/09/19(火) 11:56:55ID:???この書き込みだけだと、誤解を生みそうなので勝手に補足。
バイナリセーフがどうのこうのより、何が問題か?
↓のサイトに詳しくまとめられている。
ttp://www.asahi-net.or.jp/~wv7y-kmr/memo/php_security.html#NullByteAttack_about
いちいちバイナリセーフかどうか調べるのも鬱陶しいので、問題がないなら
最初から原因となるものを取り除くようにしておけばいいと思う。
0104nobodyさん
2006/09/19(火) 12:11:32ID:???サーバやOSの情報も書いたほうがいいよ。
まともな挙動としては、Transfer-Encoding: chunkedが設定されている場合でも、
header('Content-Length: '.$length);
を加えれば、サーバはTransfer-Encodingの行を消すべきだから。
0105nobodyさん
2006/09/19(火) 12:12:28ID:9qvktJUT結局皆さんの意見を総合して
flush();
ignore_user_abort();
register_shutdown_function();
<body onload='javascript:window.stop()'>
でやることにしました。
ありがとうございました。
0106nobodyさん
2006/09/19(火) 13:27:36ID:???そのページを見ると、要するに
str_replace( "\0", "", $arr );
でNULLバイトを削除せよ、ということだと思うんだけど、
\0だけでなく\x00も考慮しなくていいのかなぁ??
0107102
2006/09/19(火) 13:29:24ID:???OS
Linux aaa-bb-ccc 2.4.21-40.ELsmp #1 SMP Thu Feb 2 22:22:39 EST 2006 i686 i686 i386 GNU/Linux
サーバ
Server version: Apache/2.0.46
Server built: Dec 15 2005 04:19:10
Architecture: 32-bit
rpmからインストールしました。
Content-Typeをapplication/octet-streamにするとContent-Lengthが出力されました。
Content-Length: 190
Content-Type: application/octet-stream
text/htmlだとTransfer-Encoding: chunkedになってしまいます。
Content-Type: text/html
Transfer-Encoding: chunked
perlでもためしてみましたが同じ結果となりました。
別サーバのdebian+apache2でもためしてみましたが同じ結果になりました。
Content-Type: text/htmlでContent-Lengthを出力したいです。
どうすればいいでしょうか。
0108nobodyさん
2006/09/19(火) 13:29:50ID:9qvktJUTwindow.stop()はIEではできないので
隠しfreamで対応したいと思います。
0109nobodyさん
2006/09/19(火) 13:59:00ID:???意見を総合したら、cronかsystemでやれって事では・・?
まぁ・・自分が関わるわけじゃないから、どうやってても別に構わんけど
0110nobodyさん
2006/09/19(火) 14:08:43ID:f+iMimQfと、いう箇所でNotice: Undefined index: name in 〜ソースのアドレス
というふうに怒られてしまいます。
<?phpのすぐ下に書いてあります。それより上にphpのコードは何もありません。
どのように書くのが望ましいのでしょうか?
ご教授お願いいたします。
0111102
2006/09/19(火) 14:20:16ID:???firefoxのLive HTTP headersで確認していて今度は
ie + ieHTTPHeaders
wget -d
で調べたらちゃんとContent-Length値が出力されていました。
firefoxで
Pragma: no-cache
Cache-Control: no-cache
というのがリクエストに含まれていたのが悪かったのかなと思います。
Modify HeadersのFilterで消せなくてあきらめましたが。
どうもすみませんでした。
0114nobodyさん
2006/09/19(火) 15:11:30ID:???新しい配列にそのまま格納する、
関数はありませんか?
0115nobodyさん
2006/09/19(火) 15:14:55ID:???どう格納したいのか具体的な希望が無いのでアレなんだが
単に
$new = $old;
でいいんじゃないの?
これで「違う」って言うなら質問の仕方が悪すぎる気がする。
0116nobodyさん
2006/09/19(火) 15:15:43ID:???0117nobodyさん
2006/09/19(火) 15:17:36ID:j2rsOfI9どうやって参照するんでしょうか?
最初にカウント取らないと無理?
0118nobodyさん
2006/09/19(火) 15:27:51ID:???配列の添え字は1とか2とかから始まる場合もあるし
添え字にマイナスも使えるから0が先頭とは限らないよ。
$last = end($arr);
で最後の値は取得できる。
0120nobodyさん
2006/09/19(火) 15:31:45ID:???$name = '';
if(isset($_POST['name'])) $name = $_POST['name'];
が望ましいです。
0121nobodyさん
2006/09/19(火) 15:41:30ID:j2rsOfI9ありがとうございます。end()なんてあるんですね。
> 添え字にマイナスも使えるから0が先頭とは限らないよ。
つことは、今、[0]で取ってるので、いくないですね。
end()があるなら、ファーストもと思って調べたら、なかったですorz
0123nobodyさん
2006/09/19(火) 15:52:26ID:???何使って関数探してるの?
公式のオンラインリファレンス(>>1)使えば
関連する関数が説明文の下に参考として書かれてるから
その種の問題はすぐに解決できるよ。
0124nobodyさん
2006/09/19(火) 15:56:20ID:???ありがとうございます。
画面ちっちゃいから、本で調べてるんですけど、PHP(ポケットリファレンス)
オレンジのやつ。対義語が載ってないくさい。
※2ch開く余裕はあるってつっこみはなしで。
>>123 のサイトをチェック致します。
ありがとうございました!
0126nobodyさん
2006/09/19(火) 16:17:08ID:???変なことしてないなら最終要素も
$last = $arr[count($arr) - 1];
で取れるけどな。
0127nobodyさん
2006/09/19(火) 16:17:38ID:???表記方法が16進数になっても null の意味は変わらないから一緒だと思う。
実際に確かめてみると、ちゃんとNULL バイトが取り除かれているのがわかる。
0128nobodyさん
2006/09/19(火) 16:28:33ID:???無防備なのはイクナイ!!
0129nobodyさん
2006/09/19(火) 16:38:10ID:Uo5rUHBVたとえば、
A.php入力フォームから受け取ったデータを
B.phpへ持っていき、書込み処理を終えたらデータ削除
が行いたいと思っております。
何かヒントがあればご教授願います。
0132nobodyさん
2006/09/19(火) 17:02:24ID:???消すのなら unset ($_POST['hoge']); でいけるけど・・何故データを消す必要があるんだ?
それにB.phpに持って行くと言っても、
FORMから送られたデータはスーパーグローバルだから、
特別な事をやらなくてもA・B双方から参照できるしねぇ
何が言いたいかって言うと、意味がわからn(ry
0133nobodyさん
2006/09/19(火) 17:06:28ID:Uo5rUHBVリロードするとformから受け取ったデータが残ってまして、
同じ内容が書き込まれてしまうんです。
0134nobodyさん
2006/09/19(火) 17:17:14ID:???それは変数の$_POSTの中身を消した所でどうにもならない。
クッキーなりセッションなり使ってリロード対策するしかない。
0135nobodyさん
2006/09/19(火) 17:25:09ID:???お前バカか? どういう本の読み方してんだ。
『PHPポケットリファレンス』のendのページの下の部分に
関連関数としてresetがしっかり載ってるじゃないか。
これで「対義語が載ってないくさい」などとよく言えるな、この能無しチンカスが。
0136nobodyさん
2006/09/19(火) 17:26:37ID:???>リロードするとformから受け取ったデータが残ってまして
受け取ったデータが残っているのではなく、
送る側が同じデータを送信している
消したいなら、クライアント側を工夫する+処理後に表示するページを別ページにする
0138nobodyさん
2006/09/19(火) 18:20:55ID:4NYt81r/登録したファイルの拡張子を記録したいのですが、
例えば
$upfile="test.jpeg" //JPEGファイルをアップしたと過程
if(ereg(".jpeg",$upfile)){
echo"これはJPEGファイルです";
}
っと識別出来るかと思うのですが、必ずしも特定のファイルじゃないと思うし
さまざまな拡張子があると思います。
その場合も事前に「これは○○ファイルです」というようにIFを用意しておくのでしょうか?
それとも、もっと便利な方法・構造があるのでしょうか?
0139nobodyさん
2006/09/19(火) 18:34:38ID:???まず第一に拡張子はいくらでも変更出来るので実際のファイルが何かは分からない。
これは多分理解してると思うから・・。
あとは正規表現なり、 . でsplitするなりである程度出来るんじゃん。
0140nobodyさん
2006/09/19(火) 18:49:58ID:???目的と頻度次第でお好きなように、ってのが正直なとこ。
システムの目的として拡張子登録が重要な機能で
可能な限り全ての拡張子を網羅しなければいけなくて
必要時にすぐ新規の拡張子が登録できなければ…
みたいな話ならメンテナンス性が重要になると思うんで、
「拡張子文字列」→「ファイル種別文字列」
みたいな対応ファイルを別途用意してそれを読み込んで
処理するような仕組みを採用した方がいいかもしれないし、
判別が画像ファイルだけとか数が少ないならif並べた方が早いし、
追加が緊急では無いが数は多いとかなら配列データとして
includeファイルにリストアップしとくのがベストかもしれない。
配列データからの判定は例えば
$ext_list = array(
"jpeg" => "JPEGファイル",
"jpg" => "JPEGファイル",
"gif" => "GIFファイル",
);
$pathinfo = pathinfo($upfile);
$ext = $pathinfo['extension'];
if(isset($ext_list[$ext])) {
echo "これは{$ext_list[$ext]}です";
}
みたいな感じで処理する。
0141138
2006/09/19(火) 19:01:03ID:???アドバイスありがとうございます。
目的としては登録リストを拡張子で並べ替え出来る程度で良いのですが、
140さんが書かれているソースの方法だと汎用性も高いと思うし、
私自身も意味が理解出来るので、良いですね。勉強になりました。
0142nobodyさん
2006/09/19(火) 19:03:04ID:Uo5rUHBV処理する記述は大丈夫でしょうか?
0143nobodyさん
2006/09/19(火) 19:09:55ID:???別に問題はないよ。それでロックという目的が果たされてるかは知らんけど。
複数ファイルを一斉にロックする場合、ロック状態を示すロック専用ファイルを
1個だけ用意しておいてロックはそれだけで行うという「プロセスロック」という
考えの方が適切な場合もある。
0145nobodyさん
2006/09/19(火) 19:35:11ID:???0146nobodyさん
2006/09/19(火) 20:16:12ID:???INSERT INTO `tbl` (`key1`, `key2`, `key3`) VALUES ($val1, $val2, $val3)
って書き方っていつも面倒くさいと思ってたけど
INSERT INTO `tbl` SET `key1` = '$val1', `key2` = '$val2', `key3` = '$val3'
って書き方もあるんだね?いままで知らなかった。
この書き方ってなにか問題ありますかね?
0147nobodyさん
2006/09/19(火) 20:25:52ID:???0148nobodyさん
2006/09/19(火) 20:26:17ID:???みづらくてしょうがありません。
しかし改行を入れると正規表現が変わってしまい
見やすく整理できません。
どういうふうに整形していけば良いのでしょうか?
現在こんな感じです。
preg_match_all("(<\/TABLE>[^a-z]{15,15}(.+)[^a-z]{15,15}<TABLE border=\"1\"><TR><TD>|<font color=.+>...(.*)...<\/font>.*(http.*)\">(.*)</a>)U",$content,$content);
0149nobodyさん
2006/09/19(火) 20:36:13ID:???"loooooooooooooooong " .
"regular expression/";
preg_match($reg, $str);
0152nobodyさん
2006/09/19(火) 20:48:26ID:???0157nobodyさん
2006/09/19(火) 22:21:08ID:sKqysrv5安全といえるのでしょうか?
また、htaccessを使わずにディレクトリごとロックすることは可能でしょうか?
たとえば・・・
public_html-----[abc]←このディレクトリ中のファイルへのアクセスを拒否するのは可能ですか?
0159nobodyさん
2006/09/19(火) 22:59:26ID:???>IDとpassの埋め込み型のphpファイルは安全といえるのでしょうか?
心配なら生Pass記述ではなく、cryptした値で比較すれば?
>htaccessを使わずにディレクトリごとロックすることは可能でしょうか?
httpd.confが弄れるなら可能。
0160nobodyさん
2006/09/19(火) 23:25:08ID:???まあ普通に使ってる限り、拡張子がphpのファイルはソースが見えることはありえないが、
設定ミスなどが怖いのなら、パスワードを書いたファイルはDocumentRoot外に置いて
includeすれば良い。
0161nobodyさん
2006/09/19(火) 23:35:24ID:???あんまり後者の書き方は見かけないんですが・・・
mysql書き始めて2年にもなろうというのに初めてみましたよ>後者の書き方
0162157
2006/09/19(火) 23:36:21ID:???<<159さんや<<160さんみたいのは新しい発見です。
cryptで暗号化も考えたのですが、結局生のパスワードを書きますから
先輩方のアドバイスを参考にさせていただきまして、もうすこし調べてみます。
ありがとうございます。
0164nobodyさん
2006/09/19(火) 23:51:04ID:???0165nobodyさん
2006/09/20(水) 00:11:51ID:???0166nobodyさん
2006/09/20(水) 00:12:23ID:???>cryptで暗号化も考えたのですが、結局生のパスワードを書きますから
なんで、暗号化するのに生のパスワードを書く必要があるの?
PHP内にはcryptで暗号化した文字列だけ書いておいて、
入力されたパスを同じcrypt化して比較すればいいじゃん。
0167nobodyさん
2006/09/20(水) 00:15:56ID:???アクセス数に対し、可変する横棒グラフを作成しています。
例えば、1日(30)、2日(15)、3日(40) ※()内はアクセス数です。
とした場合、どういう風に構築するのが良いのでしょうか?
単純に<img src="bar.gif" width="<?=$access?>">とすると、横に伸びきるし。。
質問内容がまとまっていないかもしれませんが、ご教授いただければと思います。
0169nobodyさん
2006/09/20(水) 00:34:33ID:???とりあえずメール欄は空白も何も無しが正解。努力は買うが。
仕様として、横バーの最大を固定にするか可変にするかでも変わる。
1日(30)、2日(15)、3日(40)のときで40のグラフが横幅いっぱいになるようにするなら
$acc = array(1 => 30, 2 => 15, 3=> 40); //アクセス数のリスト
$maxwidth = 400; //バーの横幅最大
$max = max($acc);
$rat = $maxwidth / $max;
?>
1日<img src="bar.gif" width="<?=$acc[1] * $rat?>"><br>
2日<img src="bar.gif" width="<?=$acc[2] * $rat?>"><br>
3日<img src="bar.gif" width="<?=$acc[3] * $rat?>"><br>
という感じだろう。
それに対して、アクセス数100のときに横幅いっぱいになるようにするなら
$acc = array(1 => 30, 2 => 15, 3=> 40); //アクセス数のリスト
$maxwidth = 400; //バーの横幅最大
$rat = $maxwidth / 100;
?>
1日<img src="bar.gif" width="<?=$acc[1] * $rat?>"><br>
2日<img src="bar.gif" width="<?=$acc[2] * $rat?>"><br>
3日<img src="bar.gif" width="<?=$acc[3] * $rat?>"><br>
になるかと。
0170167
2006/09/20(水) 00:48:26ID:???ありがとうございます。ただ、説明不足で申し訳ないのですが、
1日とかは日付が入っているので実際は”2006年9月20日”になります。
それをDBで管理しているので
day | count
2006-09-18 | 30
2006-09-19 | 15
2006-09-20 | 40
というような表から抽出して表示させるわけです。
その場合、arrayで配列に代入する方法は使用出来ないかと思いまして。
説明不足で申し訳ないのですが、もう少しお願い出来ないでしょうか。
0172nobodyさん
2006/09/20(水) 00:57:19ID:???外部のオブジェクトが簡単に利用する方法は
ありませんか?
function get_content(){
$aaa = "aaa";
$bbb = "bbb";
$ccc = "ccc";
}
たとえばこんな感じに、変数を複数設定してしまったとき、
ほかのオブジェクトも、この変数を利用したいのですが・・・
0173nobodyさん
2006/09/20(水) 01:01:47ID:???後だしじゃんけん的質問はイカン。それに169がここまで書いてくれてるんだから後は
自分で考えるないとなー
?>
1日<img src="bar.gif" width="<?=$acc[1] * $rat?>"><br>
2日<img src="bar.gif" width="<?=$acc[2] * $rat?>"><br>
3日<img src="bar.gif" width="<?=$acc[3] * $rat?>"><br>
を
while ($row = mysql_fetch_assoc($result)) {
$w = $row["count"] * $rat;
echo <<<EOT
{$row["day"]}<img src="bar.gif" width="{$w}"><br>
EOT;
}
とかでいいんじゃまいか?日付の書式は適当にね
0174nobodyさん
2006/09/20(水) 01:17:32ID:???PHPスクリプトとして認識させないならreadfileもあるよ
>>148
xを使う。スペースは\sで。{15,15}は{15}でいいよ。
$str = 'outer"in\"ner"outer';
preg_match('!
"( # デリミタとその内側のキャプチャ開始
(\\\\.|[^"])+ # エスケープを避けて"までの最短マッチ
)" # キャプチャとデリミタの終了
!x', $str, $cap);
var_dump($cap);
0175nobodyさん
2006/09/20(水) 01:56:01ID:???> その場合、arrayで配列に代入する方法は使用出来ないかと思いまして。
それで何が困るのかさっぱり分からん。
$acc = array(
"2006-09-18" => 30,
"2006-09-19" => 15,
"2006-09-20" => 40,
);
というアクセス数の配列にしといて
$maxwidth = 400; //バーの横幅最大
$max = max($acc);
$rat = $maxwidth / $max;
foreach($acc as $date => $cnt) {
?><?=$date?><img src="bar.gif" width="<?=$acc[$date] * $rat?>"><br><?php
}
でふつーに問題なくね?
0176nobodyさん
2006/09/20(水) 09:21:48ID:???マニュアルを見た感じ、出力後にバッファをクリアするかしないかの違いしかないような感じなんですが、それだけですか?
0177nobodyさん
2006/09/20(水) 09:52:13ID:???以降の出力を内部バッファに保存する
↓
ob_flash
内部バッファに保存された出力を、出力バッファへ移動する
↓
flash
出力バッファからクライアントへ送信
まぁあれだ、ob_flash()やってもPHPが常に持ってるバッファに移動するだけで、
それを即座にクライアントへ送りたいならflash()が必要だって事だ。
タブン
0178nobodyさん
2006/09/20(水) 10:59:42ID:???>書き込み完了後にLocationで別ページに飛ばしちゃうのが簡単な対策
飛ばしても、「戻る」ボタンでPOST後のページに戻れば再POSTになっちゃうけどね。
0179nobodyさん
2006/09/20(水) 11:16:15ID:???ならないよ
Location の意味分かってる?
HTTPヘッダーを使用したリダイレクトね。
IE, Firefox, Opera の最新版で試したが、全部ならない。
0180nobodyさん
2006/09/20(水) 12:36:06ID:74yeHhioOSはLinux(CENTOS)で、PHPは4.3。
sendmailそのものは動いています。(telnetからメール送信した)
php.iniの記述は↓です。
sendmail_path = /usr/sbin/sendmail -t -i
特に問題ないはずなのに、原因が分からず途方にくれてます。
0181nobodyさん
2006/09/20(水) 12:40:45ID:xiIYenEjapache 2.2.0
php 5.1.6
net-snmp 5.2.2
でphpを--with-snmpでコンフィグしてるんだけど、
apache起動時にエラーログに
Cannot find modue (IP-MIB): At line 0 in (none)
Cannot find modue (IF-MIB): At line 0 in (none)
Cannot find modue (TCP-MIB): At line 0 in (none)
Cannot find modue (UDP-MIB): At line 0 in (none)
Cannot find modue (SNMPv2-MIB): At line 0 in (none)
Cannot find modue (SNMPv2-SMI): At line 0 in (none)
Cannot find modue (UCD-SNMP-MIB): At line 0 in (none)
Cannot find modue (UCD-DEMO-MIB): At line 0 in (none)
Cannot find modue (SNMP-VIEW-BASED-ACM-MIB): At line 0 in (none)
Cannot find modue (SNMP-COMMUNITY-MIB): At line 0 in (none)
Cannot find modue (UCD-DLMOD-MIB): At line 0 in (none)
Cannot find modue (SNMP-FRAMEWORK-MIB): At line 0 in (none)
Cannot find modue (SNMP-MPD-MIB): At line 0 in (none)
Cannot find modue (SNMP-USER-BASED-SM-MIB): At line 0 in (none)
Cannot find modue (SNMP-NOTIFICATION-MIB): At line 0 in (none)
Cannot find modue (SNMP-TARGET-MIB): At line 0 in (none)
Cannot find modue (SNMPv2-TM): At line 0 in (none)
てmibsがない旨のエラーがでるんだけどなんでかな。
0182nobodyさん
2006/09/20(水) 12:44:09ID:R2HBn3N4http://tech.heteml.jp/
1.現時点での個人情報
福井雅晴(偽名の可能性あり)
42歳、企業経営者。滋賀大学経済学部卒、カリフォルニア大学・バークレー校のPh.D(経済学)を取得
現在東京在住
2.てっくさんのお知り合い
http://www.geocities.jp/tatsuman/links.htm
http://www.jurists.co.jp/ja/attorney/detail/rn.shtml
http://ja.wikipedia.org/wiki/%E5%A4%A7%E7%9F%B3%E8%8B%B1%E5%8F%B8
ホリエモンのエピゴーネンの似非保守です。
3.やっていること
インターネット専門の広告代理店
保守系ブログの管理人
保守系ブログの管理人を操って政治的ムーブメントを起すこと(ちょい犯罪の可能性あり)
「エリート掲示板」管理人 参加者は福井晴敏や西村幸祐など(マジかよ!)
4.そしてなんと不敬な!
皇室を利用した振込み詐欺(女系天皇反対論者が文句を言えない個人の内面を弄ぶ卑劣な行為)
http://tech.heteml.jp/2006/03/post_429.html
本気で旧宮家復籍キャンペーンフラッシュをつくるつもりであれば一刻も早く会計報告書を自分のブログに掲載しておくれ。
0183nobodyさん
2006/09/20(水) 12:52:34ID:???PHPで調べられないか試しています。
以下のようなソースを書いたのですが、思い通りになりません。
どこがおかしいかご指摘いただけないでしょうか?
$con = mysql_connect($dbserver, $dbuser, dbpassword);
$tabls = mysql_list_tables($dbname,$con);
if($tabls=="member"){
echo "memberテーブルが存在します";
}else{
echo "memberテーブルがありません";
exit;
}
0184nobodyさん
2006/09/20(水) 12:58:59ID:???関数の戻り値ぐらい確認しろよ
resource mysql_list_tables ( string database [, resource link_identifier] )
http://jp.php.net/mysql_list_tables
0185nobodyさん
2006/09/20(水) 13:09:09ID:???パッと見、問題無いように見えるからクリティカルな回答
じゃないが、
phpinfo()関数を実行した時
Local Value
Master Value
共に
/usr/sbin/sendmail -t -i
になっているかな?
後
>mail関数をコールすると止まってしまいます。
ということだけど、止まるって症状をもっと具体的に。
PHPのエラーメッセージも出ないってこと?
0186nobodyさん
2006/09/20(水) 14:20:55ID:74yeHhioアドバイスありがとうございます。
はい。local,master共に↓こちらです。(そのままコピペ)
sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i
>ということだけど、止まるって症状をもっと具体的に。
>PHPのエラーメッセージも出ないってこと?
はい。mail();の行で突然止まってます。
関係あるか分かりませんが、mb_encode_mimeheaderをコールした時も同症状です。
ちなみに、mbstringの設定なのですが、Windowsだとextension=php_mbstring.dll
というようにライブラリを呼び出していますが、Linuxは設定しなくても良いのでしょうか?
0187nobodyさん
2006/09/20(水) 14:51:35ID:yPqg/Cyb含まれているからですか?
basenameを併用したら安全でしょうか?
0188nobodyさん
2006/09/20(水) 15:23:40ID:???0189nobodyさん
2006/09/20(水) 15:49:36ID:ap8SjPDw止まるとはmail()から返ってこなくなるということ?
だとしたら具体的なmail()の呼び出し方を貼ったら・・・?
0191nobodyさん
2006/09/20(水) 17:01:05ID:???処理を試しています。
$dir_name="$site_url"."files/"; //$site_urlにはサーバのURLが入ります。
if(!is_dir($dir_name)){
mkdir("$dir_name",0777);
}else{
echo "作成済みです";
}
としているのですが、アクセスする度に何度も作成しようとして、
存在している場合はスルーされません。
$dir_nameに絶対パスを指定しているので、ディレクトリと見なしていないかも
しれませんが、こういう場合、どうすればいいのでしょうか?
0192nobodyさん
2006/09/20(水) 17:02:59ID:wx80eLIiこうかいても、ブラウザ上でソースひらくと上記とそのまんま表示されてしまいます。
参考書や多くのサイトでは<?= ?>でくくれって書いてありますけど、
<?php echo $_SERVER['SCRIPT_NAME']?>">
とすると意図した結果を返します。
phpのバージョンによるものなのでしょうか?
当方の環境はphp5.1.6でサーバapache2.0.59です。
0193nobodyさん
2006/09/20(水) 17:07:39ID:???0194nobodyさん
2006/09/20(水) 17:17:32ID:???short_open_tag が off
<?=の形式はあんまり推奨されないけど、「どうしても」使いたいなら
php.ini の short_open_tag を off に設定するか、
.htaccess に php_flag short_open_tag off を設定する。
0195192
2006/09/20(水) 17:23:41ID:???ありがとうございます。
0196nobodyさん
2006/09/20(水) 19:33:42ID:???hoge.phpでif文とisset関数でセッション変数をチェックするコードを書きました。
セキュリティに気をつけるところがあればご指摘お願いします。
データベースは使っておりませんが、セッションをデータベースに格納した
ほうが安全が高まるのでしょうか?
0197nobodyさん
2006/09/20(水) 19:49:24ID:???漠然としすぎて指摘のしようが無い。
DBに保存するかどうかも安全とはほぼ無関係。
そのレベルの情報量でセキュリティ的なものが判断できると思ってる
キミの無知加減が1番危ない気はするw
0198nobodyさん
2006/09/20(水) 19:57:17ID:???セッションについてです。
クライアントがリクエスト、サーバがセッション開始
続けてもう一度クライアントがリクエストした場合
クライアントがセッションのIDをサーバに送るのですか?
クライアント側にIDみたいなのを保存しなければ成り立たない
機能だと思いますが、そのIDはクッキーとして保存するのですか?
だとすれば、クッキーの内容を変更するなどで、
他のセッションIDを送ることもできると思います。
つまりクライアントから受け取ったセッションIDには何の信憑性もないのでしょうか?
0199nobodyさん
2006/09/20(水) 20:09:10ID:???です。セッションIDは通常はクッキーで保持。
クッキーが使えない場合はクエリー文字列のパラメータに埋め込みも使用可能。
(この辺はphp.iniの設定次第)
他人のセッションID送信で中身を横取りする手法はセッションハイジャックといい
セキュリティ対策では重要なポイントの1つだと思う。
セッションハイジャックでググれば問題点もその対策方法も色々出てくると思うよ。
0200nobodyさん
2006/09/20(水) 20:09:20ID:???セッションIDは通常Cookieに保存され(逆にCookieが使える環境ではCookieのみにすべき)、信憑性は無い。
が、個人が現実的な時間内で破れるほどヤワなものではない。
発行されうるIDのパターンは殆どの環境では少なくとも2^128ある。
ユーザが送ってきたセッションIDはサーバに保存されている値と比較され、マッチした場合にのみ保存されている値が取り出せる。
セッションIDの信憑性より、下手な設定にしてセッションハイジャックされる心配をしたほうがいいな
0201nobodyさん
2006/09/20(水) 20:12:01ID:???ttp://www.asahi-net.or.jp/~wv7y-kmr/memo/php_security.html#PHP_Session
0202nobodyさん
2006/09/20(水) 20:21:29ID:vCicRGZlPHPからはどのような手順や関数を使えばいいのでしょうか?
また、登録された画像を取り出したいときはどのようにしたらいいのでしょうか?
0203nobodyさん
2006/09/20(水) 20:30:20ID:???0204nobodyさん
2006/09/20(水) 20:34:08ID:???base64_encode()でバイナリ→文字列変換してそれをtext型のフィールドにinsert。
取り出しは逆にselectした結果をbase64_decode()でバイナリ変換。
辺りでいいんじゃない?
0205nobodyさん
2006/09/20(水) 20:38:54ID:AVQePo+Usession_start();はセッションを扱うページすべてに記述しなくてはならないのですか?
それとも、あるページに一回だけ記述しとけばいいのでしょうか?
0207nobodyさん
2006/09/20(水) 20:57:24ID:???0210nobodyさん
2006/09/20(水) 22:11:34ID:???メインスクリプト中にそのまま画像を出すことができないのでGETか何かで渡すのが一番簡単かと思いますが、
データ量が多くなった場合はセッションか何かを使うのがいいのでしょうか?
0211nobodyさん
2006/09/20(水) 22:16:00ID:???0212nobodyさん
2006/09/20(水) 22:48:18ID:???207じゃないけど、PHPでバイナリデータの文字列エスケープ処理なんて正常に動作すんの?
エスケープ処理できなきゃSQL文が壊れる場合があるし俺は怖くてバイナリそのままなんて書けないな。
あと、DBによっては強制的に文字コード変換かけるようなのもあるじゃない。バイナリ壊されるよね。
0214nobodyさん
2006/09/20(水) 22:57:58ID:???統計値か何かを計算して表にして表示するスクリプトがあるとしますよね。
表だけでは寂しいのでそれにグラフを表示させたい場合、メインスクリプトからどうやって
画像表示スクリプトにデータを受け渡すか、というような場合の話です。
画像表示スクリプト内で同じ計算をするのは無駄ですし、同時に表が出せませんよね(画像で作れないこともないけど)。
それともこういう構成は変なんでしょうか。
0216nobodyさん
2006/09/20(水) 23:07:41ID:???・メインスクリプトから画像生成スクリプトを呼び出し、
生成した画像のURLをHTMLに埋め込む。
・GET・セッションなどお好みの方法でデータを渡し、生成した画像を返す。
0217nobodyさん
2006/09/20(水) 23:35:29ID:???セッションが良い気がする
書き込み中に読み込んじゃうことないし
あとは画像がどういうデータから生まれたものか分かるように入力値のハッシュを識別子に使うとか
0218nobodyさん
2006/09/20(水) 23:46:35ID:Wdl0S+zkあるファイルを読み込んでそのファイルにデータを追加するというのを
作成したいのですが、書き込まれる内容は別ファイルにある中身に
したいのです。
$fp=fopen("$file_name","w");
fwrite($fp,"別ファイル");
上記の”別ファイル”の箇所に書き込み用変数が入るとします。
何か良い方法はないでしょうか?(別ファイルへのパスを書いても駄目でした。)
0219nobodyさん
2006/09/20(水) 23:55:01ID:???説明が抽象的で勘違いしてるかもしれないが
copyしてそれを追記openしてちょろっと書くだけでは?
requireってことはPHPコード?もしそうならob_start〜
0220218
2006/09/21(木) 00:04:32ID:???目的としてはフォーム(form.html)からファイル名(file_name)とタイトル(title)
を入力して送信(write.php)したら、そのファイル名のファイルが出来上がる。
その出来上がったファイル内には、別ファイルの内容+指定箇所が
フォームで入力したタイトルに入れ替わっているというやつです。
別ファイルの内容を変数に代入するのは
$tmp_file="templete.php";
$array = file($tmp_file);
$templete = join("",$array);
で出来まして、その後に>>218のソースを追記したら
新規ファイル内にtemplete.phpの内容が書き込まれているのですが、
フォームで入力した「タイトル」は変わっていないのです。
なのでソースが違うのかな?っと思った次第です。
0221nobodyさん
2006/09/21(木) 00:24:28ID:???テンポラリファイルかDBにデータを保存してファイル名やIDをGETで渡すとか。
で、画像生成プログラムが画像生成完了後にそのデータを削除。
0222nobodyさん
2006/09/21(木) 00:24:44ID:???そもそも説明で言ってる事が分からないし、そんな物を何に使うのかも分からん
"form.html""write.php""template.php"のコードを出すか、「エスパー回答希望」と言ってくれ
まぁ、何か盛大に勘違いして妙な事やってるのだけは理解した。
0223nobodyさん
2006/09/21(木) 00:28:43ID:???最初からテンプレートと言ってくれればw
面倒だから色々汲み取った上でサンプル書いちゃうよ
--- template.php ---
<?php
$username = "%REPLACE_USERNAME%";
$password = "%REPLACE_PASSWORD%";
コード略
?>
--- writer.php ---
<?php
$replace_rule = array("%REPLACE_USERNAME%" => "218", "%REPLACE_PASSWORD%" => "1234");
$tmpl = file_get_contents("template.php");
$fp = fopen("result.php","w");
fputs($fp, strtr($tmpl, $replace_rule));
?>
>>221
削除するのは生成側じゃなくて表示側では
0224221
2006/09/21(木) 00:28:52ID:???渡すデータが大きくなった場合にどうするかって話で何故GETが選択肢に入るの?
>>217
セッション使うと同じページを2枚とか3枚とか表示させたとき、
どのデータで画像を生成するのか判別するのが複雑にならない?
こういう場合ではデータIDをページ表示毎に生成した方が都合よさげな気が。
0225221
2006/09/21(木) 00:30:48ID:???表示側=画像生成プログラム だと思うんだが違う?
<img src="画像生成プログラム?データ識別ID">
って形で呼び出されるもんだと思ってるんだけど。
0227nobodyさん
2006/09/21(木) 01:01:26ID:???BLOB型のカラムにすればバイナリのまま入れられるでしょ。
0228nobodyさん
2006/09/21(木) 01:34:59ID:k7zFBu8vなぜか勝手に改行コードが一つ削除されてしまいます。
具体的には、たとえば先頭に改行(エンターキー)3つ置き、
その後に文章が続くものをPOSTし、それを受け取って表示してみると
改行が2つに減っているのです。逆に文章の末尾にある改行コードは影響を受けません。
これはどうしてなのでしょうか?
ちなみに上記において、受け取ったPOSTデータは、変換やエスケープを一切せずに
表示しても、やはり先頭にある改行が一つ勝手に削除されてしまいます。
phpのバージョンは4.3.1です。
0231228
2006/09/21(木) 01:48:37ID:k7zFBu8vたとえばmixiのプロフィール変更画面で、「自己紹介」の欄(textarea)にて
先頭部分でエンターキーを2回押して改行を2つ入れてから本文を書いたとします。
それで「変更ボタン」を押すと、当然プロフィールには、たった今POSTした内容(改行2つ+本文)が反映されています。
ところが、その状態で再度プロフィール変更画面に行ってみますと、
なぜか自己紹介欄textareaの改行が1つに減っています。そのまま何を手を加えずに「変更ボタン」を
押しますと、当然のことながらプロフィール画面に反映される先頭の改行は1つに減っています。
ここでまたプロフィール変更画面に行きますと、また改行が1つ減っています。
すなわち、こうやって繰り返していると、一番初めに入力したはずの改行は0になってしまうのです。
mixiでも発生する現象だということは、PHPの問題ではなく
HTMLの問題(仕様?)なのでしょうか・・・。
0232228
2006/09/21(木) 01:50:09ID:k7zFBu8v>>231で書きましたように、mixiで再現できますので、お試しください。
>>230
Perlを使っているmixiでも再現できたので、PHPのバージョンの問題ではないと思われます。
0233nobodyさん
2006/09/21(木) 01:50:30ID:???0234228
2006/09/21(木) 01:52:15ID:k7zFBu8vたしかにその可能性もありますね。
当方のブラウザはIEの最新版です。
0235nobodyさん
2006/09/21(木) 02:03:59ID:???あー、了解。mixiで再現できた。これはHTMLかブラウザの問題だね。
送信後のデータ受け取りじゃなく、ページの表示の時点で消えてる。
<textarea name=hoge>
<?php echo $hoge ?>
</textarea>
なら多分問題は出ないと思うよ。(最初から前後に改行を含めた書き方)
ところが
<textarea name=hoge><?php echo $hoge ?></textarea>
と書くと、$hogeの最初の改行をブラウザが無視してくれてる。
これってどっちの問題なんだろ…俺も後者の書き方がHTML的には正しいと思ってたんだが。
IEのこのHTML解釈って何かおかしくないか?
0236235
2006/09/21(木) 02:13:46ID:???ってことで<textarea>の直後は必ず改行が正しいことになってるのかも。
余談だが、Firefoxでは
<input type=hidden name=hoge value="
データ
">
みたいな改行を含むhiddenデータは前後の改行が除去されて送信されるw
おかげでmixi(確認/キャンセルのデータ受け渡しをセッションでなくhiddenで行っている)では
先頭1行どころか10行分だろうと先頭の空行が丸ごと無視されるという結果になった。
0237228
2006/09/21(木) 02:14:54ID:k7zFBu8vたしかに前者の書き方ですと、>>231の問題は解決されますね。
ただその代わりに、今度は余計な改行が常に1つ、先頭に発生してしまいます。
(最初から改行を含めてるので当然ですが・・・)
たとえば前者の書き方をしておいて、textarea($hoge)が空の状態でマウスカーソルを置くと、
1行目が空行で、2行目からカーソルが始まってしまいます。
つまり1行目の改行が勝手に付いてしまっている状態ですので、今度はそれを消す手間が出てしまいます。
><textarea name=hoge><?php echo $hoge ?></textarea>
>と書くと、$hogeの最初の改行をブラウザが無視してくれてる。
そうですね。無視したあげく、再POSTの際には無かったことになっています。
>IEのこのHTML解釈って何かおかしくないか?
もしこれがIEだけでの現象だとしたら、
完全にIEの解釈がおかしいですよね。。。
0238228
2006/09/21(木) 02:24:28ID:k7zFBu8vFireFoxでも同じ結果でしたか。。。
でも、
><textarea>の直後は必ず改行が正しいことになってるのかも。
・・・だとしたら、私が>>237で書きましたように、
空のtextareaには必ず先頭に空行が1つ出来てしまうわけで、
かなり気持ち悪いですよねぇ・・・。
0239235
2006/09/21(木) 02:25:24ID:???> たとえば前者の書き方をしておいて、textarea($hoge)が空の状態でマウスカーソルを置くと、
> 1行目が空行で、2行目からカーソルが始まってしまいます。
ごめん。これはうちじゃ再現しない。
<textarea name=hoge>
</textarea>
って状態のHTMLでカーソルが2行目に移動できる、って意味だよね?
Windows IE6、Firefox1.0.4どっちでも再現しなかった。
0240228
2006/09/21(木) 02:32:32ID:k7zFBu8v<textarea name=hoge>
</textarea>
・・・なら問題は無いのですが、mixiのプロフィール変更画面のような使い方をする場合、
実際にはスクリプト内では下記のようになると思います。
echo "
<textarea name=hoge>
$hoge
</textarea>
";
このとき、$hogeに何も入っていないと、出力されたHTMLは
<textarea name=hoge>
</textarea>
となってしまい、空の$hogeの分がぽっかり空行1つになってしまうのです・・・。
(※ちなみにこれはmixiでは再現できません。mixiではプロフを空欄に出来ない仕様なので)
0241nobodyさん
2006/09/21(木) 02:36:40ID:???あー、すまん。
<textarea name=hoge>
$hoge</textarea>
って書き方にしてみてくれ。
0242228
2006/09/21(木) 02:40:15ID:k7zFBu8vあっっ、それで解決しました!!
・・・そうですよね、冷静に考えたら、もし$hogeが空だったときに
<textarea name=hoge>
</textarea>
という形にするには、$hogeの後ろの改行を無くせばいいだけでしたね。。。
頭が混乱しててそんな単純なことにも気がつきませんでした。
>>241さん、ありがとうございます!!
(それはともかく、やっぱりブラウザの解釈はおかしい部分がありますよねぇ…)
0243nobodyさん
2006/09/21(木) 02:43:01ID:???2大ブラウザで同じ解釈するんならスタンダードは<textarea>の次は改行なんだろうさ。
0244228
2006/09/21(木) 02:49:48ID:k7zFBu8vということは、W3Cだか何かで、textareaタグの後には必ず改行を
入れるべし・・・などと定めてるんでしょうか?
もし仮にそうだとしても、
<textarea name=hoge>hoge</textarea>
って書いた場合に、勝手に先頭の改行コードを1つ削除する…という動作の意図がよく分かりませんね。。。
0245nobodyさん
2006/09/21(木) 02:51:10ID:???つ[ttp://www.hyuki.com/diary/dia0402.html#i15_16]
>SGMLでは開始タグの直後、終了タグの直前のline breakは無視しなければならない
0246228
2006/09/21(木) 03:03:59ID:k7zFBu8vそれズバリですね!! ありがとうございます。
しかしそれにしても人間に優しくない規則というか、
あまり直感的じゃない決まり事だなぁ・・・。
特にプログラミングする時は、
<textarea name=hoge>{$body}</textarea>
とかって書きたい時もあるのに。。。
0247nobodyさん
2006/09/21(木) 03:08:52ID:???ttp://www2u.biglobe.ne.jp/~fsasaki/WikiFan/wiki.cgi?WalWikiBugTrack%2f012
>各 Web ブラウザの動作状況
こういうのを見てどうするかは自分で考えればいいかと。
0248nobodyさん
2006/09/21(木) 03:33:22ID:???おお…、まさにこのスレでの今回のやり取りと全く同じことが漏れなくまとめられてるw
でもこの問題、意外と話題にならないよね。
少なくとも過去、このくだ質スレで今回のような話題を見かけた記憶がない。
0249235
2006/09/21(木) 04:04:15ID:???SGML的に
「開始タグの直後、終了タグの直前のline breakは無視しなければならない」
ってのは確かに聞いたことあるけど、実際には改行って全然無視されてなくて、
例えば
hoge<span>
aho
</span>hoge
は
hoge aho hoge
みたいに空白が空いて表示されるよなw
しかも、>>247のレポートでも触れられてるけど
> その結果、興味深いことがわかりました。
> それは、「テキストエリア textera の場合タグの直前の改行は削除されない」という事実です。
という中途半端っぷりだし。
気付かないと結構ひっかかりそうな問題だよなー。
うん、いい勉強になったわ。
0250235
2006/09/21(木) 04:08:00ID:???<textarea name=hoge>
<?php echo $hoge ?>
</textarea>
という最初(>>235)の書き方で多分問題ないんだわ。
>>240みたいに "〜" の中で変数展開の書き方だと
</textarea>の前の改行が問題になっちゃうのな。
0251nobodyさん
2006/09/21(木) 06:21:28ID:yxCjYnZVヘッダー関数は絶対URLで書けとどこかできいたのですが、
この場合でも相対パスは使っちゃいけないのでしょうか?
0252nobodyさん
2006/09/21(木) 06:25:41ID:???Refreshの使用はそもそも、推奨されません。
(W3Cのドキュメントより)
だいたい、それだと、例えば、セキュリティレベルを高にしているIEだと何も表示されないですよ
0254nobodyさん
2006/09/21(木) 12:58:17ID:???うん、意外と重要な情報だと思うけど、滅多に話題に上らないね。
原因は、ブラウザの解釈が徹底してない(というかHTMLの仕様自体が曖昧?)のと、
textarea以外ではその現象が発生しにくい(しない?)から誰も気付かないんだろうね。
0255nobodyさん
2006/09/21(木) 14:15:19ID:???これからもだけど
0256nobodyさん
2006/09/21(木) 14:17:23ID:???それを再度textareaで表示した上で再投稿した場合だからな。
結構気づきにくい問題だよ、これ。
0257nobodyさん
2006/09/21(木) 14:23:49ID:v8Pew90xセッションにフラグ用変数を与えて、フォームのアクションで再帰的に読み込んで
スイッチ文でそれぞれのページにリダイレクトしてるんだが
なんだかまどろっこしい
もっとスマートな方法はないものか。
0258nobodyさん
2006/09/21(木) 14:28:23ID:???それはページ遷移判定のロジックが分からんという話であって
リダイレクトの方法が分からんのとは全然話が違うと思う。
というわけでロジックの話ならコードを実際に見せないと
回答のしようがないと思うぞ。
いったいどんだけへんてこなコード書いてるんだよ。
0259nobodyさん
2006/09/21(木) 15:54:33ID:???例えば、IP+HOST+ブラウザ情報のmd5ハッシュ値を求めて最初の5桁を使うなんてのはどうでしょうか?
自分で言うとc0b52f5db6481563916e30da43495e56で最初の5桁はc0b52になりますが、被る人なんてかなり確率低いですよね?
これよりももっといい方法あるでしょうか?
0260nobodyさん
2006/09/21(木) 16:08:38ID:???絶対被らない を求めるなら
かなり確率低い じゃだめなんじゃ・・・
適当に作って発行したIDを保存して
とかじゃだめなの?
md5の最初5桁くらいなら被りそうだ
0262nobodyさん
2006/09/21(木) 16:15:35ID:???簡単確実な方法は
データを数値で保持しておいて
IDを発行するたびにシーケンシャルに数値を上げていくのが
確実だろうね。
同時にIDを発行した時とかのために排他ロック
は必要だろうけど。
0263nobodyさん
2006/09/21(木) 16:28:39ID:25o/CiRu昨日>>180の質問をしたものです。
呼び出しのサンプルです。
<?php
mail('[email protected]','test','test');
?>
以上です。特に問題があるように思えません。
前にも書きましたが、php.iniには、以下が書いてあり、sendmailを直接telnetで操作すると、きちんとリレーされてきます。(つまりtelnetでならメールが出せる)
sendmail_path /usr/sbin/sendmail -t -i
特に原因が思い当たりません。知恵をお借りしたいです。
0264nobodyさん
2006/09/21(木) 16:29:31ID:25o/CiRumail()やmb_〜をコールすると、そのまま戻ってこないので、エラーも表示されてません。
0265257
2006/09/21(木) 16:58:16ID:???流れ的にはこんな感じ。
0266nobodyさん
2006/09/21(木) 16:59:25ID:yxCjYnZV入力されたデータを書き込む前の加工はどのページで行うのがふさわしいでしょうか?
0267nobodyさん
2006/09/21(木) 17:02:47ID:???おれもメール関数でめちゃくちゃ悩んで1ヶ月ぐらいしてあきらめたときがあった。
そんときの解決策。
to,サブジェクト、本文の他にFromも設定してあげたらうまくいった。
たったそれだけだけど、こんなことで1ヶ月も悩んだ。
ためしてみな。これでもだめなら別の回答者が現れるのをまつ。
0268nobodyさん
2006/09/21(木) 17:09:25ID:???ちと、商品数が増えてきて、しんどくなってきた悪寒
0269nobodyさん
2006/09/21(木) 17:10:45ID:???ttp://www.php.net/manual/ja/function.mail.php
にfromなきゃ駄目って書いてあるな・・
マニュアル嫁
ソース晒せ
ってのを守ればもうちょっと早かったはず
0270nobodyさん
2006/09/21(木) 17:10:47ID:???対処法ありますか??
0271nobodyさん
2006/09/21(木) 17:12:36ID:???0274nobodyさん
2006/09/21(木) 17:39:57ID:25o/CiRuなるほど。早速試してみます。
0275nobodyさん
2006/09/21(木) 17:48:19ID:???MysqlのVARCHAR(10)のDefaultがNOT NULLってあるんですけど、これは
どういうときにNOT NULLを使うのでしょうか?
0276nobodyさん
2006/09/21(木) 17:56:51ID:fiT61BpR$result = mysql_query("SELECT id FROM table1");
while($r = mysql_fetch_array($result)){
echo "$r['id']:";
$result2 = mysql_query("SELECT row1 FROM table2 WHERE id = $r['id']");
while($r2 = mysql_fetch_array($result2))
echo "$r2['row1'] ";
}
と同様のことを、よりスマートに行う方法ありませんか?
table1からは200件程度取り出します。
0277nobodyさん
2006/09/21(木) 17:58:20ID:???0279nobodyさん
2006/09/21(木) 18:41:11ID:???だれかこんなおいらに分かりやすい説明をぷりーず
0281nobodyさん
2006/09/21(木) 18:48:20ID:25o/CiRu残念ながら関係ありませんでした・・・fromなくっても動きました・・・
0282nobodyさん
2006/09/21(木) 18:52:45ID:yxCjYnZVまたはsession_destroy();で破棄するべきでしょうか?
あるサイトでarray()で初期化しろとうたっているページを発見したのですが、
配列でセッション変数を初期化したほうがいいのでしょうか?
ご指摘お願いいたします。
0283282
2006/09/21(木) 19:04:35ID:yxCjYnZV$hoge=セッション変数;←$hogeにセッション変数代入
session_destroy();←ここでセッション破棄
これがエラー(Notice: Undefined index: hoge)として帰ってきてしまいます。
セッションを破棄したことで、$hogeには何も入ってないからでしょうが、
どう記述していいのかわかりません。
0284えがみボンバイエイ
2006/09/21(木) 19:07:17ID:???こういうサイト作り中なのですが、文字化けしてしまいまして、文字コード変換を教えてもらいたいです。
ソースは
<?php
//URL
$url = array("http://yahoo.co.jp","http://www.bb-chat.tv/","http://www.snsnavi.jp/","http://mixi.jp","http://livedoor.jp","http://iki.2ch2.net/");
//$url配列を一個づつ処理
foreach ($url as $value){
//メタタグの内容を取得
$array = get_meta_tags($value);
//メタタグの内容を表示
echo "<p>サイト名(サイトへリンク):"."<a href=".$value.">サイト名</a>";
echo "<p>サイトのサムネイル:<img src=".'http://img.simpleapi.net/small/'.$value." >" ;
echo "<p>はてなブックマーク数:<img src=".'http://b.hatena.ne.jp/entry/image/'.$value." >" ;
echo "<p>サイトの内容:".$array["description"];
echo "<p>サイトのキーワード:".$array["keywords"];
echo "<hr />";
}
?>
で、echo "<p>サイトの内容:".'mb_convert_encoding( $array["'.'description'.'"],"Shift-JIS","auto")' ;
みたいにすればいいのかなと思うのですが、どうもうまくいきません。。。
0286nobodyさん
2006/09/21(木) 19:12:37ID:???autoの判定が怪しくなるんじゃないの?
0287nobodyさん
2006/09/21(木) 20:15:22ID:8hLu55dO0288nobodyさん
2006/09/21(木) 20:19:45ID:???http://www.google.com/search?num=50&hl=ja&inlang=ja&ie=Shift_JIS&oe=Shift_JIS&safe=off&q=get+%2B%22%3D%26%22+php&lr=lang_ja
0289287
2006/09/21(木) 20:20:24ID:yxCjYnZV>>287へ
0290nobodyさん
2006/09/21(木) 21:29:24ID:???ビット演算子
ttp://www.php.net/manual/ja/language.operators.bitwise.php
このページ見てもビットちんぷんかんな俺には分からないけどな
0291nobodyさん
2006/09/21(木) 21:33:52ID:???http://www.php.net/manual/ja/language.references.whatdo.php
0293nobodyさん
2006/09/21(木) 22:24:48ID:yxCjYnZVエラー1067がでて起動できません。
文字コードがsjisだと問題なく起動できるのですが、
eucにするのは無理でしょうか?
0295nobodyさん
2006/09/21(木) 22:39:54ID:???0296nobodyさん
2006/09/21(木) 22:45:48ID:???0297nobodyさん
2006/09/21(木) 23:19:45ID:???0298293
2006/09/21(木) 23:37:31ID:???お騒がせしました。
0299nobodyさん
2006/09/21(木) 23:42:18ID:wtB1wQTqhttp://2ch.net/ → <a href="http://2ch.net/">http://2ch.net/</a>
<a href="http://2ch.net/">http://2ch.net/</a> → <a href="<a href="http://2ch.net/">"><a href="http://2ch.net/"></a>
$str = eregi_replace("([^=\"])http://([a-z0-9\_\-\./~@?=&-\#]+)([^<\"])", "\\1<a href=http://\\2 target=_blank>http://\\2</a>\\3", $str);
$str = eregi_replace("([a-z0-9\_\-\.]+)@([a-z0-9\_\-\.]+)", "<a href=mailto:\\1@\\2>\\1@\\2</a>", $str);
これだと、時々判定漏れで可笑しくなってしまいますorz
0301nobodyさん
2006/09/22(金) 00:38:03ID:???そんな面倒が嫌だから、リンクを作ったりテキストを弄るのは表示直前なんだよ
確実にやりたいならリンクを戻すことから始めりゃいんじゃない。
0302nobodyさん
2006/09/22(金) 01:07:04ID:???真面目にやるならこんな感じ
ttp://www.din.or.jp/~ohzaki/perl.htm#AutoLink
0304nobodyさん
2006/09/22(金) 02:11:15ID:???0305nobodyさん
2006/09/22(金) 02:16:31ID:???さらっとかどうかは知らんけど
echo strtotime(preg_replace('/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/', '\1-\2-\3 \4:\5:\6', $str));
くらいのもんじゃないの?
0306nobodyさん
2006/09/22(金) 02:33:23ID:0rl6NvDWログイン情報としてsession()を、掲示板の名前等を記憶されるためにsetcookie()を
同じスクリプト内で使いたいのですが、上手くいきません。どちらかだけだと大丈夫なのですが、
両方使う場合にはどうしたら良いのでしょうか?
0307nobodyさん
2006/09/22(金) 02:38:27ID:???両方SESSIONじゃダメなの?
ってか掲示板の名前を覚えさせる必要って言うのはあるのかな?
POSTとかで事足りる希ガス
0308nobodyさん
2006/09/22(金) 02:48:57ID:0rl6NvDWすいません、説明が不十分でした。
掲示板の名前っていうのは投稿した際のHNとかのことです。
0309nobodyさん
2006/09/22(金) 02:49:43ID:???サンクス
$yyyy = substr($src_date, 0, 4);//年
$mm = substr($src_date, 4, 2);//月
$dd = substr($src_date, 6, 2);//日
$hh = substr($src_date, 8, 2);//時
$mm = substr($src_date, 10, 2);//分
$ss = substr($src_date, 12, 2);//秒
なんて面倒なことをするとこでした。
0310nobodyさん
2006/09/22(金) 02:56:03ID:X1gmluk1配列である$linesの要素から、正規表現でマッチした配列の要素を削除する
方法が思い浮かびません。これはどうしたら出来るでしょうか?
preg_replace ('/^$/', '', $lines) だと、空文字列 ('') に置換できますが
配列の要素自体を取り除くことはできませんでした。
0311310
2006/09/22(金) 03:01:16ID:X1gmluk1ごめん。
マニュアルのArray見るの忘れてた。これでイケるかな。
0312270
2006/09/22(金) 03:07:31ID:cF1a5TbS普通にそれでググってもなくない??
auの絵文字を実体参照に変えるやりかた
0313nobodyさん
2006/09/22(金) 04:10:46ID:???http://ns1.php.gr.jp/pipermail/php-users/2004-November/024085.html
0314nobodyさん
2006/09/22(金) 06:52:44ID:???foreach(range(0, count($lines) - 1) as $i) {
if(preg_match('/条件/', $lines[$i])) unset($lines[$i]);
}
0316nobodyさん
2006/09/22(金) 09:04:42ID:6cSapPbrPHP Version 4.3.10-16 です。OSはLinuxです (Debian 3.1)
以下のようなスクリプトを実行すると、
echo strtr('abc', 'b', 'B')."\n";
echo strtr('abc', array('b' => 'B'))."\n";
echo "\n";
echo strtr('abc', 'b', '')."\n";
echo strtr('abc', array('b' => ''))."\n";
以下のような結果になるのですが、
aBc
aBc
abc
ac
なぜ、三行目は「ac」にならずに「abc」と表示されるのでしょうか。
説明書を見てもそうなるとは書いてないように読めるのですが。
参考資料などありましたら教えてください。
0317nobodyさん
2006/09/22(金) 09:38:17ID:???0318nobodyさん
2006/09/22(金) 09:45:26ID:???> string strtr ( string str, string from, string to )
> この関数は str を走査し、 from に含まれる文字が見つかると、そのすべてを to の中で対応する文字に置き換え、 その結果を返します。
「対応する文字」だと書いてある。
ちなみにソース上では、fromの長さとtoの長さのMIN、つまり小さいほうをとってそこまでの長さ分しか処理してない。
まあ、toに空文字を指定したらfromに含まれる文字を全部削除、みたいな仕様のほうが便利だろうけどね。
俺の経験上strtrってそんなに使用頻度の高い関数じゃないし、何かperl由来の事情か何かあるんじゃね?
0319nobodyさん
2006/09/22(金) 10:04:52ID:???strtrのもとは、perlのtr演算子、そのもとになってるのはUNIXのtrコマンドだろうけど、
確かに、それらには空文字だから削除するなんて仕様はないからこの動作のほうが自然化。
納得。(Perlだと、tr/b//d としないと削除しない)
アメリカ人が書いたPHPスクリプトに、あたりまえのように
strtr($hoge, array("\n" => "", "\r" => ""))
とか使われていたので、ついうっかりしてしまった。
どうもありがとう。
0320nobodyさん
2006/09/22(金) 10:12:59ID:???どこの誰だw
0321nobodyさん
2006/09/22(金) 10:27:18ID:???,.r " 、 ` 、
/ )、、 \
/ ノ ヽ ヽ、
/ ル' ヾ ヽ
/ / ゙i, ゙i
j ,ィ/ ゙i, |
lィ' ,ィ/j/ | iリ
| /l / '"` | |l
リ! ./,ノ _,、=''''`ヘ ,リ
゙! l/ ,:-ー=‐-ミ、,,_,.ノ /(::ノ-‐)ーV´
ヽ,/`ヽヽ .ト、 (;:ソ-‐)- 、,-トi´ ,ノ
, ヘ ゙iヽl `ヽ,r'´ ノ ヾー--‐''゙i
,,.く ゙i ゙i ヽ、 __,,、-'" 〉 ,!
ハ'´ ゙! ゙i ,! ´ ´ ./.......,,,,,,,,____/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
゙、゙i,__r'゙゙>ー┬-!_j _______ , /;\;;;;;;;;;;;;:;;;;| 私はムスカ大佐だ。
,゙V" ゙ヽ;;;! l ゙!、 ゙ー一'''''"´ /;;;;;;;;ヽ;;;;;;;;< 呼んだかい?
,.:r''";;;;ヽ. - ''^゙~ ゙ヽ,ヽ ,,.、-─‐- .,/;;;;;;;;;;;;;ヽ;;;;;;;;;;|
,.:r'''";;;;;;;/;;r'´ -‐‐'''"´~ヽ\ (.r‐'''""゙"''''y.);;;;;;;;;;;;;;;;〉;;;;;;;\_____________
;;;;;;;;;;;;;;;;;l;;;| _,,..、-‐^ヾ゙ヽ、 _,,ヽ ,/'゙!;;;;;;;;;;;;∠、;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;j;;;;| ,⊥, ゙i :レ' ゙!;;;;;;;;;;;;;;;;|;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;!;;;:;| -‐''"´ ゙)ゝ、、 ! !. !;;;;;;;;;;;;;;;;!;;;;;;;;;;;;;;;;;;;;
0322nobodyさん
2006/09/22(金) 10:35:15ID:???echo strtr('abc', 'b', '')."\n";
echo strtr('abc', array('b' => ''))."\n
の違いがよくわからない私に分かりやすく教えてくれませんか。
0324nobodyさん
2006/09/22(金) 10:53:46ID:???0325nobodyさん
2006/09/22(金) 11:03:32ID:???それに慣れてる人が互換コマンドとして使えばいいものであって、
そうでない人まであえて使う必要はそれほど無いだろう。
でもtrのPHP版での拡張モード(配列で複数ワードを指定し、多重変換は抑止してくれる)は
str_replaceで同じことするのも案外面倒くさくて、結構便利な関数だよ。
0326nobodyさん
2006/09/22(金) 11:09:39ID:???> 説明書を見てもそうなるとは書いてないように読めるのですが。
> 参考資料などありましたら教えてください。
ttp://www.php.net/manual/ja/function.strtr.php
> from と to の長さが異なる場合、長い方の余分な文字は無視されます。
じゃ参考になりませんか。
0327nobodyさん
2006/09/22(金) 11:24:33ID:???str_replaceも配列とって重複避けるモードもあるし、こっちのほうが一般的じゃないか?
PearもZFもこのスレで登場するのもstr_replaceが圧倒的に多数かと思う。
引数のとり方が違うから状況に応じて使い分けりゃいいんだけどね。
0329nobodyさん
2006/09/22(金) 11:38:32ID:???前者は文字単位の指定方法で、この指定では変換対象の文字が無いから無視される。
後者は単語単位の指定方法で、ちゃんと変換単語("")が指定されているから機能する。
そんだけ。
0333270
2006/09/22(金) 14:03:28ID:???http://mlmlml.nobody.jp/sample/AuBuiltInIconConvertor.txt
リンク先じゃなくてここのことですよ?
0334332
2006/09/22(金) 16:08:59ID:???見れるよ。別にあんたと見れる見れないの論争をするつもりはない。
あんたは見れないが俺は見れるんだろ。別に俺は困らん。
0341nobodyさん
2006/09/22(金) 19:21:51ID:???0343nobodyさん
2006/09/22(金) 19:36:45ID:S0P77otq自分は普通に、Excel使っているけど、複数人で一つのチェックシートを使う場合
Excelだと不便を感じる。
↓こんな感じのものはPHPで転がってないですかねぇ?
http://tomo.s217.xrea.com/griwiki2/griddata_list.php?id=demo1&category=2&page=4
0344270
2006/09/22(金) 19:39:08ID:???確かにあまりつかいがって良くないかも
0345nobodyさん
2006/09/22(金) 20:13:30ID:???こんなくだらんことにも気づけなかったくせに教えてくれた人に礼も無しとはな。
0346nobodyさん
2006/09/22(金) 21:11:07ID:???あ、こいつ(頭が)足りないな…
とは思っていたがw
0347nobodyさん
2006/09/22(金) 21:25:54ID:???ソースの確認すら出来てないと思うぜ
0350nobodyさん
2006/09/22(金) 21:55:58ID:???0351nobodyさん
2006/09/22(金) 23:10:11ID:aEgPknQ10353351
2006/09/22(金) 23:17:56ID:aEgPknQ1なるほど、それなら自分の打ちやすい方でいいのですね。
fwriteが5byteでfputsが4byteなのですが、それの違いによる動作速度の差などは生じたりしますか?
0355nobodyさん
2006/09/22(金) 23:24:59ID:???0356nobodyさん
2006/09/22(金) 23:55:51ID:???0357nobodyさん
2006/09/22(金) 23:57:46ID:???0358nobodyさん
2006/09/23(土) 00:08:06ID:???たとえば、
http://www.livly.com/mypage.php?uid=1Q9u
から
http://www.livly.com/mypage.php?uid=3Q9u
のなかの
http://www.livly.com/item/musikui.swfが含まれているswfを表示するようなスクリプトです、
宜しくお願いします。
0360351
2006/09/23(土) 00:30:44ID:TznJyQfl遅くなりました。
ではなれてるfwriteを使っていこうと思います。 どうもありがとうございました。
0361nobodyさん
2006/09/23(土) 01:28:21ID:???まぁ>>270はかなり痛いということがわかった。
0362nobodyさん
2006/09/23(土) 02:07:09ID:oZb6fCvN$TEST = array("ASP", "Perl", "PHP", "SSL", "HDML");
$RESULT = array_splice($TEST,3,2,"Ruby");
print_r($RESULT);
このようにすれば
「ASP,Perl,PHP,Ruby」
のような結果が得られると思ったのですが・・・。
なぜかブラウザには
「SSL,HDML」
が出力されます。。。
これは単に私の勘違いなのでしょうか?><;
どなたか解説の方お願いします。
0364nobodyさん
2006/09/23(土) 02:46:16ID:???「ASP,Perl,PHP,Ruby」になったのは変数$TEST。
$RESULT = array_splice($TEST,3,2,"Ruby");
じゃなくて
$DELETE_VALUE = array_splice($TEST,3,2,"Ruby");
って書けば意味分かる?
array_spliceはarray_pushやarray_shiftとかと同じで第一引数を直接編集するもの。
0365363
2006/09/23(土) 02:51:38ID:???マニュアルには
http://jp.php.net/manual/ja/function.array-splice.php
削除された要素で構成される配列が返されます。
とある
例 1. array_splice() の例
を見ても戻りを使ってないっしょ
0366nobodyさん
2006/09/23(土) 05:45:46ID:???Shift_JISで書き込まれるようなのですが、
UTF-8で書き込みしたいです。
文字コード指定などはどのようにやればできるのでしょうか?
0367nobodyさん
2006/09/23(土) 05:55:42ID:???0369えがみボンバイエイ
2006/09/23(土) 08:53:04ID:???メールフォームを作っているのですが、
色んなサンプルソースを使ってやっているのですが
どうしても自分のgmailで受信すると全部文字化けをしてしまいます。
色んなソースを使っているので、
ソースのせいではないのかなと思うのですが。。
宜しくお願いします。
0371えがみボンバイエイ
2006/09/23(土) 09:30:30ID:???そうですね。すみませんでした。
mail.phpが
<form action="http://ega.chu.jp/dai/sendmail.php" method="post">
<input type="hidden" name="_email" value="[email protected]" />
<input type="hidden" name="_subject" value="お問い合わせだお" />
<input type="hidden" name="_result"
value="<?php print($_SERVER['PHP_SELF']); ?>" />
<table width="90%" border="0" align="center" cellpadding="5" cellspacing="5">
<tr>
<td width="34%"><div align="center">お名前</div></td>
<td width="66%"> <div align="center">
<input name="name" type="text" size="40">
</div></td>
でもろもろ・・・。
sendmail.phpが
<?php
$header_info="From: ".$_POST['_from']."\nContent-Type: text/plain;charset=ISO-2022-JP\nX-Mailer: PHP/".phpversion();
$body="■■".$_POST['_subject']."■■\n\n";
foreach($_POST as $key=>$value){
if(!strstr($key,"_")){
$body.="[".$key."]".$value."\r\n";
}
}
mb_send_mail($_POST['_email'],$_POST['_subject'],$body,$header_info);
header("Location: ".$_POST['_result']);
?>
って感じなのですが、メールは届くのですがどうしても文字化けで受信してしまいます。
0372nobodyさん
2006/09/23(土) 09:51:53ID:???別名、PHP×2ってくらいで、ダメダメなの?
使っている人は居ますか?
0373nobodyさん
2006/09/23(土) 11:02:25ID:???敵意を抱いたり、攻撃したりする
連中が多いって本当?
0375nobodyさん
2006/09/23(土) 11:33:21ID:???php.iniで適切なmbstring.languageが設定されてないんじゃないの?
sendmail.phpで
mb_language("Japanese");
って1行入れてみたらどうだろ。
可能であれば、受信メールの生データをエディタで開いてみて
ヘッダ部分の文字コード指定が何になっているかと、
実際の本文の文字コードが何になっているかを
調べた方がいいと思うけど。調べられるなら。
0376えがみボンバイエイ
2006/09/23(土) 12:17:29ID:???なるほど!
有難う御座います。
やってみます!
0377えがみボンバイエイ
2006/09/23(土) 12:28:55ID:???おっ、内容は表示されたのですがメール文が
名前に名前、フリガナにフリガナ、会社名に会社名と
入れれるとこういったメールがきます。
最初の??,?笋す腓錣擦世??と?mname?nなどは
どうしたらいいのでしょうか。。。
宜しければお願いします。
??,?笋す腓錣擦世??
?mname?n名前
?mhurigana?nフリガナ
?mkaisyamei?n会社名
0378nobodyさん
2006/09/23(土) 12:33:30ID:???「敵」
と勝手にみなした相手に
法律無視でサーバーにアタック
しかけたりとか、そういう連中が多いの?
0379nobodyさん
2006/09/23(土) 12:51:13ID:???(1)「自分よりもコーディングスキルが低い(=低能)」
でなおかつ
(2)「それにも関わらず自分よりも高額の報酬を得ている」
と勝手にみなした相手に対して心の底から敵意と憎しみの
感情が湧いてきて、法律無視で勝手にサーバーに
アタックを仕掛けたりとか、そういう連中が多いの?
0381nobodyさん
2006/09/23(土) 13:10:26ID:???凄い勘で書くけど、ISO-2022-JPっぽくない文字化けのような気がする。
どっかがUTF-8とかになってたりして色々混ざってるんでは?
文字コードのこととか、ちゃんと把握してるんでしょうか。
送られたメールの生の文面の見方とかわかりますか?
Gmailだったら、メール開いて詳細オプションを選んで、
出てきたメニューから「ヘッダー情報を表示」
自分で、(Outlookとかを使って) 手で、「正しいメール」を書いて
Gmailに送って、それとPHPが出したメールを比較してみたらどうです?
0382nobodyさん
2006/09/23(土) 13:36:22ID:???> 自分で、(Outlookとかを使って) 手で、「正しいメール」を書いて
Outlook は、正しいメールを出さないから止めた方がいいよ。
Message-Id と BASE6Bエンコードの方法に間違いがあるし、添付ファイルのファイル名のエンコードにも間違いがある。
そのため、RFC準拠の正しいMUAとやりとりすると問題が生じる。
0383382
2006/09/23(土) 13:38:59ID:???最近、OEとの互換性よりもRFC準拠を重視して、Thunderbird トップページで理由を表示した上で、
Outlook で表示できない RFC準拠の正しいファイル名エンコードをするようにした。
http://www.mozilla-japan.org/products/thunderbird/
シェアNo.1 のクライアントを犠牲にしてでも、RFC準拠の正しいエンコードを行う、この精神は大変素晴らしいものだと思う。
0384nobodyさん
2006/09/23(土) 13:54:10ID:???(1)「自分よりもコーディングスキルが低い(=低能)」
でなおかつ
(2)「それにも関わらず自分よりも高額の報酬を得ている」
と勝手にみなした相手に対して心の底から怒りと敵意と憎しみの
感情が湧いてきて、法律無視で勝手にサーバーに
アタックを仕掛けたりとか、そういう連中が多いの?
0385nobodyさん
2006/09/23(土) 14:40:02ID:???LXXXI. その他の関数(Misc) - highlight_string()
こんなのまで用意してあるのか
0386nobodyさん
2006/09/23(土) 15:33:44ID:???(1)「自分よりもコーディングスキルが低い(=低能)」
でなおかつ
(2)「それにも関わらず自分よりも高額の報酬を得ている」
と勝手にみなした相手に対して心の底から怒りと敵意と憎しみの
感情が湧いてきて、法律無視で勝手にサーバーに
アタックを仕掛けたりとか、そういう連中が多いの?
0387nobodyさん
2006/09/23(土) 16:01:47ID:???0388366
2006/09/23(土) 16:57:09ID:???レス遅れてすみません。
大変参考になりました。
ちゃんとUTF-8になりました。
どうもありがとうございました。
0389nobodyさん
2006/09/23(土) 17:20:39ID:pwav1FM0できるならどうやるか説明してあるサイトなどを教えてください。
ググってみたけどキーワードがイマイチ分からなくてうまく探せません。
0391nobodyさん
2006/09/23(土) 17:37:49ID:iHfFDUzp0392nobodyさん
2006/09/23(土) 17:41:08ID:???JavaScriptのソースそのものをPHPが生成できるから、
データを引数に埋め込んだJavaScriptソースを作って
表示してしまえばOK
0393nobodyさん
2006/09/23(土) 17:43:38ID:pwav1FM0おー!なるほど!
頭固かったです。
助言ありがとうございます
0395nobodyさん
2006/09/23(土) 20:39:42ID:???みなした相手が、自分よりも高額の報酬を
受け取ってるって感じると、心の底から激しい
敵意と憎しみと怒りの感情が湧き上がってきて
対象のサーバーを法律無視で勝手にアタックしたり
とかしてるの?
0397nobodyさん
2006/09/23(土) 21:12:36ID:+xHt5Ti5別のPHPファイルでその中身を参照し多次元配列の中身を
すべて取り出し、元あった配列と同じように格納したいのですが
どのような方法があるでしょうか?
要素数は数字ではなくこちらが任意に割り当てた文字列です
ご教示ください。よろしくお願いいたします。
0398nobodyさん
2006/09/23(土) 21:19:11ID:???1:多次元配列の中身をファイルに書き込む
2:ファイルを読み込む
3:読み込んだファイル内容を多次元配列に書き込む
これで良いんじゃないか!?
0402nobodyさん
2006/09/23(土) 22:18:05ID:3bqiWr3Uセキュリティー対策でたとえば何があるでしょうか?
xxs対策でhtmlspecialcharsで無害化(『'』も含める)以外に
なにかありましたらどうか私にご教授お願いいたします。
0407nobodyさん
2006/09/23(土) 22:47:34ID:???var_export($val, true) か serialize($val) で得られる文字列なら元に戻せる。
0408nobodyさん
2006/09/23(土) 23:54:52ID:9euC2hhU---------------------------------------
class Parent
{
var $array = array(1, 2, 3);
}
---------------------------------------
A: 同一値でvarが上書きされた場合
---------------------------------------
class A extends Parent
{
var $array = array(1, 2, 3);
}
---------------------------------------
B: var指定無しの場合
---------------------------------------
class B extends Parent { }
---------------------------------------
AとB共に$this->arrayはarray(1,2,3)なんだけど
$this->arrayが、Aのように同一値の上書きなのか
Bのようにサブクラスで上書き指定がないから継承されてるのか
どちらなのかをサブクラス内から判断する方法ってある?
get_object_vars/get_class_varsでも継承後の値になっちまう
0409nobodyさん
2006/09/24(日) 00:12:19ID:???0410nobodyさん
2006/09/24(日) 02:26:26ID:???0411nobodyさん
2006/09/24(日) 02:55:23ID:???xxsじゃなくてxssね。しかもその意味もよく理解していないようだな。
XSSってのはHTML表示の時に問題になるのであって、データベース関連には関係ない。
データベースへの入力にはそれ専用のエスケープ関数があるから調べて使え。
>>404
このド素人に現段階でCSRFなんて言っても無用な混乱を招くだけの気がする。
0412nobodyさん
2006/09/24(日) 03:28:53ID:????????????、???????]?????、???
0414nobodyさん
2006/09/24(日) 08:03:54ID:???表示時にhtmlspecialchars
0416nobodyさん
2006/09/24(日) 09:30:18ID:???データベースにデータを挿入する祭にhtmlspecialchars( )で処理すると、text/htmlなどのフォーマット意外
(例えば電子メール)で利用する際に使えなくなるから、再利用性が無いし効率が悪い。
だったらHTML文書でブラウザに出力する際にhtmlspecialchars( )で処理すればいい。
0417nobodyさん
2006/09/24(日) 09:54:53ID:???0418nobodyさん
2006/09/24(日) 09:58:19ID:???0419nobodyさん
2006/09/24(日) 10:02:50ID:hqJ9+PnBひろみちゅ先生は、表示時ではなくDB挿入時にhtmlspecialcharsすることをすすめているのか?
0420nobodyさん
2006/09/24(日) 10:17:26ID:???登録ボタン押す前に、他のリンクボタンを押されたら、一時フォルダに画像が残る。
どうすれば、良いのですか?
0421nobodyさん
2006/09/24(日) 10:24:47ID:???そのワークの保存が必要な処理なら、定期的に古いファイルを掃除する
スクリプトの実行がベターじゃないかな。
掃除スクリプトはcronバッチでもアップロード処理の頭でもどっちでもいいけど。
0422nobodyさん
2006/09/24(日) 10:31:03ID:???一般に表示は更新に比べて使用頻度の高い処理なので、
高パフォーマンスを必要とする大規模サイトではあらかじめ変換しとくよね。
再利用性を意識するなら元データと変換済みデータの2種類保存。
パフォーマンスに特にこだわらないんであれば元のまま置いといた方が便利なこともある。
DB格納ではなく静的HTMLを生成しちゃう場合もあるけどそれはシステムに応じてTPO。
>>418
>>416みたいにメール配信に使う場合とか、検索処理で使いたいとか(実体参照変換
されてると精度または速度に難が出る)、あと表示データの再編集機能とか付けることもあるかな?
0423nobodyさん
2006/09/24(日) 11:15:24ID:???date関数では現在の日付しか返してくれません。
何かよい関数はありませんか?
0425nobodyさん
2006/09/24(日) 11:24:59ID:???ファイルをアップ→確認ページ→登録。という流れで、確認ページでファイルの適正を
調べて、エラーがあれば削除、無ければ一時保存してます。
んで、そのファイルを登録ページでDBに登録してるのですが。
cronはちょっと、解らないっぽいす。。
こうゆう場合、どんな風にすればいいんですかね!?
所定のボタン以外が押されたら、削除してリンク先に飛ぶことってできます?
0426nobodyさん
2006/09/24(日) 11:31:43ID:???とりあえず、システムの /tmp に一時保存しておけば?
あれって定期的に自動で削除されるんだっけ。
それから上手に設計することも大切。
というか、ファイルの適正を調べるって具体的に何がしたいの?
0427nobodyさん
2006/09/24(日) 11:38:14ID:???そういう場合、手っ取り早いのはアップロードの開始または受信ページの処理で
古いゴミファイルが残ってないか探して掃除する処理を追加でいれとく方法。
所定のボタン以外クリック〜は結構ムリがあるので諦めた方が吉。
>>426
サーバー再起動が入らなきゃ消えないと思うけど >/tmp
アップロードで途中に確認処理を入れたいくらいはごく普通の話じゃない?
0428nobodyさん
2006/09/24(日) 11:46:43ID:???{
link( $filename );
exit;
}
0430nobodyさん
2006/09/24(日) 12:29:28ID:OMjQUi71たとえば、http://example.com/movie/01.aviみたいなの
0431nobodyさん
2006/09/24(日) 12:39:38ID:???{
$size = strlen(file_get_contents($url));
return $size;
}
0432nobodyさん
2006/09/24(日) 12:49:40ID:???おー、どうもありがとうございます。
でも、このばあいファイルがない時すごい時間がかかっちゃうんですけど
タイムアウトの設定とかできないんでしょうか?
0433nobodyさん
2006/09/24(日) 13:00:07ID:???確認ページって別ページに遷移するのか?
そうなら>>426のtmpfileは使えない(fcloseで消える)
0434nobodyさん
2006/09/24(日) 13:01:15ID:???filesize('http://example.com/movie/01.avi')で通らないか?
通らないならどっかに設定があった気がする
0436nobodyさん
2006/09/24(日) 13:11:44ID:???filesize('http://example.com/movie/01.avi')は通らなかったです
レン鯖なのでphp.iniも弄れないです
0438nobodyさん
2006/09/24(日) 13:29:00ID:???「自分よりも低スキル(=低能)」
とみなした相手が
「自分よりも高額の報酬を受け取っている」
と知ったとき、どういう感情を抱くの?
0439nobodyさん
2006/09/24(日) 13:41:55ID:???それだったらfile_get_contentsもダメのような・・
$fp = fopen($url, 'r');
$stat = fstat($fp);
echo $stat['size'];
とかどうなんだろ
0440nobodyさん
2006/09/24(日) 13:49:40ID:OMjQUi71助言ありがとうございました
0442nobodyさん
2006/09/24(日) 14:00:56ID:???マニュアル嫁
0443nobodyさん
2006/09/24(日) 14:03:59ID:DZtBW6OC0444nobodyさん
2006/09/24(日) 14:36:22ID:uiOmiLkx色々と機能をつけたし、ユーザー関数を雨後のたけのこのように作ってきたのですが、
そうするとあたり前のように似たような関数が作られ、使いがっての悪い関数は使われなくなりソースの片隅に放置されてしまいます。
このように定義はされているが、一度も呼び出される可能性のない関数を調べることは出来るのでしょうか?
もしそのような便利な方法などがあればご教授ください。
よろしくお願いします。
0445nobodyさん
2006/09/24(日) 15:41:05ID:???むつかしいな。
grepで頑張るか。
parsekitである程度調べられないかな?(php5で動くっけ?)
定義されてる関数の列挙くらいはできるので、そのリスト+適当にスクリプト書く+grepでやるとか。
つーか、正規表現でゴリゴリ書いてもけっこうすぐできそうだな。
/\bfunction\s(\S+)\s*\(/
で定義を抽出。それぞれの関数名に対して
/(?<!\bfunction\s)\b$func_name\s*\(/
の出現回数を数える。
あ、<?php ?>の外側と文字列とコメントを除かないとマズイか。
それじゃ簡単な字句解析ルーチン作って・・・・・・たぶん俺はこの辺で寝ると思う。
0446nobodyさん
2006/09/24(日) 15:47:32ID:???foreach(range(1,7) AS $passday){
echo date("Y-m-d",strtotime("-{$passday} day"));
}
0447nobodyさん
2006/09/24(日) 16:11:45ID:???技術的な能力が低くても、技術を換金する能力が高いことも
経済社会においては高報酬につながるとあらためて思うだけ。
0449nobodyさん
2006/09/24(日) 17:03:51ID:???この記述をなくすと、正常に次のページで表示される。
ずっと悩んでます。どうか教えてください。
ちなみに両ページともEUCです。
0450nobodyさん
2006/09/24(日) 18:08:06ID:hqJ9+PnB<!-- 美乳 -->
と書いてください。そうすると文字化けがなおります。
詳しくは、Googleで「文字化け 美乳」をキーワードにして検索して自分で調べてみてください
0452nobodyさん
2006/09/24(日) 18:31:51ID:hqJ9+PnBこのページの途中の「HTTP入出力」ってとこに書いてある話が関係してるのかな?
まずPHPのバージョンがわからないとね
0453nobodyさん
2006/09/24(日) 19:03:20ID:???ありがとうございます!!!そのページにある
「EUC-JP ユーザ用の php.ini の設定」の設定に変更してみたところうまくいきました!!
本当にありがとうございます。
バージョン言って無くて申し訳無かったです。
PHP Version 5.1.6でやってます。
0454nobodyさん
2006/09/24(日) 20:05:18ID:???違っていれば別スレに誘導していただけると嬉しいです。
http://allabout.co.jp/internet/database/closeup/CU20020721/index.htm
このサイトを見てMySQLをインストールしました。(3.23.58)
cd mysql\bin と入力すると「指定されたパスはありません」と出たので、
これはc\mysql\bin で解決しました。
次に、
mysqladmin ping
と入力して、稼動しているか調べようとしたのですが
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to MySQL server on 'localhost' (10061)'
Check that mysqld is running on localhost and that the port is 3306.
You can check this by doing 'telnet localhost 3306'
とエラーがでます。
これは、localhostが見つからないということなのでしょうか?
0455nobodyさん
2006/09/24(日) 20:05:21ID:???逆だよ
ひろみちゅ先生は、HTMLとして出力するときに、htmlspecialcharsすることを推奨している
0456454
2006/09/24(日) 20:09:05ID:???事故解決しました
0458nobodyさん
2006/09/24(日) 20:52:39ID:???だったら初めから余計なこと言うなボケ。素人に誤解を招く。
>>414が正しいこと言ってるのに、>>415でお前が余計なこと書いたから
このような流れになった。
ちなみに俺はこの流れに一切関係ない。初めて発言した。
0459nobodyさん
2006/09/24(日) 20:55:57ID:???しているのですが.jpgのギガピクセル超え(5MB以上)だと極端に重くなります。
処理時間におおよそ20秒程度。
これで普通でしょうか
0460nobodyさん
2006/09/24(日) 20:57:17ID:???皆からしたら「それくらい?」って思うが俺からしたら大進歩♪
0461nobodyさん
2006/09/24(日) 21:00:07ID:???0465nobodyさん
2006/09/24(日) 22:44:08ID:C1aKz/pPifの中に組み込むとか……
たとえば
$i = 5;
if (!$i = 5){
echo "iは5";
}else{
echo "iは5でない";
}
とやると iは5でないとなります。
しかし
$i = 4;
としても iは5でないとなります。
$i=5; のとき
iは5ではない=5 → 偽
となりそうなのはわかるのですが
$i=4; のとき
iは4ではない=5 → 偽
となるのが意味わかりません。
0466nobodyさん
2006/09/24(日) 22:50:56ID:???0467nobodyさん
2006/09/24(日) 22:51:40ID:???まぁ誰しも通る道だけどね。
0468nobodyさん
2006/09/24(日) 22:57:13ID:???本とかマニュアル、よく読もうよと言いたいとこだけど。
0469nobodyさん
2006/09/24(日) 23:14:40ID:???あのマニュアルは用語とか多用しているし、プログラミング経験が無い人には取っ付きにくいと思う。
だが日本語訳もあるしかなり環境は良いなPHPって……。
0470465
2006/09/24(日) 23:22:25ID:C1aKz/pPとなっていました。
ということは
$i が偽のとき真を返す。
$i = 4;
if(!$i == 5){
echo "iは5";
}else{
echo "iは5でない";
}
i=4 =5でないから偽
偽の場合は真を返す → echo "iは5";
のはずなんですが…… 偽の答えがでてきます。
考え方が何か間違ってますでしょうか?
0471465
2006/09/24(日) 23:27:01ID:C1aKz/pPif($i>5 && $i<10){
echo "6〜9です";
}else{
echo "6〜9ではありません";
}
みたいな、論理演算子で&&と||は理解したのですが…… ! がどうしても。
}
0472nobodyさん
2006/09/24(日) 23:37:36ID:???http://www.php.net/manual/ja/language.operators.logical.php
+------------------------------------------+
| ! $a | 否定 | $a が TRUE でない場合 TRUE |
+------------------------------------------+
$a = FALSE;
if (! $a) echo '$aはTRUEではない';
$b = 0;
if (! $b) echo '$bは0';
// integerの '0' はFALSE
// 参考: http://www.php.net/manual/ja/language.types.boolean.php#language.types.boolean.casting
0473nobodyさん
2006/09/24(日) 23:39:20ID:???0474nobodyさん
2006/09/24(日) 23:41:27ID:???演算子の優先順位(掛け算や割り算は足し算引き算より先に計算される、というアレね)で
! は == より上。
だから if(! $i == 5) ってのは
まず ! $i が計算されて、$i が 0 であれば 1に、0以外であれば 1 にされる。
そしてそれが == 5 で 5と一致するか、を判定される。
正しくは if(! ($i == 5)) のように書く。
0475nobodyさん
2006/09/24(日) 23:45:47ID:???>>470
演算子の優先順位に関しては、言語リファレンスの演算子の所に載ってるよ。
http://www.php.net/manual/ja/language.operators.php
0476nobodyさん
2006/09/24(日) 23:46:39ID:???0477nobodyさん
2006/09/24(日) 23:47:02ID:???if ($i != 5)
って書くな
0478nobodyさん
2006/09/25(月) 00:00:43ID:???0480nobodyさん
2006/09/25(月) 00:01:57ID:???プリント 5
って書くな
0481nobodyさん
2006/09/25(月) 00:02:19ID:???0483nobodyさん
2006/09/25(月) 00:06:59ID:???風呂行ってさっぱりしてくるか
それはそうとちょっと聞いてくれ。
俺10月からPGじゃなくなるんだ
細かく書いちゃうと特定されるかも知れないから書かないけど
SEでもない。
やることはもちろんこの業界なんだけど何か寂しい
仕事でプログラミングできないのが凄く寂しい
またプログラミングがしたいな
0484465
2006/09/25(月) 00:08:36ID:9eV2tYIW>>474さん
>>475さん
どうもありがとうございます。
boolean に変換する場合、次の値は FALSE とみなされます。
がとても参考になりました。
演算子の優先順位があるとは気づかなかったです。 ようやく一歩前に進めたと思います。
これからいろいろサンプル作って試してみます。
どうもありがとうございました。
0486nobodyさん
2006/09/25(月) 00:13:02ID:???算数の問題じゃない?
>>483
職業プログラマじゃなくたっていいじゃないの。
何か面白いスクリプトを作って公開しませう。
// というかこの板、職業プログラマが多いのかい。
// 私みたいにWebサイトで使う、ごくごく趣味みたいな感覚の人はいる?
0488nobodyさん
2006/09/25(月) 00:37:29ID:dmDwzgtGこちらの「ショートメッセージ2」にて禁止語句設定を
する為に、様々奔走したのですが出来ません。
やり方をご指南ください。
0489nobodyさん
2006/09/25(月) 00:44:29ID:???スクリプト改造をいらしているならスレ違い
自分が作った物を提示してください
ここはプログラムする人のスレです
$_POST['message'] の内容をチェックして、特定の語句があれば書き込まないようにすればいいんじゃない?
0490nobodyさん
2006/09/25(月) 00:49:40ID:???in_array()
ifとelse
だけで作れるよ
0491nobodyさん
2006/09/25(月) 00:53:17ID:???-----------------------------------------------
$ng = array('禁止語句1','禁止語句2','禁止語句3'・・・);
foreach ($ng as $value) {
if (strpos($post, $value) !== false) {
echo '卑猥な言葉が盛りだくさんです。';
exit;
}
}
書き込み処理
-----------------------------------------------
意図と違ったらスマソ。
ちなみに合ってたとしてもマニュアルでstrpos()をちゃんと調べてね。
0492nobodyさん
2006/09/25(月) 12:04:57ID:rFgBtun6リクルートのAPIを利用してサイトを作っているのですが、
XMLをうまく読み込んでくれません。
XML_RSSというPEARのクラスを組み込んで、一番簡単なサンプルコードに、例としてじゃらんのXMLを書いてprint_rしても空の配列が帰ってきます。
リクルート以外のXMLを試すとほぼ正常に配列が帰ってきます。
リクルートがはき出すXMLの構造がちょっと特殊なのかなと予想していますが、正確なところはわかりません。
ちなみに、ローカル環境のphp5でsimplexml_load_fileをやったら、リクルートのものも問題ありませんでした。
http://jws.jalan.net/ws/viw/U01004
↑のページ中程にじゃらんのサンプルリクエストURLがあります。
書いたコードはXML_RSSのテストコードまんまです。
require "../RSS.php";
$r =& new XML_RSS("http://jws.jalan.net/APICommon/OnsenSearch/V1/?key=guest&l_area=010300&count=1&xml_ptn=1");
$r->parse();
print_r($r->getItems());
よろしくお願いします。
0493nobodyさん
2006/09/25(月) 12:37:43ID:???リクルートってあんた
0495nobodyさん
2006/09/25(月) 13:52:17ID:???そこのURLがRSSフォーマットじゃない
先にXMLとRSSが何かを調べた方がいいかと
simplexml的なのをPEARでやりたいなら
XML_Serializerに入ってるXML_Unserializer使え
0496nobodyさん
2006/09/25(月) 15:24:06ID:d7O7pv61PHP5が動作する鯖で
http://php.s3.to/net/get2.phps
のソースを実行したのですが実行されませんでした。
PHP5用に書き換えないと無理なんでしょうか・・・
0497nobodyさん
2006/09/25(月) 15:34:53ID:???0498nobodyさん
2006/09/25(月) 15:49:53ID:???if(!$_GET[site] || !strstr($_SERVER[HTTP_REFERER],"php.s3.to") || !ereg("^http://",$_GET[site])){
↓
if(!$_GET[site] || !ereg("^http://",$_GET[site])){
0499496
2006/09/25(月) 16:37:04ID:d7O7pv61バージョンは5.1.7でエラーはされないのですが
http://php.s3.to/net/get2.php?site=http%3A%2F%2Fgoogle.com&act=
↑のように下部に表示させることができません。。
>>498
|| !strstr($_SERVER[HTTP_REFERER],"php.s3.to")を排除して
実行してみましたがやはり下部の部分が表示されません。。
0500nobodyさん
2006/09/25(月) 16:38:54ID:???でどうかな
単にpregしか分かんないってのもあるけど
strstr($_SERVER[HTTP_REFERER],"php.s3.to")
の php.s3.to 部分を自分のドメインにしろって事なのかな、説明が無いから分かりにくい。
0501492
2006/09/25(月) 16:44:32ID:rFgBtun6ありがとうございます。その通りっぽいです。
pearなどのライブラリを使わないで書く方法が見つかったので、
それでやりたいと思います。ありがとうございました。
05024
2006/09/25(月) 16:47:25ID:WNDcSAnJ神の着地術!!(゚ロ゚;)
http://gotodmc.ath.cx/uploader/src/fdds.wmv
0504nobodyさん
2006/09/25(月) 17:14:32ID:???UTF-8が良いと聞いたので、それで書いています。
実行してみると、日本語が???に文字化けしてしまいます。
どのように対処すれば良いのでしょうか?
0505nobodyさん
2006/09/25(月) 17:30:16ID:???0506504
2006/09/25(月) 17:33:21ID:???UTF-8です。
文の最初にmb_internal_encoding("UTF-8");としても文字化けしたままです。
出力時にmb_convert_encoding($str,"UTF-8");とするとうまく表示されるのですが、
出力するたびに変換していたら文が長くなってしまうので、最初に指定しておきたいです。
0507nobodyさん
2006/09/25(月) 17:37:43ID:???それはDBから受け取ったエンコーディングがUTF-8じゃないんじゃない?
DBから受け取った状態のまま、エンコーディングをIEなりで確認してみればいいじゃない?
であとはDBの話っぽいので板違いかも
DB何使ってるか書けば誰かが答えてくれるかも
DB側の出力を何とかする必要があるんじゃないかな
0509nobodyさん
2006/09/25(月) 17:47:55ID:gQCSf4GG全部のDBが同じだと思うな。
データベース作成する時に文字コードセットしたか?
mysqlならcharacter set utf8
pgsqlなら--encoding=utf8
0510504
2006/09/25(月) 17:48:15ID:???>DBから受け取った状態のまま
これは、エンコーディングをせずそのまま出力して確認ということでしょうか?
でしたらUTF-8になっています。
DBはMySQLを使っています。
板違いになりましたが、どなたか答えていただければ幸いです。
0511496
2006/09/25(月) 17:48:28ID:d7O7pv61わざわざすみません;
書いて頂いたその記述と
strstr($_SERVER[HTTP_REFERER],"php.s3.to") に自分のドメインを
入れてみましたがやはり表示できませんでしたorz
ちょっと鯖変えて試してみたいと思います。
ありがとうございました。
0512nobodyさん
2006/09/25(月) 17:49:56ID:gQCSf4GG<meta http-equiv="content-type" content="text/html; charset=utf-8" />
0513nobodyさん
2006/09/25(月) 17:52:30ID:???> >DBから受け取った状態のまま
> これは、エンコーディングをせずそのまま出力して確認ということでしょうか?
> でしたらUTF-8になっています。
UTF-8でブラウザ側で表示されてるなら問題無いじゃん。
って、違うよね・・
ブラウザ側で色々エンコード変えてみて、テストしてって話だよね・・
あとはDBのエンコード確認する方法をDB関係のスレで聞いてきてはどうですか
0515504
2006/09/25(月) 17:56:20ID:???header("Content-Type: text/html;charset=UTF-8");
と指定したのですが、変わりませんでした。
>>509
MySQLです。
データベース作成時には特に何もいじっていません。
また、設定の仕方がわかりません。
>>512
それはもともと表記されていましたが、消しても書いても変化はありませんでした。
>>513
UTF-8では文字化けした状態で表示
EUC、SJIS、JISでは何も表示されません。
DBの方に言ってみることにします。
有難うございました。
0516nobodyさん
2006/09/25(月) 18:00:54ID:???0517nobodyさん
2006/09/25(月) 18:01:25ID:???WinXP、PHP 5.1.4
php_imagick.dllをphp.iniに追加しましたがロードに失敗してしまいます(読み込めないとのエラーがログに吐かれていた)。
mbstringやpdoなど、他のモジュールはロードできています。ファイル名が間違っていないか何度もチェックしましたが合っています。何が原因なのですか?
0518nobodyさん
2006/09/25(月) 18:13:04ID:???$str .= aaa;
return($str);
}
$str = "あいうえお";
echo str($str);
上記のようにすると、「あいうえおaaa」と出力されます。
ここまではいいのですが、$str以外の変数にも同じようにしたいのですが、
どのようにすれば良いのでしょうか?
つまり、$strだけじゃなく、
str($hogehoge);や
str($aiueo);など
いろんな変数にも対応できるようにしたいです。
0521nobodyさん
2006/09/25(月) 18:18:36ID:???function ($a)
{
$a .= 'aaa';
return $a;
}
$str = 'あいうえお';
$hogehoge = 'ほげほげ';
$aiueo = 'あいうえお';
echo( $str );
echo( $hogehoge );
echo( $aiueo );
0523nobodyさん
2006/09/25(月) 18:31:39ID:???SJISとJISとEUCとUTF-8
どう違うのでしょうか?
また何か説明の載っているわかりやすいサイトはありませんか?
0524nobodyさん
2006/09/25(月) 18:33:50ID:???せめてもう少し書籍等を読んだほうが・・
関数内の変数は外には影響しません
このあたりを実行すれば理解出来るんじゃない
---------------
$a = 5;
print $a . '<br>';
test();
function test(){
$a = 1;
print $a;
}
--------------
0526nobodyさん
2006/09/25(月) 18:39:28ID:gQCSf4GGセットの仕方が分かりませんってさ
mysqlならcharacter set utf8
pgsqlなら--encoding=utf8
って書いたじゃん・・・
0527nobodyさん
2006/09/25(月) 18:53:09ID:???0529nobodyさん
2006/09/25(月) 18:55:49ID:???今辞書でちょうど見つけたところw
聞く前に調べるべきでした・・・
0531nobodyさん
2006/09/25(月) 20:13:43ID:???でググって一個目で何とかなるんとちゃう
0532nobodyさん
2006/09/25(月) 20:56:02ID:???スクリプトを停止にしたいんですが
どうやったらいいですか?
0533nobodyさん
2006/09/25(月) 21:24:44ID:???http://www.php.net/manual/ja/features.connection-handling.php
これででき・・ないかな
試したことないから分からん
0534nobodyさん
2006/09/25(月) 21:25:50ID:???勝手に止まらなかったっけ?
ブラウザが再読み込み→Apacheにリクエスト中断発信→ApacheはプロセスにAbortシグナル発行
って流れだったと思う。
問題はPHPがsleep中にシグナルを受け取れるかどうかだと思うけど、SQLクエリー発行中はともかく
sleep中なら多分受け取ってると思うんだけど。
0535nobodyさん
2006/09/25(月) 22:23:46ID:UugMM9l5そのような関数や変数はありますか?
0536nobodyさん
2006/09/25(月) 22:28:48ID:???0537nobodyさん
2006/09/25(月) 22:29:11ID:???0538nobodyさん
2006/09/25(月) 23:42:58ID:???メールを送信するとISO-2022-JPで送信されない。
なにも特別な対応していないからあたりまえだが。
いままでは、mb系のfunctionで対応してきたが、コアチームからバグが登録されたからどうにかしろ
といわれたんだげど、ポリシーでiconv系もmb系も使用しないらしい。
この条件で一体何ができるだろう。なんかいい方法ある?
0539nobodyさん
2006/09/25(月) 23:51:09ID:???0540nobodyさん
2006/09/25(月) 23:52:31ID:???0541nobodyさん
2006/09/26(火) 00:03:35ID:???いいアイデアだけど、日本語に特化したのは130%拒否される。
バグ登録した方がパッチを出しているが、日本語オンリーな上にバグってる。w
事象はわかっていたけどまともな対応はできないので、放置しておいたのになぁ。
いらんことを。
0542nobodyさん
2006/09/26(火) 00:07:42ID:???0543nobodyさん
2006/09/26(火) 00:14:49ID:???538,541は、そのオープンソースのメールシステム(パッケージ)を使う側じゃないの?
ん・・・コアチームではないけど、開発してるってことかな。
もしそうだとしたら、コアクラスを拡張してISO-2022-JPで送信できるようにするのはパッケージが「日本語に特化する」ことにはならないと思うけど。
0544nobodyさん
2006/09/26(火) 00:15:51ID:???だね。とりあえず、日本ではそのルールをかえない限り、野良パッチするしかないと書いといた。
XOOPSみたいに、日本語版を出すしかないのか。ニッチなOSSだから喜ぶひとはいないし、報われないし。
放置決定。
0545nobodyさん
2006/09/26(火) 00:19:35ID:???いや、翻訳してるだけなんだけど、使う側ではないのよ。キムチの人とか、4000年の人が、
いろいろバグを登録するので、コアチームがわからないとメールをなげてきた。
0546nobodyさん
2006/09/26(火) 00:23:35ID:???話から察するにコアチームが言語の汎用性を深く考えてなさそうだから、簡単に拡張できないっていう難しさがあるんだろうね。
ISO-2022-JPに対応するサブクラスを作成したとしても、コアクラスに小さな、または大きな修正が必要になるだろうと。
それをコアチームが認めないのかな。仕事だとプログラミング以外の難しさもあるからね。
0547nobodyさん
2006/09/26(火) 00:27:51ID:???勝手な想像で見当違いな事を言ってしまい申し訳ない。
バグを登録してくる人達に、コアチームのポリシー・「バグ」ではないこと・修正されないことを伝えるだけだね。
0548545
2006/09/26(火) 00:36:18ID:???いや、普通に考えるとそうだと思う。
Exciteで翻訳しながらそう回答した。
マルチバイトをアメリカンに説明するのはムズい。日本語でも説明できないのに。
Thanks.
0549nobodyさん
2006/09/26(火) 03:46:23ID:byyWwaMP文字コードはUTF-8で作っていった方がいいと思うよ。これからの時代。
0550nobodyさん
2006/09/26(火) 07:53:34ID:???actionにある記述って拡張子とかいらないのですか?
てか、これだけでPHPで作られてるのかわかりますか?
<form name="link" method="post" action="../diary/Detail" >
0551nobodyさん
2006/09/26(火) 09:26:19ID:???0552nobodyさん
2006/09/26(火) 09:33:10ID:???たまに拡張子のないページ見かける。
ページ遷移でjspとか出てきたりして、
はじめてJavaだったのかーって感じだったり。
これはいったいどういう仕組み?
htaccessかなんかかな?
0555nobodyさん
2006/09/26(火) 09:51:01ID:???拡張子ってどうやれば、隠せるのでしょか?
あと、そのサイトがphpやperlで作られているって見分ける方法ってあるのでしょうか?
0556nobodyさん
2006/09/26(火) 10:18:54ID:???数秒後に次のページ渡すにはどうすればいいのでしょうか!?
sleepとheaderではできないですよね。。
0560nobodyさん
2006/09/26(火) 10:44:49ID:???0561nobodyさん
2006/09/26(火) 11:06:44ID:???if(get_magic_quotes_gpc()){
$string = stripslashes($string);}
$string = htmlspecialchars($string);
return $string;
}
こうしたstringをそのまま、データベース(mysql)にぶち込んでるけど、
問題ってあるかな?
0563nobodyさん
2006/09/26(火) 11:23:45ID:???作る側が意識して隠してれば分からない
Content negotiationとかrewriteとかScriptAliasとか方法はいろいろある
0565nobodyさん
2006/09/26(火) 12:47:34ID:???ですよね。これはXSS対策で、HTMLに表示しなければ関係ないですよね??
これとは、全く別に、POSTで送られてきた値にinitvalやaddslashを用いればいいのでしょうか?
それとも、561の関数にinitvalやaddslashを入れればいいのでしょうか?
0566nobodyさん
2006/09/26(火) 12:59:28ID:???何もフィルタかけず(オーバーヘッドを減らすため)
SQLInjection対策でDBに突っ込むものを直前にエスケープ(addslashes)
XSS対策で出力するものを直前にHTML特殊文字変換(htmlspeicalchars)
っていうことじゃないかね
0567nobodyさん
2006/09/26(火) 13:15:21ID:???エラーを表示させてるのですが、この場合、エラーが出たら、
unlinkで削除するのが良いのでしょうか?したら、このファイルは存在しないみたいな
エラーがでたので、アップされたファイルは保存されていないのでしょうか?
0569nobodyさん
2006/09/26(火) 13:54:17ID:???すいません。タイプミスでした。ちゃんと削除されました。
0570nobodyさん
2006/09/26(火) 16:31:25ID:EMjXfoVa絶対に見逃せないエロ娘たち
http://wanwanwan.mine.nu/uploader/src/up0045.jpg
http://wanwanwan.mine.nu/uploader/src/up0044.jpg
0572nobodyさん
2006/09/26(火) 18:26:08ID:???$obj = new EveLove();
$obj2= new EveDisLove();
class EveLove{
function EveLove() {
echo "test";
echo "test2";
ここで抜ける
.....echo "test20";
}
}
class EveDisLove{
function EveDisLove() {
echo "1";
echo "2";
.....echo "20";
}
}
表示を
test
test2
1234...20となるようにしたいです
可能であれば関数等教えてくださいm(_ _)m
0573nobodyさん
2006/09/26(火) 18:51:35ID:???0574nobodyさん
2006/09/26(火) 18:52:43ID:???意味が分からん。が、書いてる内容そのままに答えるなら
returnで抜けるか、実行させたくない部分をコメントアウト、もしくは削除しろよ。
0575532
2006/09/26(火) 20:00:27ID:???sleep(20)で一時停止中に再読み込みやストップボタン押しても、20秒後停止が解除されたら
スクリプトが最後まで実行されてしまうんですが、
どうしたらいいのですか?
頭にignore_user_abort(1);
をつけたのですが変わらずでした
おしえてください
0576nobodyさん
2006/09/26(火) 20:05:52ID:???なぜ、わざわざaddslashesを使うんだよ?
SQLエスケープ専用の関数があるんだからそれを使えよ。
お前程度の知識でaddslashesを使うと、必ず穴が出る。
0577nobodyさん
2006/09/26(火) 20:12:45ID:???これ、読め。
http://www.amazon.co.jp/gp/product/4883374718/ref=sr_11_1/250-2846891-3685828?ie=UTF8
お前程度の知識でaddslashesを使うと、必ず穴が出る。
0578nobodyさん
2006/09/26(火) 20:42:55ID:???だからエスケープって書いてるじゃん
上でのaddslashes云々の話から繋がるように例として挙げてる
文脈から判断してくれよそれくらい
0579nobodyさん
2006/09/26(火) 21:14:43ID:OUvdqD7Q0580nobodyさん
2006/09/26(火) 21:25:16ID:4x0TvdIuecho レベルひっくぅ・・・・
0581nobodyさん
2006/09/26(火) 21:43:25ID:???バカかお前は。俺はその本はもちろん持ってるし、高木浩光氏のサイトも読んでる。
お前みたいなバカがいまだにaddslashesなんか使ってるから問題発生するんだ。
>>578
はぁ? 何言ってんの? 勝手に無茶苦茶な話をしてんじゃねぇよチンカス。
だからエスケープにはaddslashesじゃなくて専用関数(mysql_real_escape_string等)使えっての。
0582nobodyさん
2006/09/26(火) 21:44:36ID:???スクリプトは公開されていないでしょうか。
0583nobodyさん
2006/09/26(火) 22:18:16ID:???そんな真っ赤にならんでも^^;;;;;
0584nobodyさん
2006/09/26(火) 22:25:25ID:???その本読んでるなら、そんなにaddslashesを批判する必要なくない!?
まあ、おれはよくわからんがその本では、mysql_real_escape_stringよりも
addslashesを薦めてるぞ。
0586nobodyさん
2006/09/26(火) 22:39:58ID:???mysql_real_escape_string or addslashes
おれ、addslashes
0587nobodyさん
2006/09/26(火) 22:45:50ID:???具体的に反論できないチンカス乙
悔しかったらmysql_real_escape_stringよりも
addslashesを使うべき理由を挙げてみろ。
0588nobodyさん
2006/09/26(火) 22:50:19ID:???0589nobodyさん
2006/09/26(火) 22:54:42ID:???マニュアルにあるユーザ定義関数 quote_smart( ) なんてどうよ?
http://www.php.net/manual/ja/function.mysql-real-escape-string.php#AEN103489
0590nobodyさん
2006/09/26(火) 22:55:04ID:???0592nobodyさん
2006/09/26(火) 23:03:25ID:???これ↓、無意味なコードじゃねぇ? 別に数値かどうかに関わらず全てクォートすればいいわけで。
数値かどうか判定する分だけ無駄な処理に思われる。
// 数値あるいは数値形式の文字列以外をクオートする
if (!is_numeric($value)) {
$value = "'" . mysql_real_escape_string($value) . "'";
}
0593nobodyさん
2006/09/26(火) 23:04:37ID:???データの安全性を確保するため、MySQL へクエリを送信する場合には (わずかな例外を除いて)常にこの関数を用いなければなりません。
0594nobodyさん
2006/09/26(火) 23:08:34ID:???俺はmysql_〜派
理由。こっちなら文字コード設定に合わせて最適なエスケープをしてくれるから。
UTF-8しか使わないならどっちでもいーんじゃないの?
外部との連携とかあってSJIS使う羽目になったらaddslashesは「使えない」。
0595nobodyさん
2006/09/26(火) 23:16:27ID:???0596nobodyさん
2006/09/26(火) 23:23:38ID:???処理が早い。
データベースコネクションの有無に影響されない。
逆変換が容易。
magic_quotes_gpcとの相性が良い。
0597現在
2006/09/26(火) 23:27:22ID:???mysql_real_escape_string 2票
0598nobodyさん
2006/09/26(火) 23:29:52ID:???0600nobodyさん
2006/09/26(火) 23:37:15ID:???0602nobodyさん
2006/09/27(水) 00:02:57ID:???逆変換が必要になるケースが理解できない…
どういう場面でそんなことする羽目になるんだ。
magic_quotes_gpcはそもそも真面目にエスケープ処理を考えてる人なら
最初から使うべきものじゃないんだから考慮する必要を感じない。
0603nobodyさん
2006/09/27(水) 00:03:35ID:???<?= echo 文字列 . $_POST['なんとか'];?>
これが危険な理由がバカな漏れには分からないorz
教えてたもれ。
0605nobodyさん
2006/09/27(水) 00:29:47ID:???0606nobodyさん
2006/09/27(水) 00:44:56ID:S78j1V6Hそれとも、スクリプト内で呼ばれた時だけ、セッション・ファイルから
随時メモリに読み出されて利用されるのでしょうか?
たとえば$_SESSION['login']='ok'という内容で格納されているとして、
スクリプト中で、if ($_SESSION['login']=='ok') {} のように使った場合、
$_SESSION['login']は、そのスクリプト終了後にメモリから解放されるのか、
それともセッションが継続する限りメモリ内に$_SESSION['login']が残り続けるのかが知りたいです。
0607nobodyさん
2006/09/27(水) 00:52:31ID:???サイテロ本の丸写し乙。
>処理が早い。
処理時間に有意の差が出るほど長大なSQLを使う場面があるとは思えない。
>データベースコネクションの有無に影響されない。
通常、エスケープしたSQLは、当然DBに接続して使うわけで、
結局コネクションは必要になる。
>逆変換が容易。
俺は今まで数々のWebアプリを作ったが、逆変換が必要だった場面など記憶にない。
>magic_quotes_gpcとの相性が良い。
いくらテロリストと相性が良くても、テロリストはテロリストだ。
0608nobodyさん
2006/09/27(水) 01:16:17ID:???1点、そもそも間違ってる部分があると思うんだが、
> それとも、スクリプト内で呼ばれた時だけ、セッション・ファイルから
> 随時メモリに読み出されて利用されるのでしょうか?
と
> $_SESSION['login']は、そのスクリプト終了後にメモリから解放されるのか、
の部分。
まるでスクリプトが終了してもメモリ上にデータが残ってるかのようだが、
スクリプト終了=使われてた全メモリ解放だよ。
というわけで正解は
スクリプトの中でセッションを開始した時点で全部の内容がメモリに読み出され、
スクリプトが終了した時点で全部解放される。
となる。
> スクリプト内で呼ばれた時だけ、
は間違いだが
> そのスクリプト終了後にメモリから解放される
は正解。
0609nobodyさん
2006/09/27(水) 01:22:05ID:S78j1V6H>スクリプト終了=使われてた全メモリ解放だよ
よく考えたらそれはそうでしたね。分かってたのに勘違いしました。
>スクリプトの中でセッションを開始した時点で全部の内容がメモリに読み出され
ズバリその点について気になっていたのでした。
たとえば$_SESSION['A']、$_SESSION['B']、$_SESSION['C']とあった場合、
スクリプト中で$_SESSION['A']だけを使った場合、メモリに読み込まれるのは$_SESSION['A']だけなのか、
それともA〜Cまで全部セッション開始(session_start)時に全部読み込まれてしまうのか、
それが質問したい点でした。
0610nobodyさん
2006/09/27(水) 01:28:24ID:???どうなんだろうね。俺はこういうちゃんとした処理してるほうが好きだけど。
俺だったらis_boolも判断して0か1に変換するし。mysqlだとtrue,false使えないんだよね。
汎用性のある、エスケープするfunctionなりクラスなり作るならしっかりやっといた方がいいとは思う。
mysql_real_escape_stringのマニュアルでは、引数にstringとってる。
まぁ何にしろ正常に動作するなら、あとは好みの問題かなぁ・・・
>>600
magic_quotes_gpcがonで、addslashesすると2重にエスケープされちゃうでしょ。
俺はmagic_quotes_gpcがonだったらstripslashesしてDBのエスケープ関数使う派。
でもpostgresのpg_escape_stringは何か問題があるという記事を読んだような気が・・・もう1回調べよっと。
0611nobodyさん
2006/09/27(水) 01:52:50ID:???でもさ、数値かどうかを判定するロジックを仮に無くしたとして、
それで何か弊害が出るかい?
その判定ロジックを省いて、
とにかくmysql_real_escape_stringをかければ、結果は同じでしょう。
0612611
2006/09/27(水) 01:56:17ID:???intval()をかけないと致命的だ・・・とか書いてるけど、
俺はそうは思わない。
なぜなら、その変数をPOSTなどから受け取った時点で、is_numericやctype_digitなど
適切な手段にてしっかりバリデートしてれば問題ないわけで。
(むろん、この場合でもmysql_real_escape_stringは必須だが)
0613nobodyさん
2006/09/27(水) 02:08:47ID:???好みの問題だから、そこをお互いどうこう言っても仕方ない。
postで受け取った時点でっていうのはあるね。俺も初めの頃はそうしてた。
でも毎回やるのが面倒になったから、DB用のクラスにエスケープするfunction作って、あとはデータ全部投げるだけ。
エスケープ以外のバリデートが必要なところはその場その場でやるけどね。
まぁ、それも好みの問題。
特に俺のDBクラスではいくつかのDBに対応させてて、magic_quotes_gpcがonの時にstripslashesするからfunction内でのis_boolチェックは必須。
0614611
2006/09/27(水) 02:15:59ID:???う〜ん、どうせ同じ正常な結果が得られるのなら、
わざわざ好んで無駄なコードを増やさないほうがいい気がするけど…。
コードが1行増えるたびにセキュリティ・ホールやバグが発生する可能性が増えると思う。
無意味なコードを「好みで」増やすという思考がよく理解できない。
0615nobodyさん
2006/09/27(水) 02:31:19ID:???もし「データ型」を理解していて、あえて型チェックしないコードを書くのは、まぁアリだと思う。
でも話から察するにそうでもないみたいだね。プログラムの基礎を学んだほうがいいかもしれない。
PHPはデータ型が緩い言語だから柔軟にコーディング出来るのは利点だけど、
「データ型」を意識しない(理解できていない)ところからくるセキュリティホールやバグもあるわけです。
「好みの問題」とは言ったけど、データ型を理解できていないなら好みの問題では済まされない。
少し勉強してみて下さい。
0616nobodyさん
2006/09/27(水) 02:59:55ID:???>>612の4行目を100回くらい読み直せ。
ついでに言うと、いまの話の流れで、データ型を考慮しないせいで
セキュリティ上の問題が発生するケースはありえない。
0617初心者
2006/09/27(水) 03:04:17ID:???セキュリティーを意識した事は一度もないのですが
どんな怖いことがおきますか?
たまに鯖缶から突然PHPの停止を受ける事があるのですが
関係ありますか
鯖缶は外人なのでうまくコニュミニケーションがとれなくて
困ってます 教えてください
0618nobodyさん
2006/09/27(水) 03:27:44ID:YNifcXJT0619nobodyさん
2006/09/27(水) 04:12:30ID:???php_flag magic_quotes_gpc off
も受け付けないサーバーって存在するの?
0620nobodyさん
2006/09/27(水) 06:18:59ID:???0621nobodyさん
2006/09/27(水) 07:16:57ID:???なぜでしょうか?
また、使わないとすると代わりに何を使えばいいのでしょうか?
0623nobodyさん
2006/09/27(水) 07:34:32ID:???データを持ち回すときにセキュリティーが必要な場合はセッションを使えってこと
普通の掲示板とかならhiddenで持ちまわしてもいい
0625nobodyさん
2006/09/27(水) 08:45:41ID:???良くないとどこかできいたのですが、本当でしょうか?
本当の場合、どうやって移動させるのがいいのでしょうか?
教えてください。
0626nobodyさん
2006/09/27(水) 08:47:58ID:???0627nobodyさん
2006/09/27(水) 09:15:43ID:???関数が定義されてないエラーが出て使えない・・・
PHPのバージョンは5.16。なんでだろう。
0628nobodyさん
2006/09/27(水) 09:29:56ID:???別にする必要は無いですか?
0629nobodyさん
2006/09/27(水) 12:28:30ID:???そういう言い方は誤解を受ける。
hiddenだからセキュリティに問題があるとか、セッションだからセキュリティ的に安全ってわけじゃない。
どちらにしても入力データのバリデートや各種エスケープをしっかりやればいい。
もちろん、パスワードなど見せてはいけないデータをhiddenで持ちまわるのは厳禁。
>>628
とりあえずお前の認識は間違っている。
で、このスレを読み返すだけでも答えはあると思う。
0630nobodyさん
2006/09/27(水) 12:34:45ID:???、htmlspecailcharsをして出力するの!?
0633nobodyさん
2006/09/27(水) 13:30:02ID:???からな。
0634nobodyさん
2006/09/27(水) 13:36:43ID:???同感。自分も型チェックの分岐を書く。
stringを期待してる関数に他の型を渡す奴は低レベルとしか言いようがない。
0635nobodyさん
2006/09/27(水) 13:58:46ID:???SCRIPT_NAMEにもpathinfo入ってます。
レン鯖の場合どうするのがいいでしょう?
>> SCRIPT_NAMEにはPATH情報が無いのでこの問題は発生しません。
ttp://blog.ohgaki.net/index.php/yohgaki/2006/02/28/php_selfa_ma_a_ra_fa_fa_oa_a_sa_a_oa
>> apacheの設定で、pathinfoをonにすると明らかな差が現れました。
ttp://ml.php.gr.jp/pipermail/php-users/2003-June/016472.html
0636nobodyさん
2006/09/27(水) 15:34:34ID:???繰り返し言うが、mysql_real_escape_stringをかける段階において、
string型かどうかをチェックしなかったがために問題が発生するということは無い。
型の自動変換などを備えて、型について「わざわざ」甘くしてあるPHPにおいて、
不必要な場面まで型についてこだわるヤツこそ低レベルで馬鹿としか言いようがない。
悔しかったら型変換を怠った場合の問題点でも示してみたまえ(そんなもの無いけどね)。
0637634
2006/09/27(水) 16:19:34ID:???お前アレだな。けっこうイタイな。
0638nobodyさん
2006/09/27(水) 16:21:21ID:???負け惜しみはいいからさ、早く具体的な問題事例があれば出してみろよwww
まさかとは思うけど、逃げんなよww
0639nobodyさん
2006/09/27(水) 16:29:10ID:???0640アチャコ
2006/09/27(水) 16:44:56ID:???0641nobodyさん
2006/09/27(水) 16:48:16ID:???参考までに聞きたいが、↓の様なコードを実行する際
$_POST['hoge']をどんな感じにエスケープしてる?
$sql = "select * from test where data like '%".$_POST['hoge']."%'";
$result = mysql_query($sql);
俺はこんな感じの関数使ってる。
function sql_escape($sql){
$sql = mysql_real_escape_string($sql);
$sql = str_replace(array("%", "_"), array("\%", "\_"), $sql);
return $sql;
}
0642nobodyさん
2006/09/27(水) 17:08:42ID:???マジで
エスケープいらないから
0643634
2006/09/27(水) 17:29:28ID:???0644trab
2006/09/27(水) 17:29:59ID:tKdESkZE早速ですがご質問です。
mail1.○○○.jp
mail2.○○○.jp
mail3.○○○.jp
という風に複数のメールサーバを用意して
phpのプログラム上から条件によって
メールサーバを選択してメール送信することは
可能でしょうか?
例えばAさんならmail1.○○○.jp、
Bさんならmail2.○○○.jpという具合です。
0645nobodyさん
2006/09/27(水) 17:40:16ID:???ttp://ww.mysql.com/doc/refman/4.1/ja/string-syntax.html
>>644
可能
0646trab
2006/09/27(水) 18:00:57ID:tKdESkZE具体的にどのようにすればよいか
教えていただけないでしょうか?
0647nobodyさん
2006/09/27(水) 18:29:23ID:???元気モリモリのー
色とりどりのー
トリオ!
さらにノビノビとー
このトビトビのー
語尾と語尾をつなぐ
喜び!
0648nobodyさん
2006/09/27(水) 18:30:04ID:???0651nobodyさん
2006/09/27(水) 20:45:28ID:???-----------st01.php
<?php #ファイルの先頭に記述
session_start();
$_SESSION['id']=0;
?>
<br><a href="st02.php">Session Test</a>
-----------st02.php
<?php #ファイルの先頭に記述
session_start();
echo $_SESSION['id'];
?>
<form method="post" action="st02.php">
<table border="1">
<tr>
<?php
for($i=1;$i<10;$i++){
echo "<td><input type=\"submit\" name=\"$i\" value=\"$i\"></td>";
if(!empty($_POST['$i'])){
$_SESSION['id']=$i;
}
}
?>
</tr>
</table>
</form>
各ボタン押したらそのボタンの値を表示させたいんだが0しか出ないよ(´・ω・`)
0654nobodyさん
2006/09/27(水) 21:49:10ID:???ありがとうございます。"$i"でくくったら出来ました。
でもクリック1回分遅れて表示してしまうので、正常には表示出来ません。
何とか上に表示させたいんですが、何か良い方法あればご教授を願いたいです。
0655nobodyさん
2006/09/27(水) 21:51:23ID:???for($i=1;$i<10;$i++){}の後ろにecho $_SESSION['id'];付けたら出来ました。
テーブルの下に表示されちゃうのではないのか?と思ったのですが
</table>タグの前なので表示されるんですね、気づきませんでした。
ありがとうございました。
0656nobodyさん
2006/09/27(水) 21:54:27ID:???$_POSTそのまま表示すれば良いだろ。
$_POSTで取った値をセッションに入れて、次のページに渡してるんだから
クリック1回遅れるのは当たり前。
0657nobodyさん
2006/09/27(水) 21:58:25ID:???すべて@で処理してもエラー文が1行表示されます。
まったく何も表示しないという事は無理なんですか?
0658nobodyさん
2006/09/27(水) 22:07:12ID:???0659nobodyさん
2006/09/27(水) 22:08:38ID:???0660伊藤アチャコ
2006/09/27(水) 22:20:25ID:???0662nobodyさん
2006/09/28(木) 00:18:50ID:yFiHvde3段落段落段落段落段落
段落段落段落';
という文字列を……:
'<p>段落段落段落段落段落段落段落段落</p>
<p>段落段落段落</p>
という感じで、空行で区切って「<p></p>」で括りたいのですが、どうすれば出来るのでしょうか?
いろいろと試してみたのですがベストな方法が浮かびません。
よろしくお願いします。
0663nobodyさん
2006/09/28(木) 00:21:02ID:???0664nobodyさん
2006/09/28(木) 00:30:59ID:???$text = '段落段落段落
段落段落段落段落段落
段落段落段落段落段落
段落段落段落段落段落
段落段落段落';
echo "<p>" . str_replace("\n\n", "</p><p>", $text) . "</p>";
0666nobodyさん
2006/09/28(木) 02:51:04ID:Pq7J5CUU↑これって何ですか?
0667nobodyさん
2006/09/28(木) 02:57:30ID:???$ncolor = $colorb;
} else {
$ncolor = $colora;
}
と同じ意味
0669nobodyさん
2006/09/28(木) 06:24:52ID:???初めて知った。
便利そうだけど、慣れるまで見辛そう…
>>666じゃないけど1つ勉強になりますた。
0670662
2006/09/28(木) 07:57:28ID:yFiHvde3ご回答ありがとうございます。
>>664だと、連続した三つ以上の改行があると '<p></p>' という内容が空のP要素を
生成してしまいます。
自己解決かもしれませんが、次のようにしたら出来ました。
何か問題があれば指摘をよろしくです。
function 関数名 ($lines)
{
$lines = explode ("\n\n", $lines);
$lines = str_replace ("\n", '', $lines);
$line = '';
if (is_array ($lines)) {
for ($i = 0; $i < count ($lines); $i++) {
if (! preg_match ('/^$/', $lines[$i])) {
$line .= "<p>" . htmlspecialchars ($lines[$i]) . "</p>\n";
}
}
} else {
$line .= "<p>" . htmlspecialchars ($lines) . "</p>\n";
}
return $line;
}
0671nobodyさん
2006/09/28(木) 08:26:15ID:???> 連続した三つ以上の改行があると
そんな変な条件があるなら先に言わないと。
メインの変換処理で多重空行に対応するのも手だけど、
場合によっては先にイレギュラーなデータを補正しとくことで
ロジックを単純にでき、バグの少ない高品質なプログラムを
作ることができる、ということも覚えといた方がいいと思う。
でもぶっちゃけ、その程度なら
echo "<p>" . preg_replace("/\n\n+/", "</p><p>", $text) . "</p>";
でいいと思う。
htmlspecialcharsを仕込むなら
echo "<p>" . preg_replace("/\n\n+/", "</p><p>", htmlspecialchars($text)) . "</p>";
かね。
0672nobodyさん
2006/09/28(木) 08:54:08ID:???関数本体も冗長だな。>>671が正解だけど、全く同じロジック書く場合もこれくらい緩くていいよ。
function paragraphs($text)
{
$lines = array();
foreach ((array) explode("\n\n", $text) as $line) {
$line = str_replace("\n", '', $line);
if ($line != '') {
$lines[] = htmlspecialchars($line);
}
}
return '<p>' . implode("</p>\n<p>", $lines) . '</p>';
}
0673nobodyさん
2006/09/28(木) 12:06:09ID:???セッションを用いてるからなんですか?それとも、クッキーを使用しているのですか?
セッションは、初期設定では24分!?ごとに一回アクセスがあるかぎり、
保持されると聞いたのですが、mixiの場合はその設定時間をのばしているのですか?
また、ログアウトせずに、お気に入りに入れて開いても、何日もログインの
状態にあるのは、クッキーを使用しているからですよね?
setcookieとsessionを両方、用いているのでしょか?
長くなって申し訳無いですが、ご教授下さい。
0674nobodyさん
2006/09/28(木) 12:24:42ID:???間違い探し
1.一般にセッションはCookieを利用して実装されるので併用が普通
2.セッションのデータ保持時間はPHPなどが勝手に定めてる
3.mixiはPerlで作られていてPHPのルールは関係ない
4.質問時のメルアド欄は「亜sdfghj」などと入れるものではない
で、本題だがmixiでセッションが使われてるかどうかは知らないが
パラメータなしのブックマークからログインできるのはCookieによるものだよ。
0675nobodyさん
2006/09/28(木) 12:52:54ID:???ログイン後のページ遷移が自分のページ基準になるのは
単なるCookieでもできるし持ちまわるデータ量が多い場合は
セッションを使う場合もある。mixiがどっちかは知らない。
mixi程度の処理でセッションが必要とも思わないし。
(必要なのはログイン情報だけでページ間でデータを持ちまわらないので)
0676nobodyさん
2006/09/28(木) 13:13:24ID:???データ量が多いとセッションなの!?
セキュリティ面でクッキーよか、セッションの方がいいんじゃないの?
ちなみに、mixiはphpも使われてます。
0677nobodyさん
2006/09/28(木) 13:16:55ID:???0678nobodyさん
2006/09/28(木) 13:23:08ID:???0679nobodyさん
2006/09/28(木) 13:35:51ID:X3mGBPuB'/hoge[1-9]/'の条件に当てはまる文字列を置き換えたいのですが、置き換える時に
hoge1の場合はhogeXX
hoge2の場合はhogeXXX
とゆう置き換えにすることは可能でしょうか?
どのようにすれば効率的かご教示くださいませm(_ _#)m
0680nobodyさん
2006/09/28(木) 14:03:15ID:???×ゆう
0682681
2006/09/28(木) 14:07:06ID:???わざわざ性器表現使う必要なくね?
0683nobodyさん
2006/09/28(木) 14:07:56ID:bhCM1dKbjavascriptのfor(i=0; i<10; i++)の中で取り出すには
どういう風に書けばいいでしょうか?
for(i=0; i<10; i++) {
document.write(<?= $hogehoge[$i]['fugafuga'] ?>);
}
これは通用しませんでした,,,。
よろしくお願いします。
0684nobodyさん
2006/09/28(木) 14:08:41ID:5RjmQpnD$hairetsu[0] = '0';
これだと何も入らず空っぽだと認識されます><
0685nobodyさん
2006/09/28(木) 14:09:06ID:X3mGBPuBもしご存知でしたらお教えいただけないでしょうか?
str_replaceで'hoge1','hoge2'と置き換えするやり方はすぐに浮かぶのですが、
その場合、
'/hoge[1-9]h(a|b|c)/'という置き換えもありえますので厖大なソースになってしまいます。
0687nobodyさん
2006/09/28(木) 14:12:39ID:???preg_replace_callbackでできるけど、そこまで形が決まってるなら
$from = range(1, 9); $to = array();
foreach ($from as $n) $to[] = str_repeat('X', $n);
$result = str_replace($from, $to, $text);
でもいいかも。
正規表現使うなら、
preg_replace_callback('/hoge([1-9])/', function ($m) {
return 'hoge' . str_repeat('X', $m[1]);
}, $text);
って感じかな。どっちもあんま効率よくなさそうなので、適当に改造してくれ。
0688683
2006/09/28(木) 14:19:36ID:bhCM1dKbレスありがとうございます。
実際にはjavascriptの関数の引数として、phpの配列のあたいを順番に渡したいのです。
単に表示させるだけならphpで回すのですが、javascriptで処理しなければならないところがあるので。
phpの配列をそっくりjavascriptの配列に変換(?)するようなことはできないでしょうか?
0689nobodyさん
2006/09/28(木) 14:31:39ID:???できれば$hogehoge[$i]['fugafuga']なんていう面倒な構造に最初からならないように工夫したほうがいいけど、どうにもならないなら、
$hogehoge2 = array();
foreach ($hogehoge as $i => $hoge) {
$hogehoge2[$i] = $hoge['fugafuga'];
}
// ↑ここで ' と \ をエスケープする処理も必要ならいれる
?>
var hogehoge = ['<?php echo implode("', '", $hogehoge2)?>'];
for(i=0; i<10; i++) {
document.write(hogehoge2[i]);
}
こんな感じで無理やりやる。
0690nobodyさん
2006/09/28(木) 14:57:33ID:bhCM1dKbレスありがとうございます。
javascriptのコードの中にphpの変数を入るというより、
hpの変数が展開されたjavascriptのコード全文を一個の文字列として丸ごとjavascriptに投げました。
強引な手段だとは思いますが、一応動きます。
これはマズイやりかたでしょうか?
0691nobodyさん
2006/09/28(木) 14:58:32ID:bhCM1dKbhpの → phpの
すみません。
0693nobodyさん
2006/09/28(木) 15:18:39ID:???動くならいいんじゃね?(そもそもやっていることが一般的とは言えないから)
ボトムネックになったら直せばいい。
0694662
2006/09/28(木) 15:25:13ID:yFiHvde3ありがとうございました。
0695nobodyさん
2006/09/28(木) 15:31:01ID:bhCM1dKbありがとうございます。
いま作っているサービスで、googlmapを使っていて、
mysqlからお店のデータをとりだして、map上の各マーカーをクリックしたときに出るふきだしの中身にそのデータを入れたかったんです。
極端にいうと、
$マーカー[マーカーの番号][お店の名前];
$マーカー[マーカーの番号][お店の電話番号];
とかそんな具合にしたのです。
マーカーの番号は、何個お店データが抽出されるか分からないので、
$iとおきました。
あとは、googlemapのjavascriptで、マーカーを表示させる行をforするだけだと思ったのですが、うまくいかなかったので、
そのjavascriptのコード全部を文字列としてphpの変数に入れました。
あとは、googlemapのコードの中でその変数を一回だけ表示させればいいという仕組みです。
ajaxとかは使えませんし、javascript自体もあまり分かっていないので、苦肉の策といったかんじです。
0696nobodyさん
2006/09/28(木) 15:47:38ID:???http://study.rakuto.net/php/phptips/path_info/を参考にして入るのですが、htaccess文が全く分かりません
教えてくだっさい
0697nobodyさん
2006/09/28(木) 16:18:41ID:???<FilesMatch "^hoge$">
ForceType application/x-httpd-php
</FilesMatch>
0698nobodyさん
2006/09/28(木) 17:17:22ID:???AddType application/x-httpd-php .html
と書いておけばいい。
0699nobodyさん
2006/09/28(木) 17:27:41ID:???<FilesMatch "^index$">
ForceType application/x-httpd-php
</FilesMatch>
とやって、indexにアクセスしましたが無理でした...
(index.php設置済み)
また、indexで設定した場合、DirectoryIndexの設定はindexになるのでしょうか?
0700nobodyさん
2006/09/28(木) 17:28:36ID:???0701nobodyさん
2006/09/28(木) 17:35:53ID:???ありがとうです
ではDirectoryIndexもindexにする必要がありそうですね
0702nobodyさん
2006/09/28(木) 18:14:22ID:???mod_rewrite使えばいいんじゃね
RewriteEngine On
RewriteRule ^(.*)$ $1.php
0703nobodyさん
2006/09/28(木) 18:42:29ID:loAqiE0j<br> ではなく <br/>
と書くのはどうしてなのでしょうか?
<br>と書いても正しく動作はしました。
0704nobodyさん
2006/09/28(木) 18:50:09ID:???HTMLなら <br>
XHTML なら <br />
それぐらい知っとけ。
主要ブラウザではどっちで書いても同じ動作。
<br/> や <br></br> も XHTML として正しい表記だが、
XHTML未対応の古いブラウザだと誤動作を起こすことがある。(改行されないとか2回改行されるとか)
0705nobodyさん
2006/09/28(木) 19:52:10ID:fnAbwW59スクリプト、出力、データベース入力共にSJISのシステムにアクセスしてからEUCのシステムにアクセスするとこのエラーが発生しだします。
このエラーは上位ディレクトリにあるphpMyAdminでも発生するようになります。
おそらくhtaccessの設定によるものだと思うのですが、なぜ違う上位ディレクトリにまでエラーが出るのかわかりません。
SJISのシステムは携帯の絵文字を使用する掲示板のためEUCにするのは難しいです。
問題点と改善策を教えてください。
お願いします。
0707705
2006/09/28(木) 20:14:37ID:fnAbwW59Parse error: parse error, unexpected T_STRING in /home/????/public_html/????/m/mobile/includes/languages/japanese.php on line 70
というエラーが出たり出なかったりします。
その行は
define('HEADER_TITLE_TOP', 'トップ');
です。
0708nobodyさん
2006/09/28(木) 20:17:00ID:???本によると、規格化するときに<></>にしようとしたらbrがあったので<br></br>だとめんどくさいし古いのだとあれだし、
ましてや<br>だけだとだめだから、からタグ?でコメントないなら<br />で良いやって乗ってたような
0709705
2006/09/28(木) 20:19:51ID:fnAbwW59Parse error: parse error, unexpected T_STRING, expecting ')' in /home/????/public_html/phpMyAdmin/lang/japanese-euc.inc.php on line 19
でその行は
$day_of_week = array('日', '月', '火', '水', '木', '金', '土');
です。
0710nobodyさん
2006/09/28(木) 20:23:13ID:???0712705
2006/09/28(木) 20:39:28ID:fnAbwW59php_value mbstring.internal_encoding SJIS
php_value mbstring.script_encoding SJIS
掲示板ディレクトリのhtaccessの設定は
php_value output_handler none
php_value mbstring.http_input SJIS
php_value mbstring.http_output SJIS
php_value mbstring.encoding_translation off
php_value mbstring.detect_order auto
php_value mbstring.func_overload 1
php_value mbstring.substitue_charcter none;
です。
絵文字に関してですがこの設定じゃないとフォームから入力されてそれを受け取る時点で????なってしまいます。
これ以外の設定でこれを回避する方法もあるんでしょうか?
0713nobodyさん
2006/09/28(木) 20:46:59ID:???ひとまずこのスレを絵文字で検索する事をオヌヌメする。
0714nobodyさん
2006/09/28(木) 20:47:28ID:eG4UHdr9$Time = date("H");
switch ($Time) {
for ($a = 0; $a < 24; $a++){
case $a:
print "<P>".$a."</P>\n";
break;
}
}
?>
エラーになってしまいます。何故でしょうか?
教えてください。
0715nobodyさん
2006/09/28(木) 20:49:42ID:???の設定で、
$day_of_week = array('日', '月', '火', '水', '木', '金', '土');
とEUCで書いたスクリプトを読み込んだら
エラーが出てもおかしくない理由を理解できないと
あんたの根本的解決には至らない気がするな
0717705
2006/09/28(木) 20:57:54ID:???絵文字の変換はできていて掲示板は正しく動くんです。
掲示板にアクセスすると他ディレクトリのシステムでエラーが出るんです。
>>715
そのエラーが出るのは掲示板の上位ディレクトリでinternal_encoding SJISという設定はしていません。
それとも一度どこかでhtaccessで設定するとその設定は持ち越されてしまうのでしょうか?
0718nobodyさん
2006/09/28(木) 20:59:44ID:???> >>713
> 絵文字の変換はできていて掲示板は正しく動くんです。
> 掲示板にアクセスすると他ディレクトリのシステムでエラーが出るんです。
別のシステム(PHP)なら因果関係は無いはず。
cookieとかセッションとかがかぶってるとか??
0719nobodyさん
2006/09/28(木) 21:04:18ID:eG4UHdr9どこが間違いかご指摘お願い出来ませんか?
switch ($Time) {
//for ($a = 0; $a < 24; $a++){
case $a:
print "<P>".$a."</P>\n";
break;
//}
}
これはOKですし
//switch ($Time) {
for ($a = 0; $a < 24; $a++){
case $a:
print "<P>".$a."</P>\n";
break;
}
//}
これもエラーになりません。
for とswithを組みあわせるときに注意点などありますでしょうか?
0720705
2006/09/28(木) 21:05:11ID:???なるほど。しかしcookieとかセッションとかかぶることによってこのようなエラーが起きるんものなのでしょうか?
そもそも同じ部分を読んでるはずなのに更新するたびエラーが出たり出なかったりするのが自分の理解の範疇を超えていて困り果ててます。
とりあえずcookieとかセッションとかチェックしてみます。
0721nobodyさん
2006/09/28(木) 21:13:24ID:???case〜breakの中にfor構文は書けるが
caseを包括するようなforなんてのは書けないよ。
switch〜caseの構文を完全に壊してる。
そんな感じでやるならこうだろ。
for ($a = 0; $a < 24; $a++){
switch ($Time) {
case $a:
print "<P>".$a."</P>\n";
break;
}
}
0723705
2006/09/28(木) 21:59:34ID:???あるディレクトリから別ディレクトリにリンクで飛ばしたとき適応されるのは飛ばした先のですよね?
ちなみに掲示板のほうもおかしな挙動を始めてしまいました。
能で文字化けし、セッションも働いてないようです。
もうダメだ…。頭を冷やして出直します。ってゆーか逃げたいです。
webプログラミングってプログラムじゃないところが難しすぎますね。
みなさんありがとうございました。
0724nobodyさん
2006/09/28(木) 22:43:56ID:???能が文字化けする理由もわからんのにSJIS使ってるのか?
てかWebプログラミングはプログラムじゃないのか、へー。
0726nobodyさん
2006/09/29(金) 00:28:08ID:???揚げ足取るならせめてちゃんと読もうよ。
「プログラミング以外のところが難しすぎる」からどうやったらそう読めるのか…。
「能」の文字化け問題については同意だが…。
0727nobodyさん
2006/09/29(金) 00:43:14ID:???「webプログラミングってプログラムじゃないところが難しすぎますね。」
は>>724と同じ意味と受け取っていた、曖昧な表現にも問題があるかと・・。
「PHPってプログラムじゃなくてスクリプトでしょ」って俺もjava野郎に言われた事があって、ちょっと被害妄想も入ってるがw
0728nobodyさん
2006/09/29(金) 00:48:10ID:???0729nobodyさん
2006/09/29(金) 01:10:16ID:???そもそも2chは悪意ある発言と思っても間違いではない空間だと思うが。
0730nobodyさん
2006/09/29(金) 01:35:16ID:???java野郎がphp野郎より優れてるとは一概に言えないけど、
javaがある程度できる人とphpがある程度できる人(でもphpしかできない人)って、やっぱ「プログラマ」としての差があるのは否めない。
わりと適当に書いても動いちゃうからかな。
0731nobodyさん
2006/09/29(金) 02:13:13ID:CHXTDEUo$ pear package
Analyzing Foo/Bar.php
Error: Parser error: invalid PHP found in file "./Foo/Bar.php"
これを「function foo() {}」に変更したら、パッケージが作成できました。
これってpearのバグでしょうか。それともabstractは使うなということ?
どなたかアドバイスお願いします。
PHP 5.1.4, PEAR 1.4.9
0733731
2006/09/29(金) 02:31:17ID:???package.xmlで指定するバージョン番号が1より大きいときもエラーになって、
「その場合は<extends>タグを使え」とエラーメッセージに出てくるのですが、
pearのマニュアルを読んでも該当するタグが見つかりません。
エラーメッセージはこんな感じです。
Channel validator error: field "version" - major versions greater than 1 are not allowed for packages without an <extends> tag or an identical postfix (foo2 v2.0.0)
だれか<extends>タグの使い方教えてください。
0735nobodyさん
2006/09/29(金) 07:17:52ID:???ttp://www.php.net/manual/ja/language.oop5.abstract.php
0736nobodyさん
2006/09/29(金) 08:24:54ID:hGRz7bViまた、そのインポート方法はありますか?
よろしくお願いします。
0738nobodyさん
2006/09/29(金) 08:57:23ID:hGRz7bViすいません、php質問スレなのでphpって明記しておくのを忘れてました
PHPを使ってバックアップ、インポートがしたいのですが・・・
その方法が各DBのマニュアルに載っているのであれば失礼
0739nobodyさん
2006/09/29(金) 10:08:17ID:???>「PHPってプログラムじゃなくてスクリプトでしょ」って俺もjava野郎に言われた事があって
へぇ〜
スクリプトはプログラムじゃないのか?
ネイティブなCPUコードに落ちていないという意味ではjavaも
中途半端じゃん。
正直、言語の優越はあんまり興味ないな。そんなの切り口で
いくらでも評価変わってくるしさ。好きな言語使えばいいじゃん。
一番影響するのは、個人スキルの優越だしな。
チラ裏だが、
俺的には、Webプログラムで飯食ってるやつが
XSS、CSRFとか知らないっていうのは恥ずかしいと思う。
1言語しか知らないやつが言語の優劣語るのは恥ずかしいと思う。
まぁ、そういうやつに限って優越語りたがるんだがな。
0740nobodyさん
2006/09/29(金) 11:41:00ID:???お前の質問は、
「八百屋さんに野菜が売っていますか?」
と言ってるようなものだ。
その質問への答えは、「はい」で終わり。
0741nobodyさん
2006/09/29(金) 13:43:57ID:???みたいに、変数宣言せずにクラスを使うようにするにはどうすればいいの?
一回しか使わないのに毎回変数に入れるのまんどくさい(´Д`)
0742nobodyさん
2006/09/29(金) 13:54:40ID:???0743nobodyさん
2006/09/29(金) 14:02:15ID:???0744nobodyさん
2006/09/29(金) 14:04:37ID:???0746nobodyさん
2006/09/29(金) 17:20:17ID:hGRz7bViそうですね、失礼しました。
その方法をお願いします
0747nobodyさん
2006/09/29(金) 17:22:27ID:???mysql バックアップ
でググってみてはどうでしょうか。
その後、その方法をPHPで実行する方法を考えましょう。
0749nobodyさん
2006/09/29(金) 18:14:10ID:ejiIN4Agはtrue返すしvar_dumpで見てもnameやsizeも入ってるのに
is_uploaded_file($_FILES["hoge"])
はfalse返ってきます・・・
php.iniですが
file_uploads = on
;upload_tmp_dir = c:\windows\temp
upload_max_filesize = 5M
upload_tmp_dirはコメントアウトしてるので、winsows2003の場合"C:\WINDOWS\Temp"に
入ってるはずが・・・
どこか考え間違いでもしてるんでしょうか凹○
0750nobodyさん
2006/09/29(金) 18:17:18ID:???0751nobodyさん
2006/09/29(金) 18:33:29ID:???と思いきや$_FILES["hoge"]["tmp_name"]に直しても駄目でした・・・
0752nobodyさん
2006/09/29(金) 18:45:13ID:???0753749
2006/09/29(金) 19:07:32ID:???var_dump($_FILES["hoge"]);
var_dump(is_uploaded_file($_FILES["hoge"]['tmp_name']));
試しにこうやって見ると
array(5) {
["name"]=> array(1) { [0]=> string(12) "test.zip" }
["type"]=> array(1) { [0]=> string(28) "application/x-zip-compressed" }
["tmp_name"]=> array(1) { [0]=> string(25) "C:\WINDOWS\TEMP\php81.tmp" }
["error"]=> array(1) { [0]=> int(0) }
["size"]=> array(1) { [0]=> int(3405) }
}
bool(false)
こんな感じなのです。
なんかhttpサーバーが原因な気もしますねこれ、うーん
環境書いておきます。
windows2k3 apache2.0.55 php5.1.2
0755nobodyさん
2006/09/29(金) 20:10:11ID:???http://jp2.php.net/manual/ja/function.is-uploaded-file.php
to get the example to work on windows, youll have to add a line,
that replaces backslashes with slashes.
eg.: $filename = str_replace ("\\", "/", $filename);
前から思ってるんだけど、公式マニュアルにコメント欄がくっついてて、
そこに結構重要な情報が書いてある、っていう
この公式マニュアルの仕様はどうにかならないのかな?
xml_set_character_data_handlerのコメント欄なんかも
It would be nice if someone could complete documentation of
this function. I think that the "splitting" behaviour
should (at least) be mentioned within the documentation,
とか書いてあるし。
(コメント欄で盛り上がった、ある仕様について
「これってドキュメントに書いてあるべきだよね」とか書いてある)
http://jp2.php.net/manual/ja/function.xml-set-character-data-handler.php
0757nobodyさん
2006/09/29(金) 20:18:43ID:???英語でどこかに通知すればいいのかな?
0758nobodyさん
2006/09/29(金) 20:38:19ID:???var_dump($a);
var_dump(file_exists($a));
array(1) { [0]=> string(25) "C:/WINDOWS/TEMP/phpCA.tmp" }
bool(false)
重ね重ねありがとうございます!がやっぱ読み取れないっす・・
申し訳なさと焦りで心が折れそうです
>>755
日本語のとこしか読んだことありません 汗
0759nobodyさん
2006/09/29(金) 21:03:42ID:kqk1O6yRURLに http://〜/index.php?2006
のように ?a=1&b=2 などとなっていないのを見かけるのですが、
この場合どうやって'2006'を取得できるのでしょうか?
取得したい変数がひとつの時にシンプルでいいな、と思っています
よろしくお願いいたします
0760nobodyさん
2006/09/29(金) 21:06:10ID:???$_SERVER['QUERY_STRING']で取れない?
0761nobodyさん
2006/09/29(金) 21:10:28ID:???file_existsがfalseになるってのは、
そもそも、そのファイルは存在しているのだろうかって感じだね。
なにがおこってるんだろ。
WindowsのpHPはつかったことないけど、俺なら
まず、そのファイルが存在するのか、
あと、サーバーがWindows2000みたいだけど、XPではどうか、
Linuxとか(レン鯖とかなんでもいいけど)では、同じスクリプトが動くか、
などを見てみるかな。
0764nobodyさん
2006/09/29(金) 21:28:09ID:???ここを良く見ろ
> ["tmp_name"]=> array(1) { [0]=> string(25) "C:\WINDOWS\TEMP\php81.tmp" }
ファイル名が入ってるのは$_FILES['hoge']['tmp_name'][0]だ
0765nobodyさん
2006/09/29(金) 23:50:44ID:???配列で連結しすぎると分かりにくくなるし。
A1−−B1
−−B2
−−B3ーーC1
−−C2
−−C3
A2−−B1
−−B2
−−B3
たとえばこんな感じの。
0766nobodyさん
2006/09/29(金) 23:57:32ID:???0767nobodyさん
2006/09/30(土) 01:01:05ID:???0 => array(null),
1 => array(0),
2 => array(1)
)
で3階層おpk
0768nobodyさん
2006/09/30(土) 12:42:07ID:???while ($data[$i] = $result->fetchRow()) {
$i++;
}
って意味のある文なんでしょうか?
$data[$i] = $result->fetchRow()って条件式で
$data[$i] に値を代入していくわけではないですよね??
ttp://ethna.jp/ethna-document-dev_guide-db.html
$sql = "SELECT id FROM test";
$result =& $db->query($sql);
$i = 0;
while ($data[$i] = $result->fetchRow()) {
$i++;
}
0770nobodyさん
2006/09/30(土) 12:59:44ID:???データを取り出して、格納したデータを条件式で比較して
データが存在すればまた繰り返すってやつ。
それ最後に無駄なデータがはいっちゃうんだよね。
while ($buf = $result->fetchRow()) {
$data[] = $buf;
}
こっちのほうがいいよ。
0771nobodyさん
2006/09/30(土) 21:25:10ID:???0772nobodyさん
2006/10/01(日) 02:27:44ID:F96v0AKS<?php
setlocale (LC_ALL, 'jpn');
print(strftime("%Y年%b月%d日"));
print(strftime("%A"));
?>
上の例だと月までは表示されるのですがそれ以降が文字化けします。
曜日もめちゃくちゃです。
phpiniの設定は
default_charset = EUC-JP
magic_quotes_gpc = Off
output_buffering = Off
mbstring.language = Japanese
mbstring.encoding_translation = On
mbstring.http_input = auto
mbstring.http_output = EUC-JP
mbstring.internal_encoding = EUC-JP
mbstring.detect_order = auto
mbstring.substitute_character = none
phpファイルはEUC-JPで保存。
文字列自体を
print("日曜日");
とかすると問題なく出ます。
phpiniの設定など、いろいろな組み合わせを試してみましたが解決しませんでした。
phpは5.14です。
お願いいたします。
0773nobodyさん
2006/10/01(日) 03:21:35ID:???次のコードで今日の日付と曜日は出力することができると思います。
//今日の日付
print(sprintf('%s年%s月%s日', date('Y'), date('m'), date('d')));
//曜日
$week = array('日', '月', '火', '水', '木', '金', '土');
print($week[date('w')] . '曜日');
もっとスマートなやり方があるかもしれませんが。
0774nobodyさん
2006/10/01(日) 03:47:33ID:???0775772
2006/10/01(日) 12:36:31ID:F96v0AKSなるほどその方法だと出ますね
strftimeのマニュアルに
「注意 (上記の)全ての変換指定子が使用するCライブラリでサポートされてい ない可能性があります。この場合、PHPの strftime()で該当する変換指定子はサポートされ ません。」
こんな記述がありました。
これでしょうか?文字化けなので微妙に違う気もするけど。
Smartyを使ってるんで、プラグイン作るかなあ。
日付は2006/10/01とか2006-10-01でもいいし、
{$data|date_format:"%b"}月{$data|date_format:"%d"}日
とできるけど、曜日が英語表記だとなんだし…
>>774
ごめんなさい。書き忘れましたがwindowsでテストしてるんです。
その書き方はLinuxの書き方でしょうか?
私の環境だと
setlocale(LC_ALL, 'jpn' );
以外は日本語にセットされないみたいです。
setlocale(LC_ALL,'jpn.eucJP');
も試してみましたが曜日が英語で表示されるので効いていないみたい。
ちなみにPHP5.16にしてみましたが同じでした。
0776nobodyさん
2006/10/01(日) 13:55:05ID:U0I6sUmv*.htmlと*.phpで数字で見て負荷は変わりますか?
0777nobodyさん
2006/10/01(日) 13:57:34ID:???0778nobodyさん
2006/10/01(日) 14:04:14ID:???0779nobodyさん
2006/10/01(日) 14:13:08ID:U0I6sUmv$パスワード=ぱすわーど;
$なまえ=ぎこねこ;
if($ぱすわーど==$_post[省略]&&$なまえ==$_post[省略]){
echo"ログインしました";
} else {
echo"不正なアクセスです。";
}
というコードをphpファイルにうめてアクセス制限を行いたいのですが、
BASIC認証と比べて、phpファイルに直接埋め込むこのやり方はどちらが安全でしょうか?
また、このやりかたでパスワードやなまえがもれるでしょうか?
0780nobodyさん
2006/10/01(日) 14:18:45ID:???setlocate(LC_ALL,Japanese_Japan.20932)
0782nobodyさん
2006/10/01(日) 15:52:43ID:???0783nobodyさん
2006/10/01(日) 16:08:29ID:???0784nobodyさん
2006/10/01(日) 16:16:28ID:???ローカルでCLIなPHPスクリプト動かして
対象ファイル読み込んで正規表現で
<script.*?</script>を削除して保存。
0785nobodyさん
2006/10/01(日) 16:21:39ID:F96v0AKSおお、直りました
ありがとうございます
教えてもらっておいてなんですけど正確には
setlocale (LC_ALL, 'Japanese_Japan.20932');
でした。
シングル、もしくはダブルクオーテーションで囲まないと駄目でした。
ウィンドウズでEUCJPの時はこうみたいですね。
0786nobodyさん
2006/10/01(日) 16:31:01ID:???foreach ((array) glob('*.html') as $file) {
$contents = file_get_contents($file);
$contents = preg_replace('|<script.*?</script>|is', '', $contents);
file_put_contents($file, $contents);
}
phpって便利ね。
0788nobodyさん
2006/10/01(日) 17:19:26ID:U0I6sUmvempty($_POST["name"])と!isset($_POST["name"])は同じですか?
なんかemptyを使うとうまくいくのですが、!issetだと動かないんですよね。
0789nobodyさん
2006/10/01(日) 17:34:06ID:???0790nobodyさん
2006/10/01(日) 17:44:02ID:???empty … もし、空ならば
isset … もし、変数がセットされていないならば
$a = "";
だと、変数はセットされていないが、空だという状況になる。
0791790
2006/10/01(日) 17:44:39ID:???isset … もし、変数がセットされて「いる」ならば
否定形と肯定形の関数があるってのは紛らわしすぎるな
0793nobodyさん
2006/10/01(日) 17:49:25ID:???> $a = "";
>
> だと、変数はセットされていないが、空だという状況になる。
変数はセットされているが空、でしょ。
0795nobodyさん
2006/10/01(日) 17:52:19ID:???0797nobodyさん
2006/10/01(日) 18:25:04ID:???>フォームが空でも空文字列で渡ってくる。
nameだからテキストフィールドだと思うけど、たとえばチェックボックスは
チェックしてないと渡ってこないよ。
0798nobodyさん
2006/10/01(日) 18:41:49ID:???余計なお節介かもだけどタグに囲まれてない部分のスクリプトもケアしような
onmouseoverとかhref="javascript:〜"とかとか
0799782
2006/10/01(日) 19:03:01ID:???>>783
いや…ちょ……
>>784>>786>>798
ありがとうございます。
しかし、たとえば極端な例ですが次のような場合に変になってしまって困っています。
<script>for (var i = 0; i < 5; i++) { /* </script> */ document.write("</script>") }</script>
こういうscriptタグが含まれた場合にも上手く削除できるような方法を探しています。
何か良い方法はないでしょうか?
0801nobodyさん
2006/10/01(日) 19:25:15ID:???2.// から行末までと、/*〜*/ を削除
0802nobodyさん
2006/10/01(日) 19:33:15ID:???それよりもまず、そもそもなぜそんなことがしたいのか理由を説明してくれ。
それによって答え方も変わってくる。
0803nobodyさん
2006/10/01(日) 19:44:29ID:???0804nobodyさん
2006/10/01(日) 20:02:42ID:???0805nobodyさん
2006/10/01(日) 20:06:15ID:???できるけどやらないに越したことはない。
これ、つい最近も出た質問だったけど、今日は気分がいいので説明しとく。
function hoge() {
function foo() {
・・・
}
}
と定義すると、hoge();を2回呼び出したときに、fooを2回目に定義することになり、エラーが出る。
if (function_exists('foo'))でチェックして定義すればよいのだが、どうせグローバル空間に名前が追加されるので、関数の中に関数を定義することには
メ リ ッ ト が 何 一 つ な い
と言っても過言ではない。
0806nobodyさん
2006/10/01(日) 20:18:46ID:???http://www.php.net/manual/ja/language.functions.php
これを見た感じだと、
function makehoge($hoge) {
if ($hoge == $fuga) {
function hoge() {
// ....
}
} else {
function hoge() {
//
}
}
}
みたいなことができたりするんだろうか?
・・・ってなくてもいいかな、この機能
0809nobodyさん
2006/10/01(日) 20:58:31ID:???できることには間違いはないと思うけど。
それより、マニュアルも読まないで、逆ギレするのはやめたほうがいい!
0810nobodyさん
2006/10/01(日) 21:10:08ID:???0811nobodyさん
2006/10/01(日) 21:14:41ID:???それが質問する側の態度か、ボケが。氏にさらせ!
っていうか質問するならまずIDを表示しろ。
ルールを守れチンカス野郎。
0812nobodyさん
2006/10/01(日) 21:23:26ID:???0813nobodyさん
2006/10/01(日) 21:36:25ID:???設定によって何か切り替えたいとき、関数の中で場合わけしなくて済むっていう利点はあるな。
たとえば俺は、DBがMySQLかpostgresqlかで関数の定義を分けるのに使った。
0815nobodyさん
2006/10/01(日) 22:22:17ID:???「自分はできる」って勘違いしちゃってるよ。ここもほぼ初心者板なんだからさ。
>>811
ここは2chなんだからさ、態度が悪いのは仕方ないでしょ。実際回答する側だって態度悪いこと多いんだし。
0816nobodyさん
2006/10/01(日) 22:46:27ID:???2006ねん10がつ1にち あめ
つかれてるひとへこれあげるね
http://www.muzie.co.jp/cgi-bin/genre.cgi?id=classic&page=1&sort=m
0817nobodyさん
2006/10/01(日) 23:17:02ID:???PHPより優れたCGIってありますか?
0818nobodyさん
2006/10/01(日) 23:22:04ID:uNLBS1eMclass Hoge extends Mage extends Moge
{}
みたいなことがしたいんです。
0819nobodyさん
2006/10/01(日) 23:26:05ID:???class Mage extends Moge
{
}
class Hoge extends Mage
{
}
0821nobodyさん
2006/10/02(月) 00:34:33ID:???0822nobodyさん
2006/10/02(月) 00:51:35ID:???0823nobodyさん
2006/10/02(月) 02:45:38ID:???対象サーバの管理者がログとか提出しない限り、
そんなの計測しようがないと思うんだが・・・。
(※PHPと関係ない話題だけど)
0824nobodyさん
2006/10/02(月) 02:55:17ID:???「Alexa スパイウェア」でぐぐってみw
結論から言えばブラウザにスパイウェアをいれて、閲覧履歴をAlexaに送信して
人気度を計測してる
0825nobodyさん
2006/10/02(月) 03:50:02ID:???俺はalexaツールバーは使ってないし、
スパイウェア対策ソフトも入れてるから、あんまり関係ないな。
っていうかそういう人がほとんどだろうから、
Alexaのランキングってあんまりアテにならないな。
「セキュリティ意識の薄いド素人のネット利用傾向」は分かるだろうけどwww
0826nobodyさん
2006/10/02(月) 03:54:08ID:???ユーザーに黙って、こっそりAlexaのスパイウェアをIEに混合してたとは。
俺はIEのインストール時に、「スパイウェアが含まれています」なんて
注意書きを見た覚えはないぞ!!
これ、ある意味で詐欺じゃねぇの?
0828nobodyさん
2006/10/02(月) 04:27:43ID:???利用規約とプライバシーについてを「全文」読みました?w
実際読む人なんて1000人に1人もいないだろうけどねぇ
0829nobodyさん
2006/10/02(月) 04:46:48ID:???理論的には、文章を無駄に何百倍にも薄めて
都合の悪い規約を発見されないようにすることも可能なわけだし。
A4用紙1枚程度に収まるような、一目でわかる「要約版」を義務化してほしいもんだ。
0830nobodyさん
2006/10/02(月) 05:01:18ID:???なるほど、もっともな意見だな。
ただ、現行では「利用規約が読めないor同意できないのであれば使わなければいい」という話に持っていかれてしまうので、まだまだ社会全体の精神面での改革が必要かもしれない。
0831nobodyさん
2006/10/02(月) 07:10:22ID:???0834nobodyさん
2006/10/02(月) 11:48:53ID:???おかないと、すぐに裁判おこして金を取ろうとする阿呆が出る。
0836nobodyさん
2006/10/02(月) 12:47:14ID:???2006.10.02みたいな感じにテキストで表示させたいのです。
0838837
2006/10/02(月) 13:39:52ID:???<?php
$date = date("Y.m.d");
echo $date;
?>
0839nobodyさん
2006/10/02(月) 13:40:42ID:???何百とDLされたけど、連絡してきたのはたった2人。
って話だったような。
記事読んだのが結構前だから、元記事探そうと検索したけど見付からなくてスマソ
0840nobodyさん
2006/10/02(月) 13:55:07ID:???実際はもっといたんじゃないかね?
俺なら賞金くれるなんていっても連絡しないよ。
めんどくさいし、どうせネタだろ?って思っておしまいだな。
0841nobodyさん
2006/10/02(月) 15:01:57ID:L7olNnvKで?の後の値が取れないんですけど
phpのバージョンとか関係ありますか?
どんなきっかけでもいいので原因分かる方
お願いします。
0842nobodyさん
2006/10/02(月) 15:08:48ID:???$HTTP_SERVER_VARS
どうも。
0844nobodyさん
2006/10/02(月) 15:55:02ID:???ここはアメリカじゃないぜ!
・・・って言いたいところだけど、最近は日本でもDQNな訴えを
起こすバカが増えてきたからなぁ。
世間的に「セクハラ」とかいう言葉が浸透しだした90年代中頃から、
だんだんおかしくなってきてる気がする。
0845nobodyさん
2006/10/02(月) 16:10:57ID:???実際のところはお役所なり弁護士なり警察なりの指導を受けると、
むしろ「膨大な長さの利用規約でなければいけない」というのが事実。
うちの会社のも利用規約も日に日に太る一方なんですけどorz
要約なんてしたらどうとでも取れる曖昧な表現ばかりになるから
利用規約としては全く通じないのよ。
0846nobodyさん
2006/10/02(月) 16:44:55ID:???「要約」ってのは、もちろん「本来の膨大な規約」があったうえでの話だよ。
要約を用意しておいて、あくまでも「詳しくは本文を見てね」とすれば良い。
0847nobodyさん
2006/10/02(月) 16:45:44ID:???スレ違いスマソ。
0848nobodyさん
2006/10/02(月) 17:10:41ID:???0849nobodyさん
2006/10/02(月) 18:02:13ID:???マクドナルドで、ホットコーヒー飲んだら熱すぎて火傷したから金払え!
って訴えてマクドナルドから金を取ったバカがいるらしいからなww
0850nobodyさん
2006/10/02(月) 18:22:10ID:UQwx9m4d$bangou = 0;
なんちゃらなんちゃらの処理
$bangou = $bangou++;
?>
次表示するときに$bangouの値を保持したいのだけど、これは別にtxtファイルなど使わないとできないですか?
0852nobodyさん
2006/10/02(月) 18:29:23ID:UQwx9m4dどうもありがとうございました。 またわからなかったら聞きに来るのでヒントをいただきたいです……
sesseion_start();
$_SESSION["hoge"] = $bangou;
0854nobodyさん
2006/10/02(月) 19:10:40ID:???は
$bangou++;
と同じ
0855nobodyさん
2006/10/02(月) 21:29:42ID:???spec みたら 5.1.2 のパッケージのに pear ってないです。
それなのに、Requires: file >= 4.0, php-pear になっています。
バージョンが 4.0 以上ならば依存関係なしでいいのでしょうか。
0857nobodyさん
2006/10/02(月) 22:37:49ID:???>>849
ドライブスルーで買ったコーヒーひざにこぼして火傷して損害賠償請求
ってのはあった。
マックのコーヒーは他のチェーン店よりも熱い(85℃くらい)ってのが
言い分で数百万$の請求だったと思う。
日本は請求金額に応じて印紙税がかかるとか、判例を作りたくない裁判官
に和解を勧められて1桁少ない額で落ち着く事が多いとか、そういう
違いがあったと思うなり。
0858nobodyさん
2006/10/02(月) 23:42:30ID:???日本でも、最終的には店側がマニュアル変更するという条件で和解が成立したけど、
ファミレスでお子様ランチのスープが熱くて、飲んだ子供がやけどしたから
48万円の賠償を請求した訴訟とか実際にあるよねw
(で、店が「熱いので注意してください」と声をかけるのをマニュアル化したことで和解)
0860nobodyさん
2006/10/02(月) 23:49:25ID:???食べています。(実話)
0861nobodyさん
2006/10/02(月) 23:49:43ID:???被告側の反論
> 被告側は「原因は一気に飲もうとしたため。店では毎月八百六十食の注文があるが事故は他にない」と反論。
> 「お客さまに提供する時の温度は七七度で最もおいしく、札幌ラーメンのスープも七八度が一般的」としている。
実際に熱いのが飲めるか飲めないかは子供によりけりなのに、
最初からまずくして提供するのも問題じゃないか?
別に常識外れの温度にしてるわけじゃないんだし。
0862nobodyさん
2006/10/03(火) 00:32:01ID:???0863nobodyさん
2006/10/03(火) 02:05:48ID:???は!?
$bangou = $bangou++;
は
$bangou = $bangou;
と同じ。(つまり何も変わらない)
$bangou++;
と同じになるのは
$bangou = ++$bangou;
だぞ。
0864nobodyさん
2006/10/03(火) 02:34:39ID:S6+L6oiN0867nobodyさん
2006/10/03(火) 04:59:44ID:???0868nobodyさん
2006/10/03(火) 05:11:57ID:???i=i++;/*これは動作未定義*/
C99以降の話なら知らん。
0869nobodyさん
2006/10/03(火) 07:05:37ID:???以前どこかのメーリングリストか掲示板で話題になったのを思い出した(Cだけど)。
結果は未定義ということで実際の動作も処理系で違ったんだったっけ。
<?php
$a = 2;
$a = $a++;
echo $a;
?>
結果は"2"だった
0870nobodyさん
2006/10/03(火) 07:12:49ID:???int main(void)
{
int i = 2;
i = i++;
printf("%d",i);
return 0;
}
VC++6では3になった
0871nobodyさん
2006/10/03(火) 07:22:47ID:???って解釈次第ではどちらとも取れるんだよね
0872nobodyさん
2006/10/03(火) 07:32:26ID:???式の結果として何が返るかは、オペレータの定義とは別、じゃないかな?
0873nobodyさん
2006/10/03(火) 08:34:24ID:???>>870
うちにもMS-C v6あるんで追加でやってみた。
#include <stdio.h>
int main(void)
{
int i, j, k;
i = 2; i = i ++; printf("%d", i); //結果は3
i = 2; j = i ++; printf("%d", j); //結果は2
}
なんか原理が理解不能な結果だなw なんだこれ??
PHPのは非常に素直な結果だと思える…
0876nobodyさん
2006/10/03(火) 10:24:08ID:???そのまま代入するのはやめましょうってことだな
0877nobodyさん
2006/10/03(火) 10:30:37ID:???0878nobodyさん
2006/10/03(火) 12:38:46ID:???本題と何ら関係がないが k も使ってあげてください…
0879nobodyさん
2006/10/03(火) 13:39:07ID:???$i = $i + 1;
だろうww
0880nobodyさん
2006/10/03(火) 13:43:52ID:???0881nobodyさん
2006/10/03(火) 13:44:29ID:???0883nobodyさん
2006/10/03(火) 14:12:17ID:???0884nobodyさん
2006/10/03(火) 15:01:56ID:???そんなに多用するものでもないし。
0886nobodyさん
2006/10/03(火) 15:17:34ID:???0887nobodyさん
2006/10/03(火) 15:26:07ID:???プロジェクトでのコーディング規則があればそれに従ったほうがいいけど。
0888nobodyさん
2006/10/03(火) 16:03:04ID:???if(){
}
else{
}
if(){
}else{
}
0889nobodyさん
2006/10/03(火) 16:30:16ID:???別にバカにしてる訳じゃないけど
まさしくこのスレらしい下らねぇ質問だなw
俺は2番目の書き方の方が好きだよ。
0890nobodyさん
2006/10/03(火) 16:44:00ID:???if()
{
}
else
{
}
な俺は少数派かな
0891nobodyさん
2006/10/03(火) 16:48:45ID:???$uho = $unko ? $chinko : $manko;
switch($unko){
case 1: $manko; break;
default: $chinko
}
0892nobodyさん
2006/10/03(火) 17:26:00ID:qfH+jnmaログインしてる会員以外は見れなくする(直リン禁止する?)には
どうしたらいいのでしょうか?
0893nobodyさん
2006/10/03(火) 17:31:37ID:???0894nobodyさん
2006/10/03(火) 17:33:59ID:???そんなのは誰でも分かってるだろ。
問題は画像ファイルをどのように鯖に格納しておくか、どのように取り出すか、だろ。
0896nobodyさん
2006/10/03(火) 17:54:23ID:???0898nobodyさん
2006/10/03(火) 17:56:48ID:???0899nobodyさん
2006/10/03(火) 18:31:18ID:???if (...):
else:
endif;
もあるよ。
>>889
コーディング・スタイルの話題は下らない話題じゃねえぞ。
プログラマにとって、永遠のテーマだ。
0900nobodyさん
2006/10/03(火) 18:35:26ID:???それを出力すりゃいいんだろうけど普通にやったら
多分恐ろしくパフォーマンス悪いよなあ
0901nobodyさん
2006/10/03(火) 18:53:13ID:???あるいはドキュメント・ルート外のディレクトリに画像置いといて
ストリーミング系関数で取り出すとかあるだろうけど、
どちらにしてもパフォーマンスに問題あるわな。
>>895-898 知らねーなら書き込むなクソもぐら。
0902nobodyさん
2006/10/03(火) 19:30:45ID:???「クソもぐら」って何でつか?
0906nobodyさん
2006/10/03(火) 20:16:04ID:???中学生かよ。
0907nobodyさん
2006/10/03(火) 20:30:20ID:???0908892
2006/10/03(火) 20:35:44ID:qfH+jnmaすみません、バイナリモードって何でしょうか?
>>901
できればデータベースを使わない方法でやりたいんですが・・・
0909nobodyさん
2006/10/03(火) 20:43:30ID:???0911nobodyさん
2006/10/03(火) 20:49:20ID:???// output
bool(true)
これって合ってるのでしょうか?
0912nobodyさん
2006/10/03(火) 21:05:20ID:f3UZrmTT【PHPのバージョン】 5
現在の時刻を、"5時5分5秒05"のようにn分の1秒まで表示するすべはないでしょうか?
date関数のフォーマットでは秒までしかない(ttp://www.php.net/manual/ja/function.date.php)
ようなので、別の方法を探そう・・・にも私の頭では無理でした
0913nobodyさん
2006/10/03(火) 21:35:16ID:f3UZrmTTスレ汚しをしてしまって申し訳ありませんでした
0914nobodyさん
2006/10/03(火) 21:38:54ID:???0915nobodyさん
2006/10/03(火) 21:39:05ID:???実に惜しいな。あと一歩だったのに。
つ【http://www.php.net/manual/ja/function.microtime.php】
0917nobodyさん
2006/10/03(火) 21:46:40ID:6fYukKk6サンプルによくあるのに、だいたいエラー吐くんだか
0920nobodyさん
2006/10/04(水) 00:23:49ID:???0921nobodyさん
2006/10/04(水) 00:41:20ID:???これぞくだ質っぽいけど。
0922nobodyさん
2006/10/04(水) 00:48:50ID:???localは.httpaccessとかでいじった値と勝手に思っていたが違うのか
0923922
2006/10/04(水) 00:50:00ID:???ググレ
0924921
2006/10/04(水) 01:02:01ID:???0925nobodyさん
2006/10/04(水) 01:23:55ID:KYSz6DR60927nobodyさん
2006/10/04(水) 01:30:24ID:???どっちかっつーとカリビアンな香りw
0928nobodyさん
2006/10/04(水) 01:37:08ID:KYSz6DR60929nobodyさん
2006/10/04(水) 01:43:03ID:???0930sage
2006/10/04(水) 01:46:29ID:KYSz6DR6それはPHPじゃないだろw
0931nobodyさん
2006/10/04(水) 01:50:37ID:???で調べると出来そうではあるが?
0935nobodyさん
2006/10/04(水) 02:02:12ID:KYSz6DR6そのとおりです
0936nobodyさん
2006/10/04(水) 02:08:35ID:???0937nobodyさん
2006/10/04(水) 02:13:34ID:tLsYS9Ob0938nobodyさん
2006/10/04(水) 02:15:25ID:???ffmpeg-phpなら
ttp://ffmpeg-php.sourceforge.net/
ttp://ffmpeg-php.sourceforge.net/apidoc.php ← API documentation
日本語の情報は殆どないようだから翻訳サイトでも使って頑張って嫁
0939nobodyさん
2006/10/04(水) 02:20:54ID:???それやるには、まずそもそもFLV画像をダウンロードしてこなきゃ
始まらない気はするんだが、そんなのやってYoutubeに怒られない?
0940nobodyさん
2006/10/04(水) 02:33:31ID:???0941nobodyさん
2006/10/04(水) 02:35:10ID:???怒られたら何も言い返せないだろうけど、
無許可で動画だけリンクした紹介サイト作りまくったりで・・事実上黙認なのかな。
個人的にはどうかと思うけど、YouTubeが何も言ってない(?)しねぇ
>>940
それとは話が違うでしょww
0942nobodyさん
2006/10/04(水) 02:41:34ID:???動画だけリンクはサービスを第三者を経由して行ってるだけだから些細なんだが、
第三者がユーザとは別に大量の動画データを抜き出したりとかしたら
それはサーバー負荷もすごいかかるわけで大問題になるだろ。
0943nobodyさん
2006/10/04(水) 03:00:58ID:???Googleのイメージ検索だってそうじゃん
漏れのサイトGoogleイメージ検索で勝手にインライン表示(他人のサイトの画像を自分のサイトに埋め込む通称直リンク)されて
物凄い転送量使われてるし、色々な種類のクローラーがきてCGIに大量にアクセスされるから負荷も凄い
その程度ならインターネットの世界では日常的に行われてる
まぁ、マナーとしては、UserAgent に説明のURLいれて、robot.txt で拒否できるようにしとけばいいとおもう
0945nobodyさん
2006/10/04(水) 12:00:47ID:???MIMEは$_FILES['files'][type']でとれるみたいですが、
拡張子も調べたい場合はどうしたらいいのでしょうか?
0946nobodyさん
2006/10/04(水) 12:06:02ID:???0949nobodyさん
2006/10/04(水) 13:48:41ID:???0950nobodyさん
2006/10/04(水) 15:21:58ID:???どうやって?
0951nobodyさん
2006/10/04(水) 15:37:28ID:???0952nobodyさん
2006/10/04(水) 16:41:03ID:???0953nobodyさん
2006/10/04(水) 17:53:35ID:???スレ違いかも
0954nobodyさん
2006/10/04(水) 18:19:44ID:???0955nobodyさん
2006/10/04(水) 19:01:38ID:???多分だけどな
0956nobodyさん
2006/10/04(水) 19:29:58ID:???preg_replace('Ho(.+?)GE', '<a href="http://...">\\1</a>', $msg)
この\\1にはいる部分をサニタイズ(htmlspecialchars)したいのですがどんな方法があるでしょうか?
宜しくです
0961(^ω^)
2006/10/04(水) 19:57:05ID:???これってできなかったっけ
0962956
2006/10/04(水) 20:01:10ID:???それしちゃうと<a>タグ効かなくなっちゃいますょ
今はpreg_matchで一回とってからサニタイズしてますが、効率とか悪い…
0963nobodyさん
2006/10/04(水) 20:01:23ID:???マニュアルに全部載ってる。
http://www.php.net/manual/ja/function.preg-replace.php
http://www.php.net/manual/ja/function.preg-replace-callback.php
>>961
それだと、置換後の文字列にするやつをエスケープしちゃってる。
0964nobodyさん
2006/10/04(水) 20:12:40ID:???ttp://pear.plus-server.net/package.mail.mail.send.html
これの例のコードをコピペで動かしても、メールが飛びませんorz
エラーコードは吐いていません。
鯖情報…XREAで借りましたorz
OS Linux としか書いてないorz
Apache 1.3.37
PHP 5.1.6
0965964
2006/10/04(水) 20:14:18ID:Q3Xp5VSeどなたか教えて下さい…
0966nobodyさん
2006/10/04(水) 20:17:08ID:???0968nobodyさん
2006/10/04(水) 23:50:42ID:DvYxKH3Saaa.inc
と
aaa.inc.php
て
どう違うんですか?
0971nobodyさん
2006/10/05(木) 00:03:54ID:???0972nobodyさん
2006/10/05(木) 00:10:52ID:???aaa.inc →「aaa」という名前の.incファイル
aaa.inc.php→「aaa.inc」という名前の.phpファイル
0973nobodyさん
2006/10/05(木) 00:19:38ID:???. . .... ..: : :: :: ::: :::::: :::::::::::: : :::::::::::::::::::::::::::::::::::::::::::::
Λ_Λ . . . .: : : ::: : :: ::::::::: :::::::::::::::::::::::::::::
/:彡ミ゛ヽ;)ー、 . . .: : : :::::: :::::::::::::::::::::::::::::::::
/ :::/:: ヽ、ヽ、 ::i . .:: :.: ::: . :::::::::::::::::::::::::::::::::::::::
/ :::/;;: ヽ ヽ ::l . :. :. .:: : :: :: :::::::: : ::::::::::::::::::
 ̄ ̄ ̄(_,ノ  ̄ ̄ ̄ヽ、_ノ ̄
0975nobodyさん
2006/10/05(木) 00:23:07ID:???0976nobodyさん
2006/10/05(木) 00:26:12ID:???http://ffmpeg-php.sourceforge.net/
わりと分かりやすいドキュメントもある。
0977nobodyさん
2006/10/05(木) 00:27:37ID:???0978973
2006/10/05(木) 00:33:59ID:???動画の種類はavi,mpg,wmvくらいは最低対応したいです。
あと、ffmpegですがレンタルサーバーでも大丈夫なのですか?よくわかりません。
0979nobodyさん
2006/10/05(木) 00:38:22ID:???0980nobodyさん
2006/10/05(木) 00:39:37ID:???0981nobodyさん
2006/10/05(木) 00:40:23ID:???サーバー管理者に聞いたり交渉したりしてください。
ダメなら無理です。
PHPで自前でなんて書いても遅くて使い物にならないでしょう。
経験上、静止画でさえ生PHPは耐え切れないくらい遅かった。
0984981
2006/10/05(木) 00:47:27ID:???いや、静止画のサイズ変更とかはimage系関数やImageMagickがあるからでしょ。
俺の言ってる静止画の処理が遅いってのは、JPEGのパース+やや複雑なフィルタアルゴリズムをPHPのみで記述してみたら遅かったって話(わかりづらくてスマソ)。
なので、動画でそれをやるのは無謀だと言いたかった。
素直にffmpegの可能性を検討して、無理なら諦めるとか、レンサバを乗り換えるとかしてくれ。
0985973
2006/10/05(木) 00:55:11ID:???なるほど。でも、結構ヨウツベの動画のサムネを自動生成したり動画を投稿したら
サムネを自動生成してるサイトあるんだけどみんなffmpeg使ってるのかな?
PHP系のプログラムってのは知ってるんだけど。
0986nobodyさん
2006/10/05(木) 01:12:05ID:???そのサイト教えて
0987973
2006/10/05(木) 01:13:20ID:???0988nobodyさん
2006/10/05(木) 01:13:40ID:???0991nobodyさん
2006/10/05(木) 01:26:17ID:???0992973
2006/10/05(木) 01:27:42ID:???私はPHPを使ってると思うんですけど。画像掲示板はPHPでやりましたから。
0993nobodyさん
2006/10/05(木) 01:31:13ID:???YouTubeの中の人が頑張ってるだけ。
PHPでもPerlでもJavaでもRubyでもPythonでもHTMLでも・・(ry
>>992
有名所で使えれば確実に達成できるのはffmpeg、他にもあるかもしれんが代わりに探してテストしてやる義理はない。
ついでに言うと次スレ立つまで黙ってろ。
----------------------------------------------------
次スレの関連スレの所の
「中学生がPHPを習得」「宿題ください」を削って
姉妹スレ(単なる重複?)の「くだすれPHP(超初心者用)」
http://pc8.2ch.net/test/read.cgi/php/1150088761/
を加えないか?
0994973
2006/10/05(木) 01:34:45ID:???ちなみにYouTubeを使う場合はどこで聞けばいいですか?
一瞬で教えれるならここで教えて下さい。
0995nobodyさん
2006/10/05(木) 01:36:31ID:???だからffmpeg使えと言ってんだろ。レンタル環境で無理だったら諦めろ
もしくは他にあるかもしれんから探せ。日本人が開発したパッケージはほぼないだろうけど。
これはYoutube API使ってるだけ。
投稿欄にyoutubeのURLを指定するっていうとこで気づけ。
0996nobodyさん
2006/10/05(木) 01:37:35ID:???中学生は最近あんまり伸びてないしどうしたものか、
次スレで話し合うとして今回はこのまま立てるか。
ちょっと行ってくる
>>994
だから黙れと
0997nobodyさん
2006/10/05(木) 01:42:15ID:y1WWhz/phttp://pc8.2ch.net/test/read.cgi/php/1159979905/
0998nobodyさん
2006/10/05(木) 01:43:30ID:???腹立つけどヒントやるよ。
Services_YouTube
マニュアルも日本人が説明付きで書いたサンプルコードも見つかる。ブログとかに。
あとは自分でやれ。
1000nobodyさん
2006/10/05(木) 01:44:58ID:y1WWhz/phttp://pc8.2ch.net/test/read.cgi/php/1159979905/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。