ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文

  メンテナンス 前画面に戻る

対象スレッド 件名: loaddir.php
名前: lightbox
処理選択
パスワード

件名 loaddir.php
名前 lightbox
コメント
@DIV
main.php から呼び出された場合は、ローカルで実行する為の VBScript
のコードを作って、header( "Location: $flname" ); でリダイレクトして、
ダウンロードさせます。

この時、セッション ID を埋め込んでおいて、Msxml2.ServerXMLHTTP.3.0 で
直接自分自身と通信して、選択したディレクトリ情報をセッションに保存します
@END

@DIV
<?
mb_language( "ja" );
mb_internal_encoding("UTF-8");

if ( $_GET['sessionget'] == 'y' ) {
	ini_set("session.use_trans_sid", "1");
	ini_set("session.use_cookies", "0");
	session_start();
	$_SESSION['dir'] = str_replace("\\\\","\\", $_GET['dir']);

$_SESSION['dir'] = mb_convert_encoding( $_SESSION['dir'], "SHIFT_JIS", "UTF-8" );
print "OK" . $_SESSION['dir'];
}
else {
	session_start();
	$sid = session_id();
	$str = <<<VBS
' **********************************************************
' オブジェクト作成
' **********************************************************
Set Shell = CreateObject( "Shell.Application" )

Set obj = Shell.BrowseForFolder( 0, strTitle, 11, 0 )
if obj is nothing then
	Wscript.Quit
end if
if not obj.Self.IsFileSystem then
	MsgBox( "ファイルシステムではありません" )
	Wscript.Quit
end if

Set sc = CreateObject("ScriptControl")
sc.Language = "JScript"
Set js = sc.CodeObject

strUrl = "http://{$_GET['domain']}{$_SERVER['PHP_SELF']}"
strUrl = strUrl & "?PHPSESSID={$sid}&sessionget=y&dir=" & js.encodeURI(obj.Self.Path)

Set objSrvHTTP = CreateObject("Msxml2.ServerXMLHTTP.3.0")

on error resume next
Call objSrvHTTP.Open("GET", strUrl, False )
if Err.Number <> 0 then
	MsgBox( "HTTP エラーです" )
	Wscript.Quit
end if
on error goto 0

objSrvHTTP.Send

VBS;

	$flname = "getdir" . session_id() . ".vbs";
	file_put_contents($flname,$str);
	header( "Location: $flname" );
}
?>
@END