想实现的功能是:运行b.php 在 c.php的当中目录生成一个sb.txt文件文件内容为:http://baidu.com
但是运行之后得到的sb.txt文件是空的,请高手指点,我哪个地方错误,谢谢//////////////////////////////////////////////b.php内容如下///////////////////////////////////////////////////
<?php
function Post($url, $post = null)
{
$context = array();
if (is_array($post))
{
ksort($post);
$context['http'] = array
(
'method' => 'POST',
'header'=>"Content-type: application/x-www-form-urlencoded\r\n".
"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11\r\n" .
"Cookie: foo=123\r\n" .
"Referer:http://baidu.com\r\n" .
"\r\n",
'content' => http_build_query($post, '', '&')
);
}
return file_get_contents($url, false, stream_context_create($context));
}
$data = array
(
'sb'=>'sb'
);
echo Post('http://127.0.0.1/c.php', $data);
?>
//////////////////////////////////////////////c.php内容如下///////////////////////////////////////////////////
<?phpfunction getPreUrl()
{
if(@$_SERVER["HTTP_REFERER"])
{
return $_SERVER["HTTP_REFERER"];
}
return getenv("HTTP_REFERER");
}
echo $test = getPreUrl();
file_put_contents("sb.txt",$test);//此时如果调用b.php之后。生成的sb.txt文件的内容为:http://baidu.com则正确,但是我查看了一下是空的啊?为什么啊??>
但是运行之后得到的sb.txt文件是空的,请高手指点,我哪个地方错误,谢谢//////////////////////////////////////////////b.php内容如下///////////////////////////////////////////////////
<?php
function Post($url, $post = null)
{
$context = array();
if (is_array($post))
{
ksort($post);
$context['http'] = array
(
'method' => 'POST',
'header'=>"Content-type: application/x-www-form-urlencoded\r\n".
"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11\r\n" .
"Cookie: foo=123\r\n" .
"Referer:http://baidu.com\r\n" .
"\r\n",
'content' => http_build_query($post, '', '&')
);
}
return file_get_contents($url, false, stream_context_create($context));
}
$data = array
(
'sb'=>'sb'
);
echo Post('http://127.0.0.1/c.php', $data);
?>
//////////////////////////////////////////////c.php内容如下///////////////////////////////////////////////////
<?phpfunction getPreUrl()
{
if(@$_SERVER["HTTP_REFERER"])
{
return $_SERVER["HTTP_REFERER"];
}
return getenv("HTTP_REFERER");
}
echo $test = getPreUrl();
file_put_contents("sb.txt",$test);//此时如果调用b.php之后。生成的sb.txt文件的内容为:http://baidu.com则正确,但是我查看了一下是空的啊?为什么啊??>
=================================
<?php
function getPreUrl()
{
if(@$_SERVER["HTTP_REFERER"])
{
return $_SERVER["HTTP_REFERER"];
}
elseif($_SERVER["HTTP_REFERER__HTTP"])//试试这个
{
return "http:".$_SERVER["HTTP_REFERER__HTTP"];
}
return getenv("HTTP_REFERER");
}
echo $test = getPreUrl();
file_put_contents("sb.txt",$test);//此时如果调用b.php之后。生成的sb.txt文件的内容为:http://baidu.com则正确,但是我查看了一下是空的啊?为什么啊??>
Referer后面的冒号lz用的是中文里的都好于是乎。。
谢谢你的回答是正确的,可是我不明白如果为什么:"Cookie: foo=123\r\n" 中用中文的逗号,在c.php当中可以正常的获取
Cookie foo的真啊?请指教
没有啊,你的cookie的冒号没有问题啊?是英文的?其实你从代码上就可以看出来明显referer后面的冒号比cookie后面的大一个号^^中文就是牛冒号都比别人的大一号kaka