【PHP】下らねぇ質問はここに書き込みやがれ 35
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2006/12/21(木) 13:42:19ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 34
http://pc8.2ch.net/test/read.cgi/php/1165519374/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc8.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc8.2ch.net/db/subback.html
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
0002nobodyさん
2006/12/21(木) 13:42:50ID:???【PHP】下らねぇ質問はここに書き込みやがれ 27
http://pc8.2ch.net/test/read.cgi/php/1156262092/
【PHP】下らねぇ質問はここに書き込みやがれ 28
http://pc8.2ch.net/test/read.cgi/php/1157284868/
【PHP】下らねぇ質問はここに書き込みやがれ 29
http://pc8.2ch.net/test/read.cgi/php/1158434799/
【PHP】下らねぇ質問はここに書き込みやがれ 30
http://pc8.2ch.net/test/read.cgi/php/1159979905/
【PHP】下らねぇ質問はここに書き込みやがれ 31
http://pc8.2ch.net/test/read.cgi/php/1161733546/
【PHP】下らねぇ質問はここに書き込みやがれ 32
http://pc8.2ch.net/test/read.cgi/php/1162818436/
【PHP】下らねぇ質問はここに書き込みやがれ 33
http://pc8.2ch.net/test/read.cgi/php/1164209222/
0003nobodyさん
2006/12/21(木) 13:43:23ID:???■本家マニュアル http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル http://pear.php.net/manual/ja/
■メーリングリスト http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル http://framework.zend.com/manual/ja/
(以下英語)
■Smarty http://smarty.php.net/
■Zend本家 http://www.zend.com/
■Zend Framework http://framework.zend.com/
■php | architect http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
0004nobodyさん
2006/12/21(木) 13:43:52ID:???注:昔は本スレ(PHP質問スレ)というのが別にあったけど、今はここが本スレです。
◆超初心者を自覚してる方ははこちらへどうぞ
くだすれPHP(超初心者用)2
http://pc8.2ch.net/test/read.cgi/php/1164617202/
◆その他
http://pc8.2ch.net/php/subback.html
PHP関連スレは非常に多いのでこの中でブラウザのCTRL+F等で「PHP」を検索!
5 名前:nobodyさん[sage] 投稿日:2006/12/08(金) 04:24:36 ID:???
【簡易FAQ】
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→ http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
0005nobodyさん
2006/12/21(木) 13:44:23ID:???→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
0006nobodyさん
2006/12/21(木) 13:44:54ID:???1. ハードウェア、OSのバージョン等には一字一句触れない。
2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。
3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。
目の前で生じている現象をそのまま具体的に書くなどもっての外。
事実より俺様の脳内解釈を優先すべし。
4. 独り言文体で必勝。
「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。
6. もう試したことを得意げに指摘してくる奴には、厳しく対応。
「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」
"どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。
7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。
「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」
示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので
絶対に避ける。
8. 情報は小出しに。
「エスパーきぼんぬ」 補足
上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。
そのような悪い質問に対して答えられるのは,
質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ,
という意味であって,決して,高度な技術を持つユーザに対する尊称でなはい。
まちがっても「エスパーの方,回答お願いします」
なんて痛い質問するな。つうか氏ね。
0009nobodyさん
2006/12/21(木) 14:01:22ID:???急いでいるので教えてくれませんか???
0012nobodyさん
2006/12/21(木) 14:09:25ID:???過去ログが大量にあされるから、次スレでいれてくれ
http://makimo.to/2ch/pc8_php/index.html
0013nobodyさん
2006/12/21(木) 14:17:09ID:???今後は●持ち頑張れなのかもしれません。
0014nobodyさん
2006/12/21(木) 14:22:37ID:???ttp://phpspot.org/blog/archives/2006/11/12php.html
01. staticメソッドが使えるなら使おう。速度は4倍になる
02. __get, __set, __autoload は使わない
03. require_once は重い
04. include, requireで読み込むファイルはフルパスにしよう
05. スクリプト開始時のUNIXタイムを $_SERVER['REQUEST_TIME'] で取れる
06. strncasecmp関数やstrpbrk関数を使えるケースはこれらを使い、正規表現は使わない
07. preg_replaceはstr_replaceより速い、しかし、strtrはpreg_replaceより4倍速い
08. 引数を、単体か配列かで自動判別するようなコードは出来るだけ避ける
09. @ を使ったエラー制御はとても遅い。→ @fputs($fp, "?");
10. $row["id"] は $row[id] より7倍速い
11. PHPのエラーメッセージは重い( noticeとかwarningとか)
12. for ($x=0; $x < count($array); $x) のように、forの中でcountを使うと毎回countが呼ばれるので使わない。
0015軟式PHP
2006/12/21(木) 14:24:43ID:???0019nobodyさん
2006/12/21(木) 14:54:12ID:???そらー、多重読み込みしないように気を遣って
無条件に読み込むようにすれば速いでしょう。
でも多数のincludeファイル間で相関があるなら
メンテナンス性を考慮するとonceが必要だと思うけどね。
明らかに多重読み込みを防止する必要が無い場面でまで
onceを使うなよ、って程度でいいんじゃないか?
0021nobodyさん
2006/12/21(木) 14:58:00ID:???0022nobodyさん
2006/12/21(木) 14:58:37ID:???0023nobodyさん
2006/12/21(木) 14:58:50ID:???$row[id]と書いた場合、まずdefine定義の「id」を探して
それが無かった場合に"id"という文字列として扱われるから
その検索にかかる時間の話だと思われ。
無駄な検索処理を避けよう!ってのは02、03、04も同様かと。
0024nobodyさん
2006/12/21(木) 15:00:53ID:???'1'=>array('type'=>'hoge', 'age'=>22),
'2'=>array('type'=>'foo', 'age'=>13),
...
);
こんな配列があった時、
$data[1]や$data[2]や$data[3]などをランダムに入れ替えたいのですがどのような方法があるでしょうか?
簡単に言うと
$data = array(
'1'=> array('type'=>'foo', 'age'=>13),
'2'=>array('type'=>'hoge', 'age'=>22),
...
);
こんな感じで、$data[$1]ここの$1以下をランダムで挿げ替えたいのです。
shuffle($data)ではできませんでした。。
0025nobodyさん
2006/12/21(木) 15:10:12ID:???〜 省略 〜
$msg .= "From: $this->m_from\n";
$mp = popen("/usr/sbin/sendmail -f $this->m_from $this->m_to", "w");
fputs($mp, $msg);
pclose($mp);
今までメール送信するときはこの用にsendmailを使ってきたのですが、
qmailで同じようなことを行う方法をご存知ないでしょうか。
よろしくお願い致します。
0027nobodyさん
2006/12/21(木) 15:23:48ID:???そんな変なメール送信方法、使ったことありません。
むしろそんだけ単純な方法なら簡単にqmailに変えられるんじゃない?
qmailのsendmailラッパーを使えば見た目sendmailで中身qmailとかできるでしょ。
0028nobodyさん
2006/12/21(木) 15:25:36ID:???0030nobodyさん
2006/12/21(木) 15:29:00ID:???・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
0032nobodyさん
2006/12/21(木) 16:04:28ID:???こんなの作ったんだが使えるかな?
北緯東経より二点間の距離をメートルで返す
function gps($NA,$EA,$NB,$EB){
list($NA1,$NA2,$NA3,$NA4) = split("[.]",$NA);
list($NB1,$NB2,$NB3,$NB4) = split("[.]",$NB);
list($EA1,$EA2,$EA3,$EA4) = split("[.]",$EA);
list($EB1,$EB2,$EB3,$EB4) = split("[.]",$EB);
$q1 = round($NA1+(($NA2/60) + (($NA3.".".$NA4)/3600)),6).",+".round($EA1+(($EA2/60) + (($EA3.".".$EA4)/3600)),6);
$q2 = round($NB1+(($NB2/60) + (($NB3.".".$NB4)/3600)),6).",+".round($EB1+(($EB2/60) + (($EB3.".".$EB4)/3600)),6);
$NA = $NA1 + ($NA2 / 60) + ($NA3 / 3600) + ($NA4 / 3600000);
$EA = $EA1 + ($EA2 / 60) + ($EA3 / 3600) + ($EA4 / 3600000);
$NB = $NB1 + ($NB2 / 60) + ($NB3 / 3600) + ($NB4 / 3600000);
$EB = $EB1 + ($EB2 / 60) + ($EB3 / 3600) + ($EB4 / 3600000);
0033続き
2006/12/21(木) 16:05:07ID:???$NA = 3.1415926535 * $NA / 180;
$EA = 3.1415926535 * $EA / 180;
$NB = 3.1415926535 * $NB / 180;
$EB = 3.1415926535 * $EB / 180;
$NA = $NA - ((11.55 / 60) * 3.1415926535 / 180) * sin (2 * $NA);
$NB = $NB - ((11.55 / 60) * 3.1415926535 / 180) * sin (2 * $NB);
$c = cos($NA)*cos($NB)*cos($EA-$EB)+sin($NA)*sin($NB);
$s = sqrt(1-($c*$c));
$t = $s/$c;
$z = atan($t);
$z = $z * 6369000;
if($z){
return $z;
}else{
return FALSE;
}
}
0036nobodyさん
2006/12/21(木) 16:23:35ID:???ごめん、まだサイト持ってないです
就職活動中だがポートフォリオない俺オワタwwww
----------------------------------------------------
(使用例)
//大阪
$osaka_n = "34.41.56.713"; //北緯
$osaka_e = "135.29.53.705"; //東経
//兵庫
$hyogo_n = "34.41.27.261"; //北緯
$hyogo_e = "135.11.50.825"; //東経
$result = gps($osaka_n,$osaka_e,$hyogo_n,$hyogo_e);
echo $result;
----------------------------------------------------
▼結果表示▼
27566.2781881
----------------------------------------------------
0037nobodyさん
2006/12/21(木) 16:29:17ID:???0038nobodyさん
2006/12/21(木) 16:38:03ID:???解説ありがとう。
PHP暦長いつもりだけど、define定義の「ID」が未定義の場合、
”ID”という文字列として扱われることを知らなかったよ。
でも個人的にはいやな仕様だな。
バグの原因になるような気がする。
0039nobodyさん
2006/12/21(木) 16:58:28ID:/jd0802WforeachでA配列を回しDBにインサートしていっているのですが
A配列の最尾からインサートしていくという処理は可能なのでしょうか。
0043nobodyさん
2006/12/21(木) 17:19:18ID:/jd0802WA配列のcountをとってfor文から行う事で解決しましたん!
0044nobodyさん
2006/12/21(木) 17:20:40ID:/jd0802Wありがとう
array_reverse 調べてやってみます!
0045nobodyさん
2006/12/21(木) 17:45:07ID:???別PCの5.1のに移したら
phpMyAdminで構造のとこ見たら何かエラーでてる・・・
やっぱり同じバージョンで統一しておかなきゃダメなのかな
っていっても、既に3.23の配布は終了しているわけで
0048nobodyさん
2006/12/21(木) 18:15:47ID:???地球は完全球体じゃないという野暮なツッコミはなしですか
0050nobodyさん
2006/12/21(木) 18:59:59ID:ZaC7YilIphp5でも正常に使えるのでしょうか?
0052nobodyさん
2006/12/21(木) 21:07:30ID:???0053nobodyさん
2006/12/21(木) 21:08:45ID:???4.0.xであれば3との親和性は十分高いから、4.0.xをインストールするのが適切。
4.1以降でさえなければまず大丈夫じゃない?
0054nobodyさん
2006/12/21(木) 21:39:49ID:/jd0802Wセルフ.php?action=tatsunoko&id=pro
二回目はidを有効にしたくないのです!。
0055nobodyさん
2006/12/21(木) 21:44:38ID:???↓
セルフ.php
0057nobodyさん
2006/12/21(木) 22:16:14ID:o0k/ncWbphpinfoで確認すると、cliでは mysqlの Client API version が 4.1.22 となりますが
webブラウザから確認すると 3.23.58 となっています。
apacheモジュールとcliではmysqlクライアントは別のものを使うんでしょうか?
Client API versionを上げるにはどうしたらいいのでしょうか。
0058nobodyさん
2006/12/21(木) 22:41:50ID:???でセッション使ったんだが、クリアするのに
unset($str)でだいじょぶかな?
前スレにunsetはやめたほうがいいようなこと書いてたし
0059nobodyさん
2006/12/21(木) 22:47:07ID:???0061nobodyさん
2006/12/21(木) 23:15:17ID:cxJGLCdvほんのサンプルにしたがってphp書いたらタイトルが文字化けしました。
<html>
<head>
<title>サーチエンジン活用php</title></head>
<body>
test
</body>
</html>
これのheadタグ内に、<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC_jp">
を足しても、Shift_JISに変更しても、やはり文字化けします。
php.ini の mbstring.internal_encoding = EUC-JP をShift_JISに変更しても
化けるんですが、どこを直したらいいのでしょう?
すみませんが、ご回答よろしくお願いします。
0062nobodyさん
2006/12/21(木) 23:21:33ID:???0063nobodyさん
2006/12/21(木) 23:32:31ID:1NDthtg1変数$intには (int) 300 が代入されているとします。
これを、1から300まで一つずつ配列に入れたいのですが、どういうふうに
するのが一番スマートでしょうか?
そういう関数があれば一番良いとは思うのですが……。
余談: 書くときに「ずつ」なのか「づつ」なのか迷った。
調べてみると「づつ」は歴史的仮名遣いらしい。今まで「づつ」って書いていたよ……。
006563
2006/12/21(木) 23:36:07ID:1NDthtg1array(300) {
[0] => int(1)
[1] => int(2)
[2] => int(3)
:
:
[298] => int(299)
[299] => int(300)
}
こんな感じです。分かりにくいとは思いますがよろしくお願いします。
0066nobodyさん
2006/12/21(木) 23:38:26ID:cxJGLCdvありがとうございます、ちゃんと表示されました。
なんか、良く探したらこのページにも書いてあったんですが、
http://park1.wakwak.com/~ima/php_tips0001.html
Shift_JISで設定するのと、EUC_JPで設定するので何か決定的な
違いがあるのでしょうか?
文字コードの意味とか解説してる本とかあるでしょうか?
あ、自分でも探します。。
0067nobodyさん
2006/12/21(木) 23:38:29ID:???for($i=1;$i<$int;i++){
$intarray[]=$i;
}
006863
2006/12/21(木) 23:39:48ID:1NDthtg1やはりループさせるしかありませんよね。
ありがとうございました。
0069nobodyさん
2006/12/21(木) 23:44:12ID:???0071nobodyさん
2006/12/22(金) 06:25:33ID:???俺がテストしてみたところ、unsetによって、
セッションファイルに記録されていた変数名とその内容(値)が
きっちり削除されていたので、問題ないと思うんだけど?
0074nobodyさん
2006/12/22(金) 11:31:54ID:???マニュアルにあるからいいんじゃない
http://jp2.php.net/manual/en/ref.session.php
のExample 2
<?php
session_start();
// PHP 4.0.6とそれ以前では$HTTP_SESSION_VARSを使用してください
unset($_SESSION['count']);
?>
0075nobodyさん
2006/12/22(金) 12:57:35ID:???マニュアルでそれぞれの項目の説明で違う事書いてあるんですけど・・
使ってみたらいいんでしょうけど、記述方法が間違っているのか値が取得できないんです。
正解を教えてください
0076nobodyさん
2006/12/22(金) 15:34:26ID:u4lBJyPyこれを消す(\"を空白に置換する)方法が分かりません。
$str=eregi_replace("[\"]","",$data);
としてみたのですが、全体の"まで消えてしまい、希望通りなりませんでした。
どうしたらいいのでしょうか?
0078nobodyさん
2006/12/22(金) 15:41:38ID:???「\\\"」 かな、試してみて
0082nobodyさん
2006/12/22(金) 17:15:50ID:FQdb0ydc>>76
エスパーな俺はmagic_quoteの問題だと推測。
消す事を考える前に余計な文字が入る理由を考えよ。
0083nobodyさん
2006/12/22(金) 17:24:05ID:???0084nobodyさん
2006/12/22(金) 17:24:40ID:n9VSwh4k30件ずつにわけて表示することにしました。
SELECT * FROM `tbl_name` LIMIT 90, 30
ここで困ってしまったですが、次のページ(90件以降の30件)と
前のページ(90件以前の30件)をナビゲーションしなければならないことです。
私は、それぞれのページへリンクすることでこれを実現しようと考えたのです。
<a href="?page=2&count=30">前のページ</a> :: <a href="?page=4&count=30">次のページ</a>
ただ単に ($_GET["page"] + 1), ($_GET["page"] - 1) とやってもできるのですが、これだと
データが存在しないのに永遠とページが作られてしまうだけなので、次の30件、前の30件が
それぞれ存在する場合にこのリンクを表示するようにしたいと思っています。
こういう場合どうするのが一番効率的にできるのでしょうか。
できれば関数化して、ページがあれば TRUE 、なければ FALSE というのが良いと思っています。
0085nobodyさん
2006/12/22(金) 17:28:35ID:???俺はこの方法だけど?
0086nobodyさん
2006/12/22(金) 17:43:37ID:n9VSwh4k$result = mysql_query( "SELECT COUNT(*) FROM `tbl_name`" );
$row = mysql_fetch_row( $result );
$num_maxrows = (int)$row[0];
総数を取得して $num_maxrows に代入しました。
そこから、どういう式をつくればよいのかが分かりません。
かなり強引にやればできますが、普通はどういう式なのかを教えてくれると嬉しく思います。
0087nobodyさん
2006/12/22(金) 18:38:23ID:???85じゃないが。
たとえば1ページ30件と仮定し、全部で100件のデータがあるとする。
その場合、ページ数*30 でページ終端の番号が出る。
4ページ目で 30*4=120 となり該当件数を超えるので終端であることがわかる。
そのため「(ページ番号 * 表示件数) >= 最大件数 の条件が成り立つとき、
次のページへの遷移を作成しない」という条件が成立する。
あとはがんばれ。
0088nobodyさん
2006/12/22(金) 18:42:48ID:???select でカウントを持ってくる場合、できるだけ pk の値を参照した方がいい。
若干だが負荷が下がる。
なけりゃあしゃあないが。
0089nobodyさん
2006/12/22(金) 19:05:57ID:???プライマリキーかどうかより、検索で使用頻度の高いindexかどうかが肝心。
プライマリ設定であっても実際のプログラムで使用頻度が少ないものだと
count(*)の方がまだ高速だったりするよ。
0091nobodyさん
2006/12/22(金) 20:17:08ID:n9VSwh4kおぉ、なるほど! とってもありがとう。
0092nobodyさん
2006/12/22(金) 22:15:19ID:???<input type="text" name="a[b2]" value="2">
<input type="text" name="d[e1]" value="8">
のようなデータをPOSTで受け取ると
それぞれ$a[b1][c1]、$a[b2][2]、$d[e1][8]のような形にし、
そこに同一の文字をセットしたいのですが、うまくいかずに困っています。
function alt_form($var, $set){
foreach($var as $foo){
foreach($foo as $key => $val){
$tmp[$foo][$key][$val] = $set; //$fooを入れることができずにerrorが出ます。
}
}
return extract($tmp);
}
alt_form($_POST, "入れたい文字");
なにか解決策はないでしょうか?
0093nobodyさん
2006/12/22(金) 22:37:33ID:???そもそも、input要素のname属性にブラケット( [] )はアリなんだっけ?
http://bakera.jp/hatomaru.aspx/ref/html/attribute/name@input
009592
2006/12/22(金) 22:49:17ID:0IVErS6h配列で受け取りたいときは、こうしないとできないと思って。
でもmixiのプロフィール変更の趣味の部分はname=hobbyで統一されてる・・
どうやって処理してるんだろう
0096nobodyさん
2006/12/22(金) 22:58:12ID:???お前、なんかすっげー間違ってると思う。
仮にお前が考えてる通りに実現できたとしても、すごく効率の悪いやり方。
なんでそんな複雑なやり方にしたいの?
もっと頭使ってシンプルにしな。
0097nobodyさん
2006/12/22(金) 23:02:24ID:???<input type="text" name="a[b1][1]" value="設定したい値">
010092
2006/12/22(金) 23:31:02ID:0IVErS6h出直してきます
0101nobodyさん
2006/12/22(金) 23:33:45ID:???チェックボックスの値の渡され方が判らないときはGETメソッドでリクエスト見てみ
渡された値の根本的な処理法が知りたい場合はperlの解説サイトとか見てみ
010275
2006/12/22(金) 23:37:44ID:???CURLOPT_FILETIME = TRUE を設定すると、ドキュメントの更新日時を取得しようと試みます。 この値を取得するには、curl_getinfo() で CURLINFO_FILETIME オプションを用います。
curl_getinfo
CURLINFO_FILETIME" - ドキュメントを取得するのにかかった時間。 取得できなかった場合は -1
正解を教えて〜ヒントだけでも頂戴
値自体が出てこないからわかんないんです
010392
2006/12/22(金) 23:48:19ID:0IVErS6h上書きされると思ってたんですけどそうではないんですね。
勉強になりました。
ありがとうございます。
0104nobodyさん
2006/12/22(金) 23:51:19ID:???"CURLINFO_FILETIME" - Remote time of the retrieved document, if -1 is returned the time of the document is unknown
だから誤訳じゃないの
とりあえず、手をうごかせ
010592
2006/12/22(金) 23:52:23ID:0IVErS6hフォームの確認画面からどうやってその値を維持するのか質問していたものです。
で結局自分で間違った方法でできたと勘違いしてしまいまして
今、やり直そうとしているところです。
入れたい文字にcheckedを入れてみようと思っていたんですが
間違ってるみたいなので別の方法考えて見ます。
0106nobodyさん
2006/12/23(土) 00:24:01ID:k4+RqfGZ登録内容の修正画面とかでフォームの値を再現するときって、
sessionなりhiddenなりで渡して、○○だったらchecked表示〜ってやつを全部繰り返すしか方法ないの?
POSTリクエストした内容ってどこかに残ってないのかね。javascriptのhistory.back()でもだめだし・・・
0107nobodyさん
2006/12/23(土) 00:33:03ID:???単に配列をループで回せばいいだけじゃん。
これならチェックボックスの数がいくつになろうともコードは変わらない。
0108nobodyさん
2006/12/23(土) 00:33:17ID:???0110nobodyさん
2006/12/23(土) 02:29:46ID:???考えればすぐ作れるレベルじゃないの?と思う上に
具体的なサンプル示すには質問の方が具体性無さ杉
基本形は
foreach($_POST as $key => $value) {
修正画面用のFORM組み立て処理
}
かと思うけど。
0111107
2006/12/23(土) 02:41:39ID:???自分で考えもせずにすぐサンプルとか言うのはバカの証拠だぞ。
あと、>>110も指摘している通り、お前が具体的に何をやりたいのか
サッパリ分からないので、サンプルを示しようがない。
0112nobodyさん
2006/12/23(土) 04:09:26ID:???実際に何らかのサンプルを挙げよ、って意味だよ。
実際例とか無いの?できるできるっていう抽象的な話だけ?
というわけでよろしく。
0113nobodyさん
2006/12/23(土) 04:12:25ID:???自分で考えもせずにすぐサンプルとか言うのはバカの証拠だぞ。
あと、>>110も指摘している通り、お前が具体的に何をやりたいのか
サッパリ分からないので、サンプルを示しようがない。
0114nobodyさん
2006/12/23(土) 05:00:27ID:???普段から具体例見ながらコーディングなんてやってないから
いきなりサンプル探してきてくれって言われても困る。
>>110のforeachじゃサンプルにならんのか?
0115nobodyさん
2006/12/23(土) 05:02:52ID:???どっかからソース拾ってきて眺めてみるって勉強法はいまどきはやらないのかな。
$inputdata = $_POST["inputdata"]; #過去に入力されたプルダウンのvalue
$arr = array(); #プルダウンメニューの(連想)配列
print "<select name=\"pulldown\">\r\n";
foreach($arr as $key => $value)
{
print "<option value=\"$key";
if($key == $inputdata) print " checked";
print ">$value</option>\r\n";
}
print "</select>\r\n";
htmlホニャラララとか打つのめんどいから省いた。
動くか試してもいないけどよかったらどうぞ。
0116nobodyさん
2006/12/23(土) 05:04:08ID:???ひょっとしてこの質問って、
POSTで送信→確認画面(ここにリンク)→クリックで修正画面
って構成になってるとき、リンクにパラメータとか一切つけないで
修正画面を組み立てるにはどうするのか?って話?
そういう話ならセッションかhiddenで修正画面に全POSTデータを
渡さないと無理だと思うよ。当たり前だけど。
0117115
2006/12/23(土) 05:04:23ID:???まあいいか。。。
0119nobodyさん
2006/12/23(土) 05:54:23ID:???メールを送信すると、UTF-9で書かれたメールが送信されるため、
文字化けしてしまいます。
どのようにしたら、文字化けを防ぐことができるのでありましょうか?
0120nobodyさん
2006/12/23(土) 06:31:06ID:???http://www.ietf.org/rfc/rfc4042.txt // 4月1日に出されがちなRFC
今のPHPはRFC4042に対応してません。たぶんこの先も対応しないような気がします。
http://www.php.net/manual/ja/ref.mbstring.php#mbstring.supported-encodings
UTF-8Nでコード書いて変換かけずに charset=UTF-8 で送りつけたり
より無難にISO-2022-JPへ変換して charset=ISO-2022-JP で送るようにしたら
文字化けを防ぐことができるのかもしれません。Content-Transfer-Encodingにもご注意を。
0121nobodyさん
2006/12/23(土) 07:02:52ID:???mb_convert_encoding()でヘッダ、本文を個別に変換してからメールするか、
mb_send_mail()でお任せ変換をかけてメール送信までやってもらうか。
ただ、mb_send_mail()はPHPのバージョンによってはバグってることがあるので
過信は禁物。楽だけど。
0122nobodyさん
2006/12/23(土) 08:22:06ID:U3EbhbvSphp.iniのsession.use_trans_sid設定についてマニュアル読んだんだが
「透過的なセッション IDの付加をするかどうか」の、“透過的”ってどーゆー事?
IPアドレスかなんかで他人と重複しないsidを割り当てる、みたいな事?
0123nobodyさん
2006/12/23(土) 08:27:46ID:???PHPで表示する各リンクやフォームに自動的にセッションIDパラメータを付加する、って意味。
これがOFFで相手がクッキーを使えない端末が相手の場合は、
プログラマが自分でリンクやフォームにセッションID値を埋め込む必要があるけど、
これをONにしとけばPHPが自動判別して(相対パスで自サイト内へのリンクの場合に限り)
全部のリンク・フォームに自動的にパラメータをHTMLの中に埋め込んでくれるようになる。
それを「透過的な付加」と表現している。(セッションIDの値が透過的なわけじゃないよ)
0124122
2006/12/23(土) 08:57:59ID:???すごく丁寧なお答えを頂けたお陰で頭の中がすっきりしました。
session.use_only_cookies=1で運用しようとしてる自分には必要ない機能かな。
でも、得体の知れない物が1個減ってよかったです。
本当にありがとうございました。
0126nobodyさん
2006/12/23(土) 11:50:16ID:???そのファイルパスが存在しなくても何らかの一時ファイルを開く?
ファイルの存在チェックをfopenするあたりでやってエラーならPOST元のページに値を返したいんだけど、
fopen失敗すらしないからどう処理すればいいのかと・・・
0127nobodyさん
2006/12/23(土) 12:26:32ID:???fopenのモードによる。"r"なら失敗するけど"w"なら作っちゃうからダメでしょ。
ファイルの存在チェックは普通file_exists()とis_file()の組み合わせで行うものだと思うけど。
0128nobodyさん
2006/12/23(土) 13:28:29ID:???-------
1 o t t
2 o u t
3 s p p
4 s o p
5 s q p
上記のようなデータベースのテーブルがある場合に
cフィールドの値が異なるものだけ1行ずつ取得したい、
つまり上の場合、1と3のaフィールドの値(oとs)だけ取得できれば良い、
という場合、スマートな取得方法はあるでしょうか?
思いついたのは、全行一旦配列として取得して、
cが重複する値を含む配列は重複分を削除(unset)、
なんですが、
これだとデータ量が多い場合にメモリを食って、すごい無駄な作業が多いかな
と思っています。
0129128
2006/12/23(土) 13:29:12ID:???0131128
2006/12/23(土) 13:38:16ID:???レスサンクスです、
PHP側の処理で何か良い方法ないかなと思ってます。
SQL文をカキカキいじるのが非常に苦手なので・・・。
ただ、実際どんな記述になるのかさっぱり分からないので、
DBで聞かせてもらおうと思います。
ありがとうございます。
0132nobodyさん
2006/12/23(土) 13:39:31ID:???余計なバグ増やさないポイント。
0133nobodyさん
2006/12/23(土) 15:40:51ID:ECUJ+Mwa返信機能付掲示板の子レスはどのようにログに書き込めばいいのだね?
忙しいだろうけどこの質問のために時間割いて教えたまえ。
0134nobodyさん
2006/12/23(土) 15:43:08ID:???微妙にすれ違いだったらすいません。
fedora5を使っていてphpを5.2.0にあげてみました。
無事make installできて問題なく動いてるのですが、
pear install ***
をやると
PHP Warning: PHP Startup: ldap: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0
Warning: PHP Startup: ldap: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0
というWarningが出るようになりました。
その後pearのインストールもできるし、その他の動作にも今のところそれほど問題もないようなのですが
ちょっと気になりましたので、ご存じの方いましたら、このWarningの意味、回避方法等、教えていただけると助かります。
ちなみにphp.netでldapのマニュアルを見てみましたが、いまいち何をするものかわからず(DB関連?)、
話の種に--with-ldapでコンパイルしなおしてみましたが、状況は変わりませんでした。
0135134
2006/12/23(土) 15:46:07ID:YVUy+5YqJD使ってるんですけど、デフォルトでsageになっちゃうもので
0138nobodyさん
2006/12/23(土) 17:22:20ID:???window.open('download.php?no=123');
で開いた先のdownload.phpで
header("Cache-Control: private");
header("Content-Disposition: attachment ; filename=" . mb_convert_encoding($this->get_name(),"SJIS","EUC-JP"));
header("Content-Length: ".$content_length);
header("Content-Type: application/pdf");
としています。
このやり方だと別ウィンドウに空白ページが表示されたのち、ダウンロード確認ダイアログが出るのですが、
ダイアログ上のボタンを操作した後に、空白ページの方が消えずに残ってしまいます。
どうにかダイアログの「開く」[保存する」を生かしたまま自然と消す方法無いものでしょうか?
0140134
2006/12/23(土) 21:52:31ID:YVUy+5Yqありがとうございます
yum list installed | grep php
したらphp-ldapもふくめ、5.1.6のパッケージがインストールされていました。
こいつを消して、インストールしなおしたら、出なくなりました。
すっきりしました
どうもです
0141nobodyさん
2006/12/23(土) 23:44:22ID:XutG8yPr親スレNoとレスNoを書き込み内容と一緒に保存すりゃいいだろ。
0142nobodyさん
2006/12/24(日) 00:45:19ID:+LXDPeGu自作でセッションを行い事はできないのですか?
0143nobodyさん
2006/12/24(日) 01:06:55ID:DO1hDjYZできるよ。
ユニークなID生成してクッキーに持たせて各クライアントを識別するって感じ。
ただ、あんまり知識なしでやると、セキュリティに脆弱なものになってしまうことも
あるかもしれない。もっとも標準のも使い方やバージョンによっては危ないですが
0145142
2006/12/24(日) 01:27:27ID:???独自仕様で挑戦してみます。ありがとうございました。
0146134
2006/12/24(日) 02:10:04ID:muKXaag1configureの時に
--with-imap=shared,/usr/local/imap-2006e --with-imap-ssl
と、sharedを付けて後読みにしようと思ったのですが、うまくいきません。
imap.soというのが/usr/lib64/20060613に出来るので、
iniに
extension_dir =/usr/lib64/20060613
extension=imap.so
と書いてみましたが、ONになりません。(なんのエラーも出ません)
dl('imap.so');
も試してみましたが、パスは通ってるのですが
「これはextensionファイルではありません」っぽいエラーがでて動きません。
ちなみに=shared,を外してコンパイルすると
問題なく動きます。
何か解決策がありましたらお願いいたいします。
いちおう
Apache/2.2.2 (Fedora)
PHP Version 5.2.0
です
0147nobodyさん
2006/12/24(日) 02:31:29ID:???他板で聞いたほうがマシ
0148nobodyさん
2006/12/24(日) 02:43:21ID:???0149nobodyさん
2006/12/24(日) 03:26:00ID:???0150nobodyさん
2006/12/24(日) 03:46:39ID:pn7eEEmF0151nobodyさん
2006/12/24(日) 04:03:49ID:JTHPmry9$array = split("<br>",$var);
改行って<br>?\n?
0152151
2006/12/24(日) 04:17:58ID:???これでいいや
0153nobodyさん
2006/12/24(日) 05:14:21ID:???> 車輪をもうひとつ発明するの?
よくそういうこと言い出す人いるけど、汎用的な関数を使うより独自に用途に適した関数作ったほうが動作も速いし安定するわけ。
そして汎用的なものと違い機能が限定される & 独自開発なものだとブラックボックス化する ということによりセキュリティも向上する。
あ、もちろんセキュリティに関しては、セキュアなコーディングができない人が書くと逆効果だけどね。
分かりやすく Perl にたとえると、use CGI; use Encode; を外して独自に Cookie取得とかフォームデコードのロジック書くだけで、
一般的な掲示板なら 30%以上のリソース削減ができる。
0154nobodyさん
2006/12/24(日) 05:26:53ID:???リーダー「このプロジェクトではセッション関数の使用は禁止です。
弊社の独自クラスを使ってください」
っていわれたら普通に萎えるな。挙動を勉強するのメンドクセ。
0156nobodyさん
2006/12/24(日) 06:03:35ID:???俺もそうだ。
既存のDAOやフレームワークがあっても自分で作りたくなってしまう。
作り方も知らないで使いたくないし、そんなに多くの機能はいらないし、内容が分からないと何か不安になる。
0157nobodyさん
2006/12/24(日) 07:27:06ID:???>独自に用途に適した関数作ったほうが
の時点で車輪じゃないよ。
べつに車輪を発明するのが悪いとはいわない。でも、本当に必要か考えないと。
とくに、セッションやセキュリティ関連については、下手が作るとろくなことはない。
0158nobodyさん
2006/12/24(日) 07:34:19ID:???0159nobodyさん
2006/12/24(日) 08:11:47ID:???車輪を作ったこともない人が、クルマを作る。
どちらも不可能ではないだろうけど、俺はそうしたくない。
俺だったらクルマを作る前に、まずは車輪やハンドルなどの各パーツを
拙くてもいいから自分で作ってみて、構造や原理、挙動などを体得する手法を選ぶ。
もちろん、その時は上手な先人のモノを参考にしながらね。
そんで、自分で車輪を再発明してみて原理が理解できたら、そこで初めて、
他人が作った「もっと優秀な車輪」を採用してクルマを組み立てるな、俺なら。
0160nobodyさん
2006/12/24(日) 09:14:45ID:???自分で作ってみたりするってのは別にいいと思う。
ただまあ、どんな技術も土台になる技術や他の技術を利用した上で
成り立ってるもので、それらをすべて自分でまかなうってのは非現実的。
他人が作ったライブラリとか一切信用できないならPHP自体使えないし。
まあ程度問題だし、かけられる時間がどのくらいかによるし、結局
好き好きなのかな。
>>155
C初心者だけど、あれってライブラリかなり使わないかね。
ApacheだとコアやモジュールはAPR使うし。
そもそもクラスって使えたっけ。
0161nobodyさん
2006/12/24(日) 09:49:25ID:???016292
2006/12/24(日) 10:19:08ID:c6yKDW/Oヒントを元に作ってみましたので、報告に来ました。
おかしいところがあればご指摘ください。
$center = array('sugaku_1' => array('数学�T・A','数学�T','受験しない'),
'kokugo' => array('国語','受験しない'));
foreach($center as $subject => $select){
foreach($select as $key => $val){
echo '<input type=radio ';
echo 'name='.$subject.' ';
echo 'value='.$key.'';
if(isset($_POST) ){
if($key == $_POST[$subject]){
echo ' checked';
}
}else{
(int)$last = (int)count($select) - 1;
if($key == $last){
echo ' checked';
}
}
echo '>'.$val.'<br>'."\n";
}
}
0163nobodyさん
2006/12/24(日) 10:44:15ID:???0164nobodyさん
2006/12/24(日) 11:25:20ID:???100%仕様書通りにしてくれ。
一般的なモジュールはググればバグレポートも出てくるが、
独自クラスはそれも無い。
それも踏まえてドキュメントを用意しろ。
0167nobodyさん
2006/12/24(日) 15:16:43ID:???0168nobodyさん
2006/12/24(日) 15:36:29ID:???htmlspecialchars()
script タグの中に出力するのは論外
0169nobodyさん
2006/12/24(日) 16:15:53ID:JTHPmry90170nobodyさん
2006/12/24(日) 17:08:13ID:???ほれ
0171nobodyさん
2006/12/24(日) 17:09:57ID:JTHPmry9何も表示されない・・・・・(´;ω;`)ブワッ
0172nobodyさん
2006/12/24(日) 17:10:50ID:???(´;ω;`)ブワッ
0173nobodyさん
2006/12/24(日) 17:31:27ID:???0174167
2006/12/24(日) 17:42:12ID:???ありがとうございます。
var flag = false; function disableSubmit() { if (flag) { return false; } flag = true; if(document.seform.soushin) { document.seform.soushin.disabled = true; } return true; }
こんなタグ?スプリクト?が混じるんですけど・・
htmlspecialchars() で除外できますか?
記述ミスしてるのかなぁ〜除外できないんですけど・・
0175nobodyさん
2006/12/24(日) 17:47:29ID:???<script>とかonclick=とかに出力しなければ実行されないから
それだけ気をつければ問題ないでしょ。
htmlspecialchars()は関係ない。
<script>がきたら<script>に変換してくれるだけ。
0176nobodyさん
2006/12/24(日) 17:51:48ID:???<script>がきたら<script>に変換してくれるだけ。
が正解。
0177167
2006/12/24(日) 18:25:38ID:???データ取得→データベース(MYSQL)→再利用
こんなのをやりたいのですが、データの中にスプリクトが混入するのでデータベースに入力出来たり出来なかったり
挙動不信なんです。
解決のヒント下さい
0178nobodyさん
2006/12/24(日) 18:40:37ID:???↓
データベースから取り出すとき → 生のまんま扱う = <script>hogeohoge</script>
↓
HTMLに吐き出すとき → 変換する = <hogehoge>
これで特に問題ないかと。
0179nobodyさん
2006/12/24(日) 19:24:59ID:???絶対駄目。
典型的な脆弱な処理だよそれ。
http://openmya.hacker.jp/hasegawa/public/20061209/momiji.html を見れば分かるが、
→ それ見えない文字で
IE では HTML 中に含まれるヌル文字(0x00)は、完全に無視される。
<s(0x00)cript>
IE では HTML 中に含まれる 0x0B や 0x0C はスペースと同意に扱われる。
<script(0x0B)>
<s (0x0C)onmouseover="...">
Firefox 1.5.0.4 以前のバージョンでは、BOM (U+FEFF; ZERO WIDTH NO-BREAK SPACE) は無視される。
<s(BOM)cript>
MFSA 2006-42: UTF-8 ページで BOM を使ったクロスサイトスクリプティング
<http://www.mozilla-japan.org/security/announce/2006/mfsa2006-42.html>
例えばこんなのもあるし。
0180178
2006/12/24(日) 19:31:27ID:???なんでスペースの話になってるの?
<script>タグをまるごと変換するんじゃなくて、
< を <
に
> を >
に変換するっていう基本的な話だよ。
0181167
2006/12/24(日) 19:49:53ID:???0182179
2006/12/24(日) 20:02:34ID:???そういうことだったか。
<script> を <hogehoge> に、みたいにscript要素ばっかりを取り出してたから
タグ利用可能掲示板での危険な要素の使用禁止でもやってるんかと誤解しちまった
0184nobodyさん
2006/12/24(日) 21:18:11ID:???車輪の再発明は既にあるのにそれを知らない、関知しないのが前提。
だからわざわざ「改良」と言っているのだ、脊髄反射イクナイぞ。
0185nobodyさん
2006/12/24(日) 21:19:32ID:???ログイン→見たい人の1週間以内の日記をピックアップ→表示
みたいな、mixiでRSSリーダーみたいなことをしたいのですが、
どういう処理を書けばいいのか悩んでいます。
どなたか知恵をお貸し下さい。
0186nobodyさん
2006/12/24(日) 21:19:33ID:???POSTやGETで送られたデータをまとめて処理したいのですが
やり方がわかりません。
よろしくお願いします。
0187nobodyさん
2006/12/24(日) 22:07:27ID:???「作ってください」ならスレ違い。
やってて分からない事があったのなら、分からない箇所をもっと具体的に書いてくれ。
>>186
$_REQUEST
0188nobodyさん
2006/12/24(日) 22:09:04ID:???PHPマニュアルでREQUESTある?
探しても見つからないんだが
0189nobodyさん
2006/12/24(日) 22:14:09ID:???定義済みの変数
ttp://www.php.net/manual/ja/language.variables.predefined.php
どこに目を付けているのかと小一時間。
マニュアルもろくに読めないと苦労するぞ・・
0190186
2006/12/24(日) 22:18:15ID:???たとえば$_REQUESTの配列すべてにtrimしたいのですが
foreachでできますでしょうか?
やってみたけどできなかったので、よろしくお願いしますです。
ちなみに$_REQUESTと$_POSTは同じでしょうか?
0193nobodyさん
2006/12/24(日) 22:28:49ID:???俺今まで送られてきたデータ全て
$dt1 = $_POST['dt1'];
$dt2 = $_POST['dt2'];
$dt3 = $_POST['dt3'];
とかやってたわ
こんな簡単な方法があったんだな
0194186
2006/12/24(日) 22:57:26ID:???0196186
2006/12/24(日) 23:04:28ID:???はい。でも必要ないデータなので$_POSTでいいのでは?
>>193さんが言ってる意味がよくわからないのは俺だけでしょうか?
ちなみに$_REQUEST使うより$_POSTや$_GET使ったほうがいいとどこかに書いてありましたが。。
0197193
2006/12/24(日) 23:06:14ID:???0199nobodyさん
2006/12/24(日) 23:19:43ID:???foreach($_POST as $key=>$value){
$$key = $value;
}
これじゃいかんの?
0200nobodyさん
2006/12/24(日) 23:25:27ID:???0201nobodyさん
2006/12/24(日) 23:28:14ID:???$_REQUESTは$_GETや$_COOKIE, $_POSTなどを全部纏めた配列。
添え字の重複は設定されている優先順位に基づいて処理
積極的な使用は推奨されてなかったと曖昧に記憶してる
>>200
変数の値を変数名として使用
0203200
2006/12/24(日) 23:37:52ID:???これ使うと複雑になりそう、どの変数が存在するかとかでロジック作れそうではあるが・・
0204nobodyさん
2006/12/25(月) 00:37:40ID:???extract($_POST);
でいいんじゃないの?
0205nobodyさん
2006/12/25(月) 02:04:07ID:???| | | | |┃|i | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | | | ガタガタ |┃| < そうと聞いちゃお・・・・
| | | |______|ミ | .i.| | あれ?開かない・・・
| | ̄ ̄ ̄ ̄ ̄ ̄| | |┃|:. ,| \____________
| | | | |┃| i|
| | | | |┃| :|
| | | | |┃|i |
| | | | |┃|, :.|
|_|====――●==|_|______|┃| i|_______
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄
0206テンプレ貼りミスった>>1です。ごめんなさい。
2006/12/25(月) 02:40:27ID:???part16・826氏の説明がわかりやすくて、しばらくまるごとテンプレ採用されてた。以下引用。
-----
extractは極力使わないほうがいいと思います。
例えば、
hoge.php?_SESSION[user_pw]=hogehoge
って形で送られてきたとします。これを
extract($_GET)
しちゃうと、$_SESSION['user_pw']の値が、
"hogehoge"に変更されてしまいます。
もし事前にユーザのパスワードを、$_SESSION['user_pw']に
保持してたとしたら、勝手に書き換えられてしまうことになります。
それを避けるために
extract($_GET, EXTR_SKIP)
ってやって上書きを避けたとしても、
このままでは変数の初期化を忘れる危険性があります。
extract($_GET, EXTR_PREFIX_ALL, "get")
と、接頭辞をつけるのが一番安全な気はしますが、
それなら最初から
$hoge = $_GET['hoge'];
ってやるのと手間が変わらないと思いますし、可読性も増します。
確かにextractするのは楽だと思いますけど。
0207186
2006/12/25(月) 05:46:20ID:???勉強になりました。楽なやり方あったんですね。
ちなみにフォームから送られたデータはどのような処理をしたらいいでしょか?
trim
htmlspecialchars
mb_convert_kana($value,"KVa");
これくらいで十分でしょうか?
よろしくお願いします。
(しかしここは勉強になるなぁ)
0208nobodyさん
2006/12/25(月) 07:06:34ID:pCOFjbSe0209nobodyさん
2006/12/25(月) 09:04:14ID:???っていうかさ、本題から外れるんだけど、
セッションにパスワードを保存する意味ってあるのかな??
ログインフラグを立てておけば済む話なのでは。。。
0211nobodyさん
2006/12/25(月) 09:53:19ID:rDGXp0bv割り振られますよね??
で、この各個人別の投稿専用アドレスにメールを送ると日記投稿されるわけですが、
このとき、mixi側では当然受信と同時になんらかのスクリプトが動作してるんでしょうけど、
アドレス毎に.forward(とか.qmailとか)を設定してるんでしょうか?
もちろん設定作業はスクリプトで自動化されてるでしょうけども、けっこう無駄っちゃ無駄ですよね?
こういうときに、もっとうまく、一つの.forward(.qmail)設定しとくだけで、
全てのある特定のメールたち(たとえば日記投稿用メアドに来たヤツだけ…とか)を処理するには
どうしたらベストなやり方だと思いますか?
とりあえず俺が思いついたのは、日記投稿専用のサブドメインを作って、そこに来たヤツを全部一つの.forwardで処理する…みたいなの。
たとえば〜〜@nikki.hoge.comなら、〜〜の部分が何であれ、[email protected]に転送して、それの.forwardに書かれたパイプ処理をさせるとか。
0212nobodyさん
2006/12/25(月) 09:58:57ID:???0213nobodyさん
2006/12/25(月) 10:50:33ID:???論点ずれまくり。
っていうかそんなことは誰でも分かっている。
>>211をよく読め。
>>211
ミクシィはよく分からんけど、そのサブドメ方式でいいんでないの?
0215nobodyさん
2006/12/25(月) 13:53:24ID:G8V0+xwB0216nobodyさん
2006/12/25(月) 14:19:56ID:???0218nobodyさん
2006/12/25(月) 14:34:19ID:SBWHAYMt$str = " ... $lt;span class=.....>hogehoge</span> ....";
こんな文字列から正規表現をつかって hogehoge の部分だけを取り出したいのですが、
どうしたらよいでしょうか?
0219218
2006/12/25(月) 14:37:03ID:SBWHAYMt$str = "... <span class=\".....\">hogehoge</span> ....";
0220誘導
2006/12/25(月) 14:43:28ID:???正規表現 part 3
ttp://pc8.2ch.net/test/read.cgi/tech/1156413899/l50
正規表現
ttp://pc8.2ch.net/test/read.cgi/unix/1039165754/l50
0221nobodyさん
2006/12/25(月) 15:41:46ID:???いう使い方で出現するプログラムを見たことがあるのですが、
Perl じゃなくて PHP でも @ って何か特殊な意味があるのでしょうか?
0222nobodyさん
2006/12/25(月) 15:56:01ID:???エラー制御演算子
http://www.php.net/manual/ja/language.operators.errorcontrol.php
余談になるが、酔っぱらっているんだかボケているんだかよくわかんないが
じじぃが道に倒れていたので、俺が声かえてやったら「うぇらぁぁーおあ」って大声だしやがった。
もうぜったい人に親切なんかしないからな。
0224nobodyさん
2006/12/25(月) 17:02:34ID:???0225nobodyさん
2006/12/25(月) 17:24:04ID:???HTML・CSS→PHPの順で学んだの?
0226nobodyさん
2006/12/25(月) 17:33:24ID:???0227nobodyさん
2006/12/25(月) 17:43:09ID:???HTMLは基本文法以外は必要なときに見ているだけで、
あんまり、いつ学んだかは意識したことないなぁ。
0228nobodyさん
2006/12/25(月) 17:57:12ID:???0229nobodyさん
2006/12/25(月) 18:50:42ID:???0230nobodyさん
2006/12/25(月) 20:07:39ID:???0232nobodyさん
2006/12/25(月) 22:10:54ID:3ON9VEdMXMLHttpRequestについて勉強しているのですが、
PHPで複数回レスポンスを送信するにはどうすればいいのでしょうか?
受信できるかどうかわかりませんが、
while ($a <= 10) {
//$aを送信するとして、ココの記述が知りたい
}
という状態です。
よろしくお願いします。
0233nobodyさん
2006/12/25(月) 22:24:25ID:???10個の値を書いてXML1回で渡すんじゃダメなの?
0234nobodyさん
2006/12/25(月) 22:26:45ID:???URLが http://example.com/hoge.php?x=10&y=20#label
のように引数の後にラベルがつく形になっているとき、
hoge.phpが出力するHTML内に<a name="label"></a>があっても、
そこにジャンプしてくれない・・・というバグです。
(ちなみにIEでは上記のやり方でしっかり飛ぶので、IEまたはFirefoxの仕様なのか
それともバグなのか、ハッキリしないけど)
0235nobodyさん
2006/12/25(月) 22:28:00ID:???HTML・CSSとPHPの間にJavaScriptをはさむのが主流。
漏れの場合は、HTML・CSSの次にXMLとFlashをやって、今PHP勉強中って感じ。
ActionScriptも多少かけるんで、JavaScriptもそれなりにいけるかなー
0236nobodyさん
2006/12/25(月) 22:32:08ID:???とほほ -> HTML/CSS -> K*NT -> Perl -> 一旦全て忘れて -> Perl -> Le*'s -> PHP -> 一旦全て忘れて -> PHP
0237nobodyさん
2006/12/25(月) 22:32:33ID:FViFZp7Lどうすれば良いのでしょう?
例えば、$gggが1234で http://abc.jp/test.php?r=1234
というURLにしたい場合、
<?php
$ggg = 1234
file_get_contents
("http://abc.jp/test.php?r=$ggg");
?>
にすると、$gggの部分が無視されてしまいます。
0238nobodyさん
2006/12/25(月) 22:35:45ID:???ひろみちゅがコンドーム買ってるぞ。
清純な彼のイメージが(つД´)
0239nobodyさん
2006/12/25(月) 22:35:51ID:???そうなんだ・・。本屋とか行くとPHP&MySQLっていう本を良く目にするんだけど、PHP勉強すると同時にMySQLも勉強した
ほうがいいのかな。
0240nobodyさん
2006/12/25(月) 22:43:33ID:3ON9VEdMXML1回で渡すのはだめなんです。
どうやっても受け取れないもんなのでしょうか?
0242nobodyさん
2006/12/25(月) 22:48:27ID:???そしたらクライアントのJavaScript側でループすべきだよ(10リクエスト10レスポンス)
どうにもループさせる理由がわからんが・・・
0243nobodyさん
2006/12/25(月) 22:57:22ID:???>firefoxでバグ
むぅ、たしかにIEだと成功するが、FFだとダメだな。。。
ちなみに俺のFFは最新の2.0.0.1だが、そっちは?
0244232
2006/12/25(月) 23:35:04ID:3ON9VEdMループさせる理由は、WebアプリでDB操作(INSERT/UPDATE)をするためなんです。
なので実際は10回どころか千・万単位のリクエストになります。
画面なしのバックグラウンドで動かすわけにはいかない、という条件です。
推定処理時間は数分です。
その処理時間の間に何か表示させたいと思っています。
無理な場合は、NowLoading...みたいな感じで処理中表示のajaxを使うつもりですが、
出来たらプログレスバーを作りたいと思ってajax、XMLHttpRequestについて勉強していました。
1リクエスト複数レスポンスというのは無理なんでしょうか、、、
0245nobodyさん
2006/12/25(月) 23:37:29ID:???0247234
2006/12/25(月) 23:54:14ID:???当方の環境は、IE6.0、Firefox1.5と、2.0です。
Firefoxはどちらでもダメでした。
これって既知のバグなんでしょうか?
0249nobodyさん
2006/12/26(火) 00:03:48ID:???0250nobodyさん
2006/12/26(火) 00:09:52ID:???0251nobodyさん
2006/12/26(火) 00:52:31ID:???html も php も全然関係ないじゃん
query 文字列の後に hash がくるのは正しい URL だし
それで常にジャンプできないようであれば
Firefox の不具合でしょ
0252nobodyさん
2006/12/26(火) 01:12:54ID:???まぁバグだと思うならレポート出せばいいよ。
0253nobodyさん
2006/12/26(火) 01:16:09ID:???けど、それらしい情報ないな
0254nobodyさん
2006/12/26(火) 01:17:21ID:???未完成といわれても仕方ない。
でも本当に本当なの?ちょっと信じられないのだが。
俺はFF入れてないからわかんないけどaタグの書き方とか間違ってない?
0255nobodyさん
2006/12/26(火) 01:32:04ID:???0256nobodyさん
2006/12/26(火) 01:33:02ID:???でも自環境でテストしてみたら、
たしかにFFのアンカーラベル機能は死んでる様子。
0257nobodyさん
2006/12/26(火) 01:40:34ID:???具体的には、test.php(ひたすら改行して、縦に長〜いページを出力するだけのスクリプト)で、
出力するHTMLの一番下(BODY閉じタグの直前)に、<a name="#label"></a>と記述。
この状態でtest.php#labelにFFからアクセスしても、ページ下部のラベルには飛ばない。
>>234はクエリ文字列のあとにラベルを付けた状態らしいが、俺はクエリ文字なしでも同じ結果だった。
0259nobodyさん
2006/12/26(火) 01:45:49ID:???id="#label"
0260nobodyさん
2006/12/26(火) 01:46:27ID:???目的地アンカーの最適化
http://www.seo-equation.com/reference/cat17/end_anchor
>旧来の HTML では、a要素の name属性にアンカー名を付与して
>ウェブページ内の特定箇所をリンク先として参照できるようになる
>目的地アンカー(終点アンカー)が一般的に良く使われていますが、
>XHTML1.1 では、name属性は完全に廃止され、
>旧来の目的地アンカーのテクニックは利用できません。
>本文書では HTML4 の仕様から新たに登場した id属性を指定することで、
>これを代替する手法を解説します。
0261nobodyさん
2006/12/26(火) 01:56:39ID:???多分デフォルトのメモリ量では確実に不足してると思われるんですけど・・
0262nobodyさん
2006/12/26(火) 01:58:20ID:???<p id="label">なんたらかんたら</p> 飛ぶ。日頃使ってる。
<a name="label">ここへ飛べ</a> 昔、こうしてた。飛ぶ。
<a name="label"></a> さっき試した。飛ぶ。
<a name="#label"></a> IE6: なぜか飛ぶ/Fx: 飛ばない。
で、なんでFxスレなんですか。
0263nobodyさん
2006/12/26(火) 02:07:00ID:???バグだと疑うならまずはIEを疑ってください。
と信者が申してました。
0264nobodyさん
2006/12/26(火) 02:13:18ID:???やったこと無いけど、一番重そうなページで memory_get_usage とか
memory_get_peak_usage を使ってメモリの使用量を測定し、想定する
同時接続数を掛けてみてはどうか?
0265232
2006/12/26(火) 02:29:42ID:K7ycYnW/すいません。書き方が悪かったので訂正します。
ループさせる理由は、WebアプリでDB操作(INSERT/UPDATE)をするためなんです。
なので実際は10回どころか千・万単位のリクエストになります。
画面なしのバックグラウンドで動かすわけにはいかない、という条件です。
推定処理時間は数分です。
その処理時間の間に、進み具合が分かるプログレスバーを表示させたいと思っています。
-----
元の書き込みのwhileは別例になります。
DBとか書かないほうが説明しやすいかと思いまして、、、
動作としましては、
Javascriptからの1リクエスト、
↓
----- ループ -----
PHPからのレスポンス送信
↓↑
Javascriptでのレスポンス受信
-----------------
が可能かどうかが知りたかったんです。
これが出来れば処理状況表示のプログレスバーも出来そうな気がするので、、、
よろしくお願いします。
0266nobodyさん
2006/12/26(火) 02:42:30ID:???こんな感じじゃない?すげー重くなりそうだけど。
function insertDB(){
for( i=0; i<100; i++ ){
Ajaxでサーバに i 件目を格納させるリクエストを飛ばす;
成功したらプログレスバーのwidthを+1pxする;
}
}
0267nobodyさん
2006/12/26(火) 02:55:40ID:???てかここって php のスレだよね
0268nobodyさん
2006/12/26(火) 03:03:50ID:???最初の一件のリクエストで何万件だかの SQL を発行
進捗とともに状況をファイルに書き出す
ajax で一定時間ごとにファイルを読みに行く
そんな難しいことじゃない
けど 232 はもっと勉強が必要だと思う
0269nobodyさん
2006/12/26(火) 03:06:04ID:???ありがとうございます。
メモリの設定値はphp.iniを変更するだけでいいですよね?
大丈夫かなぁ
ちなみに関数の使い方はマニュアルをみたのですがなんか理解しずらいっす
0270nobodyさん
2006/12/26(火) 03:14:54ID:???0272nobodyさん
2006/12/26(火) 05:09:35ID:???0274nobodyさん
2006/12/26(火) 09:43:15ID:???女性用のほうが慣れてるぜwww
でもパイパンにするのにあのカミソリじゃ危ない希ガス・・・
0275nobodyさん
2006/12/26(火) 10:09:13ID:???0276nobodyさん
2006/12/26(火) 11:10:06ID:???0277nobodyさん
2006/12/26(火) 11:37:45ID:???自動的にスレを保存するにはdatファイルにアクセス・読み込み・保存でよろしいのでしょうか?
datファイルとはお金をかけないと不正アクセス禁止法にひっかかるのでしょうか?
0278nobodyさん
2006/12/26(火) 11:40:07ID:???なんでだろ?他の言語では広げるのはできないけど、狭めるのはできるよね?
http://php.justdn.org/manual/ja/language.oop5.visibility.php
PDOのコンストラクタはpublic → 継承したSingletonクラスでpivateにしたい。
0279nobodyさん
2006/12/26(火) 11:52:40ID:UoOJj1FX登録サイト(mixiなど)でみかける住所フォームで、
都道府県を選択したら自動でその市区郡が選択できるようになるのがありますが、
PHPで同様なことをしたいのです。
どうしたらよいでしょうか?
参考になるコメント、助言お願いします。
0282nobodyさん
2006/12/26(火) 11:57:24ID:???できないのは仕様ですと言われればそれまでだからな・・・。
余談だけどPHPでシングルトンやるなら、結局は実行時にしかチェックされないってことも考えるといいかも。
たとえコンストラクタをprivateにしても、phpの場合は実行時にnewをして初めてエラーが出る。
だからJavaでコンパイル時にチェックさせるような実装を真似る必要はなくて、コンストラクタをpublicにしかできなくても、例えばクラス外からnewされたら例外を投げる、みたいなやり方で十分だと思う。
もしくは継承ではなく、コンポジションにする(PDOのインスタンスをプロパティとして持つ)って手もあるんじゃないかな。
0283nobodyさん
2006/12/26(火) 11:59:15ID:???非同期でやるならJavaScriptだけどmixiは画面遷移してるね。
都道府県が選択されたらonChangeでPostして都道府県IDを飛ばすだけだな
0284279
2006/12/26(火) 11:59:21ID:???都道府県を選択
↓
次のページへ移動
↓
市区群表示
じゃだめか?
0285nobodyさん
2006/12/26(火) 12:04:01ID:TexWR+4fhiddenをつかおうがセッションを使おうが、一回はpostされるわけですよね?
postの中身を改ざんされる恐れがあると思うんですが、
予防法などありましたらアドバイスお願いいたします。
0288nobodyさん
2006/12/26(火) 12:24:47ID:???0289nobodyさん
2006/12/26(火) 12:28:10ID:???0290nobodyさん
2006/12/26(火) 14:05:13ID:Jf/WWK780292nobodyさん
2006/12/26(火) 14:40:10ID:???0294nobodyさん
2006/12/26(火) 16:00:44ID:???どこかライセンス認証に向いてるシステム作ってるサイトしらない?
自分で作ってもいいんだけど、既存のものがあるなら見てみようと思ってさ。
0296nobodyさん
2006/12/26(火) 16:50:16ID:???そういうケチを付けるだけの情報量ゼロないちゃもんもいりませんから。
とかいうとお前もなと不毛な鸚鵡返しが返ってくると↓↓↓↓↓↓↓↓
0297nobodyさん
2006/12/26(火) 16:54:22ID:???0298nobodyさん
2006/12/26(火) 17:17:40ID:???不要な文字を除去したいのだけど
str_replaceにはどう書けばいいのでしょうか?
0300298
2006/12/26(火) 17:30:33ID:???そのものではなくて、文字コード0x00とUTF-8のBOMという意味です。
0301nobodyさん
2006/12/26(火) 17:40:21ID:fFhrPh3DVBSファイルの内容は、
Set objSystemSet = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}").InstancesOf("Win32_OperatingSystem")
For Each objSystem In objSystemSet
objSystem.Win32Shutdown 8
Next
という割と有名なやつです。poweroff.vbsで保存されております。
PHP上の呼び出しは、
$ret = system("C:\**********\poweroff.vbs");
となっております。
PHP上で実行すると、確かにシャットダウンは開始するのですが、
画面が暗転してシャットダウンが途中で止まったり、
ログイン時のダイアログが表示されたり、たまに完全にシャットダウンされたりします。
ちなみに直接VBSを呼び出すと無事シャットダウンされます。
OSはXP、Apache1.3.28+PHP4.4.2です。
何か原因があるのでしょうか?
0302nobodyさん
2006/12/26(火) 18:10:25ID:???0303nobodyさん
2006/12/26(火) 18:38:36ID:Jf/WWK78そそそ、それでした!!
ありがとうございまーす
0305232
2006/12/26(火) 20:53:02ID:???そういう手法は全く考えてませんでした。
ズバリな回答ありがとうございました!
> けど 232 はもっと勉強が必要だと思う
(´・ω・`) がんばります
0306nobodyさん
2006/12/26(火) 21:18:27ID:???ログのどこみたらのってますか?
0308nobodyさん
2006/12/26(火) 22:21:43ID:???ヒントをやるから自分でみつけろ
1. http://pc8.2ch.net/php/dat/1166676139.dat
2. 「<>」で区切ってある
しかし2ちゃんねるはデータベースを用いないのな。
0309nobodyさん
2006/12/26(火) 22:47:18ID:???0310nobodyさん
2006/12/27(水) 00:49:17ID:uQ88JK/10311nobodyさん
2006/12/27(水) 00:51:59ID:???∩_
〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ <こいつ最高にアホ
彡、 |∪| /
/ __ ヽノ /
(___) /
0312nobodyさん
2006/12/27(水) 00:58:17ID:0HWbicIg$tit ="この部分";
//〜〜
$Yow ="この部分";
//~~
//~~~^^
$ok ="この部分";
//〜〜
このように記述されてるPHPの「各""(ダブルクォーテーション)の中」に
「文字を書き込み」、かつ「""の中身」に既に文字が入っていれば
「上書きして文字を書き込む」PHPを作成したいのですがどうすれば良いでしょうか
0313nobodyさん
2006/12/27(水) 01:00:16ID:???0314nobodyさん
2006/12/27(水) 01:02:35ID:0HWbicIg$tit ="この部分と";
//〜〜
$Yow ="この部分と";
//~~
//~~~^^
$ok ="この部分";
//〜〜
に特定の文字を書き込むPHPを作成したいのですがどうすれば良いでしょうか
0315nobodyさん
2006/12/27(水) 01:06:46ID:???<?php
mb_internal_encoding("UTF-8");
$str = 'あaいiうuえeおoかkaきkiくkuけkeこkoさsaしshiすsuせseそsoたtaちchiつtsuてteとto';
echo mb_substr(mb_convert_encoding($str, 'UTF-8', 'SJIS'), 0, 10);
echo "\n";
echo mb_convert_encoding(mb_substr($str, 0, 10), 'UTF-8', 'SJIS');
?>
結果が
あaいiうuえeおo
あaいiうu
となります。mb_substrの返り値が違うのは
Shift_JISは1〜2byteのみで表現するのでbyte数で返してもほとんど支障はない
UTF-8は1〜6byteで表現しbyte数で返すと文字数が少なすぎる場合があるので文字数で返す
ということでいいんでしょうか?
0316315
2006/12/27(水) 01:07:45ID:/UATDQ7l0317nobodyさん
2006/12/27(水) 01:18:25ID:???ノロが怖いので丁寧にチンチンを洗ったら気持ちよくなりました。
ノロって気持ちいいんですね。
上の条件を満たす関数を作りなさい。
優秀賞はノロウィルス一年分贈呈
0318nobodyさん
2006/12/27(水) 01:26:54ID:uQ88JK/1パソコンが壊れた場合、phpがインストールできなくなるのでしょうか?
0320nobodyさん
2006/12/27(水) 02:04:27ID:???置き換えたい文字列をあらかじめ __hogehoge__ とかにしておいて、
すべて変数$beforeにいれておき
$after = str_replace( $before, "__hogehoge__", "書き込みたい文字列" );
0322nobodyさん
2006/12/27(水) 02:56:36ID:???ifとelseifのみの、elseがない条件文のようなものという認識であってますか?
0323nobodyさん
2006/12/27(水) 02:59:17ID:???0324nobodyさん
2006/12/27(水) 03:31:32ID:???なんかメリットあるのか?
0325nobodyさん
2006/12/27(水) 03:38:49ID:???message (イベント)を処理するときに使う
if 文で書くと冗長になる
0326nobodyさん
2006/12/27(水) 03:56:17ID:???条件 b の時に処理 1 と 2 をなんて時に使う
if 文で書くと
同じことを複数書くか(メンテナンス性が最悪)
if 文を増やすか(速度的なペナルティがある)するしかない
Web アプリではあまり使わないけれども
0327nobodyさん
2006/12/27(水) 08:39:13ID:???0328nobodyさん
2006/12/27(水) 10:08:35ID:???0329nobodyさん
2006/12/27(水) 10:19:29ID:???別にデメリットがあるわけでもなし、
使わんとかいう理由がわからん。
…と、思ったんだけど、
自分のソース見たら使ってなかったw
0330nobodyさん
2006/12/27(水) 12:34:33ID:???0331nobodyさん
2006/12/27(水) 12:39:10ID:???0332nobodyさん
2006/12/27(水) 12:40:45ID:???0333nobodyさん
2006/12/27(水) 12:58:56ID:???echo mb_convert_encoding(mb_substr($str, 0, 10), 'UTF-8', 'SJIS');
だと文字コードが違うのでmb_substrが正常に動作しないだろ
echo mb_convert_encoding(mb_substr($str, 0, 10, "sjis"), 'UTF-8', 'SJIS');
0334nobodyさん
2006/12/27(水) 13:18:19ID:OjKZeNpj$ad = "*/";
include("summary.php");
include("chmary.php");
$as;
include("この部分");
$ad;
変数によって、コメントアウトさせようとしているのですが
うまく行きません、どうすればいいのでしょうか
0340nobodyさん
2006/12/27(水) 14:22:53ID:???XAMPPというソフトが紹介されていました。
そのソフトは一括で色々なものがインストールできる見たいなんですが
自分は今のところPHPとApacheとMySQLしか使う予定は無いのです。
それでもXAMPPをインストールする価値というのはあるのでしょうか?
それとも別々にインストールしたほうがいいと思いますか?
0341nobodyさん
2006/12/27(水) 14:23:41ID:???作ろうとしているのですが、PHPだけで出来ますでしょうか?
アクセスカウンターみたいな形ではなく、あくまでバナークリックです。
ご存じの方は設計のアドバイスをいただければ助かります。
0342nobodyさん
2006/12/27(水) 14:28:54ID:0HWbicIgでform_d.phpとform_d2.phpの両方へデータを送りたいときは
<form method="post" action="form_d.php">
<form method="post" action="form_d2.php">
と記述するしかないのでしょうか
0345nobodyさん
2006/12/27(水) 14:44:18ID:???XAMPPの説明呼んで、使いたいと思わなければ個別にインストール。
>>342
1クリックで1リクエストが基本。
form_d.phpにリクエストして、
form_d2.phpへは、form_d.phpからPOSTしてやれば?
0347nobodyさん
2006/12/27(水) 15:41:06ID:???後から掃除するのが大変だから、
必要なものだけインストールしな。
設定の手間なんかは一緒だから。
動作テスト用だろうし、1回構築すればいいだけだからね。
0348nobodyさん
2006/12/27(水) 17:16:19ID:omeCjei10349nobodyさん
2006/12/27(水) 18:04:37ID:???0350nobodyさん
2006/12/27(水) 18:08:13ID:???Warning: chmod(): Operation not permitted in 〜
と出てしまいパーミッションの変更に失敗してしまいます。
原因をご存知の方が居りましたらご教授お願いします。
開発環境 : FedoreCore5
PHP : PHP Version 4.3.10
Server API: Apache 2.0 Handler
0352315
2006/12/27(水) 18:30:53ID:/UATDQ7lレス遅れてすみません
文字コード指定すればよかったんですね
ありがとうございます。
0353nobodyさん
2006/12/27(水) 18:55:18ID:???15個くらい検索項目がある検索システムを作らないといけないんだけど、
ポストされたデータがNULLじゃなかったら、SQL文にOR繋いで、(name LIKE '%{$_POST['name']}%') みたいな感じで増やしていけばいいですか?
0355nobodyさん
2006/12/27(水) 19:50:59ID:???ごめん、POST以外は確かにSQLの質問だったな…
高等な検索ってどうしますお?
0356nobodyさん
2006/12/27(水) 19:55:47ID:???0357nobodyさん
2006/12/27(水) 20:01:29ID:???0358nobodyさん
2006/12/27(水) 20:06:52ID:???15個も
0359nobodyさん
2006/12/27(水) 20:26:06ID:???0360nobodyさん
2006/12/27(水) 20:37:13ID:???0362nobodyさん
2006/12/27(水) 20:45:16ID:???implodeでもいいし、気合でつなげてもいいし、ただ10項目位のOR LIKEは、否定的だなぁ
SQL的に重くなるね
0363nobodyさん
2006/12/27(水) 20:54:43ID:???0365nobodyさん
2006/12/27(水) 21:16:45ID:???皆さんありがとうございました。
とりあえずimplodeで作ってみます〜
もっさりしたら、ストアドプロシージャーも視野に入れますが…
一万行データあって、18列…
量つなげるのはやばそうですねぇ… 作って、酷かったらまた考えて見ます〜
>364
エスケープ? ぁぁ外側に「” ”」で囲っているので、大丈夫かと…ってことかな?
0367nobodyさん
2006/12/27(水) 21:37:08ID:???ZFのサニタイズらしい機能使ってて、最近全く気にしてなかった〜
0368nobodyさん
2006/12/27(水) 22:43:08ID:???0369nobodyさん
2006/12/27(水) 23:42:17ID:???ttp://neta.ywcafe.net/000372.htmlを参考にしています。
メニューで現在表示しているページには、class="here"などを付加させたいのですが、
どういう風に条件をつけたらいいかアドバイス頂けないでしょうか?
今みているページのファイル名のみ(ルートからのアドレスを取得する関数はあったのですが)を取得する方法なんかありますか?
0370nobodyさん
2006/12/27(水) 23:50:15ID:???0371350
2006/12/28(木) 09:52:55ID:???chmod("ファイル名",0777);
の間違いでしたm(_ _)m
fedoreのセキュリティの設定辺りが
関係していそうな気がするのですが
一通りググって見たのですが
関連した記事が見つからなかったので
質問させていただきました。
0372nobodyさん
2006/12/28(木) 10:17:06ID:???このどれかに該当しないの?
注意: カレントのユーザは PHP を実行しているユーザです。 これは普通のシェルや FTP アクセスでのユーザとはたいてい違います。 たいていのシステムでは、ファイルの所有者のみがそのモードを 変更可能です。
注意: この関数では、 リモートファイル を使用することはできません。これは、処理されるファイルがサーバのファイルシステムによりアクセスできる必要があるためです。
注意: セーフモード が有効な場合、操作しようとしているファイルあるいは ディレクトリの UID(所有者)がスクリプトの実行ユーザと同じかどうかを PHP がチェックします。さらに、SUID・SGID や sticky ビットを 設定することはできません。
0373nobodyさん
2006/12/28(木) 11:40:40ID:DqIHSsqd[0-9a-zA-Z]で英数字にマッチするのですが
これプラス「-」にマッチするものってどう記述したらいいですか?
よろしくお願いします。
0374nobodyさん
2006/12/28(木) 11:43:35ID:???0375nobodyさん
2006/12/28(木) 11:46:11ID:DqIHSsqdバックスラッシュ試してみます。
0377nobodyさん
2006/12/28(木) 11:51:52ID:DqIHSsqdありがとうございました。
0378373
2006/12/28(木) 12:26:20ID:DqIHSsqd376さんが言ってるような表現になると思うのですが何故か上手くいきません。
「-」記号が入ってないときは上手くいくのですが・・・。
0379あぼーん
NGNG0380nobodyさん
2006/12/28(木) 12:44:18ID:???あら、そいつは失礼。
問題なければ、対象の文字列(可能ならその部分のソースも)をさらした方が早く回答もらえるかも。
俺もそんなにやってるわけじゃないけど…。
0383nobodyさん
2006/12/28(木) 13:30:43ID:???0384373
2006/12/28(木) 13:36:49ID:DqIHSsqd$proto = ereg_replace("[0-9a-zA-Z]{10,10}","成功",$proto);
こういう感じです。
0385373
2006/12/28(木) 13:40:18ID:DqIHSsqdさっき教えてもらったように[\-0-9a-zA-Z]{10,10}とかも試して見ました。
0386nobodyさん
2006/12/28(木) 13:47:35ID:???1・一行目が「prot」なのに、置き換え対象が「proto」になっている
2・文字列として定義するなら BC-K-o58tB は 「"」か「'」で囲む。
で、とりあえず [0-9a-zA-Z\-] として動いたよ。
0387nobodyさん
2006/12/28(木) 13:48:20ID:???0389373
2006/12/28(木) 13:53:57ID:DqIHSsqd$proto = ereg_replace("テスト([0-9a-zA-Z\-]{10,10})","成功\\1",$proto);
で動作しません・・・。
$protoを"テストBCaKao58tB"にすると動作するのですが・・・。
0390nobodyさん
2006/12/28(木) 13:57:36ID:???<?php
$proto = "テストBC-K-o58tB";
$proto = ereg_replace("テスト([0-9a-zA-Z\-]{10,10})","成功\\1", $proto);
echo $proto;
?>
0392373
2006/12/28(木) 14:00:25ID:DqIHSsqdみなまさ本当にお世話になりました。
0393nobodyさん
2006/12/28(木) 14:04:49ID:???〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ <こいつ最高にアホ
彡、 |∪| /
/ __ ヽノ /
(___) /
これだけ教えてくれた人がいるのに
「少し別のところ」も書かないなんて。
0394nobodyさん
2006/12/28(木) 14:11:07ID:???0395nobodyさん
2006/12/28(木) 14:15:53ID:e+ebdVG/0396373
2006/12/28(木) 14:16:52ID:DqIHSsqd実は、
$proto = ereg_replace("テスト([0-9a-zA-Z\-]{10,10})・・・([0-9a-zA-Z]{10,10})","成功\\1", $proto);
でして後部のほうに\-を入れてなかったのです。
でも基本的に\-を入れると言うのはここの皆さんのおかげでわかりましたので。
後部にもう一つ同じ箇所があってそこを修正していませんでした。
皆さん本当にありがとうございました。
0397nobodyさん
2006/12/28(木) 14:21:22ID:???なるり。
まあそういうケアレスミスはよくある事だからがんばりやー。
恥かしくてもそういうのを書いておいたほうが、後々のためになるから出来るだけよろしゅう。
0398nobodyさん
2006/12/28(木) 17:51:58ID:Qv14/BkxセッションIDの他に推測されない値をCookieに入れておくみたいな話があるけど、
これは、どういう攻撃を避けるためなのかな?
0399nobodyさん
2006/12/28(木) 17:55:27ID:???0400nobodyさん
2006/12/28(木) 19:00:29ID:???1,2,3-10-100-1000を
0001,0002,0003-0010-0100-1000といった感じです。
0402nobodyさん
2006/12/28(木) 20:45:37ID:???csv? xml? ただのテキスト?
0403nobodyさん
2006/12/28(木) 20:58:48ID:???0407nobodyさん
2006/12/28(木) 21:20:57ID:???## 俺はいつもデータベースを用いているからな……。
0409nobodyさん
2006/12/28(木) 23:58:55ID:w/qu4zo9%98%37みたいに変換できる関数なかった〜?
0411nobodyさん
2006/12/29(金) 00:08:29ID:YLaIusHS0412nobodyさん
2006/12/29(金) 00:25:48ID:UI+BpgQSそれを元に戻してブラウザに出力するには、「Content-Type: image」のヘッダを吐いて
base64デコードした文字列をechoで出力する....という単純な処理でいいの?
0415nobodyさん
2006/12/29(金) 00:32:01ID:UI+BpgQSご回答、ありがとうございます。
>何故そんな簡単なことを実際にやって確かめないの?
いや、やってみたことはやってみたんですよ。
もちろんうまく出力することはできたんですが、なんだかこれでいいのかなって。
自分流で強引な方法なのかもと不安になってしまったんです。
すみませんでした。
0416nobodyさん
2006/12/29(金) 00:37:55ID:1uYyFHrLいろんなサイトでmbstringの設定方法を参考にしましたがだめです。
バージョンで動作が違うとかありますか?
0418nobodyさん
2006/12/29(金) 01:29:16ID:???mysql_escape_string($table);
$sql = "select $item from $talbe";
としなくても
$sql = "select $item from $talbe";
mysql_escape_string($sql);
でも同じですよね?
寝ずにずっとやってたら頭回らなくなってきた orz
0419nobodyさん
2006/12/29(金) 01:39:25ID:???取得する方法ってありますか?
クエリーで一回格納してそれをnumRows()する方法
$rs=$db->query($sql);
$rs->numRows();
では、データ量が多い場合にメモリ無駄に食いますよね
それを避けて、行数のみ取得したいと考えてます。
0420nobodyさん
2006/12/29(金) 01:41:38ID:???0421nobodyさん
2006/12/29(金) 01:43:10ID:???とりあえずブラウザでみれないようなファイルに
>>418
$item に " が含まれていたらどうなるのだね?
上は正しい SQL 文になるが
下は SQL インジェクションの餌食になるよね
0423nobodyさん
2006/12/29(金) 02:25:43ID:zzjbblat1.質問文、項目は管理者が自由に増やしたり削ったりできる
2.質問が1の時もあれば5つのときもある(管理者次第)
3.複数選択も管理者が選択できる
以上の機能でMySQLにユーザが選んだデータを入れていくのですがこのようにクエリがまったく予測できないのでどのように入れたらいいか見当もつきません。。
今、考え付くのが
一つのチェックに1行作るくらいです。。
お力お貸しくださいm(_ _)m
0425nobodyさん
2006/12/29(金) 03:03:07ID:???質問テーブル(親)−質問項目テーブル(子)−回答選択肢テーブル(孫)
回答テーブル
質問ID
質問項目ID
回答選択肢ID
>>424
下のは文字列を扱うSQLが実行できないだろ
select password from user_master where userid='hogehoge'
↓escape
select password from user_master where userid=\'hogehoge\'
0427nobodyさん
2006/12/29(金) 08:35:57ID:???遅くなりましたが答えてくれてありがとう。
ぶっちゃけ拡張子はどうでもいいんですけどね。
csvとxmlには、ファイルを扱う専用の関数があるみたいなので、
ログの管理がしやすいのかな?なんて思っただけなので。
DBが使えない環境でも使えるようにしたいので、
407さんの助言通り、csvをテキストとして処理したいと思います。
0428nobodyさん
2006/12/29(金) 09:04:48ID:???確かめずに書くけど、PEAR::DBのnumRows();って、
DBによって実装が違ったような…。
MySQLだと SELECT count(*) WHERE ・・・
を投げてたと思う。
0429428
2006/12/29(金) 09:12:28ID:???ネイティブの関数だから、メモリは関係ないかも。
DB側の実装によるんじゃないかな。
0430nobodyさん
2006/12/29(金) 10:34:00ID:JQJ1UMkF<head>
<?php
$encoding = "EUC-JP";
$str = '<meta http-equiv="Content-Type" content="text/html; charset='.$encoding.'">';
echo $str;
?>
<title>あいうえお</title>
</head>
<body>
<p>あいうえお</p>
</body>
</html>
として表示させると、文字化けします。(このスクリプト自体がShift_JISで保存してる為)
そこで、mb_convert_encodingを使ってみたのですが、
echo mb_convert_encoding($str, 'EUC-JP');
echo mb_convert_encoding($str, 'EUC-JP', 'Shift_JIS');
echo mb_convert_encoding($str, 'EUC-JP', 'auto');
などとやっても文字化けしたままでした。
根本的な解決は、このファイルをEUCとして保存するしかないのでしょうか?
それとも何か使い方が間違ってるだけなのでしょうか?
どなたかお助けください。
0431nobodyさん
2006/12/29(金) 10:39:09ID:???$str = '<meta http-equiv="Content-Type" content="text/html; charset='.$encoding.'">';
↓
$str = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=".$encoding."\">";
0432430
2006/12/29(金) 10:54:04ID:JQJ1UMkFレスありがとうございます。
それでもだめみたいでした。
ファイル自体をEUCで保存すれば文字化けはしませんでしたが、
$encodingの値はいつでも変えれるようにしたいので、
その都度コードを指定して保存しなおすのは大変なので、
どうにかしたいのですが、どなたか宜しくお願いします。
0434nobodyさん
2006/12/29(金) 11:10:55ID:???それだったらファイルをShift_JISで書いたときは $encoding = "Shift_JIS";
それだったらファイルをEUC-JPで書いたときは $encoding = "EUC-JP";
にしなきゃダメじゃない?
0435nobodyさん
2006/12/29(金) 11:12:22ID:???>ファイル自体をEUCで保存すれば文字化けはしませんでしたが、
>$encodingの値はいつでも変えれるようにしたいので、
>その都度コードを指定して保存しなおすのは大変なので、
意味がわからない。
EUCで保存すれば問題ないならそれでいい気がするのだが
つかそういう設定は普通define使うだろ?
0436430
2006/12/29(金) 11:36:44ID:JQJ1UMkF内部コードっていうのがよくわからなくて・・・
HTMLの文字コードとは違うものなんですね。
混同してすみませんでした。
>>435
ちょっと説明すると長くなるのですが、
実はhtmlのDoctypeからhead間を出力するクラスを作っています。
自分の作ってるPHPは、
どれもhtmlのbody間の使いたいところでincludeする形になっていて、
単体ではhead間などは出力しないようになっています。
そこで、単体でも使えるように、そんなクラスを作っているのですが、
今まで作ってきたスクリプトの、保存した際の文字コードが違ってたりして、
上のスクリプトのencodingの値を変えないと、文字化けしてしまうのです・・・
ファイルの文字コードは、時期ごとに変わっているので、
(Shift_JIS→EUC-JPときて、今はUTF-8を使っています。)
いちいちファイルをチェックしなくても、どの文字コードがだいたいわかります。
数が多いので、できれば統一したくないというのが理由です。
説明がわかりづらいかもしれませんが、
不可能なようなので、あきらめて全て統一する方向にしたいと思います。
0437nobodyさん
2006/12/29(金) 11:57:06ID:ttVITF9rPHP→Smartyに $common_template_dir として "/path/to/" を設定します。
で、インクルードファイルとして"/path/to/header.tpl"を読み込みたいのですが、
下記の方法では(もちろん)うまくいきません。
(変数名自体がかわっちゃうから当たり前ですよね)
{include file="$common_template_dirheader.tpl"}
{include file="/path/to/header.tpl"}
となるように記述したいのですが、どうしたらいいのでしょうか?
0438nobodyさん
2006/12/29(金) 12:35:59ID:???そもそもMETAタグを文字コード変換してどうしようというのか。
たぶん、問題はphp.iniのdefault_charsetじゃないかと推測するが。
0439nobodyさん
2006/12/29(金) 13:07:19ID:???調べても、しっかり説明されているところが見つかりません。
あいかわらずマルチバイト系の関数はないってエラー吐くし、解説サイト全然役に立たない。
0440nobodyさん
2006/12/29(金) 13:48:22ID:???assainにいれちゃえばいいのでは。
php側
$smarty->assign('include_tpl', '/path/to/header.tpl');
tpl側
{$include_tpl}
0441nobodyさん
2006/12/29(金) 13:50:49ID:???違う気がしてきた。sryネ
0442nobodyさん
2006/12/29(金) 14:46:57ID:???mbstring系の関数がないなら…
Windows系→php.iniでmbstringを有効に
Linux系→./configureオプションに--enable-mbstring --enable-mbregex を追加してリビルド
0443nobodyさん
2006/12/29(金) 14:56:00ID:???みなさんは、ファイル名やフォルダ(ディレクトリ)名の付け方って
特にこだわっていたりしますか?
ファイル名の場合はそれぞれの用途や名称を元にしたらいいのですが、
フォルダ名を付ける時、どういう名前がわかりやすいのか悩む時があります。
例えば、どのコンテンツにも使うものやfunctionファイルなど。
(commonとかmoduleとかにしていますが、、)
気にする必要はないと思いますが、ファイル名・フォルダ名の付け方について
混乱しない・汎用性の高い付け方があったら教えて下さい。
0444nobodyさん
2006/12/29(金) 14:56:45ID:???0447446
2006/12/29(金) 15:13:39ID:???SESSIONを使ったサイトしか作るつもりが無いので、
セッションに前画面の情報を入れて(Referの代替程度の話)
更新系の画面ではそれをチェックするぐらいでいいかなぁと。
0448nobodyさん
2006/12/29(金) 15:16:42ID:???CSRFの何がどう危険なのか、その仕組みを全く理解してないようだな。
まずその仕組みを徹底的に調べろ。
で、とりあえずリファラのチェックは全く対策にならない。
なぜなら、いくらでも偽装できるから。
0449nobodyさん
2006/12/29(金) 15:18:21ID:???postkeyがあってもCSRF脆弱性を無くせなかったmixiを反例にすべし。
0451446
2006/12/29(金) 15:24:28ID:???セッションIDのみより暗号強度が強くなるという認識程度。
>>447の方法だと、あとはセッションハイジャックの問題になると思ってるんだけど…。
0452nobodyさん
2006/12/29(金) 15:48:32ID:1NnWPd/mいくつか調べたところ、crtptを使うのが一般的みたいですが、
これだと復元出来なくなるので、「パスワードを忘れた人に再送信」
などのシステムが作れなくなります。
しかし、暗号化しないとDBを使ってもセキュリティ的によく無いとも聞きます。
こういう場合、どうしたらいいのでしょうか?
0453nobodyさん
2006/12/29(金) 15:54:22ID:???「データベースにパスワード問い合わせ」→「ssl通信」→「パスワード再送信」
0454nobodyさん
2006/12/29(金) 15:58:30ID:???パスワード忘れた人には、古いパスワードを捨てさせて、
新しい仮パスワードを発行するのが、普通じゃない?
で、ユーザーから本パスワードに変更してもらう。
0455452
2006/12/29(金) 16:02:34ID:???ありがとうございます。やっぱりそれしかないんですかね。。
あと、それなら「管理者が管理するシステム」でも
古いパスワードは捨てて、再設定する方式になりますよね?
目で見て確認出来ないのは辛いですが、そのようにシステムを変更します。
0458nobodyさん
2006/12/29(金) 16:20:37ID:???既存の環境が悪さしてるかと思って、Windowsクリーンインストールしたマシン用意したが同じ結果。
PHP4でも5でも動いてくれない。
0459nobodyさん
2006/12/29(金) 16:20:46ID:???0460446
2006/12/29(金) 16:29:17ID:???mixiがpostkeyがあってもダメだったのは、
postkeyが固定だったことと、
他の脆弱性でpostkeyが漏れたからじゃないのかな??
0461nobodyさん
2006/12/29(金) 16:42:06ID:???> なぜなら、いくらでも偽装できるから。
典型的に間違ったこといってるね。
被害者がリンクを踏んだりした被害者の Referer を偽装することは、
【ブラウザに脆弱性が無い限り】 できない。
ちなみに、つい最近 Flash にその脆弱性が発見されたが、すぐ修正版が公開されたし、
Referer 関係の脆弱性はそこまで多くない。
0462nobodyさん
2006/12/29(金) 17:00:32ID:???おたくが言うところのブラウザは脆弱性だけがリファラが偽装の手段なの
PHPでもheader関数で簡単にリファラ偽装できるけど
0463461
2006/12/29(金) 17:04:58ID:???ほんとに分かってないね。
Referer はクライアントが送信できる任意の情報だから簡単に偽装できるよ、そりゃ。
でも CSRF ってなんだか分かってる?
おまいさんが言ってる Referer を偽装できる人は 悪意のあるWebサイトの管理者のことだよね。
CSRF対策の被害者は 【悪意のあるリンクをクリックした人】 であり、その人が自ら Referer を偽装する動機はないわけ。
php の header 関数を利用して、悪意のあるページを閲覧した第三者が送信する Referer を偽装する方法があったら教えてくれ。
0464nobodyさん
2006/12/29(金) 17:32:35ID:???セッションを使えばいいんですよね?
0465nobodyさん
2006/12/29(金) 17:49:34ID:???ちがうよ
私の場合CSRFとかの意図は無いが普通にリファラを制御しながらブラウジングするけど
0466nobodyさん
2006/12/29(金) 17:54:04ID:e5ul8+TJ$dataC[$i][$c] = str_replace("(9)","$123_0123",$dataC[$i][$c]);
のようにして、ある文字列の中にある(9)を$123_0123という文字列におきかえたいんですが$をエスケープする為に\$としてみたのですが$しか表示されません。
いろいろためしてみたのですが、どうも混乱してきました。$をエスケープすれば文字列としてあつかわれるんじゃないんでしたっけ?
アドバイス御願いします。
0467nobodyさん
2006/12/29(金) 18:06:43ID:e5ul8+TJ$dataC[$i][$c] = str_replace("(9)","$123_0123",$dataC[$i][$c]);
を
$dataC[$i][$c] = str_replace("(9)","$ABC_0123",$dataC[$i][$c]);
にしてください。そこの変数名名前がやばかったんで、ダミー入れたら数字のみにしてしまいました。
0468461
2006/12/29(金) 18:11:05ID:???そういうことか。
つまり、普段から Referer を偽装してブラウジングしている人が悪意のあるリンクをクリックした場合に、そのRefererを偽装している人が保護されないということね。
それなら正しいわ。
ただ、Referer については RFC で定義されているので (「送信しない」という選択肢は認めている。)、 RFC に反する通信を行っている人 かつ
Referer をデフォルトで偽装するブラウザは無いに等しい のでそれを保護する必要があるのかは疑問だけど。
逆に言えば、クライアントは Referer の送信を拒否する権利がある (RFCでも認められている) ので、そういった正当な通信までもをエラーで拒否するのは
アクセシビリティ上の問題があるけどね。(ちなみに、W3Cの文法チェックステッカーや多くのSSL検証シールはそれやってる。)
0469nobodyさん
2006/12/29(金) 18:23:29ID:???$ を \$ にしてみる前にマニュアル読もう。
http://www.php.net/manual/ja/language.types.string.php#language.types.string.syntax.single
http://www.php.net/manual/ja/language.types.string.php#language.types.string.syntax.double
0470nobodyさん
2006/12/29(金) 18:28:09ID:e5ul8+TJう…おはずかしい。
”を’にすればよいだけでした。
感謝します。
ありがとう。
0471nobodyさん
2006/12/29(金) 19:50:57ID:e5ul8+TJ$dataC[$i][$c] = str_replace("(9)",'$ABC_0123',$dataC[$i][$c]);
によって、ある文字列の中の特定の文字が置換されDBに格納されました。
そのDBに入った文字列のなかにある$ABC_0123をecho等で書き出すときに変数に戻すにはどうすればよいでしょうか?
DBはmysqlです。
sqlから呼び出した文字列はどのような扱いになっているのでしょうか?
宜しくお願いします。
0472nobodyさん
2006/12/29(金) 21:13:46ID:???mysql関数を使う前にマニュアル読もう
http://jp.php.net/mysql_query
http://jp.php.net/manual/ja/function.mysql-fetch-array.php
0473nobodyさん
2006/12/29(金) 21:23:29ID:e5ul8+TJSQLから戻ってきた文字列は中にどのような関数や変数を入力してもそのまま出力されることから、恐らく''で囲ったのと同じ文字列として扱われているようです。
実験的に
$AAP = str_replace('BB_0123',"$BB_0123",$AAP);
のように呼び出した文字列に対して置換をおこなうと展開されるようになりました。
ありがとうございます。
ただ、全ての変数および関数に対して置換をおこなうのはどうも効率がわるいきがします。
''でかこった文字列を""でかこった文字列に変換する良い方法はないでしょうか?
よろしくお願い致します。
0474nobodyさん
2006/12/29(金) 21:28:34ID:???そもそもDBに格納するデータにPHPコード(変数とか関数とか)を入れるのが
根本的におかしいと思うんだが、何でまたそんな妙な設計にしてるのさ
0475nobodyさん
2006/12/29(金) 21:35:19ID:e5ul8+TJ携帯対応のシステムなのですが、絵文字のライブラリー群はすでにあり、その仕様が
$aaa_123の変数が有る場所にはアクセスしてきた携帯キャリアに併せた絵文字コードに変換して送信する。
という仕様なんです。
で、DBの中に直接変数をいれておけばあとはecho等で吐き出せば全キャリア絵文字対応になる予定だったんです。
で、一番最初に御聞きさせて頂いたようにDB入力時にまず変数が文字列として入らない事に躓いて
次に、DBからひっぱってきた変数が展開されない事に躓いてると。
そういう訳なんです。絵文字なんで全置換プログラムなんて書くと量も多いし、負荷も心配で。
なにか良い知恵が会ったらアドバイス頂きたいです。
0476nobodyさん
2006/12/29(金) 22:32:08ID:???0477nobodyさん
2006/12/29(金) 22:50:22ID:???require('hogehoge.php');
require('hagehage.php');
みたいので当ってると思うんだけど、これをスマートに一文で表記する方法とかないかな?
0478nobodyさん
2006/12/30(土) 01:30:51ID:???必要なファイルをrequireしてるphpファイルをrequireする。
とか、セットという概念を作ってrequireするとか。
特定の文字列を渡したら、特定のファイルを複数requireしてくれる関数を作るとか。
0481nobodyさん
2006/12/30(土) 02:04:59ID:???0482nobodyさん
2006/12/30(土) 07:04:18ID:???無いんじゃないかな。
strlen()とmb_strlen()の結果を比較して
差があったらマルチバイト文字を含む、
と判断する手法があるみたいだけど。
0483nobodyさん
2006/12/30(土) 07:49:19ID:???最終的に文字列をprintするだけで、汎用性もないものなんですけど…
0484nobodyさん
2006/12/30(土) 08:57:45ID:???0485nobodyさん
2006/12/30(土) 10:05:56ID:egNnis/4違う。
0486nobodyさん
2006/12/30(土) 16:06:11ID:Y367ZOEiecho 'OK';
}else{
echo 'NG';
}
こんなコードを書いてSQLiteが使えるかどうかチェックしたが、NGと表示されてしまう。
php_sqlite.dllはちゃんと入ってるし、読み込むように設定してあるハズなんだが、
どうすればいい?
}
0488nobodyさん
2006/12/30(土) 16:43:30ID:???0489nobodyさん
2006/12/30(土) 16:51:21ID:???対症療法だけど、extension_loaded('sqlite')の代わりにdefined('SQLITE_OK')使えばいいんじゃない?
0490nobodyさん
2006/12/30(土) 17:04:16ID:???サーバ機が自分の管理下にあるならその必要はないし、レンサバみたいな環境なら、サーバ管理者が利用者のパスワードを覗く方法なんていくらでもある(サーバのログとか)わけだから、暗号化してもしょうがない気がするんだけど。
0491nobodyさん
2006/12/30(土) 17:16:40ID:???・暗号化しておけば何らかのセキュリティホールでデータが漏れても生のパスワードは漏れない。
・(利用者からみて)大企業でもデータ漏れをやらかすのに個人の管理者なんて信用できない。
0494nobodyさん
2006/12/30(土) 19:07:41ID:kiTSZZLqsession_destroy();
を入れたら
エラー:
Trying to destroy uninitialized session
が出ました。
ログイン画面なので、クライアントがセッション値を保持していなくても
念のためにセッションを全破棄させたいのですが、
session_destroy();
ではダメなのでしょうか?
0495nobodyさん
2006/12/30(土) 19:54:15ID:???ロードが高いときにはいくつかの処理をスキップするような
プログラムを書きたいのですが。
0496nobodyさん
2006/12/30(土) 20:42:45ID:???0497nobodyさん
2006/12/30(土) 21:35:33ID:???セキュリティホールを危惧して暗号化、ってのはわからなくもないけど・・・。
もしデータベースの生データが外部に漏れるような大惨事が起こってしまったとしたら、ログイン用パスワードだけが暗号化されてたかどうかなんて、大した問題じゃないような気もする。
サーバの管理人が信用できない場合には、そのサーバ管理人に漏れたら大きな損害が発生し得るサイトの運営は、そもそも避けるべきだしね。
それよりかサイトに訪問する側としては、パスワードを忘れた場合に復元してくれる機能はあった方がありがたい(特に、記憶にあまり残らない、どうでもいいサイトであればあるほど)。
つーか、大規模なサイトでもパスワード復元機能ってけっこうあるじゃん。
>>493
こちらで明示したプライバシーポリシーに反する形で、万一そんな失態を犯してしまったら、謹んでお詫びするし、相応の金も払うよ。
0499nobodyさん
2006/12/30(土) 21:41:49ID:???ぜんぜんわかってないな。
まず全てのデータベースが名前や住所を保存してるわけではない。
メアドとパスワードのみで会員登録できるサービスもある。
だからパスワードが漏れたことのみが問題になるケースもある。そして、
>こちらで明示したプライバシーポリシーに反する形で、
>万一そんな失態を犯してしまったら、謹んでお詫びするし、相応の金も払うよ。
同じパスを使ってるユーザーなんて五万といるし、
メアド+パスで他のサービスも入り放題。
「相応の金」はあんたのサービスで被った被害だけにとどまらないよ。
>つーか、大規模なサイトでもパスワード復元機能ってけっこうあるじゃん。
あるねー。よくこんなリスキーなことするなあって感心してるよ。
0500nobodyさん
2006/12/31(日) 02:31:47ID:bO4aspIb0501nobodyさん
2006/12/31(日) 02:39:43ID:???何をしたいのか良くわからんが(swfってただの画像フォーマットじゃないだろ?)、
Shockwave Flash 関数(http://jp2.php.net/manual/ja/ref.swf.php)と
イメージ関数(http://jp2.php.net/manual/ja/ref.image.php)でも眺めてみたらどうだ。
0502500
2006/12/31(日) 03:16:04ID:bO4aspIbありがとうございます。参考にして見ます。
0503nobodyさん
2006/12/31(日) 03:17:02ID:???とりあげずパスワード復元〜〜とか、俺のパスワード〜〜
って能書きこいてる奴に攻撃されても大丈夫だ
0504nobodyさん
2006/12/31(日) 03:24:15ID:???0506nobodyさん
2006/12/31(日) 08:06:07ID:B2TdPhYSどれもファイルポインタを先頭か終端に置くと書いています。
これはつまり、ログなどを追加して書き込むときは、
ログファイルの先頭か終端からしか書き込めないということを示しているのですか?
それとも何行目とか、この文字列の後とか指定できるのでしょうか?
ログにxmlを使っていて、先頭が<?xml version〜になっているので、
どうログを追加しようかと悩んでいます。
ログをxmlにするときは、元のログファイルを文字列に読み込んで、
文字列にログを追加した後、
一旦ログを空にして、書き込みなおすという方法しかないのでしょうか?
書き込みなおす方法でもいいのですが、レスポンスが悪そうな気がして・・・
0507nobodyさん
2006/12/31(日) 09:19:33ID:???ファイルっていうのは基本的にそういうもの >先頭から上書きしてしまうか、終端に続けるか
ファイルは全体丸ごとで1塊のものであって、「途中に挿入する」というのは
後半部分を挿入内容の分だけ後ろにずらして移動させるような処理が必要で、
そのような機能はOSのファイル機能の中には含まれていない。
お手軽な手法としては「全部読み込んで文字列を編集して全部書き込み直し」かと。
レスポンスを気にするなら「挿入位置より後半だけ読み込んで以降を削除→挿入内容+後半内容を追記」
などという手も取れなくは無い。
でも別システムとの受け渡し用の一時データファイルならともかく、次々と追記される目的の
ログファイルにXMLを使うこと自体が間抜けな設計に思えるけど。
0508nobodyさん
2006/12/31(日) 10:12:06ID:???どこに書いておくのが安全なんでしょうか?
スクリプトは当然 Apache から読めないとダメなので、
1)誰でも読めるようにする→論外
2)Apache プロセスと同じユーザ(例:ユーザ名 apache)が読めるようにする
3)Apache プロセスと同じグループ(例:グループ名 apache)が読めるようにする
の選択肢しかないように思えるのですが、
他に何かいい方法があるのでしょうか?
同じサーバを使っている他のユーザから見られないようにしたい、
でも Apache からは見られるようにしたい、ということです。
ACL が使えるファイルシステムならいいのでしょうけど・・・
サーバは Debian GNU/Linux etch です。
0509508
2006/12/31(日) 10:14:10ID:???suExec を使うというのはできれば避けたいです。
0510506
2006/12/31(日) 10:20:35ID:B2TdPhYSご丁寧に解説していただきありがとうございます。
これできっぱりfopen()でどうにかするという方法は諦めがつきました。
>お手軽な手法としては「全部読み込んで文字列を編集して全部書き込み直し」かと。
やはりこの方法がいいんですかね。
今回のようなケースはこの方法をとりたいと思います。
>でも別システムとの受け渡し用の一時データファイルならともかく、次々と追記される目的の
>ログファイルにXMLを使うこと自体が間抜けな設計に思えるけど。
仰るとおりですね。XMLにする必要ないですね。
普通のテキストファイルにして、fopenでファイルの終端に置くことにします。
どうもアドバイスありがとうございました。
0511nobodyさん
2006/12/31(日) 11:32:08ID:Exl/tsr7レンサバでメアド+パスワードで登録できるサービスやってるんですけど、かなり危険ですか?
0512nobodyさん
2006/12/31(日) 15:35:52ID:???array('koko', 'mo'));
という配列の最後に同じ文字列を追加したいのですがどうすればいいでしょうか?
$in = '入れたい';
$a = array (array('hoge', 'foo', 'bar', $in),
array('koko', 'mo', $in)); //実際はもっとたくさん配列があります。
こんな感じにしたいです。
0514nobodyさん
2006/12/31(日) 15:50:18ID:???foreach($a as $val => $key){
array_push($key, $in);
}
で入ると思ったんですけど追加されないんですよ。
0515nobodyさん
2006/12/31(日) 16:17:15ID:???PHP5なら
foreach ($a as &$value) {
$value[] = $in;
}
それ以前なら(動作確認してないので注意)
$all_push = create_function('$arr, $data', 'return $arr[] = $data;')
$a = array_map($all_push, $a, $in);
0516nobodyさん
2006/12/31(日) 16:44:21ID:???〜
}
この$aと$bというのは、いきなり書いていいのでしょうか?
それとも、この関数の前に、$a = ""; $b = "";とか書いとくべきですか?
0517nobodyさん
2006/12/31(日) 16:49:44ID:???http://jp2.php.net/manual/ja/language.functions.php
0518nobodyさん
2006/12/31(日) 17:31:11ID:???複数引数がある時、個別に引数ってとれるでしょうか?
説明が下手で申し訳ないのですが、具体的には、
function func($a,$b){
$c = "{$a}さんは{$b}型です";
return $c;
}
ここで、funcの第一引数$aが佐藤だったら田中に置き換えみたいなことがしたいです。
if(preg_match("/佐藤/",func($a)){
では、第2引数がないと怒られます。
if(preg_match("/佐藤/",func("佐藤","A")){
だと、第2引数もろとも置き換え対象になってしまいます。
どう書いたらいいのかわからなくて困っているので、
どなかたお助けください。
0519518
2006/12/31(日) 17:51:48ID:???関数内に、
if($a=="佐藤"){
$a=="田中";
}
でいけました。
ということで自己解決です。
0520nobodyさん
2006/12/31(日) 18:20:39ID:???0521nobodyさん
2006/12/31(日) 18:30:33ID:???addChildで要素を加えた時、CDATAセクションが作成できません。
addChild("cdata", "<![CDATA[ ]]>");
というのも、<>がエスケープされて&lt; &gt;になってしまっているようです。
XmlWriter関数ではCDATAを扱えそうなものがありましたが、
ドキュメント不足で今のところ理解できていません。
SimpleXML関数で、CDATAセクションを出力することは不可能なのでしょうか?
0522nobodyさん
2006/12/31(日) 18:43:15ID:???自演乙
>>521
ぐぐったら最初に出てきた
http://changelog.ca/log/2005/06/14/php-simplexml-cdata-problem--and-my-solution
> The one big problem is, SimpleXML does not handle CDATA!
0523521
2006/12/31(日) 19:04:53ID:???ありがとうございます。
どうもサポートしていないようですね。
参考にさせていただいたサイトでは、スクリプトが複雑だったので、
自分で置き換え用のスクリプトを書いて対応することにします。
0524nobodyさん
2006/12/31(日) 20:23:20ID:Dpv/dM4g(PHP+MySQL)
ある程度作ってしまってから、EUC-JPが全ての携帯に対応していないことを知り、
Shift-JISに変更したいのですが、これは一から作り直すしかないのでしょうか?
0525nobodyさん
2006/12/31(日) 21:38:58ID:b7fBDglPecho mb_detect_encoding( file( $uri ) );というように、
URIの文字コードを判断しようとすると正常に判定してくれません。
逆リンクしてきたページのタイトルを取得しようとしているのですが、
決め打ちで変換しても正常に判定してくれません。
回避する方法はありますか?
メタタグから判断した方が確実ですか?
>>524
出力の時にエンコードしては?
0526nobodyさん
2007/01/01(月) 00:29:02ID:n0VP9emO出力だけSJISにする。
ただし、フォームがあれば、そこから送った値はSJISなのでEUC-JPに変換する必要がある。
一からってのがよくわかんないけど
FTPでアップするときに変換してもいいしフリーソフトで変換してもよい。
みんなあけおめ
0530524
2007/01/01(月) 07:53:05ID:fMPusSJiDreamweaverを使っていて、
・[プロパティ]⇒[エンコーディング]でSJISに変えると文字化け。
・なので、日本語の部分は打ち直す
この方法以外に簡単にエンコードする方法はないのでしょうか。
>>525
出力の文字コード指定をしたのですが、
mb_http_output('SJIS');
としても、変化はないです。
>>526
フォームはあります。
ですが、今はそれ以前の問題のようです。
>>527
文字化けせずに変換する方法はないものでしょうか・・・。
0531524
2007/01/01(月) 09:25:46ID:fMPusSJi上記で解決しました。
データベースはphpMyAdminを使っているので、
Shift-JISで観覧可能です。
0532nobodyさん
2007/01/01(月) 10:59:07ID:???正常に動作しないらしいよ。
誰か「mb_mysql_real_escape_string」を作ってよ
0533nobodyさん
2007/01/01(月) 11:00:00ID:???0534nobodyさん
2007/01/01(月) 11:06:22ID:???その場合、文字コードを途中で変えると、絵文字化けるよ。
俺はここら辺で1週間悩んだから頑張れw
ドコモ絵文字はバイナリデータ。
AU絵文字はHTMLに書き込む場合は<img localsrc="番号">で出力できるけど
フォームからはSJISの文字として送られてくる。
かなり面倒。
俺はエスケープじゃなくてstr_replaceで完全に¥や;や=とかを消してしまって
絵文字をそのまま扱えるようにバイナリデータとしてMySQLに保存してるが
もっとスマートなやり方がきっとあるから、見つけたら教えてくれ。
0536nobodyさん
2007/01/01(月) 11:36:47ID:???例えばMySQLでSNS的なものや掲示板やランキング的なものを作ってたりしてたら
登録されるユーザー名とかサイト名とか投稿文に
勝手に携帯の絵文字がバンバン入ってくるんです。
それをMySQLに保存したりする用途じゃなければ大丈夫です。
それ以外の用途があんまり思いつかんかった。
通販とかに使ってMySQLの中にはいるデータが
全部こっちで用意したものなら気にする必要は無いです。
0537nobodyさん
2007/01/01(月) 11:40:49ID:???ちょっと視野が狭くなってたかも…。
0538nobodyさん
2007/01/01(月) 11:46:40ID:???return true;
とか
return false;
ってどういう意味なんでしょうか?
0539nobodyさん
2007/01/01(月) 11:53:27ID:???ユーザー定義関数かfunctionで調べて使い方覚えた方が良いよ。
それが扱えないと全く話にならないです。
それ覚えたら次はCLASS覚える→Pear覚えるってやってくと
短時間で大きい物作れるようになる。
0540nobodyさん
2007/01/01(月) 12:03:39ID:???マニュアル嫁
return
http://jp.php.net/manual/ja/function.return.php
論理型 (boolean)
http://jp.php.net/manual/ja/language.types.boolean.php
(動作が分からない時は短く単純化して、CLI版で試しに実行してみるのも良い方法だ。)
function true(){return true;};
function false(){return false;};
var_dump(true());
var_dump(false());
0541nobodyさん
2007/01/01(月) 12:41:49ID:???SQLインジェクションの対策だけなのでしょうか?
DBを使わないプログラムの場合は、
\'"が入力に入っててもエスケープしなくて大丈夫でしょうか?
0543nobodyさん
2007/01/01(月) 13:48:43ID:RgWEDbNkホントにくだらない
質問です。
他人の書き込みに対して
返答する
たとえば>>100とかって
どうやってやるんですか?
0544nobodyさん
2007/01/01(月) 14:03:25ID:???if( ">>"のあとが数値だったら ){
$str = "<a href=\"#"+数値+"\">>>数値</a>";
}
0545nobodyさん
2007/01/01(月) 14:03:57ID:???$str = "<a href=\"#"+数値+"\">>>数値</a>";
}
0546nobodyさん
2007/01/01(月) 14:32:16ID:???チャットは一人一人にログ作ったほうがいいですよね
今はDBで全てのチャットを管理しているのですが・・・。
やはりそれだと負担がすごくなりそうです。
新しくDBを作成してアカウントごとにテーブルを分けるのも考えてみたのですが、
さすがにひとつのゲームで2つもDBを使う気にはなれません・・・。
開発経験がおありの方、ご指導お願い致します。
0547nobodyさん
2007/01/01(月) 14:39:57ID:???それに新しくDB作ったとしても何か問題あるの?
0548nobodyさん
2007/01/01(月) 14:58:57ID:???一人ひとりに各チャットログがある場合は
一つのテーブルで処理すると莫大な行になってしまう
最初にデータベース名を変数に格納して、
SQL実行をfunctionでmysql_db_selectと実行するのをまとめてしまったので・・・。
あー、でもチャットのみならDB作ってしまってもいいかもしれない・・・
テーブルが存在するか調べる関数ってPHPにあったっけ・・・?
これはまたMySQLスレのがいいのかな
0549nobodyさん
2007/01/01(月) 15:28:21ID:???0550nobodyさん
2007/01/01(月) 15:31:22ID:???0551nobodyさん
2007/01/01(月) 15:34:02ID:???0553nobodyさん
2007/01/01(月) 15:40:27ID:pMMaY4YI普通は書き込み内容はそのままログに書き込んで、
表示の時にエスケープ処理とかするようですが、
書き込みの時点でエスケープ処理をして、処理済みのを書き込み、
表示は処理済のログをそのまま出すっていう手法はまずいでしょうか?
表示する内容としては同じものになるとは思うんですけど、
ログに書き込む内容が異なりますよね?
後者はユーザーが投稿した生のデータを改竄してログに書き込んでる気がするので、
前者のほうが支持されるのでしょうか?
それともセキュリティー的に何か問題とかあるのでしょうか?
0554nobodyさん
2007/01/01(月) 15:48:33ID:???もし遅いならゲームでのテーブルの使い方に問題ありそう。
IDに関連付けてテーブルをちゃんと分けてないで
色々ぶっこんで毎回全部読み込んでるとか、インデックスつけてないとか。
0556nobodyさん
2007/01/01(月) 16:08:55ID:???> 書き込みの時点でエスケープ処理をして、処理済みのを書き込み、
> 表示は処理済のログをそのまま出すっていう手法はまずいでしょうか?
非常にまずいです。
どうしてもそうせざるを得ない状況、例えば、極限まで最適化した処理をする都合上、
エスケープ処理にかかる負荷を減らしたい、などではない限りやるべきではありません。
理由としては、
・エスケープ漏れになりやすい。(例えば、新たにメールでの投稿を受け付けた場合など。)
・場合によってはエスケープ解除が必要になって面倒。(例えば、投稿内容のメール通知や、記事のダウンロード機能をつけた場合。)
・記事編集機能のロジックを組むのが面倒になる。
など。
0557nobodyさん
2007/01/01(月) 16:11:32ID:???SQLサーバーにそのまま渡して良いのは、プロトコルレベルで
プリペアードステートメントが使えるときだけ。
SQL文に書き込み文をそのまま挟んで発行するのはありえない。
最初に意図しない奴は全部弾いて終了させるかユーザーに書き直させる。
掲示板の本文欄みたいにある程度記号使わせる場合は
変換して突っ込む以外ないよ。
エスケープはマルチバイトの環境でちょっとバグが出てる。
多分、どっかのブログ読んでそう思ったのかもしれないけど
今それを読んで何か考えるには早い。危ない。
0558nobodyさん
2007/01/01(月) 16:19:37ID:???なぜデータベースを作るのか。
0559nobodyさん
2007/01/01(月) 16:29:08ID:0qkB5k7pファイルの文字コードはshift_jsを選ぶべきでしょうか?
クライアントからの入力があるサイトではシフトJSが多い気もするので気になります。
0560553
2007/01/01(月) 16:35:26ID:pMMaY4YIどうもありがとうございます。
書き込む文字列を成形するときに、
エスケープ処理してしまう関数を使っているので、
>>556さんのおっしゃる
>・場合によってはエスケープ解除が必要になって面倒。
というのは痛感していました。
今作ってるのは、ちょっとした機能をPHP側でつけている、
Ajaxチャットを目指しているのですが、(DBは使用していません)
JavaScriptはさっぱりなので、参考サイトを色々まわってるのですが、
JavaScriptのXMLHttpRequestを使ってログを取得して表示することになると思います。
その場合、エスケープ処理はJavaScriptでやることになると思うのですが、
それでも安全性に問題はないですか?
スレ違いですかね・・・
0561nobodyさん
2007/01/01(月) 16:38:17ID:???utfだとサイズがちょっとでかくなるってだけで、
別になんでもいいよ。あとjsじゃなくてjisね。(Shift_JIS)
0562556
2007/01/01(月) 16:40:19ID:???「出力」の状態でエスケープされていない文字列を送信するのは危険ですので、
出力時にエスケープをして、その出力はサーバサイドプログラムで動的に行うことになります。
負荷の問題でそれができない場合には、入力時にエスケープすべきですね。
JavaScriptから読み取ることを想定したファイルであっても、当該URLを直リンクで指定されたら、XSSできちゃうわけで・・・。
Refererで参照元URIをチャットページに制限しても、チャット内でURL貼られた場合の処理とか、Referer 詐称している人が保護できなくなるとかいろいろ面倒なので。
0563nobodyさん
2007/01/01(月) 16:51:23ID:???普通、一旦一時ファイルとしてアップしたファイル($_FILE)を
コピーして一時ファイルじゃなくする必要ってあるものでしょうか?
一時ファイルでやってみたのですがうまくいきませんでした。
他人のソース見てみると一旦コピーして、それから
手動で削除しているようなんですよね・・・
例: ttp://php.s3.to/net/#mail
0564nobodyさん
2007/01/01(月) 16:58:56ID:???どうもご丁寧にありがとうございます。
XSS対策も含め、まだ理解しきれてないことが多いので、
設計を見直しつつ、セキュリティの勉強もしてまいります。
0565560
2007/01/01(月) 16:59:44ID:pMMaY4YI0566nobodyさん
2007/01/01(月) 17:36:28ID:???function rand_parsent($var,$min_par,$max_par){
$min_var = $var * $min_par;
$max_var = $var * $max_par;
$var = round(rand($min_var,$max_var) / 100);
return $var;
}
rand_parsent(基準数値,最小値%,最大値%)
ネトゲの武器ダメージ算出などにでも使ってくだしあ。
echo rand_parsent(100,80,120);
『80〜120の数値をランダムで表示』
0567nobodyさん
2007/01/01(月) 17:43:12ID:6lGuu3mG配布する目的ならsjisじゃないと、サポートに文字化けと騒ぐ小僧が後を絶たなくなる
自分で使うのみならeucが良いかと
blogとか何らかのutf-8を想定し配布するならutf-8ですっと何度も書き
言い聞かせないと文字化け小僧が出現してウザイです
sjisはメタ文字とか色々と潰す処理が面倒ですけどね
0568nobodyさん
2007/01/01(月) 20:25:00ID:PQGIOQJU上記より取得した位置情報をGETではなくPOSTで取得することは可能でしょうか?
ユーザーに故意に位置情報を書き換えられないようにしたいのです。
POSTじゃなくても、何か方法があれば教えていただけると幸いです。
0570nobodyさん
2007/01/01(月) 21:00:28ID:PQGIOQJUPOSTで受け取ることができます?
POSTでリクエスト送信してもGETで返ってき、
一部POSTで返ってくれたりでもしたら嬉しいのですが。
(現在外出中なので、帰宅してから調べてみたいです)
セッションは考えましたが、途中でユーザーにダイレクトでURL入力されると
意味のないことかなーと思いました。
0571nobodyさん
2007/01/01(月) 21:21:14ID:???GET・POSTというのは、どういう形式で鯖にリクエストを投げるか、を示す。
0572nobodyさん
2007/01/01(月) 21:28:49ID:???<input type="url" value="http://www.example.com/">
<input type="submit" value="動作するかしらねーぞ">
</form>
0573nobodyさん
2007/01/01(月) 21:37:00ID:PQGIOQJU(自分ではまだ試していませんが、帰ったら試してみます)
POSTできないと、URLをダイレクトに書き換えられて人生終わります
0575nobodyさん
2007/01/01(月) 22:00:34ID:???0576512
2007/01/01(月) 22:13:21ID:sSR0Omy3レス遅くなりましたが、ありがとうございました。
0577nobodyさん
2007/01/01(月) 23:10:49ID:???別ページから直接URLを打たれた場合対処できないかと
>>575
送信⇒中間⇒返答
だから、POSTで何もできなす・・・
0578nobodyさん
2007/01/01(月) 23:15:14ID:???0579nobodyさん
2007/01/01(月) 23:20:24ID:???だから別ページから直接URL打たれてもセッションにキーなども一緒に保存しといて
比較して不正なら中断すればいいだろ。
0581nobodyさん
2007/01/01(月) 23:26:55ID:???移動した距離分ポイントを増やすようなシステムだけど、
URLで座標が書き換えられるような不正を防止したい
>>580
別ページにフラグ立てておいて
次のページにすればフラグを消す?
すまんがサッパリ理解できない
0582nobodyさん
2007/01/01(月) 23:53:53ID:???なんかセットでこちらで用意した暗号データみたいのを一緒に送るとか・・
>>464だけど
現在の閲覧者カウントするのはセッション使うでおk?
0585nobodyさん
2007/01/02(火) 00:13:42ID:???これの
12345
の部分のみ取得したいのですが、どうすれば良いですか?
また、URL名が
http://example.com/hogehoge/abc.php/12345/
になったりしても、
abc.phpの次にある12345を取得したいです。
何か良い方法はないのでしょうか
0586nobodyさん
2007/01/02(火) 00:25:03ID:???入門書ぐらいのことは一通り学習しなさい。
話はそれからだ。
0588nobodyさん
2007/01/02(火) 00:48:14ID:fMlbvj4zphpのコードを書くときにどのようにスペースを開けて書くのが普通なのでしょうか?
たとえば$hogeが存在したら$hogeにaaaをセットするとしたら
if(isset($hoge) ){
$hoge = 'aaa'; //タブは全角にしてあります。
}
こんな感じでいいのでしょうか?
自分ではこれで見やすいと思うのですが、
みなさんはどんな感じに書いていますか?
0589nobodyさん
2007/01/02(火) 00:58:28ID:???http://pear.php.net/manual/ja/standards.php
ぶっちゃけ公開しないのなら自分が読みやすけりゃいいだろと
0590nobodyさん
2007/01/02(火) 01:03:26ID:???ttp://www.yo-ki.com/study/c/cpp_content.html
0591nobodyさん
2007/01/02(火) 01:03:39ID:???http://framework.zend.com/manual/ja/coding-standard.html
0592nobodyさん
2007/01/02(火) 01:24:01ID:???セッションを理解してなかったらWebアプリ作れないだろ。
オークションで他人に落札させ放題、ショッピングで他人に買い物させ放題だぞ。
0593588
2007/01/02(火) 01:26:01ID:fMlbvj4z参考になりました。ありがとうございます。
0594nobodyさん
2007/01/02(火) 12:47:05ID:349lz7NWだいたい半角英数で記述されています。
そこを日本語で記述されていたら何か問題があるのでしょうか?
<input type="radio" name="ほげほげ" value="">
0595nobodyさん
2007/01/02(火) 12:49:26ID:???0596nobodyさん
2007/01/02(火) 14:27:30ID:P6xryFlt記事からメールを送る場合、匿名で送れるようにする予定です。
そこで、この場合、管理者側でメール内容を記録しておくべきでしょうか?
0597nobodyさん
2007/01/02(火) 14:47:18ID:jphvwS0nPEARのAuthにてごく普通の認証を行っています。ログインフォームとは
別のページへ移動した際も、ログインフォームがあるページと同じくこのように
$myauth = new Auth("DB", $params, "loginFunction");
DBへ接続して認証状態を得たほうが良いのでしょうか?
index.php <- ログインフォーム。ログインするとhimitsu.phpへのリンクが出現。
himitsu.php
himitsu2.php
himitsu3.php
・
・
・
友人は
「セッションIDをクッキーに保存して、値があるか無いかで判断すればいいじゃん」
と言っているのですが、簡単にクッキー偽装が出来てしまいそうで心配です。
よろしくご教授お願いします。
0599nobodyさん
2007/01/02(火) 14:51:00ID:???合成して、雑誌風の画像を作ってくれるphpってありますか?
知ってる方いたら教えてください。
0600nobodyさん
2007/01/02(火) 14:56:25ID:???0601nobodyさん
2007/01/02(火) 15:02:07ID:???Auth.phpの中を見てみれば分かるけど、
セッションデータが無いならDBにチェックしにいくけど、
それ以外ならセッションデータだけでチェックしているよ。
クッキー偽装つーかセッションハイジャックを気をつけないといけないが、
そんなに悪い手法では無いかと。
んで、$myauth = 〜 の行もAuth.phpを読んでみれば分かるが、
それを指定したからといって、必ずしもDBに接続しにいくわけじゃない。
0602nobodyさん
2007/01/02(火) 15:04:38ID:???で定義されている文字列変数があるとして、これをそのまま print すると、
${abc}です。
と表示されますが、この後色々な処理をして、$abc に"abcdefg"が代入されるとします。
その後、この文字列の中の変数を再度パースさせて、print $a; で、
abcdefgです。
と表示させる方法は無いですか?
0603nobodyさん
2007/01/02(火) 15:07:05ID:???0604nobodyさん
2007/01/02(火) 15:08:15ID:???市から勉強しろやたこにんげん
0605nobodyさん
2007/01/02(火) 15:12:47ID:???荒れてるのは1人だけだろうけど^^;;;;;
0606nobodyさん
2007/01/02(火) 15:18:02ID:???$a='\${abc}です。';
$abc = "abcdefg";
print( str_replace( "\${abc}", $abc, $a ) );
0607597
2007/01/02(火) 15:20:05ID:jphvwS0nわかりやすく説明していただきありがとうございました。
大変よくわかりました!
0608nobodyさん
2007/01/02(火) 15:20:34ID:???ありがとうございます。
その手がありますね。ただ、出来るだけ汎用化したいので、$a の中に出てくる
変数を固定したくないので…
0609nobodyさん
2007/01/02(火) 15:30:24ID:???$fieldname = "abc";
$a="\${".$fieldname."}です。";
$$fieldname = "abcdefg";
print( str_replace( "\${".$fieldname."}", $$fieldname, $a ) );
0610nobodyさん
2007/01/02(火) 15:39:09ID:???print $a;
ってのもありだろうけど、$aをきちんと制御(不用意なものをそのまま使わない)できるのが前提。
おいらは明示的に割り当てた変数だけを展開して欲しいので、
汎用性を犠牲にしても、テンプレートエンジンとかstr_replaceを使う。
0611nobodyさん
2007/01/02(火) 15:43:05ID:???HTMLの仕様で、nameは [a-zA-Z][a-zA-Z0-9_:.-]* のみ使える。
0612nobodyさん
2007/01/02(火) 16:39:21ID:???>>603-604はスルーか貴様は!?
それがいやだったら可変変数でも使っておとなしくしてろや。
礼もいねねーようならくんな!くず!
0615nobodyさん
2007/01/02(火) 17:24:32ID:???0619602
2007/01/02(火) 18:37:18ID:???なるほど。こんなやり方があるとは思いませんでした。特に、610 はビックリです。
自分的には、610 の方が使いやすそうです。
(用意したテキストファイルを読み込んで、その中にある変数をパースしたいので、
後者じゃないと目的を達さない気がしています。)
>>612
echo を使っても、私には実現不可能だったのでスルーしました。それ以上質問すると
更に怒りを買いそうだったので、黙っていたのですが、気に障ったのであれば申し訳ありません。
0620nobodyさん
2007/01/02(火) 19:07:12ID:???webprogの住民の恥晒しにならないようがんばってきたいと思います。
http://ex17.2ch.net/test/read.cgi/news4vip/1167732156/l50
0621621
2007/01/02(火) 19:21:52ID:???0622nobodyさん
2007/01/02(火) 19:38:07ID:P6xryFltその値をif文でチェックし、チェックし終わったらセッションに入れて、次のページにとばしてやる。
という方法が妥当でしょうか?ご教授お願いいたします。
0623nobodyさん
2007/01/02(火) 19:43:36ID:gs/abRLqそのページでチェックすればいいだけでは?
0624nobodyさん
2007/01/02(火) 20:30:36ID:???htmlに表示する前にしますよね?
たとえば
「echo $変数」を行う数行前にhtmlspecialcharsを使ってもいいのでしょうか?
それともechoで出力するときに「echo htmlspecialchars($変数)」とするべきでしょうか?
0625nobodyさん
2007/01/02(火) 20:33:40ID:???考えたソースを見せてみ?
0626624
2007/01/02(火) 20:42:22ID:???$a = htmlspecialchars($a);
echo $a;
こういう流れなんですが、いかがでしょうか?
0627nobodyさん
2007/01/02(火) 20:42:46ID:???見たいなアプリ、ご存知の方いたらソフト名を教えてください。
0628nobodyさん
2007/01/02(火) 20:54:39ID:???なんでそう思ったのか聞いてるのに・・・・
まぁ626と
echo htmlspecialchars("はじめてのPHP");
は等価
0629nobodyさん
2007/01/02(火) 20:58:05ID:???real 3m59.607s
user 0m49.463s
sys 0m51.619s
$ time md5sum.php dummy_4gb.bin
real 5m24.863s
user 1m54.487s
sys 1m0.032s
$ cat md5sum.php
<?php
print md5_file($argv[1]);
?>
0630624
2007/01/02(火) 20:59:40ID:???改ざんとかされたりしてセキュリティ的に危ないのかなと考えて不安だったんです。
おかげさまで一つ勉強になりました。ありがとうございます。
0631nobodyさん
2007/01/02(火) 21:14:26ID:gs/abRLq$aは上書きされてるんだから、$aをあとで使うかどうかじゃないの。
0632nobodyさん
2007/01/02(火) 21:30:25ID:???0633nobodyさん
2007/01/02(火) 21:39:01ID:???端的にしか書かないから分からないけど
XSSを知って原理は知らないけど変数に代入するといつの間にか内容が改ざんされるかもしれないって思ったんでしょ?
数行前でも100行前でも同時でも途中で処理入れない限り全く同じ。
0634nobodyさん
2007/01/02(火) 21:59:45ID:XpLMgPdp携帯には送信できないのな・・・
自宅鯖で携帯宛にメール送信したいんだがどうすればいいよ
0636nobodyさん
2007/01/02(火) 22:13:48ID:???0637nobodyさん
2007/01/02(火) 22:22:48ID:XpLMgPdp全ての携帯宛
0638nobodyさん
2007/01/02(火) 22:32:14ID:???それでは<title></title>のタグ内の文字を取得
する関数というのはないのでしょうか?
アクセス解析もどきを作ろうとした時、この部分でひっかかっています。
0639nobodyさん
2007/01/02(火) 22:38:28ID:???0640nobodyさん
2007/01/02(火) 22:40:33ID:???0642nobodyさん
2007/01/02(火) 22:52:35ID:???<script>document.write("<?php いろんな処理 ?>");</script>
という質問なんじゃないかと思ったりしてる。
0643nobodyさん
2007/01/02(火) 22:53:57ID:???<?php
mail('[email protected]', 'title', 'message');
?>
0645nobodyさん
2007/01/02(火) 23:00:55ID:???まだマイナーだったころはregいじってIEでググレるようにして・・・
あのころは貴重だった。
0647640
2007/01/02(火) 23:07:05ID:???セレクトメニューをjsでいじりたいのですが、XSS対策をしたいと思ってまして、
大手サイトはどうやっているのか疑問に思いながらいろいろ考えてみました。
>>640に書いた内容は>>642さんが代弁していただきましたとおりです。
jsと連携する場合のセレクトメニュー内のデータ改ざん防止には
どういった策が考えられますでしょうか?
http://pc10.2ch.net/test/read.cgi/hp/1167026480/280-281
0648nobodyさん
2007/01/02(火) 23:24:52ID:???たとえば都道府県なら1〜47以外のvalueが来たらエラーメッセージor捨てる。
チェックはサーバ側でやるんだからJavaScriptとかあまり関係ない気がするが。
0649nobodyさん
2007/01/02(火) 23:27:08ID:???何か参考になるサイトなどがあれば教えていただけませんか?
0650nobodyさん
2007/01/02(火) 23:48:55ID:???http://jp.php.net/image
0651649
2007/01/03(水) 00:18:53ID:???そこはある程度見ました
<?
//イ霖
$im1 = imagecreatefromgif("01.gif") or die("error!".__LINE__."\n"); //セ隍サ、
$im2 = imagecreatefromgif("02.gif") or die("error!".__LINE__."\n"); //ヌリキハ
//ヌリキハソァサリト
$trans = imagecolorallocate($im1, 255, 255, 255) or die("error!".__LINE__."\n");
imagecolortransparent($im1, $trans) or die("error!".__LINE__."\n");
//イ霖�ナ、ヘ、
imagecopymerge($im2, $im1, 0, 0, 0, 0, 200, 200, 100) or die("error!".__LINE__."\n");
header("Content-Type: image/gif");
imagegif($im1);
imagedestroy($im1);
imagedestroy($im2);
exit;
?>
としたのですが、透過されません。
透過はpngしかされないのでしょうか?
0652649
2007/01/03(水) 00:22:55ID:???0653nobodyさん
2007/01/03(水) 00:56:38ID:???0654nobodyさん
2007/01/03(水) 00:57:40ID:???0655649
2007/01/03(水) 01:00:41ID:???FreeType Version 2.1.9
です。
$trans = imagecolorallocate($im1, 255, 255, 255) or die("error!".__LINE__."\n");
を
$trans = imagecolorclosest($over, 255, 255, 255);
にすれば解決できました。
ぶっちゃけ理由はわかりません。
0656nobodyさん
2007/01/03(水) 01:05:36ID:???変数に何入れてんのか教えてくれれば理由がわかるかもしれないが・・
0657nobodyさん
2007/01/03(水) 01:38:37ID:???すみません、とりあえずソース出します
<?
$m1 = imagecreatefromgif("01.gif");
$m2 = imagecreatefromgif("02.gif");
$trans = imagecolorclosest($m1, 255, 255, 255);
imagecolortransparent($m1, $trans);
imagecopymerge($m2, $m1, 0, 0, 0, 0, 200, 200, 100);
header("Content-Type: image/gif");
imagegif($m2);
imagedestroy($m1);
imagedestroy($m2);
exit;
?>
0658nobodyさん
2007/01/03(水) 01:49:51ID:???0660nobodyさん
2007/01/03(水) 02:43:13ID:???0662nobodyさん
2007/01/03(水) 03:16:28ID:???2ゲットの練習板かよwww
0663nobodyさん
2007/01/03(水) 03:24:21ID:???0664nobodyさん
2007/01/03(水) 05:28:24ID:ILx6vQ3+form.php
<FORM action = "form.php" method="POST" enctype="multipart/formdata">
<input type="file" name="upfile">
</FORM>
でファイルをアップし、それを”up”というフォルダに格納するためには、どうすればいいのでしょうか
0665nobodyさん
2007/01/03(水) 05:42:14ID:???655-658の流れはどうなったの?
>>664
http://www.php.net/manual/ja/
V. 機能 38章ファイルアップロードの処理
ってのがある
0668nobodyさん
2007/01/03(水) 09:27:49ID:kYTtXkBfとりあえず1つのファイル(実際にはDBを使っているので1テーブル)で、
リンク元、リファラー、アクセス・日、アクセス・月、アクセス日時
を取得してアクセス毎に1行ずつデータが追加されるようにしています。
しかし、これだとただログが膨大になってくるし、表示時にも使い勝手が悪いので
「アクセス・日」と「アクセス・月」はログファイルを分けました。
それで迷っている点なのですが、やはり各項目(リファラー毎とかリンク元毎とか)
分けてログに記録する方がシステムの汎用性として使いやすいのでしょうか?
それとも1つのファイル上で記録する方が処理も速く、無駄が省けるのでしょうか?
0669nobodyさん
2007/01/03(水) 11:30:51ID:???全部まとめて記録していいよ。
ログが膨大になっていくのは当たり前なので、
ログが溜まったら分離すればいい。(目安は3000件ぐらい)
それで見たいログを選べるようにすればおk
0670nobodyさん
2007/01/03(水) 11:53:33ID:???そうですね。表現的に分けた方がやりやすい時は分けます。
あと、ログについても件数によって分けるようにします。
DB使う場合はちょっと難しいですが、勉強します。
アドバイスありがとうございました。
0671nobodyさん
2007/01/03(水) 14:09:43ID:riX414lp例えば、ある関数を実行した後、指定時間たった後に
関数を実行するという事は可能なんですか?
初心者ですが宜しくお願いします。
0672nobodyさん
2007/01/03(水) 14:31:32ID:???もっと具体的(関数の内容やら指定時間やら)じゃないと回答のピントがズレそうだけど、
sleep()使ったり、プログラム実行関数を使ってバックグラウンドで実行したり。
権限が許せばcronとか。
WebProgは如何に処理を手早く済ましてデータを送り返して次のリクエストを待ち受けるか、
ってのが根底にあるから、長時間(といっても秒単位)一つのプログラムが走りつづける状況ってあんまり無いよ。
PHPから切り離して外部に処理を任せるのが普通じゃないかな。
0673nobodyさん
2007/01/03(水) 15:54:51ID:???現在の状態は以下のとおりです。
・php表示時
Fatal error: Call to undefined function curl_init() in 〜
・php.ini
extension_dir = "C:\php\ext"
・C:\php
libeay32.dll、ssleay32.dllがあります。
extにはphp_curl.dllがあります。
・phpinfo()で確認した結果
Configure Commandに--with-curl[=DIR]がありません。
・print_r(get_loaded_extensions())で確認した結果
curlらしきものはありません。
libcurlの設定の問題なのかもしれませんが、
いまいちよくわかりません。
初歩的な質問ですみませんが、教えて頂きたいです。
よろしくお願いします。
0674nobodyさん
2007/01/03(水) 15:56:11ID:???DBの1つのテーブルに30万件の行とか大丈夫かな?
一気に表示させるわけじゃないし、ごく一部(重数行)を検索するだけ。
0675nobodyさん
2007/01/03(水) 15:56:25ID:t8t0mqjnapache2.0.59です。
ご教授おねがいします。
0677nobodyさん
2007/01/03(水) 15:59:00ID:???Apache再起動した?
PHP.iniの
;extension=php_curl.dll
このセミコロンを下のように外した?
extension=php_curl.dll
>>675
どのようにして動かないか言ってみろ
じゃないとアドバイスできない
0679nobodyさん
2007/01/03(水) 16:00:12ID:???意味がわかんない。プロトコルとサーバサイド関係ないでしょ。
httpをhttpsにしたとたんに動かなくなったとかなら逆に尊敬する。
0680nobodyさん
2007/01/03(水) 16:03:01ID:???2chの全スレからこのスレを探し出すのはたいへんだろう?
「ネット関係」の「WebProg」っていう目次があるからこのスレにたどりつける。
INDEXってのはそういうこと。
具体的にはCREATE INDEXでググってくれ。
0681nobodyさん
2007/01/03(水) 16:03:03ID:???Apache再起動しました。セミコロンも外してあります。
Eclipse3.2を使っていますが、curl関数にカーソルを当てたときに、
関数仕様?のようなものは表示されます。
実際、phpinfo()やprint_r(get_loaded_extensions())では表示されないので
読み込まれていないようにも思えますが…。
0683nobodyさん
2007/01/03(水) 16:04:36ID:t8t0mqjn0684nobodyさん
2007/01/03(水) 16:06:15ID:???Apacheでたまに再起動でちゃんと再起動されない時あるからなぁ・・・
そのときはサービス終了させて、再度立ち上げたけど(過去に苦い経験)
phpinfo()で読み込まれていないってことは、パスとかその辺が臭いな
バージョンとか教えてくれたら答えてくれる神いるかもしれんな
0686nobodyさん
2007/01/03(水) 16:08:59ID:t8t0mqjnどなたかご教授おねがいします。
Web ページへのナビゲーションは取り消されました
対処方法:
ページを最新の情報に更新する。
0687nobodyさん
2007/01/03(水) 16:11:27ID:???headerとかでリダイレクトするURLをhttpでハードコーディングとかしてんのか?
プロトコルに依存したコード書いちゃダメだよ。
さすがにsslをインストールしてないとかhttpしか起動してないとかは無しな。
0688673
2007/01/03(水) 16:15:16ID:???バージョンは次のとおりです。(OSはWinXPです)
Apache 2.0.59
PHP 5.2.0
環境変数は、Pathに"C:\php"を追加したのみです。
どなたか気づいた点がありましたら、よろしくお願いします。
0689nobodyさん
2007/01/03(水) 16:17:01ID:???0690nobodyさん
2007/01/03(水) 16:17:19ID:t8t0mqjnsslはインストールした記憶がありませんが、apacheをインストールしたなら大丈夫だよと
友達に言われたのでたぶんはいってます。
ちなみに<a href="https://localhost/">はじめてのリンク</a>で飛べませんでした。
<a href="http://localhost/">なら飛べます。
大変恐縮ですがご教授お願いします。
0691nobodyさん
2007/01/03(水) 16:21:31ID:???設定しているphp.iniと実際に使われているphp.iniが違うんじゃないかな。
>>690
大丈夫じゃないので、その友達を問い詰めるかググル先生に聞く。
適当に「apache ssl インストール」ぐらいがキーワードかと。
0692673
2007/01/03(水) 16:22:07ID:???"\"を"/"に変更しても特に変わりませんでした。
また、他のextensionについては、;(セミコロン)を外すだけで
読み込まれるのを確認しました。
0693nobodyさん
2007/01/03(水) 16:29:35ID:???0694認定回答者
2007/01/03(水) 16:40:42ID:???0695nobodyさん
2007/01/03(水) 17:17:26ID:???foreach($result as $value){
print_r(mysql_fetch_assoc($result));
}
って無理だっけ?
$resultには結果データが入ってます。
0696nobodyさん
2007/01/03(水) 17:23:27ID:???$resultがmysql_queryの返りなら
while ($row = mysql_fetch_assoc($result)) {
print_r($row);
}
0698nobodyさん
2007/01/03(水) 18:04:05ID:???0699nobodyさん
2007/01/03(水) 18:06:39ID:???分岐できるんでしょうか。
0702nobodyさん
2007/01/03(水) 18:22:34ID:???# 日本語かも
} else {
# 英語のみかも
}
0703nobodyさん
2007/01/03(水) 21:30:30ID:???よーく見よう。
foreach($result as $value){
print_r(mysql_fetch_assoc($result));
}
0704nobodyさん
2007/01/03(水) 23:13:39ID:???0705nobodyさん
2007/01/03(水) 23:22:09ID:hZ6vl50dどうせつかうなら新しいバージョンが良いと思うんだけど、英語に困らなければ
Zend Studio5.5をUSの全土から購入しても良いものかな
日本語文字コード処理とかで面倒でなければいいのだけど。
0706nobodyさん
2007/01/03(水) 23:24:42ID:???0707nobodyさん
2007/01/03(水) 23:27:21ID:t8t0mqjn教本みても(9<$a)など判断材料がふたつしか使われてないので使って良いのかわかりません。
どなたかアドバイスお願いいたします。
0708nobodyさん
2007/01/03(水) 23:32:14ID:???0709nobodyさん
2007/01/03(水) 23:46:29ID:t8t0mqjn0711nobodyさん
2007/01/04(木) 00:03:47ID:???$test['aka'] = "あか";
$test['midori'] = "みどり";
$test['kiiro']="きいろ";
foreach ($test as $v) {
$v = htmlspecialchars($v);
}
とした場合、
サニタイズした値を、$testにキーを替えずに格納するにはどうしたらよろしいのでしょうか?
0712nobodyさん
2007/01/04(木) 00:12:58ID:???0713nobodyさん
2007/01/04(木) 00:13:12ID:???$test[$k] = htmlspecialchars($v);
}
とか
$test = array_map('htmlspecialchars', $test);
0714nobodyさん
2007/01/04(木) 00:15:53ID:???0715711
2007/01/04(木) 01:05:19ID:???すべて試してみました。
無事どのやりかたでも解決の道につながりました。
ありがとうございます。
0716nobodyさん
2007/01/04(木) 01:59:03ID:???素直に
if( 9 < $a && $a < 21 )
にしたほうがいい。
でないと>>710がいうようなバグの温床になるぞ
0717nobodyさん
2007/01/04(木) 06:17:27ID:???0718nobodyさん
2007/01/04(木) 07:36:38ID:???0719nobodyさん
2007/01/04(木) 07:47:14ID:???まぁ興味心からサイト見せてもらいたいところ
0720nobodyさん
2007/01/04(木) 07:59:53ID:???愛知県,名古屋市,中区
見たいに、都道府県別・市区町村別など分けて記録するようにしているのですが
最近この方法でいいのかどうか悩む時があります。
と言うのもあまり,で分けていくと住所としてわかりにくいので
例えば住所録を作るなら、「名前,愛知県 名古屋市 中区,000-0000-0000」
見たいな記録の仕方の方が良いのかな?とも思います。
上記はログファイルに記録する方法で説明しましたが、DBを使う場合など
フィールドの数が増えすぎるのを気にしています。皆さんの方法を教えて下さい。
0721717
2007/01/04(木) 08:16:03ID:???0722nobodyさん
2007/01/04(木) 09:10:32ID:???・誰がログを見て分かりにくいの?
・前の形式だと何が都合悪くて、その形式だと何が都合良いの?
・フィールドが増えすぎると嫌なのは何故?
0723nobodyさん
2007/01/04(木) 12:04:19ID:???住所を細かく分けることに意味があるの
俺なら住所はそのまま1個のデータにする。
検索が必要なら郵便番号とか自治体コードをつけてそれで検索するようにする
0725nobodyさん
2007/01/04(木) 13:43:29ID:LCXiivMy画像を鯖にうpする方法は、携帯でファイルを添付して、
サーバーに送るっていうのは分かるんですが
PHPでそれらしきスクリプトを見た事がないんです。Perlならあるんですが
どうすれば良いんでしょうか?
0726nobodyさん
2007/01/04(木) 14:17:30ID:???0727nobodyさん
2007/01/04(木) 15:21:57ID:???いや、ケータイはPOSTでアップロードするんじゃなくて
メールに画像ファイルを添付して特定アドレスに送信で
「アップロード」するのが普通。
PEARのクラス使えば楽に作れるよ。
0728nobodyさん
2007/01/04(木) 15:23:16ID:9Z/Os6JC例えばここの>>39のURL(http://pc10.2ch.net/test/read.cgi/php/1166676139/)を入力すると、
http://pc10.2ch.net/test/read.cgi/php/1166676139/39 2006/12/21 16:58:28 ID:/jd0802W
と、2chで規制報告(http://qb5.2ch.net/sec2chd/ )する書式で出力するようにしたいのですが、
どのようにすればできるでしょうか?
0729nobodyさん
2007/01/04(木) 15:23:57ID:???× 例えばここの>>39のURL(http://pc10.2ch.net/test/read.cgi/php/1166676139/)を入力すると、
○ 例えばここの>>39のURL(http://pc10.2ch.net/test/read.cgi/php/1166676139/39)を入力すると、
0730nobodyさん
2007/01/04(木) 15:35:19ID:???0731nobodyさん
2007/01/04(木) 15:49:30ID:LCXiivMyなんていうクラスなんすか?
0732nobodyさん
2007/01/04(木) 16:13:44ID:???dat取得して、指定番号のログ見ればいいじゃないか。
まぁhttp://(略)/39からHTML取得して、正規表現で必要なのを取り出しても良いかと
>>731
POP3でメール拾ってくる(PEAR使うと楽)か、.sendmail .qmailとかが使える環境ならそれ利用してメールを取得。
取得したメールをデコード(PEAR(ry)して添付ファイルを取得。
検索汁。サンプルも大量に転がってるからそれ参考にするように
0733nobodyさん
2007/01/04(木) 16:37:06ID:77+OJBx3現在のコード
for($i=0; $i<50; $i++){
list($a1,$a2,$a3,$a4,$a5,$a6,$a7,$a8,$a9,$a10,$a11,$a12,$a13,$a14,$a15)=explode(",",$list[$i]);
〜ここに処理〜
}
上記の用なコードで、list()内の
$a1,$a2,$a3,$a4,$a5,$a6,$a7,$a8,$a9,$a10,$a11,$a12,$a13,$a14,$a15を
別で定義する事はできないのでしょうか??
例えば
$explode=$a1,$a2,$a3,$a4,$a5,$a6,$a7,$a8,$a9,$a10,$a11,$a12,$a13,$a14,$a15;
for($i=0; $i<50; $i++){
list($explode)=explode(",",$list[$i]);
みたいな感じで、、、
どなたかご伝授お願い致します。
0734nobodyさん
2007/01/04(木) 16:53:35ID:???0735nobodyさん
2007/01/04(木) 17:00:34ID:???explodeされる内容が必ず15個に分割できるような内容なのかとか
チェックはしないの?
素直に配列で受けた方がいいと思うけどね。
$a1と書くのも配列の添え字で指定するのも変わらんと思うけど。
0736nobodyさん
2007/01/04(木) 17:15:51ID:???みたいに置換部で関数に $n を渡すことはできないんでしょうか?
0737nobodyさん
2007/01/04(木) 17:32:03ID:???実際に$a1〜$a15みたいな連番なら配列インデックスの0〜14と全くかわらないから
恐らく名前をわかりやすくしたいんだろ。
分割した値を受け取って名前をわかりやすくしたいならこうやる。
define('id',0);
define('name',1);
define('mail',2);
$a = explode(",",$data);
echo $a[id];
echo $a[name];
echo $a[mail];
ちなみにPHPは配列の中に配列を入れる2次元配列が扱える。
ファイルから一行ずつ取り出して、$i++させてexplodeしたのを
line[$i][id]みたいにも出来る。
0738nobodyさん
2007/01/04(木) 17:52:32ID:???\nの置き換えは出来る。
strlen($1)って何?$1って。
iと1ってすげー離れてて打ち間違えるはず無いんだけど。
変数で頭に数字とか無理だし、基礎の基礎から勉強しなおさないとダメ。
0740nobodyさん
2007/01/04(木) 18:18:52ID:zO0Pn/NQなければどうすればよいのか教えてください
0741nobodyさん
2007/01/04(木) 18:52:46ID:???元の配列を比較をして、被ってる奴を取り出せそう。
0743nobodyさん
2007/01/04(木) 19:39:51ID:vYwloFhp新しいものにするのがセキュリティとして安全が高まるのでしょうか?
0746nobodyさん
2007/01/04(木) 20:05:02ID:vQ5HUYnYセキュリティ上、エラー表示をすべてOFFにしているのですが、
以下のスクリプトだとエラー表示がOFFになりません。
----test.php----
@require('../test.inc.php');
以下略
----------------
----test.inc.php----
error_reporting(0);
--------------------
test.phpのrequireの前の@を消すとエラー表示がOFFになるのですが、
万が一requireに失敗したときにエラーが表示されてしまいます。
test.phpの先頭にerror_reporting(0);を書けばいい話なのですが、
サイト全体でphpファイルがいくつもあり、
サイト全体でエラーが出ていないかチェックしようと思うと、
すべてのphpのerror_reporting(0)をコメントアウトしなければなりません。
そういった手間を省くためにtest.inc.phpに記述しているのですが、
スマートに解決する方法はないのでしょうか?
0747nobodyさん
2007/01/04(木) 20:14:51ID:???0748nobodyさん
2007/01/04(木) 20:20:41ID:???・一番最初に半角英数が入力されている、
・または
・タブと空白と改行が混じっている
以上の条件で自分なりにしらべて書いてみたのですがエラーになりました。
どなたかご教授お願いいたします
preg_match("a-zA-Z0-9|\t\n\r\f",$a)
0749748
2007/01/04(木) 20:22:42ID:???preg_match("^a-zA-Z0-9|\t\n\r\f",$a)
0750nobodyさん
2007/01/04(木) 20:34:16ID:???0753nobodyさん
2007/01/04(木) 20:50:19ID:LL+BmzpWhimituno.txtからデータを拾って特定の部分だけ
表示させているのですが
直接http://example.com/himituno.txtと
打たれると中身が全て見られてしまいます。
http://example.com/himituno.txtを
直接見れなくするにはどうすればよいでしょうか?
スレ違いかもしれませんが宜しくお願い致します。
0754nobodyさん
2007/01/04(木) 20:54:48ID:???0756nobodyさん
2007/01/04(木) 20:58:55ID:???自分は住所を項目として登録する時、登録時のフォームは
都道府県[ ]//[]はテキストボックス
市区町村[ ]
その他[ ]
と言う風に3つのテキストボックスにして、保存時は「都道府県,市区町村,その他」
という風にしています。ですが、>>723さんの言うには「細かく分ける必要はない」
とのことなんですが、それなら修正時に困ると言うことは無いのでしょうか?
誕生日なら年とか日を元にlistで配列に代入出来ますが、
住所だと難しいと思うので、分けて保存するようにしています。
0759nobodyさん
2007/01/04(木) 21:05:46ID:???例えば会員制のサイトだと、住所を細かく入力して後で修正しますよね?
そういう作りの時に、自分は細かく分けるようにしているのですが、
それだとカンマが増えてログが見づらいなと思うようになってきたんです。
住所を複数登録したい場合も増えるし。
とはいえ、分けないで1つにしても修正・編集時に適応させる方法が
わからなくて、質問した次第です。
0760nobodyさん
2007/01/04(木) 21:11:54ID:???0761nobodyさん
2007/01/04(木) 21:13:14ID:???それとも、会員の情報=ログ?
0762nobodyさん
2007/01/04(木) 21:15:35ID:???自分が間違ってたらすみませんが、、会員サイトとかアドレス帳とか
ログを保存する形式のシステムって
登録フォーム→ログ保存(datファイルやDBに書き込み)
編集→ログ読込→編集フォームに反映
っていう流れでは無いのでしょうか?別物だという認識はなかったのですが・・・
0763nobodyさん
2007/01/04(木) 21:17:19ID:???喧嘩売るとかそれ以前の問題。
赤っ恥かいてください。
http://au3.php.net/preg_replace
この中を $1 で検索してみなよ。
0764nobodyさん
2007/01/04(木) 21:20:54ID:???データのことをいってるなら、処理をシンプルにできる方がいいんじゃないの?
>>722 をじっくり考えてみ
0765nobodyさん
2007/01/04(木) 21:24:28ID:???0766nobodyさん
2007/01/04(木) 21:28:40ID:???という正規表現で
abc000 や abc010 などには対応可能ですが、
abc000や abc000などの
全角バージョンにも対応させるためにはどうすればよいでしょうか?
強制的に半角に変えてから正規表現チェック、という方法を
思いつきましたがもっとストレートな方法などはあるでしょうか?
0767nobodyさん
2007/01/04(木) 21:30:00ID:???これまでのレスで>>722の理由は書いてるはずなんですが、、、
とりあえず現状の方法でやってみます。ありがとうございました。
0768nobodyさん
2007/01/04(木) 21:46:44ID:bHMCSjbZpreg_match("^[a-zA-Z0-9\t\n\r\f]",$a)
って[ ]を使えば?(あと|は取り除いたけど)
0772nobodyさん
2007/01/04(木) 22:10:10ID:1paIAynv修正作業としては一列で読み込み&保存するだけの事だから
別にログが見づらくてもフォームで修正や管理するのであれば
問題ないのでは・・
0773736
2007/01/04(木) 22:13:41ID:???0774738
2007/01/04(木) 23:10:02ID:???0775nobodyさん
2007/01/04(木) 23:15:20ID:???0777738
2007/01/04(木) 23:37:17ID:???0778ポンタ
2007/01/04(木) 23:38:15ID:???0779nobodyさん
2007/01/05(金) 00:21:30ID:???0780nobodyさん
2007/01/05(金) 00:35:35ID:bC4ZcHyY見つかったらAの処理、
見つからなかったらBの処理
を行いたいのですが、どなたかお願いします。
試したけどうまくいかなかったソースです↓
$array = array("a","b","c");
if (array_key_exists("e",$array)) {
echo"存在する";
}else{
echo "存在しない";
}
0781nobodyさん
2007/01/05(金) 00:41:20ID:???0782780
2007/01/05(金) 01:03:45ID:???in_arrayで無事に解決しました。
0783nobodyさん
2007/01/05(金) 06:19:47ID:MZtN5g8DレンタルサーバーのためCRONはいじれません。。
ご教示お願いいたしますm(_ _)m
0784nobodyさん
2007/01/05(金) 06:32:33ID:???レン鯖板で該当鯖のスレを探してそこで訊いたらどうですか。
メールが届いたときに自動返信する仕組み自体はいろいろあるので。
0785nobodyさん
2007/01/05(金) 07:06:17ID:c7t/kCs2ピザ???テラワロスwwwww
オメーみたいなやつは食欲抑制剤でも飲めば?輸入品のさ。
日本じゃ全然効かねー詐欺レックスしか処方してくんねーだろ
http://urara.cart.fc2.com
他にもこのサイト武器や独立支援とか盗撮機とか美容とか色々欧米のもの
輸入してるみたいでレアモノが多いか重宝してるが。まぁどーでもいいが。
>>16
お前テラヤバスwwwwwwwwww孤独氏けてーい
0786nobodyさん
2007/01/05(金) 08:37:25ID:UZOqG6YA0788nobodyさん
2007/01/05(金) 10:03:32ID:???0789nobodyさん
2007/01/05(金) 10:22:06ID:wLYNe8olチェックボックスの機能を実現できずに困っています。
PEAR Authにこの機能があるのであれば使いたいのですが、探しても情報が無いのです。
お教えいただけたらと思います。よろしくおねがいします。
0790nobodyさん
2007/01/05(金) 10:25:34ID:xRwT+D17ヒントにはなるかも。
0791nobodyさん
2007/01/05(金) 10:31:26ID:xAOCVwN4ttp://xworks.org/
>//設置例
>//public_html / (トップページ http://xworks.org/)
>// |
>// +-- arc / xfac.php [604] //このスクリプト。
>// | | log.dat [666] //ログファイル。
>// | | recent.dat [666] //最近のログファイル。
>// | | .htaccess [604] //アクセス制御ファイル。
>// | | template.txt [604] //出力 HTML テンプレート。
>// | |
>// | | download.zip [604] //ダウンロード対象のファイル。
>// | | ------------ [---] //....................................
>// | |
>// | +-- sub / download.zip [604] //サブディレクトリ以下のファイルにも有効。
>// | | ------------ [---] //....................................
>// |
>// +-- img / graph.gif [604] //グラフに使用する画像。
>//設置ができたら http://xworks.org/arc/download.zip のようにアクセスします。
>//正しく設置できていればダウンロード確認ページが表示され、さらにそのページ内のリンクを
>//クリックすればファイルがダウンロードできます。
とりあえず.htaccess以外を設置してパーミッションも上記の通りに設定したんですが、
いざダウンロード対象のdownload.zipにアクセスしてもダウンロード確認ページが表示されずにファイルがそのまま落とせてしまいます。
無知でお恥ずかしいですがアドバイスいただけないでしょうか
0792nobodyさん
2007/01/05(金) 10:39:00ID:???OSはWindowsでPHPバージョン4.4.2です
0793nobodyさん
2007/01/05(金) 11:04:49ID:aYFge0L50794nobodyさん
2007/01/05(金) 11:23:36ID:xRwT+D17うーん すれ違いじゃないかな
きちんと動作環境と設置したスクリプトが動いてるか
まずチェックいるんじゃないかな。
0795nobodyさん
2007/01/05(金) 11:25:48ID:???0796nobodyさん
2007/01/05(金) 12:12:08ID:OoQZfzW80797796
2007/01/05(金) 12:19:01ID:???0799nobodyさん
2007/01/05(金) 12:28:45ID:xAOCVwN4一応動作環境は満たしてました
PHP(Ver 4.1.0 以降)
mod_rewrite(.htaccess)
以上を利用できるサーバー
.htaccessの中身はデフォルトの状態でこうなっています
RewriteEngine on
RewriteRule ^(.*)$ index.php [L,QSA]
なんかうまくいかない(.htaccessを設置したままでdownload.zipにアクセスすると403になってしまう)ので外してやってました。
0800nobodyさん
2007/01/05(金) 12:30:31ID:???>設置したスクリプトが動いてるか
以前試したふたばのスクリプトは設置しただけで正常に動いてくれました
0801nobodyさん
2007/01/05(金) 12:33:19ID:???消せよ
0802nobodyさん
2007/01/05(金) 14:02:28ID:???エスケープシーケンス漏れのような形でたまに文字化けするのですが、
修正方法はないでしょうか。
エスケープシーケンス、文字化け、あたりで
ぐぐったんですが、わかりませんですた orz
0803783
2007/01/05(金) 14:12:19ID:85tKInQQメールが送られてくるたびにそのアドレスにログインURLを付属して返信したいのですが(メールが来る度、動作させたい)
↓
メールが送られてきたら送信元のIP、USER_AGENTをあらかじめ取得しておいてSESSION開始、
ここで登録の続きをしてください。
http://example.com/?sessid=SESSION_ID
としたいのです。
調べてはみたのですがAutoResponderしかわかりませんでした。。
ご教示お願いいたしますm(_ _)m
0804nobodyさん
2007/01/05(金) 14:19:21ID:UXQGeZPlプログラムを作成したのですが作成したディレクトリにFFFTPでデータを
アップしようとするとデータをアップすることが出来ません。
似た症状とおもわれる>>371さんのところに
Fedoraのセキュリティの設定とありますが
もしセキュリティの設定が原因なのでしたら
どの辺りを修正すればよろしいのでしょうか?
スレ違いでしたらすみません。
0805nobodyさん
2007/01/05(金) 14:52:56ID:???パーミッション777のディレクトリはできてるんだよね?
なんかPHPの問題じゃなさそうだなぁ。
知らんけど、SELinuxとか調べてみたら?
0807nobodyさん
2007/01/05(金) 14:58:53ID:aYFge0L50808804
2007/01/05(金) 15:00:03ID:UXQGeZPlディレクトリは作成できるのですが
0777で作ったパーミッションのディレクトリが
なぜか755になってしまいます。
>>806
chownも試してみたのですが
駄目でした。
0810804
2007/01/05(金) 15:05:50ID:UXQGeZPl0811nobodyさん
2007/01/05(金) 15:10:26ID:???どういうシステムを組んでるのか知らないけど、
MTA MDAあたりでググってメールの仕組みを理解してから改めてPHPの質問を。
0813nobodyさん
2007/01/05(金) 15:21:53ID:???0816804
2007/01/05(金) 16:03:51ID:UXQGeZPlumaskを用いて777のパーミッションの
フォルダの作成に成功しましたが
パーミッション関係を変更する
PHPでumaskを使用しないで
0777ディレクトリの作成をしている
サンプルソースとかがありましたので
これでいいのかなと思っていたりします。
>>814
SELinux=disabledにしようと思っていたら
すでにSELinux=disabledでした
0818804
2007/01/05(金) 17:02:47ID:UXQGeZPlパーミッション755の方は
553 Could not create file.
と出て失敗しますが
パーミッション777の方は
成功しました。
ちなみに755の方はFFFTPから削除できず
テラタ−ム使ってrmコマンドで消しました。
0819nobodyさん
2007/01/05(金) 17:09:00ID:???0820nobodyさん
2007/01/05(金) 17:37:07ID:???バッチで動かすとき以外問題ないと思うけど。
バッチのときも755とか775とかにするだけだし。
0821nobodyさん
2007/01/05(金) 18:36:25ID:???ftpはそのグループでもないユーザで実行してるから、777じゃないとダメなんじゃないの?
あとは、linux版だね。
0822nobodyさん
2007/01/05(金) 18:47:28ID:???いまからなら4.0のほうがいいですか?
0823789
2007/01/05(金) 18:49:50ID:wLYNe8olその後PEAR Authにて自動的にログインの機能はなさそうなので、
どうにかしたいのですが、お知恵を拝借できないでしょうか?
1.ログイン時に発行されたセッションIDとランダムな文字列をクッキーに保存。
DBにセッションIDとランダムな文字列をinsert。
2.ブラウザを閉じる
3.再びアクセスしたときに、ランダムな文字列をキーとしてセッションIDを取得
こんな事をやろうとしているのですが、そもそもログイン状態とは何をもって
言っているのか分からなくなってしまっています。
よろしくおねがいします。
0825nobodyさん
2007/01/05(金) 19:05:34ID:???このサイトのPHPでできたメッセンジャーってのがあるんですが
ただのチャットにしかみえません。
チャットをメッセンジャーと偽ってお金とってるようにしか見栄ナインですけど
このスレの専門家方からみてどうなんでしょうか?
0826nobodyさん
2007/01/05(金) 19:26:48ID:???安定してる4.0をお勧めする
>>823
なんかめんどくさいことやってるな。
クッキーだけでいいんじゃねえの
>>825
いいんじゃない?(どうでも)
0827nobodyさん
2007/01/05(金) 19:29:14ID:???あなたが何をもってログイン状態としたいかによると思います
>>825
メッセンジャーってナニ?
MSNメッセンジャーみたいなやつ?
あれって結局チャットじゃん
0829nobodyさん
2007/01/05(金) 19:30:41ID:???0830nobodyさん
2007/01/05(金) 20:15:49ID:KZl21FT91.まずは多重投稿判定をする
2.拡張子判定
3.同名ファイル判定
4.全部チェックして大丈夫ならばUPLOAD
という処理なのですが、
1と2を同時に満たしてしまった場合、
if($host == $lip && $last_time*60 > ($now-$ltime)){ //投稿間隔
require("head.txt"); //<html>~<body>までのタグファイル
echo("投稿間隔が短すぎます!最低5分開けてください。");
require("bottom.txt");//<body>~</html>までのタグファイル
}
if(!in_array($ext, $kaku)) { //拡張子判定
require("head.txt");//<html>~<body>までのタグファイル
echo"PNGorMNGorCPGファイルじゃないです";
require("bottom.txt");//</body>~</html>までのタグファイル
となり、html二つのファイルを出力してしまいます。このような場合はどのようにして一つにまとめればいいですか?
説明不足ですいません・・・
0831nobodyさん
2007/01/05(金) 20:17:16ID:???0832nobodyさん
2007/01/05(金) 20:29:41ID:???}
if(!in_array($ext, $kaku)) { //拡張子判定
↓
}
else if(!in_array($ext, $kaku)) { //拡張子判定
0833823(789)
2007/01/05(金) 21:24:27ID:wLYNe8olif (isset($_COOKIE["visited"])){
$count = $_COOKIE["visited"] + 1;
}else{
$count = 1;
}
$flag = setcookie("visited", $count);
print('<p>あなたの人生で'.$count.'回目の閲覧です</p>');
試しにこんなソースを書いたんですが、新しいブラウザで開くと
カウンタが戻ってしまいます・・・。
助けてください・・。
0834nobodyさん
2007/01/05(金) 21:30:25ID:???http://jp2.php.net/manual/ja/function.setcookie.php
> expire
(略)
> もしも設定しない場合、クッキーはセッションの最後 (つまりブラウザを閉じるとき)が有効期限となります。
0835nobodyさん
2007/01/05(金) 21:36:44ID:???結局はマニュアル読んでないだけか
0837nobodyさん
2007/01/05(金) 22:12:48ID:???アップローダーなら、3の部分は鯖側でmd5なりでリネームしたほうがいい。
あと拡張子の判定だけど、純粋に拡張子だけチェックするだけじゃ、
実は中身はzipとかexeとかの場合もあるわけで、その辺も考えた設計にしないと。
0838nobodyさん
2007/01/05(金) 22:29:08ID:???0839nobodyさん
2007/01/05(金) 22:53:43ID:/7wZXGPA0841nobodyさん
2007/01/06(土) 11:58:18ID:ytrpiRW2現在は、include("../setting.php");のようにしているのですが、
サイト内にincludeやrequireを多用しているので、たまにエラーになった時
どこを指定すれば表示されるのか悩む時があります。
0843nobodyさん
2007/01/06(土) 13:36:00ID:IU0kz2UKeval
とか。
0845nobodyさん
2007/01/06(土) 22:34:47ID:???0846841
2007/01/07(日) 02:06:47ID:???フルパス指定ってどうするのでしょうか?ドキュメントルートを
取得する方法でしょうか?
>>845
絶対パスって、require("http://localhost/setting.php")
みたいな感じですよね?自分の環境では無理でしたが、いけるのでしょうか?
0847nobodyさん
2007/01/07(日) 02:23:51ID:???絶対パス /home/username/www/hogehogeappli/setting.php
相対パス ./setting.php
Winなら
絶対パス C:\Program Files\Apache\htdocs\hogehogeappli\setting.php
相対パス .\setting.php
0848841
2007/01/07(日) 03:57:21ID:???ありがとうございます。ググったら分かりました。
以下のような感じで取得するんですね。
$path = realpath("setting.php");
require_once("$path");
ただ、思ったのですが、サイトに直接絶対パスを指定するならミスは出にくいでしょうが、
絶対パスは固定なのでサーバを移動した場合はすべて書き替える必要がありますよね?
そう言う場合、やっぱり別のファイル内に絶対パスへの記述を書く必要があるわけで、
相対パスで指定する場合とさほど変わらないのではないでしょうか?
0849nobodyさん
2007/01/07(日) 05:46:38ID:JUgRUpjpindex.html.varってなんですか?
0850nobodyさん
2007/01/07(日) 07:12:16ID:/n2+oTVO0851nobodyさん
2007/01/07(日) 11:40:42ID:MUdDhnAV良いライブラリありませんか?
PHPはXMLサポートが強いだろうと思ってたのに、
見つかるライブラリはパーサー系で、全然ライターが見つかりません!
0853nobodyさん
2007/01/07(日) 12:52:17ID:???0854nobodyさん
2007/01/07(日) 13:09:33ID:???0855nobodyさん
2007/01/07(日) 13:56:32ID:NUGiiTORを出力したいのですが、htmlタグを入れたとたんにプログラムが通らなくな
ります。(エラーも何も表示されません。)
phpファイル内でのhtmlタグの使い方が分かっていないので、少々
お聞きしてもよろしいでしょうか?
ファイルのパス:$arrValue[1] タイトル:$arrValue[2]
$common_word = array_interse($word_Unique,$arrValue);
$array_count = count($common_word);
if($array_count >= 6)
{
<html><head></head><body><a href="$arrValue[1]"
<u>$arrValue[2]</u></a></body></html>
}
0856nobodyさん
2007/01/07(日) 14:08:22ID:???特定のパスまでを定数で設定しておけばいい。
define("PATH","/home/hoge/util");
または、一つのフォルダに読み込むファイルをまとめるとか・・。
で、上のように定数で設定して。
require(PATH);
とか
require(PATH . "/db");
とか
とにかく定数をうまく使うと、サーバを変えても無問題
0857nobodyさん
2007/01/07(日) 14:13:01ID:???PEARであるはず
>>855
出力の基礎勉強した?
if($array_count >= 6)
{
<html><head></head><body><a href="$arrValue[1]"
<u>$arrValue[2]</u></a></body></html>
}
でどこで表示する命令書いてるの?
というかこれでエラーで無いのかな。
まず
print "基礎から勉強しろ";
echo "マニュアル嫁";
の意味が分かる?
0858nobodyさん
2007/01/07(日) 15:33:09ID:???0859855
2007/01/07(日) 16:19:47ID:WQemd8r2なるほど。意味が分かりました。
phpファイルの中でhtmlのタグを組み込んで使うということを
したことがなかったので、htmlと同じ要領で使っていました。。。
あと、エラーは
ini_set("display_errors","1");
error_reporting(E_ALL);
にしていますが、何も表示されませんでした。
0861nobodyさん
2007/01/07(日) 16:51:44ID:???<?php
if($array_count >= 6){ ?>
<html><head></head><body><a href="<?=$arrValue[1]?>">
<u><?=$arrValue[2]?></u></a></body></html>
<? } ?>
0863nobodyさん
2007/01/07(日) 19:59:43ID:???以下の処理で問題ありますでしょうか?
$new_level = int( ($experience / 10) + 1);
0864nobodyさん
2007/01/07(日) 20:00:32ID:3Mm5NOOOID入れるのわすれますた
0866nobodyさん
2007/01/07(日) 20:46:03ID:???0867nobodyさん
2007/01/07(日) 21:06:59ID:???if(($exp>=$今の経験値に10をたした変数){
echo"れべるあっぷですがなにか?";
}
0868nobodyさん
2007/01/07(日) 21:12:34ID:JUgRUpjp文字コードはなにで配布するべきでしょうか?
それとも何種類かの文字コードで保存したファイルを複数設置しておくべきでしょうか?
どなたかアドバイスおねがいいたします。
0869nobodyさん
2007/01/07(日) 21:13:40ID:???UTF-8 にして下さい。
改行コードは LF です。
メモ帳で見れない、という苦情に対しては TeraPad を使いなさい、とダウンロードページにでっかくかいときましょう。
0870nobodyさん
2007/01/07(日) 21:24:58ID:JUgRUpjpもしUTF-8で配布する理由を聞かれた場合、なんて説明したらいいのでしょうか?
ご伝授願います。
0871nobodyさん
2007/01/07(日) 21:29:55ID:???0872nobodyさん
2007/01/07(日) 21:33:51ID:???UTF-8を求めるような上級者は簡単に変換できるし。
0874nobodyさん
2007/01/07(日) 22:11:15ID:???0875869
2007/01/07(日) 22:32:01ID:???お好きなのをどうぞ。
・漢字と制御コードが重ならないから。
・日本語以外にも対応しているから。(世界中のほとんどの言語で使える。)
・Google が使っているから。
・時代の最先端だから。
・厨房ほいほいになるから。
>>872
Kent の CGI みたいに "表\示" なんてださいエスケープ処理をするわけですか?
迷惑なのでやめていただきたいです(><)
0876nobodyさん
2007/01/07(日) 22:42:58ID:???いつの時代のPHPだ?そんなのしなくても化けないでしょ。
それに、UTF-8に変換するのもEUCに変換するのも簡単だし。
0878nobodyさん
2007/01/07(日) 22:57:13ID:???0879nobodyさん
2007/01/07(日) 23:13:03ID:???(EUC-JP or UTF-8)とShift_JISは文字化け起こるから互換性ないよね。
0880nobodyさん
2007/01/07(日) 23:19:06ID:9nfE/S0Ksessionはどこに保存されて、いつまで有効なんですか?
0881nobodyさん
2007/01/07(日) 23:23:39ID:???php.iniに書いてあるっしょ。
Win系はC:\Windows\Temp
UNIX系は/tmp
がデフォルトだったような。
0883nobodyさん
2007/01/07(日) 23:35:37ID:???たとえばPHPのソースをEUC-JPで保存し、ブラウザへShift_JISで出力する場合は
onにするのはなぜでしょうか?
ttp://www.bnote.net/windows/windows/code.shtml
0884nobodyさん
2007/01/07(日) 23:43:23ID:???ありがとうございます。
経験値は、1ごとあがるのではなく、突然5など上がったり、下がったりもしますので、
色々むずかしゅうございます。
0885nobodyさん
2007/01/08(月) 01:37:57ID:???apache2.2.3にいれたんですけど、perlからだと動きますが
phpからだと動きません。
付属のadmin.phpもエラーで開きません。
どなたか同じ症状の方いませんか?
0886nobodyさん
2007/01/08(月) 01:59:25ID:???文字コードの変換を、出力ハンドラ(output_handler)に
設定したmb_output_handlerに任せて一括変換する(設定だから)。
別にハンドラに任せないで出力部分で逐一変換しても良いし、
コンテンツ毎で最初のところで出力バッファリングのOn/Offやハンドラの設定をしても良い。
0887nobodyさん
2007/01/08(月) 03:51:28ID:qSyZrtVb特にセッションを破棄しているコードを入れているわけではないです。
しかも、再現性がなくて1000回に1,2回程度発生します。
このような現象が発生する原因ってどのようなことが考えられますか?
PHP5で、OSはLinuxです。レンタルサーバー使用です。
宜しくお願いします。
0888nobodyさん
2007/01/08(月) 04:34:11ID:???ってことはモジュールのみってこと?
0889nobodyさん
2007/01/08(月) 04:36:15ID:???look -n -f サーバのIP -r セッションIDが記録されたファイル
でてきた結果をはれ。話はそれからだ。
0890nobodyさん
2007/01/08(月) 05:40:26ID:???look コマンドって英単語検索するやつじゃないの?
http://68user.blog27.fc2.com/blog-entry-36.html
0891nobodyさん
2007/01/08(月) 06:33:17ID:???レスありがとうございます。
それが、レンタルサーバー(xrea)で、コマンドが使える環境にないんです。
セッションファイルの書き込み処理が怪しいということでしょうか?
xrea側の問題か、自分の処理の問題か、
切り分けができないので、苦心しているところです。
0892nobodyさん
2007/01/08(月) 08:03:48ID:???0893nobodyさん
2007/01/08(月) 10:18:02ID:???という配列があったとします。これを空白のものを削除して
$array="aaa","bbb","ccc";
とするにはどうしたらいいのでしょうか?
正規表現で置き換えをしても上手くいきませんでした。
0894nobodyさん
2007/01/08(月) 10:46:30ID:???foreach($array as $line=>$value)if($value=="")unset($array[$line]);
0896nobodyさん
2007/01/08(月) 12:49:33ID:???ファイルのDL数を表示させたい場合は
DLログからそのファイルのIDを元に集計するのがいいのか
DLがある度にそのファイルのDL数カラムを+1するのがいいのか
どんな感じにしてますか?
0897nobodyさん
2007/01/08(月) 15:06:26ID:???お好きな方を。
DL数を表示させる度に集計するのと
実際にDLした時にカウント処理、表示するときは取り出すだけ。
どっちがいいかは自明な気がするが、
画面構成(ひとつのファイルのDL数?それともリスト表示)
なんかにもよるだろ。
0899nobodyさん
2007/01/08(月) 16:32:23ID:???それともテンプレート側で{$hoge{escape}とかするの?
0900nobodyさん
2007/01/08(月) 16:49:50ID:???0901nobodyさん
2007/01/08(月) 17:00:44ID:???0902nobodyさん
2007/01/08(月) 17:29:52ID:???0903nobodyさん
2007/01/08(月) 17:34:57ID:???0904nobodyさん
2007/01/08(月) 17:49:52ID:???if($page=="1"){
echo $a;
(a〜dまでの変数を表示)
echo $d;
}elseif($page=="2"){
(e〜hまでの変数を表示)
}
みたいな感じで、ifで分けてechoを書いて表示しているのですが、
もう少し効率化する方法はないでしょうか?上記だと単純ですが
ifとechoの数が増えすぎてしまいます。
0905nobodyさん
2007/01/08(月) 18:32:03ID:???$a,$b,$c,$d,
$e,$f,$g,$h,
$i,$j,$k,$l,
$m,$n,$o,$p,
$q,$r,$s,$t,
$u,$v,$x,$w,
$y,$z
);
$i=1;
foreach($hensuu as $v =>$k){
if($i <5){
echo $k;
echo "--";
}else{
echo "<br><br>";
echo $k;
echo "--";
$i=1;
}
$i++;
}
0906904
2007/01/08(月) 18:36:17ID:???ありがとうございます。1行目って変数になっていますが、
"a","b","c","d","e"みたいに表示させるんですよね?
(でないと、----と続きます)
foreachを使うんですね。勉強になりました。ありがとうございました。
0907nobodyさん
2007/01/08(月) 18:38:11ID:???0908nobodyさん
2007/01/08(月) 18:47:43ID:???0909nobodyさん
2007/01/08(月) 18:58:10ID:???0910nobodyさん
2007/01/08(月) 18:59:05ID:???0911nobodyさん
2007/01/08(月) 19:23:14ID:???>>905に書いてあるものをコピペしただけじゃ---しか表示されねえよw
$hensuuの中身ぐらいは自分で格納しろ
0912nobodyさん
2007/01/08(月) 20:25:03ID:???for($str='a',$count=1;strlen($str)<2;$str++,$count++){
print $count%4 ? $$str : $$str.'<br>';
}
0913nobodyさん
2007/01/08(月) 20:45:36ID:???この文字が表示されるなら安全!という文字はありますか?
例えば<b>a'b"</b>これがそのまま表示されたらOKみたいな
0914nobodyさん
2007/01/08(月) 21:03:55ID:52nsxxTD例えば、フィールド名を取得するにはmysql_field_nameで出来るのですが、
変数内の文字が含まれているフィールド名を取得すると言うことは
出来ませんでしょうか?
要は
$text="テスト";
$sql="select * from test_table where ( )='$text'";
上記の()内のフィールド名を取得したいのです。
0915nobodyさん
2007/01/08(月) 21:37:26ID:wThRBDhy以下のように書くほうがよろしいでしょうか?
echo "<a href\"index.php\">";
いままではEUCで
echo '<a href\"index.php\">';
とやってたんですけど
Shift_Jisで作らなくてはいけないときもあるので
PHP.iniの設定で内部で変換させるのではなく、
手動で文字コードを変換する前提でご教授願います。
0918nobodyさん
2007/01/08(月) 21:53:29ID:???0919nobodyさん
2007/01/08(月) 22:05:08ID:???0920915
2007/01/08(月) 22:53:12ID:HgcS2TL0訂正です。
sjisとeuc互換(予定などの文字化けについて)自分がこうしたほうがいいと思っている記述
echo "<a href\"index.php\">";
いままではEUCでこうかいておりました
echo '<a href"index.php">';
EUCならechoで\や"などをエクスケープしなくてもとよかったんですけど、
携帯サイト構築にはsjisじゃないとダメですよね。
そこでEUCからsjisに変換すると、echo内でエスケープしなかったものは
文字化けの原因になるかと思いました。
知識不足でわかりずらい表現ですがご教授お願いいたします。
0921nobodyさん
2007/01/08(月) 23:02:02ID:???おまえさんのコードには日本語が書いてないので関係ない。
エスケープに関しては
print "<a href=\"index.php\">";
で統一したほうがいいんじゃね?
0922921
2007/01/08(月) 23:03:20ID:???そこは半角スペースにしろ。
0923nobodyさん
2007/01/08(月) 23:18:11ID:???0924nobodyさん
2007/01/09(火) 00:43:18ID:???rawurlencodeでエンコードされたデータは違いますよね。
なぜ違うのでしょうか?
0926924
2007/01/09(火) 02:51:01ID:???すみません。スルーしてください。
0927nobodyさん
2007/01/09(火) 04:19:13ID:???0928nobodyさん
2007/01/09(火) 08:33:09ID:???これの原因がPHPなのかMySQLなのかよくわからないのですが、どうすれば「01」「02」などのようにそのまま挿入できるのでしょうか?
型はTEXTにしています。
0929nobodyさん
2007/01/09(火) 08:47:53ID:???もう一度型の確認
クエリーの発行前にダンプしてSQL文の確認
01をコーテーション「'」で括っているか確認
0930928
2007/01/09(火) 09:06:34ID:???レスありがとうございます。確認したところ、コーテーションで括られてなかったようです。申し訳ない。
配列からクエリ文を自動的に作成する関数を作って使用してたのですが、そこら辺の文字列と数値の判別(コーテーションで括るかどうかの判別)が甘かったようです。ひとまず全部括るようにしました。
0931nobodyさん
2007/01/09(火) 11:29:33ID:SE+exVcd適当なサイトのHTMLを取得して
・コメント(<!-- *** -->)
・CSS(<style> *** </style>)
・JAVASCRIPT(<script> *** </script>)
を取り除く部分の正規表現にperlのpreg_replaceを使用していましたが、
表示できません。のエラーになってしまいます。
mb_eregi_replaceにかえたところ動いたのですが、気持ち悪いです。
何か原因等考えられないでしょうか?
0932nobodyさん
2007/01/09(火) 11:41:03ID:???0933nobodyさん
2007/01/09(火) 11:41:38ID:???0934nobodyさん
2007/01/09(火) 14:42:04ID:???0935nobodyさん
2007/01/09(火) 14:45:01ID:???0936nobodyさん
2007/01/09(火) 14:49:21ID:???0937nobodyさん
2007/01/09(火) 14:57:46ID:mhBiayKz可変クラスは使うなってことなんでしょうか?
それとも使い方が悪いのでしょうか?
Strict Standards: Only variables should be passed by reference
コードは以下。
$this->user = new $userClassName();
0938937
2007/01/09(火) 15:07:32ID:mhBiayKz勘違いでした。他の問題があったようです。
0940937
2007/01/09(火) 15:28:08ID:mhBiayKzどんな問題でしょうか?
フレームワークとかだと、可変クラス名とか可変変数は、
わりと使われていると思ってました(T-T)
0941nobodyさん
2007/01/09(火) 16:18:56ID:MvDAcO9A0942nobodyさん
2007/01/09(火) 16:35:42ID:ojqZCWoIあったら教えてください
0944nobodyさん
2007/01/09(火) 17:12:39ID:???というかSmartyのcountを知っててPHPのcount知らないってどういう順序で勉強したのだろうか・・・
0945nobodyさん
2007/01/09(火) 17:59:08ID:???0946nobodyさん
2007/01/09(火) 18:09:49ID:E47pJCGV0948nobodyさん
2007/01/09(火) 18:35:45ID:???K国人には無理か。
0952nobodyさん
2007/01/09(火) 20:30:37ID:???この$countの数字が5の場合、0〜4の5つの配列を作りたいのですが、
(20だったら0〜19の20個の配列)
どのように書けばいいのかわからなくて困っています。
for($i = 0; $i < $count; $i++) {
$int = $i.",";
$arr = explode(",", $int);
echo $arr[0]; //0になってほしいのに01234と出力される
}
どなたかお助けをorz
0953nobodyさん
2007/01/09(火) 20:42:09ID:???$count = 5;
for($i = 0; $i < $count; $i++) {
$arr[] = $i;
echo $arr[$i] . "<br>\n";
}
0954nobodyさん
2007/01/09(火) 20:43:00ID:E47pJCGV0955nobodyさん
2007/01/09(火) 20:45:39ID:???$count = 5;
$arr = array($count);
0957952
2007/01/09(火) 20:55:00ID:???どうもありがとうございます。勉強になります。
$arr[] = $i;
こういう書き方は想像もしていませんでした。
>>955
それだと、$arr = array(5);ってなりませんか?
>>956
どうもありがとうございます。
そんな便利な関数があったのですね。
今回はこの関数を使いたいと思います。
みなさまレスどうもありがとうございました。
0958nobodyさん
2007/01/09(火) 21:34:11ID:???>$arr[] = $i;
>こういう書き方は想像もしていませんでした。
マニュアルの配列のところに書いてあるよ
0959nobodyさん
2007/01/09(火) 21:48:15ID:E47pJCGV0960nobodyさん
2007/01/09(火) 22:38:04ID:???当方sybase-11.9.2, php4.3.11を使用しています。
ユーザが指定したクエリーを実行するようなCGIを作成していますが、
条件が中間一致であったりすると、
大量のデータ+検索の遅延でユーザの元に応答が返ってきません。
その際に、ユーザが中止ボタン(ブラウザの)で検索をやめたとしても、
DBに対するリクエストは残ったままになっているようです。
そのような状態が続くと、どんどんDBに負荷がかかってしまいます。
みなさんはどのようにして回避されていますか?
0961nobodyさん
2007/01/09(火) 23:45:31ID:kOE6jhXa解:「Sybaseなんてものは使わない」
0962nobodyさん
2007/01/10(水) 00:24:26ID:/8+Ver2h数値|場所
01|北海道
02|青森
03|秋田
数値|名前|場所
01|林檎|02
02|流氷|01
03|八郎|03
のようなテーブルがあるとします。
下のテーブルからデータを全件引っ張ってきて、場所に上のテーブルの場所を当てはめるには
for($i=0; $data[$i]; $i++){
MySQLにつなぎ num = 場所 で名前を引っ張る
$data['場所'] = $fetchしたデータ['場所']
}
とやるのが普通なのでしょうか? 下のテーブルの件数が多くなれば多くなるほど、DBにつなぐ回数が増えるので、遅くなりそうな気がします。
0963nobodyさん
2007/01/10(水) 00:39:26ID:???JOINしろ。
SELECT ユーザー.名前,住所.場所 FROM ユーザー INNER JOIN 住所 ON ユーザー.場所=住所.数値;
「ユーザー」と「住所」はテーブルの名前ね。
つーかリレーションっていう言葉知ってるのにJOIN知らないのかよ。
0964962
2007/01/10(水) 00:48:08ID:/8+Ver2hそんな便利な事が出来たんですね。 それだとDBに1回の接続で場所データも入りそうですね。
お恥ずかしながらsqlはほんのとっかかりしかやってないので、joinというのを知りませんでした。
精進いたします。 またよろしくおねがいします。
ありがとうございました。
0965nobodyさん
2007/01/10(水) 01:46:19ID:???0966nobodyさん
2007/01/10(水) 07:59:54ID:YlYIt2w2何をしても出力結果の日本語が文字化けしてしまいます。
サーバが悪いのかと思って複数試しましたが、結果は同じでした。
こういう場合、どう対処して正規の日本語に表示させるのでしょうか?
0967nobodyさん
2007/01/10(水) 08:03:57ID:???HTMLヘッダーの文字コード
phpファイルの文字コード
データーベースの文字コード(DBを使っている場合)
を、まず確認!
0968966
2007/01/10(水) 08:08:26ID:???それらをすべて確認しているのですが、どうしても文字化けします・・。
SoapClientを使っているからなのかとも思いましたが、
ぐぐると他者は問題なく表示されているみたいですし、リファレンス上でも
表示させているみたいですし・・。
0969nobodyさん
2007/01/10(水) 08:25:06ID:???0973nobodyさん
2007/01/10(水) 09:13:50ID:???複数のサーバで試して駄目ならソースに問題があるのは自明の理
兎に角、どんな処理をどんなスクリプトでやろうとしているのか?
それが判らんと、アドバイスのしようもないね。
0974966
2007/01/10(水) 09:56:15ID:???↓こんな感じのソースです。
http://www-2ch.net:8080/up/download/1168390267780045.xn1Hij
基本的にはリファレンスを見ながらSoapCliantを勉強してて
テストでAmazonの商品リストを取得しようとしています。
画像などは出るのですが、日本語文字だけが文字化けして、
どういう文字コードに変えれば正常になるか分かりません。
(基本的な日本語文字コードは試したのですが・・。)
0975nobodyさん
2007/01/10(水) 10:00:42ID:???HTTPヘッダーの文字コード
HTMLヘッダーの文字コード
phpファイルの文字コード
データーベースの文字コード(DBを使っている場合)
を挙げたら?
0976nobodyさん
2007/01/10(水) 10:10:26ID:???0977nobodyさん
2007/01/10(水) 10:12:33ID:???0979nobodyさん
2007/01/10(水) 11:06:34ID:???0980nobodyさん
2007/01/10(水) 11:18:06ID:5u6jBKQdよくわからんけどphp.iniのdefault_charset = "UTF-8"とか?
0981nobodyさん
2007/01/10(水) 11:19:31ID:???0982nobodyさん
2007/01/10(水) 11:22:57ID:???【PHP】下らねぇ質問はここに書き込みやがれ 36
http://pc10.2ch.net/test/read.cgi/php/1168395610/
0983966
2007/01/10(水) 11:31:07ID:YlYIt2w2すべてUTF-8です。Shift-JISもEUC-JPも試しました。
>>980
現在はXREAのサーバでテストしているのですが、
phpinfoでみるとdefault_charsetはno valueになっています。
なので特に指定されてないかと。
とりあえず、ソース的な問題じゃ無さそうですね。サーバかも。。
0984nobodyさん
2007/01/10(水) 11:34:54ID:???おれ、xreaで全てDBから画面出力までUTF-8だけど化けることはないよ。
切り分けるために、単純にUTF-8のPHPファイルに「あいう」と書いて、
METAでUTF-8指定して画面出力すると、どうなるの?
ブラウザの文字コードがUTF-8になっていることも要確認。
0985966
2007/01/10(水) 11:41:46ID:???974でアップしたソースをxreaのサーバでアップし、確認した画面(IE6)です。
http://www-2ch.net:8080/up/download/1168396613708804.g962MV
ご覧いただけます通り、テーブルの項目名は日本語で表示されていますが
なぜか商品名の内容だけが文字化けします。
ブラウザの文字コードも色々切り替えたのですが、駄目でした。
0987nobodyさん
2007/01/10(水) 12:22:44ID:???0988nobodyさん
2007/01/10(水) 13:23:24ID:???よくは知らんが、Amazonからの戻り値はUTF-8なのか?
表示前に、mb_convert_encodingとかしても同じなのか?
0989966
2007/01/10(水) 13:26:56ID:???mb_detect_encodingをして調べてみたら、Amazon側からの
戻り値はASCIIでした・・。
それで調べまくったら、どうやらAmazon側に問題があるとのことで
(たぶん)まだ解決されていないと思います。
とりあえずもう少し調べてみて色々勉強してみます。皆さん、ありがとうございました。
0991nobodyさん
2007/01/10(水) 18:12:14ID:dQ2G34v1検索結果がでないんだけど
どうすればいいんだ?
一応参考サイトには目を通したが。
ttp://pcct.ty.land.to/
>>1
もうくるな
0993942
2007/01/10(水) 19:42:56ID:EaLE+6D1まだ解決してないんですけど…
>>943
Smartyでcount使えないんですが…
{$hoge|count}
これでできませんよ…
かなり分かりやすく書いたと思うのですが、誤解されている方がいるようなのでもう一度書きます。
しりたいのはPHPのcountと同じ働きをするSmarty関数です。
0995nobodyさん
2007/01/10(水) 19:53:24ID:???ていうかお前はもうちょっと自分で調べる癖をつけたほうがいいよ
ぐぐればこんなの一瞬で出てくるし
まぁこんな事だけ言うのもなんだからオマケ↓
{$hoge|@count}
0996nobodyさん
2007/01/10(水) 20:19:55ID:???Smartyそんな機能あったんだ…
マニュアル全部読んだつもりでいて知らなかった俺は…orz
横からサンクス。
# 元質問者は関数関数と言ってるがそれ装飾子だよね
0997nobodyさん
2007/01/10(水) 20:27:21ID:???@を使う事によってphpのcount関数を使う
そもそも修飾子の動作は変数が配列の場合その値全部に対して効果を与えるものだから
配列全体に効果を与えたい場合は@を先頭につけるんだよ
0998nobodyさん
2007/01/10(水) 20:43:29ID:???どうやら5章の冒頭の説明すっかり読み飛ばしてた模様。
PHPの関数をmodifierとして呼べることすら知らなかった俺ワロス
0999nobodyさん
2007/01/10(水) 21:16:12ID:GbwAN0+p1000nobodyさん
2007/01/10(水) 21:20:42ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。