【PHP】下らねぇ質問はID出して書き込みやがれ 92
リファラ
954 :
nobodyさん:2010/02/15(月) 09:31:23 ID:dO9qGZvq
各メニュークリックしたときにそのページ全体が別ページに飛ぶのではなく
ページの内容部分だけ外部ファイルを読み込んで更新するはどうしたら良いですか?
956 :
nobodyさん:2010/02/15(月) 09:39:11 ID:hi3MtdSO
>>952 セッションについて、勉強してみます。
>>953 携帯からのアクセスも想定しているので、
リファラは使えません。
957 :
951: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から 飛んできているのか否かって判別できるのでしょうか?
>>957 htmlからか
リファもダメなら無理じゃね?
何を飛ばすかしらんけどp.phpでバリデーションをしっかりするしかないかな多分
959 :
951:2010/02/15(月) 10:02:01 ID:hi3MtdSO
>>958 なるほど。
一応、p.phpでは、入力の値のチェックはしているので、
変な挙動はしないのですが、なにか気持ちが悪いので、
この質問のようなことができないか悩んでいるところです。
>>957 a.htmlからimgタグかscriptタグでPHPファイルを読み込んでセッションセットすればいけると思うよ
会員制サイトの自動ログインとか普通に行われてるんだし
別に意識するようなことじゃなかろう
962 :
951: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を得るのは可能ですか?
私、トンチンカンな事、言ってますか?
>>962 s.php
session_start();
$_SESSION["check"] = 1;
p.php
session_start();
$checked = isset($_SESSION["check"]);
unset($_SESSION["check"]);
みたいな感じかな
964 :
nobodyさん:2010/02/15(月) 11:01:47 ID:jrDRH19y
DNSが死んでると、mb_send_mailがアホみたいに遅くなる。
どうにかならんかね。
965 :
951:2010/02/15(月) 11:08:48 ID:hi3MtdSO
>>963 ありがとうございます。
少し、考えてみました。
セッションの変数名と値は、推測できなさそうな物を使えばいいかと。
s.phpを直接読まれても、ソースは見れないから。
で、どうしようかなぁ。。。
鯖特異な何かをMD5とかshaとかで暗号化すれば、いいのかなぁ〜
って思ってます。
966 :
951:2010/02/15(月) 11:09:49 ID:hi3MtdSO
あ、特異な変数名は無理ですね。
>>965 csrf_token()で$csrf_tokenというランダム文字列つくってセッションにセット
飛んだページでcsrf_valid()でバリデートしてtokenを削除すれば暗号とか関係ない
ローカルに保存してまで改ざんしたい奴には無意味な対処だけどいいのかい
969 :
951:2010/02/15(月) 11:56:47 ID:hi3MtdSO
>>967 csrfなんたら、調べてみます。
ありがとうございます!
970 :
951:2010/02/15(月) 11:58:00 ID:hi3MtdSO
>>968 え、無意味なんですか?
意味ある対処だと思って、考えていたんですが。
971 :
nobodyさん: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と表示されないのですが、どのようにすれば表示されるようになるのでしょうか?
なにぶん経験がないものでおかしな質問になっているかもしれませんがアドバイスいただけると助かります。
972 :
951:2010/02/15(月) 12:03:48 ID:hi3MtdSO
>>967 csrf_validで、ググると、Hit0件。
>>971 /php の後にスペースが入っている。
>>971 何がしたいのかわからんが、
require("err.php");でいいんじゃない?
どうしてもexecつかうなら
exec("/usr/bin/php /var/www/html/err.php", $result);
print_r($result);
>>971 echo exec("/usr/bin/php /var/www/html/err.php");
こんな書き方でも。
でも
>>974さんがいうようにincludeしたほうがいい
977 :
971: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を使用して対応してみたいと思います。
ありがとうございました。
>>970 ブラウザがやってる通りの手順でHTTP通信を真似されたら簡単に突破されるし、
それ以前にフォームのDOMをいじられても検出できないでしょう
改ざんを前提にして入出力の検証コードに時間を割くか、
可能ならセッションが途切れてしまう設計から見直した方が良いよ
んーー、結局、解決していないことに気づいた。
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が動くように、変更すれば、解決かな。。。
980 :
951:2010/02/15(月) 17:49:23 ID:hi3MtdSO
981 :
951:2010/02/15(月) 17:54:37 ID:hi3MtdSO
>>978 > 改ざんを前提にして入出力の検証コードに時間を割くか、
> 可能ならセッションが途切れてしまう設計から見直した方が良いよ
難しくて理解できませんです。。。
982 :
951: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に飛んでいってしまい、
うまく動作しない。。。
983 :
951:2010/02/15(月) 19:16:28 ID:hi3MtdSO
docomoはCookieが使えないのかorz
次スレ立てる気なさそうだから立ててくる
986 :
nobodyさん:2010/02/15(月) 19:53:10 ID:hi3MtdSO
URLなりhiddenなり持ちまわす方法は何通りかあるわけでクッキーである必要はない
988 :
951:2010/02/15(月) 19:59:24 ID:hi3MtdSO
>>987 hiddenを調べてみます。
>>all
眠いので、明日に持ち越すかもしれません。
寝てしまったら、明日もよろしくお願いします。
989 :
951:2010/02/15(月) 20:05:50 ID:hi3MtdSO
hiddenって、単に、画面に表示しないだけじゃないですか?
ソースをローカルに保存した場合、バレバレですよね?
>>989 セッションIDを持ち回す方法がcookieである必要は無いということを
>>987氏は言いたいんだと思うよ
>>989 session.use_trans_sidとか調べていると良いかも
>>991 そういうのいらないから
バカは放置しなよ
どうせいつものチンピラだろ
俺様をチンピラ呼ばわりか、日本人はksだな
俺様を馬鹿にするならPHP使うなよ。
そっすね
そろそろ質問いいですかね?
どんとこい
だが断る
1000
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。