做了一个从静态页面抓取访客IP地址的小东西,如果静态页面为空的话还好,如果不为空的话无法显示静态页内容是怎么回事?附源码:[1.静态页]
<html>
<title>无标题文档</title>
<script src="3.php" runat="server"></script>
</head>
<!--此时body的内容为空,但如果放入内容不运行-->
<body></body>
</html>
附源码:[3.php]
<?php
$test = $_SERVER["REMOTE_ADDR"];
?>
var i =1;
var now = new Date();
function shijian(){
var year = now.getYear();
var month = now.getMonth()+1;
var day = now.getDate();
var hour = now.getHours();
var minute = now.getMinutes();
var second = now.getSeconds();
var shijian = year+"-"+month+"-"+day+"-"+hour+":"+minute+":"+second;
var yemian = window.location.href;;
var test = '<?php echo $test;?>';
var resoult = shijian+"页面:"+yemian+",IP="+ test;
document.write("<form name=\"sent\" method=\"post\" action=\"\">");
document.write("<input type=\"hidden\" id=\"name1\" name=\"name1\" value=\""+resoult+"\"\/>");
document.write("<\/form>");
//获取表单对象和用户信息值
var f = document.sent;
var name1 = f.name1.value;
//接收表单的URL地址
var url = "3.php"; var postStr = "name1="+ name1;
var ajax = false;
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest)
{ //Mozilla 浏览器
ajax = new XMLHttpRequest();
if (ajax.overrideMimeType)
{ //设置MiME类别
ajax.overrideMimeType("text/xml");
}
}
else if (window.ActiveXObject)
{ // IE浏览器
try
{
ajax = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
if (!ajax)
{ // 异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}
//通过Post方式打开连接
ajax.open("POST", url, true);
//定义传输的文件HTTP头信息
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//发送POST数据
ajax.send(postStr);
} <?php$name = $_POST['name1'];
$op=fopen('1.txt','a');
$value=$name;
fwrite($op,$value."\r\n");
fclose($op);
?> if(i==1){
window.onload = shijian;
}
<html>
<title>无标题文档</title>
<script src="3.php" runat="server"></script>
</head>
<!--此时body的内容为空,但如果放入内容不运行-->
<body></body>
</html>
附源码:[3.php]
<?php
$test = $_SERVER["REMOTE_ADDR"];
?>
var i =1;
var now = new Date();
function shijian(){
var year = now.getYear();
var month = now.getMonth()+1;
var day = now.getDate();
var hour = now.getHours();
var minute = now.getMinutes();
var second = now.getSeconds();
var shijian = year+"-"+month+"-"+day+"-"+hour+":"+minute+":"+second;
var yemian = window.location.href;;
var test = '<?php echo $test;?>';
var resoult = shijian+"页面:"+yemian+",IP="+ test;
document.write("<form name=\"sent\" method=\"post\" action=\"\">");
document.write("<input type=\"hidden\" id=\"name1\" name=\"name1\" value=\""+resoult+"\"\/>");
document.write("<\/form>");
//获取表单对象和用户信息值
var f = document.sent;
var name1 = f.name1.value;
//接收表单的URL地址
var url = "3.php"; var postStr = "name1="+ name1;
var ajax = false;
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest)
{ //Mozilla 浏览器
ajax = new XMLHttpRequest();
if (ajax.overrideMimeType)
{ //设置MiME类别
ajax.overrideMimeType("text/xml");
}
}
else if (window.ActiveXObject)
{ // IE浏览器
try
{
ajax = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
if (!ajax)
{ // 异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}
//通过Post方式打开连接
ajax.open("POST", url, true);
//定义传输的文件HTTP头信息
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//发送POST数据
ajax.send(postStr);
} <?php$name = $_POST['name1'];
$op=fopen('1.txt','a');
$value=$name;
fwrite($op,$value."\r\n");
fclose($op);
?> if(i==1){
window.onload = shijian;
}
ASP 以前用过这种,假如PHP也直接可以用,直接在3.php里面写入就完了,还加那么多JS干嘛??直接获取用户IP和当前页面地址,然后写到文本,都不用JS再提交,你这是多此一举
多此一举啊。而且你这种方法容易被黑。别人也可以向3.PHP发送内容。
如果非得用3.php,那么3.php的写法:
<?php$name = $_SERVER["REMOTE_ADDR"];
$op=fopen('1.txt','a');
$value=$name;
fwrite($op,$value."\r\n");
fclose($op);
?>