【PHP】下らねぇ質問はID出して書き込みやがれ 92

このエントリーをはてなブックマークに追加
952nobodyさん:2010/02/15(月) 09:28:52 ID:???
>>951
セッション使う
953nobodyさん:2010/02/15(月) 09:29:49 ID:???
リファラ
954nobodyさん:2010/02/15(月) 09:31:23 ID:dO9qGZvq
各メニュークリックしたときにそのページ全体が別ページに飛ぶのではなく
ページの内容部分だけ外部ファイルを読み込んで更新するはどうしたら良いですか?
955nobodyさん:2010/02/15(月) 09:32:45 ID:???
>>954
iframeもしくはajax
956nobodyさん:2010/02/15(月) 09:39:11 ID:hi3MtdSO
>>952
セッションについて、勉強してみます。

>>953
携帯からのアクセスも想定しているので、
リファラは使えません。
957951:2010/02/15(月) 09:47:52 ID:hi3MtdSO
いまいち分からないのですが、

a.html→p.phpのように読み込んでいるのですが、
a.htmlの中でsession_start();はできませんよね。

p.phpで、session_start();をして、
http://example.com/a.index.htmlから
飛んできているのか否かって判別できるのでしょうか?
958nobodyさん:2010/02/15(月) 09:52:06 ID:???
>>957
htmlからか
リファもダメなら無理じゃね?
何を飛ばすかしらんけどp.phpでバリデーションをしっかりするしかないかな多分
959951:2010/02/15(月) 10:02:01 ID:hi3MtdSO
>>958
なるほど。
一応、p.phpでは、入力の値のチェックはしているので、
変な挙動はしないのですが、なにか気持ちが悪いので、
この質問のようなことができないか悩んでいるところです。
960nobodyさん:2010/02/15(月) 10:02:04 ID:???
>>957
a.htmlからimgタグかscriptタグでPHPファイルを読み込んでセッションセットすればいけると思うよ
961nobodyさん:2010/02/15(月) 10:06:23 ID:???
会員制サイトの自動ログインとか普通に行われてるんだし
別に意識するようなことじゃなかろう
962951:2010/02/15(月) 10:22:41 ID:hi3MtdSO
>>960
a.html内に<img src="s.php">を記述する。

s.phpの中身は、session_start();を記述。

p.phpの中身は、
・session_start();を記述。


んんん???
で、p.phpでは、どのような判定をすれば良いのか???

a.htmlで設定されたsession_idと
p.phpのsession_id() を比べる?
p.phpの中で、a.htmlで設定されたsession_idを得るのは可能ですか?


私、トンチンカンな事、言ってますか?
963nobodyさん:2010/02/15(月) 10:55:47 ID:???
>>962
s.php
session_start();
$_SESSION["check"] = 1;

p.php
session_start();
$checked = isset($_SESSION["check"]);
unset($_SESSION["check"]);

みたいな感じかな
964nobodyさん:2010/02/15(月) 11:01:47 ID:jrDRH19y
DNSが死んでると、mb_send_mailがアホみたいに遅くなる。
どうにかならんかね。
965951:2010/02/15(月) 11:08:48 ID:hi3MtdSO
>>963
ありがとうございます。

少し、考えてみました。

セッションの変数名と値は、推測できなさそうな物を使えばいいかと。
s.phpを直接読まれても、ソースは見れないから。


で、どうしようかなぁ。。。
鯖特異な何かをMD5とかshaとかで暗号化すれば、いいのかなぁ〜
って思ってます。
966951:2010/02/15(月) 11:09:49 ID:hi3MtdSO
あ、特異な変数名は無理ですね。
967nobodyさん:2010/02/15(月) 11:27:19 ID:???
>>965
csrf_token()で$csrf_tokenというランダム文字列つくってセッションにセット
飛んだページでcsrf_valid()でバリデートしてtokenを削除すれば暗号とか関係ない
968nobodyさん:2010/02/15(月) 11:52:32 ID:???
ローカルに保存してまで改ざんしたい奴には無意味な対処だけどいいのかい
969951:2010/02/15(月) 11:56:47 ID:hi3MtdSO
>>967
csrfなんたら、調べてみます。
ありがとうございます!
970951:2010/02/15(月) 11:58:00 ID:hi3MtdSO
>>968
え、無意味なんですか?
意味ある対処だと思って、考えていたんですが。
971nobodyさん:2010/02/15(月) 12:03:36 ID:CW5G1rtw
【OS名】CentOS 5.3
【PHPのバージョン】php5.16
【連携ソフトウェア】連携はしてません
【質問内容】
example.php
exec("/usr/bin/php /var/www/html/err.php");

err.php
echo "error";

こういうのを作成しました。
元々1つのphpにまとめていたのですが、エラー内容が複雑になり分離しました。
この時にexample.phpを実行してもerrorと表示されないのですが、どのようにすれば表示されるようになるのでしょうか?
なにぶん経験がないものでおかしな質問になっているかもしれませんがアドバイスいただけると助かります。
972951:2010/02/15(月) 12:03:48 ID:hi3MtdSO
>>967
csrf_validで、ググると、Hit0件。
973nobodyさん:2010/02/15(月) 12:05:05 ID:???
>>971
/php の後にスペースが入っている。
974nobodyさん:2010/02/15(月) 12:08:42 ID:???
>>971
何がしたいのかわからんが、
require("err.php");でいいんじゃない?

どうしてもexecつかうなら
exec("/usr/bin/php /var/www/html/err.php", $result);
print_r($result);
975nobodyさん:2010/02/15(月) 12:12:07 ID:???
>>971
echo exec("/usr/bin/php /var/www/html/err.php");

こんな書き方でも。

でも>>974さんがいうようにincludeしたほうがいい
976nobodyさん:2010/02/15(月) 12:20:49 ID:???
>>972
>>967は自分で作れってことだと思うが
977971:2010/02/15(月) 12:34:15 ID:CW5G1rtw
アドバイスありがとうございます。
err.phpの中が
if($err_num == 1){
echo "error1";
}elseif($err_num == 2){
echo "error2";
以下略
というような内容になっていて、$err_numによって表示をわけている状態でした。
exec叩いた時に一緒に$err_numを渡して表示すればいいと思ったのですが
この場合はあくまでerr.phpでは表示しているけど、実行されているのはexample.phpなので
表示されてない状態だとアドバイスいただき気づきました。
echo exec〜が修正が少なくて良いかと思いますが、今後の事を考えてincludeを使用して対応してみたいと思います。
ありがとうございました。
978nobodyさん:2010/02/15(月) 12:36:33 ID:???
>>970
ブラウザがやってる通りの手順でHTTP通信を真似されたら簡単に突破されるし、
それ以前にフォームのDOMをいじられても検出できないでしょう
改ざんを前提にして入出力の検証コードに時間を割くか、
可能ならセッションが途切れてしまう設計から見直した方が良いよ
979nobodyさん:2010/02/15(月) 17:48:13 ID:???
んーー、結局、解決していないことに気づいた。

a.htmlに
<img src="s.php" width="0" height="0">
を記述。

s.php
session_start();
$_SESSION["check"] = 1;

p.php
session_start();
$checked = isset($_SESSION["check"]);
unset($_SESSION["check"]);

とする場合、
a.htmlをローカルに保存し、
<img src="http://example.com/s.php" width="0" height="0">
と書き換え、アクセスすると、p.phpが動いてしまうことが分かりました。



拡張子.htmlでphpが動くように、変更すれば、解決かな。。。
980951:2010/02/15(月) 17:49:23 ID:hi3MtdSO
>>979は951です。
981951:2010/02/15(月) 17:54:37 ID:hi3MtdSO
>>978
> 改ざんを前提にして入出力の検証コードに時間を割くか、
> 可能ならセッションが途切れてしまう設計から見直した方が良いよ

難しくて理解できませんです。。。
982951:2010/02/15(月) 19:13:49 ID:hi3MtdSO
a.htmlの先頭に
<?php
session_start();
$_SESSION["check"] = "1";
?>
を記述。

p.phpの先頭に
session_start();
if( $_SESSION["check"] != "1" ) {
header("Location: http://example.com");
exit();
};
を記述すると、
PCからは、うまくいくけど、
携帯からでは、http://example.comに飛んでいってしまい
うまく動作しない。。。
983951:2010/02/15(月) 19:16:28 ID:hi3MtdSO
docomoはCookieが使えないのかorz
984nobodyさん:2010/02/15(月) 19:22:18 ID:???
次スレ立てる気なさそうだから立ててくる
985nobodyさん:2010/02/15(月) 19:27:22 ID:???
986nobodyさん:2010/02/15(月) 19:53:10 ID:hi3MtdSO
>>985
987nobodyさん:2010/02/15(月) 19:55:51 ID:???
URLなりhiddenなり持ちまわす方法は何通りかあるわけでクッキーである必要はない
988951:2010/02/15(月) 19:59:24 ID:hi3MtdSO
>>987
hiddenを調べてみます。


>>all
眠いので、明日に持ち越すかもしれません。
寝てしまったら、明日もよろしくお願いします。
989951:2010/02/15(月) 20:05:50 ID:hi3MtdSO
hiddenって、単に、画面に表示しないだけじゃないですか?
ソースをローカルに保存した場合、バレバレですよね?
990nobodyさん:2010/02/15(月) 20:14:58 ID:???
>>989
セッションIDを持ち回す方法がcookieである必要は無いということを
>>987氏は言いたいんだと思うよ
991nobodyさん:2010/02/15(月) 22:35:37 ID:???
992nobodyさん:2010/02/15(月) 23:06:28 ID:???
>>989
session.use_trans_sidとか調べていると良いかも

>>991
そういうのいらないから
993nobodyさん:2010/02/15(月) 23:15:49 ID:???
>>987=>>990=>>992

お前らがいらねーよ、糞質問はスルーしろks

あと俺様は>>991じゃねーからな
994nobodyさん:2010/02/15(月) 23:18:07 ID:???
>>951
とりあえず画像認証つければ全部解決じゃね

>>993
必死すぎワロタ
995nobodyさん:2010/02/16(火) 09:20:26 ID:???
バカは放置しなよ
どうせいつものチンピラだろ
996nobodyさん:2010/02/16(火) 09:39:35 ID:???
俺様をチンピラ呼ばわりか、日本人はksだな
俺様を馬鹿にするならPHP使うなよ。

997nobodyさん:2010/02/16(火) 09:41:58 ID:???
そっすね
998nobodyさん:2010/02/16(火) 10:31:51 ID:???
そろそろ質問いいですかね?
999nobodyさん:2010/02/16(火) 10:40:27 ID:???
どんとこい
1000nobodyさん:2010/02/16(火) 10:53:18 ID:???
だが断る








1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。