<!--?xml version="1.0" encoding="utf-8"?-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Language" content="ja" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<style type="text/css">
* { font-family: "ＭＳ ゴシック", Verdana, Arial, sans-serif; line-height: 1.5em; }
p { text-indent: 0em; }
table { border-collapse: collapse; }
td, th { border: 1px solid #000000; font-size: 75%; vertical-align: baseline; padding: 0.3em}
tr.outofcontrol { color: #cccccc; }
</style>
<title>エセ phpinfo();</title>
</head>
<body>
<h1>似非 phpinfo();</h1>
<img src="<?php print($_SERVER['PHP_SELF'] . '?=' . php_logo_guid()); ?>" alt="このテキストが表示されているということは、expose_php が false になっているかと..." />
<p>phpinfo が disable_functions(このサーバでは <em title="<?php print(strip_tags($_SERVER['SERVER_SIGNATURE'])); ?> における php_ini_loaded_file(); の出力"><?php print(php_ini_loaded_file()); ?></em>) に定義されている場合、phpinfo(); はエラーとなる。その代替として、このスクリプトはそれなりの情報を出力するものである。</p>
<p>TIPS : $_SERVER['PHP_SELF']<strong>?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000</strong> の<a href="<?php print $_SERVER['PHP_SELF']; ?>?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000">出力</a>。これで、phpinfo(); が出力される場合もある。phpcredits(); が出力されることも。</p>

<h2>function</h2>
<?php 
$info['phpversion'] =	phpversion();
$info['getlastmod'] = getlastmod();
$info['get_current_user'] =	get_current_user();
$info['getmyuid'] = getmyuid();
$info['getmygid'] = getmygid();
$info['getmypid'] = getmypid();
$info['getmyinode'] = getmyinode();
print('<table>');
print('<tr><th>function</th><th>val</th></tr>');
foreach($info as $k => $v){
	printf(
		'<tr><td>%s</td><td>%s</td></tr>',
		$k, htmlspecialchars($v)
	);
}
print('</table>');
	
?>
<h2>$_SERVER (定義済み変数)</h2>
<?php
print('<table>');
print('<tr><th>key</th><th>val</th></tr>');
foreach($_SERVER as $k => $v){
	printf(
		'<tr><td>%s</td><td>%s</td></tr>',
		$k, (!is_array($v)) ? htmlspecialchars($v) : htmlspecialchars(print_r($v, true))
	);
}
print('</table>');
print("\n");
?>
<p>※ $_SERVER['argv'] 値は配列のため、print_r による出力。</p>
<h2>get_loaded_extensions</h2>
<?php
print('<p>');
print(implode(', ', get_loaded_extensions()));
print('</p>');
print("\n");
?>
<h2>ini_get_all</h2>
<p>参考 : <a href="http://jp2.php.net/manual/ja/ini.list.php">php.ini ディレクティブのリスト</a></p>
<?php
$ini_get_all = ini_get_all();
ksort($ini_get_all);
print('<table>');
print('<tr><th>directive</th><th>global_value</th><th>local_value</th><th>access</th></tr>');
foreach($ini_get_all as $k => $v){
	printf(
		'<tr%s><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>',
		($v['access'] == 4) ? ' class="outofcontrol"' : '', $k, htmlspecialchars($v['global_value']), htmlspecialchars($v['local_value']), $v['access']
	);
}
print('</table>');
print("\n");
?>
<?php
$path2pear = dirname(__FILE__) . DIRECTORY_SEPARATOR .'PEAR-1.9.4'. DIRECTORY_SEPARATOR .'PEAR'. DIRECTORY_SEPARATOR;
ini_set('include_path', $path2pear .':'. ini_get('include_path'));
//require_once 'Archive/Zip.php';
?>
<hr />
<h1>おまけ : ファイルアップロード</h1>
<form action="<?php print($_SERVER['PHP_SELF']); ?>" method="post" enctype="multipart/form-data">
<dl>
<dt>upload file</dt>
<dd><input type="file" name="uploadfile" size="80" /></dd>
<dt>destination :</dt>
<dd><input type="text" name="dest_dir" size="80" value="<?php print(dirname(__FILE__) . DIRECTORY_SEPARATOR); ?>" /></dd>
</dl>
<input type="submit" value="upload" />
</form>
<?php
if(is_uploaded_file($_FILES["uploadfile"]["tmp_name"])){
	$dest_dir = rtrim($_POST['dest_dir'], DIRECTORY_SEPARATOR);
	$dest_file = $dest_dir . DIRECTORY_SEPARATOR . $_FILES['uploadfile']['name'];
	if(is_dir($dest_dir) && is_writable($dest_dir)){
		if(move_uploaded_file($_FILES["uploadfile"]["tmp_name"], $dest_file)){
			echo "<p>". $dest_file ." にアップロードしました。" ."</p>";
		}else{
			echo "<p>". $dest_file ." のアップロードに失敗しました。" ."</p>";
		}
	}else{
		echo "<p>". $_POST['dest_dir'] ." は書き込み不可もしくは有効なディレクトリ名ではありません。" ."</p>";
	}
	echo "<pre>";
	print_r($_FILES);
	echo "</pre>";
}else{
	echo "<p>";
	echo "ファイルを選択してください。";
	echo "</p>";
}
?>

</body>
</html>

