【PHP】下らねぇ質問はここに書き込みやがれ 26
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2006/08/07(月) 13:11:50ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレは>>2-10 関連スレは>>4-10 FAQは>>6-10 辺り
◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・質問者は必ずIDを表示させてください。(メール欄に何も記述しないでください。)
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
(逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
(荒らし、煽りは除く。逆に煽られたときも、無闇に反論せずスルーすべし)
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0880nobodyさん
2006/08/21(月) 12:40:23ID:???どうしたらいいんでしょうか?
単純にソースコードを自分のサイトからDLできるようにしとけばいいのか、
それともsourceforgeみたいなところに登録(?)すべきなのか。
著作権などは維持しつつ、皆に無料で使ってもらうにはどういう方法がベストでしょうか。
0881nobodyさん
2006/08/21(月) 12:55:16ID:???著作権についてはドキュメントで明示すればよし。
0882715
2006/08/21(月) 13:20:52ID:???今回のところは、こうしました
<?php
if(mb_strlen($ab) == 2 ){
print "<input type=\"submit\" name=\"preview\" value=\"確認画面\">";
}else{
print "<input type=\"submit\" name=\"reverse\" value=\"登録\">";
}
if(isset($_POST['preview'])){
header("location:summer.php");
exit;
}
?>
次はCookieを使ってみます
0884nobodyさん
2006/08/21(月) 14:15:14ID:Dzmazm0+function is_yowai_pass($str) {
$regex = "(.{0,7}|[a-z]+|[A-Z]+|[0-9]+)";
if (ereg($regex,$str) == TRUE){
return TRUE;
} else {
return FALSE;
}
}
if (is_yowai_pass($password) == TRUE){
echo "脆弱だよ";
}
このとき、$passwordに「12345678」とか「abcdefgh」が入っていれば「脆弱だよ」と表示されて、
それはもちろん期待通りの動作なのですが、$passwordに「pass1234」など英数字を混ぜたものが
入っていても「脆弱だよ」が表示されてしまいます。英字と数字が混じっていれば
「脆弱だよ」と表示されないように作ったつもりなのですが、どこがおかしいのでしょうか??
0885nobodyさん
2006/08/21(月) 14:31:02ID:???正規表現に「^」と「$」をつけとかないと文字列全体をチェックできない。
今の状態だと「英字1文字」か「数字1文字」があれば必ず脆弱となる。
0886nobodyさん
2006/08/21(月) 14:33:17ID:???0887軟式PHP
2006/08/21(月) 15:17:34ID:???0888nobodyさん
2006/08/21(月) 15:37:14ID:???天才的関数名だなw
関数名以外の変数名とかはしっかりしてるというか、上級者らしいのに
is_yowai_passとは・・・「分かっててやってる」天才にしか出来ない技だぜ。
0889nobodyさん
2006/08/21(月) 16:25:41ID:???0890nobodyさん
2006/08/21(月) 16:36:13ID:???{
if ($my_konomi_type === $partner_konomi_type) {
return TRUE;
} else {
return FALSE;
}
}
0891nobodyさん
2006/08/21(月) 16:41:45ID:???$my_konomi_type === $partner_konomi_type だと、お互いに同じ性質を持つ人間でなければなりませんが。
0893715
2006/08/21(月) 17:03:41ID:???test1.php
----------
<?php
session_start();
$zz = $_POST['number1'];
if(mb_strlen($zz) == 6){$ab ="OK";}else{$ab ="英数字で6文字";}?>
<form method="post" action="test1.php">
<TABLE border="1"><TBODY><TR>
<TD><INPUT size="6" type="text" maxlength="6" name="number1" value="<?php print($zz); ?>"></TD>
<TD><?php print($ab); ?></TD></TR></TBODY></TABLE>
<?php
if(mb_strlen($ab) == 2 ){
print "<input type=\"submit\" name=\"preview\" value=\"確認画面\">";
}else{print "<input type=\"submit\" name=\"reverse\" value=\"登録\">";}
if(isset($_POST['preview'])){
$_SESSION['zz'] = $zz;
header('Location: test2.php');
exit;}?></form>
test2.php
----------
<?php
session_start();
if($_SESSION['zz']){
$zz = $_SESSION['zz'];
print($zz);
exit;}
?>
0894nobodyさん
2006/08/21(月) 18:48:19ID:???0895nobodyさん
2006/08/21(月) 18:51:10ID:???どうにかならないんでしょうか?
あと、メンバ変数に文字列を格納するときに . でつなぐ方法ってないんでしょうか。
PHP4が最悪だったので、5に移行したけど、やっぱあいまいすぎるこの言語・・・・泣
0897nobodyさん
2006/08/21(月) 19:26:52ID:???なんも表示されない。
なぜだかかわかる方いたますか?
0898nobodyさん
2006/08/21(月) 19:33:47ID:???perl よりかはマシって言う程度だからな
こういうスクリプト言語ではユニットテストがかなり重要
C++とかなら、コンパイラが出すエラーをユニットテストで見つける
ほかない
0899nobodyさん
2006/08/21(月) 19:43:28ID:???function is_love_me( $my_value, $partner_konomi_type )
{
if ($my_value === $partner_konomi_type) {
return TRUE;
} else {
return FALSE;
}
}
だろうが。
0901nobodyさん
2006/08/21(月) 21:13:43ID:???そうなんですか。
別のミラーとかから落としても駄目でした。
もう、ユーザー会のサイトの前文検索使わせてもらおうと思います。
0902nobodyさん
2006/08/21(月) 21:56:23ID:???ありがとうございます。
__set, __getで制御できるようですが、PHPの通常のエラーのように発生させたかったため
うまい方法が見つかりませんでした。
あとメンバの初期値設定時に、 . を使って文字列をつなぐとエラーがでてしまいます。
マニュアルにはphp4 ではムリと書いてあるけど、5については何も書いてないんだよなぁ・・・・
ムリならムリと5もかいてほしい・・・・
0903nobodyさん
2006/08/21(月) 23:23:47ID:???mysql_queryしようとするとなぜが成功しません。
select文は成功しました。
どこが原因なんでしょうか?
0904nobodyさん
2006/08/21(月) 23:29:20ID:???何の必要があるの?
普通にブラウザでアクセスしてスクリプト走らせてデバッグするのと何が違うの?
0905nobodyさん
2006/08/21(月) 23:36:52ID:???プロジェクトによってその単位とか、テストの方法もろもろ変わってしまうけど、
単体テスト⇒結合テストと行うことで、バグの発見をしやすくするんだと思う。
通常単体テストでは、1画面を1つの単位としてテストを行うと思うけど(自分の経験では)
そのときは、ブラウザを使おうが、デバッガを使おうが、単体テストだよ
0906nobodyさん
2006/08/21(月) 23:40:22ID:???本当にまんま同じSQLを発行しているかPHPでデバッグプリントして味噌
でも分からなければ問題無い範囲でここに貼りなされ
0907nobodyさん
2006/08/21(月) 23:43:02ID:???すいません。いまちょっといろいろためして見たら日本語が入ったらダメなことに気づきました。
文字セットの問題だとは思うのですが、php.iniをいじったら直るのかな。。。
0908nobodyさん
2006/08/21(月) 23:56:44ID:???たいていは、メソッド一つづつ、成功と失敗をする条件を与えて
期待通りに動くかテストする方法
早期にバグを見つけて、その処理の精度を高める
いきなり結合テストから始めると、バグが見つかったときに
解決をするのが時間かかったり、めったに出ない条件によって
引き起こされるバグを見落としたりする
0910nobodyさん
2006/08/22(火) 00:00:05ID:???う〜ん、、、おっしゃっている意味がよく分かりません。
俺が普段行っているデバッグ作業は、「単体テスト」というのを繰り返して、
結果的に「結合テスト」というものになっているんでしょうか・・・。
>>908
メ、メソッド・・・・
あの、実はOOP理解できないのでクラスとか全く使ってないんだけど、
それでもユニットテストというのは必要?&有効?
0911nobodyさん
2006/08/22(火) 00:15:56ID:???PHPでサーバーに接続した直後に
mysql_query("SET NAMES SJIS");
と、やったら表示されるようになりました。
(参考)http://tag.oops.jp/wordpress/archives/5
おっしゃる通り、PHPとMySQLはバージョンによって設定がかなり異なってきますね。
むやみに新しいバージョンを入れるのは控えたほうがいいかもしれません。
てか、設定に何分無駄な時間を費やしたんだよ俺ww
0912nobodyさん
2006/08/22(火) 00:36:10ID:???まず設計時点で機能を細かく分けてシンプルな関数の集合体にする。これが大前提。
その上で関数単位にテストを行いデバッグした上で、関数の集合であるプログラムのテストを行う。
さらにシステムは大抵の場合複数のプログラムの集合体になるから最終的に全体でのテストを行う。
それが単体テスト→結合テスト→総合テストの流れ。
オブジェクト指向を使わなくても、昔からある構造化設計でもこれはプロとして当たり前の作り方。
>>904みたいなテストしかしてないんなら、テストがどうこう以前に設計自体が素人レベルなんでしょう。
単体テストはブラウザ上でもコマンドラインでもどっちでもできるよ。
大抵はこれを行うために「ドライバ」や「スタブ」といった、上位・下位部分を担うテストプログラムを作成する。
このテストプログラムで多種多様なテストケースを実行し、通常の操作ではなかなか発生しないような
レアケースなデータでの挙動などもテストするわけだ。
0913nobodyさん
2006/08/22(火) 01:03:18ID:???0914nobodyさん
2006/08/22(火) 01:36:54ID:???俺はクラスは全く使わず、自作関数も数えるほどです。
あとはいわゆる「ベタ書き」と呼ばれるヤツなんだと思いますが、
そういうわけで単体テストというものの意味やイメージが湧きません。
PHPの標準関数ばかり使ってるから、その時点で「単体テスト」は終わってると見なしていいんでしょうか?
いわゆる「ベタ書き」の場合、ブラウザからアクセスしてのテスト(すなわち実運用と同じことをやってみる)しか
考え付かないのですが・・・。
0915nobodyさん
2006/08/22(火) 01:47:07ID:???だからそもそも設計が素人レベルなんだって。
その設計では単体テストは「不可能」で「無駄」。
そもそも「単体テストができるように作る」ことに意義があるの。
それができない時点で、一定率以上の品質は保てないんだよ。
ただ、ちっこいプログラムしか作ってない分には品質が多少低くても
それほど問題になることはないだろうから、必要はないんじゃない?
下手に中規模以上のシステムを作ってみようとか思わなきゃおっけー。
0916nobodyさん
2006/08/22(火) 02:58:21ID:???べた書きで困っていないんならそれでいいのかな
それである程度の規模のを作ってるんだとしたら引き継ぎたいとは思わんが・・・
0917nobodyさん
2006/08/22(火) 03:11:44ID:???いや、それもちゃんとしたテストだよ。
例えば顧客管理という機能があったとして、もうちょっと細かく分けると顧客の登録、削除、更新って言う機能が
必要だってのはなんとなく分かるでしょ?
で、登録、削除、更新って言う機能を別々に作ってそれぞれがちゃんと動くかテストする。これが単体テスト。
それが上手く行けば次はそれぞれをくっつけて全体としてちゃんと動くかテストする。これが結合テスト。
本当はさらに顧客の登録だけでも細かく分けるから上記の例が100%正しい訳では決して無いけど、とりあえずイメー
ジとしてはこういうもんだって把握しとけ。
0918nobodyさん
2006/08/22(火) 03:13:48ID:???ユーザ関数とか使われるといちいちその関数を探すのがメンドクサイ。
0919nobodyさん
2006/08/22(火) 04:22:34ID:???・呼び出し側ではその中身まで意識しなくても全体の動作を読める
・関数側では自身のみに着目して機能と実装を検討できる
という可読性のメリットがはじめて得られるわけで、そもそもは全体をまとめて読む必要を無くすもの。
しかし、正しい設計で作られた関数でなければそれらのメリットは生まれない。
いちいち関数を呼んでる場所毎にその中身を追っかけなきゃいけないんなら
それは関数の設計自体がどっかおかしいんだろう。
0920nobodyさん
2006/08/22(火) 07:17:40ID:???まったくもって、それでOKですよ
逆に、それが一番望ましいのです
テスト用のアクションリストを作成して
UI経由で人間が直にテストしていく行為を行わないベンダーが多くてね
まぁ丸投げの世界じゃ、口頭で「テストしたか?」程度が現実w
システムっていってもさ
小規模も中規模も大規模もかわらないって
ぶっちゃげネットワークが大きいか小さいか、ノード数が多いか、少ないかだよ
だからパフォーマンスチェックは、どのベンダーも意外と真面目ねw
なので考えに間違いがないので安心してね
0921nobodyさん
2006/08/22(火) 09:00:10ID:???機能追加のしやすさを考えれば自然と流れの読みやすいものになるよ。
関数名探すのが面倒ってのはエディタが悪い。
もしくは関数をどのファイルに関連付けるか整理できてない。
0922nobodyさん
2006/08/22(火) 09:22:16ID:???0923nobodyさん
2006/08/22(火) 09:44:42ID:???まさか埋め込みメールフォームとかのレベルの話じゃないだろうな。
0924軟式PHP
2006/08/22(火) 09:58:06ID:???それが大企業から降りてきたプロジェクトなどは、
CI > 単体テスト > 結合テストとか結構ややこしい手順を踏まないといけないことがあるよ。
0925nobodyさん
2006/08/22(火) 10:03:00ID:???少なくとも、コアになるような処理に関してはね
0926nobodyさん
2006/08/22(火) 11:17:50ID:???処理ごとに細かくユーザ定義関数が用意されているんだけど。
0927nobodyさん
2006/08/22(火) 11:47:11ID:???0928914
2006/08/22(火) 12:10:13ID:???そうですね。確実に素人の考えです。でも「プロ」のやり方が正しいかどうかは分かりません。
俺は複数人数で開発してるわけじゃないので、プロのやり方がひどく無駄で非効率に感じてしまう時があります。
なぜ単体テストと品質が直結するのか、いまいち納得がいきません。そのやり方が全てではないと思います。
>>916
可読性という点では、ベタ書きですがかなり気をつけて書いています。
ただそれは「自分が分かりやすい」というものでしょうから、
たしかに誰かに引き継ぐとなると、引き継いだほうは多少大変かもしれません。
ただベタ書きとはいっても、一つ一つの処理は、だいたい一つの流れでまとまっているわけで、
その近辺だけを読めばだいたい分かるようになっています。
0929914
2006/08/22(火) 12:35:40ID:???なるほど、そういうイメージなんですね。分かりやすいです。
ちなみに俺はベタ書きですが、「顧客の登録、削除、更新」があったとして、
それぞれの機能の終わりの部分にexit;を挿入してテストしてますので、結果的に単体テスト…になってるのかな??
>>920
そうなんですか、ちょっとホッとしましたw
俺の考えでは、要するに最終的に実際の運用で想定されるあらゆる操作・アクションを
漏れなく実行してみるテストをすればそれでいいのでは?・・・という感じです。
0930914
2006/08/22(火) 12:37:15ID:???たとえば自作関数が期待通りの動作をするかどうかは当然チェックしてるので、
たぶん、みなさんが言うところの「ユニットテスト」に当たるものは
無意識にやってるんだと思います。
0931nobodyさん
2006/08/22(火) 13:16:45ID:???> 俺の考えでは、要するに最終的に実際の運用で想定されるあらゆる操作・アクションを
> 漏れなく実行してみるテストをすればそれでいいのでは?・・・という感じです。
たぶん網羅してるつもりでも出来てない気がする。
テストすべき条件が3つある処理が2つあったとして、それを同じ関数に入れると
3の2乗個の条件になる。入れれば入れるほど条件は増えるが、必ず全てを網羅できるか?
0932nobodyさん
2006/08/22(火) 13:33:55ID:???実際はそんな暇ない。
フリーでやってたりすると、お客さん(発注側)がかなり無理を言うので。
普通の企業で2人月の仕事を2週間でやってくれとか、
納品まで数日しか無い所で呼ばれるとか…。
テストファーストとか言っても、まるで書いてる暇がない。
0933nobodyさん
2006/08/22(火) 13:44:45ID:???関数個別の入出力のテストはそれはそれでやっています。
あと、条件を網羅できてるかどうかは、テストの手法に関わらず気をつけるべき
ポイントであり、テストの手法には直接関係ないですよね?
あと、ユーザ入力の値(範囲)チェックやバリデートを厳密にやっているので、
関数に入れてテストすべき条件はさほど多くならないようにしています。
0934nobodyさん
2006/08/22(火) 13:53:57ID:???そこまで断言できるならここで意見を求める事もないだろう。
独自の道を進めばいいんじゃないか。
けど経験則で言うと、別に劣ってないからやらなくて良いでしょって言う時は
やらなくて良い口実を探してる事が多いんだよな。
0936nobodyさん
2006/08/22(火) 14:11:12ID:???ユニットテストは初期開発時以外でも、リファクタリングするときにも使う
テスト用の条件をテキストに書き残して、機能を変更したときにそれをもう一度
手で行うのはめんどうなので、自動的に行ってくれるユニットテストツールが
重宝される
0937nobodyさん
2006/08/22(火) 14:19:21ID:???0938【みらくる】な電波ソング(w
2006/08/22(火) 14:29:06ID:???ほっぺがおちるよミラクルワールド
カモーネカモネ ミラクルかもね
作って美味香 ナンバーワン
ビビンバ ズッパ タンタンメン
クスクス カタプラーナでポイ!
味にうるさいクレオパトラも
食わず嫌いのナポレオンも
みんな大好き魔法の呪文
とっておきの呪文だよ
天使のスプーンですくったら
魔法の呪文を ハリラハリラハラリー(ハイ!)
カモーネカモネ ミラクルかもね
作って美味香 ナンバーワン
ビビンバ ズッパ タンタンメン
クスクス カタプラーナでポイ!
(NHK教育 18:00 - 18:10)
http://www.youtube.com/watch?v=tmELQUsLu2o
0940nobodyさん
2006/08/22(火) 14:46:14ID:???歯車になる気は無いし、複雑な問題を単純化しなくても解けるし、
忘れた頃に自分の書いたコードを読み返してもすぐ理解できるし、
もしかしたら二度と忘れる事はないんでしょう。
0941nobodyさん
2006/08/22(火) 14:50:21ID:???チーム開発した事なく自己過信気味の駆け出し君に
ユニットテストの恩恵なんか説明しようとしても無駄
質問者と回答者のやり取りも微妙に噛みあってない
禅問答やってる暇があったらコード書いてた方がいい
0942nobodyさん
2006/08/22(火) 14:51:47ID:???時間がもったいないだろ p
0943nobodyさん
2006/08/22(火) 15:05:42ID:???0944nobodyさん
2006/08/22(火) 15:29:48ID:???0946nobodyさん
2006/08/22(火) 17:24:08ID:???の口車に乗って
ttp://www.ioi-jp.org/joi/2005/2006-m1-prob_and_sol/2006-m1-t1.html
をやってみてるんだが
入力例23 4 52 1 26 3 41 2 31 1 1
出力例23 1 1 1
って
出力例24 1 1 1
じゃないか?
0947946
2006/08/22(火) 17:25:02ID:bNxpCiwiあーみにくくなった
出力例2は
4 1 1 1
じゃ無いかって事
0950946
2006/08/22(火) 17:49:10ID:bNxpCiwiユーザ関数化しちゃえばいいんだけどさ
0951nobodyさん
2006/08/22(火) 17:57:28ID:???0953nobodyさん
2006/08/22(火) 18:09:08ID:???0956nobodyさん
2006/08/22(火) 18:33:58ID:???function hogehoge
{
foreache($hoge as $var)
{
return $var;
}
}
0957nobodyさん
2006/08/22(火) 18:45:39ID:???0959nobodyさん
2006/08/22(火) 18:55:23ID:???そりゃチーム開発にはOOPだのユニットテストだの必須だが、
別にそれが必ずしも優れてるとか絶対とかってわけじゃないだろう
自己過信気味で頭が硬直化してるのはむしろ喪前では?
0960nobodyさん
2006/08/22(火) 19:10:44ID:???ただ一つ目の要素返して終わりで何をしたいのかわからない
0962nobodyさん
2006/08/22(火) 19:52:15ID:???while使いたいな。
0963(^ω^)
2006/08/22(火) 20:01:16ID:???0964(^ω^)
2006/08/22(火) 20:04:57ID:???$file_name = "01.txt";
/* ここからプログラム */
$tri = 0; // 三角形
$r_tri = 0; // 直角
$a_tri = 0; // 鋭角
$o_tri = 0; // 鈍角
$fp = fopen($file_name, "r") or die("ファイル読めねーよ馬鹿");
while(true) {
$res = sscanf(rtrim(fgets($fp)), "%d %d %d");
//値の数が3以下なら終わり
if (count($res) != 3)
break;
sort($res);
// 三角形でなければ、さようなら
if ($res[0] + $res[1] <= $res[2])
break; // 終わり
++$tri;
// 直角三角形
if ($res[0] * $res[0] + $res[1] * $res[1] == $res[2] * $res[2])
++$r_tri;
continue;
// 鋭角三角形
if ($res[0] * $res[0] + $res[1] * $res[1] > $res[2] * $res[2])
++$a_tri;
continue;
++$o_tri;
}
fclose($fp);
echo join(" ", array($tri, $r_tri, $a_tri, $o_tri));
?>
0965(^ω^)
2006/08/22(火) 20:07:23ID:???0966nobodyさん
2006/08/22(火) 20:14:52ID:???どうやるんですか?
0967nobodyさん
2006/08/22(火) 21:07:08ID:???0968nobodyさん
2006/08/22(火) 22:00:57ID:???ってことにならないように行うものだよ
だからさ、バグがありませんよって示せるようなテスト結果があればいいってことだよ
単体テスト、結合テストってプロジェクトの規模によって複数階層別になるし
ほかのみんなが言っている単体テストを質問者のプログラムに直接対応させるのは
おかしいと思う
単体テスト=個々の機能テスト
結合テスト=複数の連携テスト
ようはバグがあとあとでてこないように、発生しうるルートをすべて網羅できるように、
小さい機能から先にテストしておきましょうってことかな
複数の機能が連動するようなテストだと、すべて網羅することは難しいからね
0969nobodyさん
2006/08/22(火) 22:35:57ID:pY0h5YuJクライアントの要望で、PHP、SQLの環境で、スプレッドシート(セル)形式のUIを作って欲しいと。
なぜか? と聞いたら、取引先のxlsからコピーできたりしたら、素晴らしいことでしょ? それとライセンスの関係でエクセルが無いPCがあるので、エクセルに依存してるのは駄目だと。
との答え。
はい。 途方にくれました。
まず、エクセル以外のスプレッドシート… 思い浮かびません。色々調べたけど、英語過ぎて分からなかった。ライセンス激高いソフトは発見したけど、SQLの兼ね合いがまるで不明。
それになんらかのスプレッドシートを作ってもSQLから出力できるのかと。
明日一日調べる予定だけど、英語てんでだから、難しいだろうなぁ;;
皆さんお知恵があれば、助けてください;;
0970nobodyさん
2006/08/22(火) 22:39:53ID:???それ、いくらで作るの?100万とかじゃないよね。
まぁ、そんなあなたに
つ Google Spreadsheets
0971nobodyさん
2006/08/22(火) 23:18:42ID:pY0h5YuJ100ってことはないと思いますね。PMと営業にまだ聞いてないので、詳しくは知りません。
Google Spreadsheetsですか〜 ちょっと調べてみます〜
HTMLにさえ入れられれば… ☆(ゝω・)vキャピ
0972nobodyさん
2006/08/23(水) 00:07:29ID:???一応考え付いた方法は、$_SERVER['HTTP_REFERER']と$_SERVER['HTTP_HOST']を
取得して、$_SERVER['HTTP_REFERER']の文字列の中に$_SERVER['HTTP_HOST']が
含まれてるかどうかをチェックするというもの。
これだと何かマズイ点とかありますでしょうか?
0974nobodyさん
2006/08/23(水) 00:24:27ID:???CSRF対策での話なので、リファラ偽装は関係ないと思いますが・・・。
CSRFによる被害を受けちゃう本人がリファラを偽装してる分には
その人自身の責任ですからね。
0975nobodyさん
2006/08/23(水) 00:40:33ID:???0976nobodyさん
2006/08/23(水) 01:01:54ID:???【PHP】下らねぇ質問はここに書き込みやがれ 27
http://pc8.2ch.net/test/read.cgi/php/1156262092/
0977nobodyさん
2006/08/23(水) 01:16:21ID:???=?iso-2022-jp?B?".base64_encode(mb_convert_encoding("ここに日本語の件名","JIS","EUC-JP"))."?=";
って言う指定をしたらある程度文字化けを防げるようになったんだけど、一部の人間はまだ文字化けしてるって言ってる。
誰かヒントください!
レス数が950を超えています。1000を超えると書き込みができなくなります。