Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP注入cookie不会产生相同的cookie_Php_Http_Cookies_Http Headers_Setcookie - Fatal编程技术网

使用PHP注入cookie不会产生相同的cookie

使用PHP注入cookie不会产生相同的cookie,php,http,cookies,http-headers,setcookie,Php,Http,Cookies,Http Headers,Setcookie,我试图制作一个PHP脚本,通过先从文件中读取cookies来将cookies设置到浏览器中。文件中有一段HTTP头“Cookie:x=foo;y=bar;etc”。脚本对字符串进行了清理,因此我们只得到变量名(x)和变量值(foo)。问题是,当我使用Wireshark从文件中设置cookie时,我看到了发送到broser的变量的精确值。当我看到浏览器发送给页面的cookie时,它们是不同的,即我设置cookie x=foo;,然后浏览器将其作为Cookie:x=bar发送回页面。你知道这可能是什

我试图制作一个PHP脚本,通过先从文件中读取cookies来将cookies设置到浏览器中。文件中有一段HTTP头“Cookie:x=foo;y=bar;etc”。脚本对字符串进行了清理,因此我们只得到变量名(x)和变量值(foo)。问题是,当我使用Wireshark从文件中设置cookie时,我看到了发送到broser的变量的精确值。当我看到浏览器发送给页面的cookie时,它们是不同的,即我设置cookie x=foo;,然后浏览器将其作为Cookie:x=bar发送回页面。你知道这可能是什么原因吗?当我使用Greasemonkey脚本注入cookies时,一切都很好。 这是我的密码:

<?php
    function inject($what)
    {
        for($i=0;$i<count($what);$i++)
        {
            $name = $what[$i][0];
            echo "injecting cookie named \"$name\" .... <br> ";
            setrawcookie($what[$i][0], $what[$i][1]);
        }
    echo 'all cookies injected properly, ready';
    }

    $newcook=file("/home/todor/cook.txt");
    echo '<pre>';
    for ($i=0; $i<count($newcook); $i++)
        $newcook[$i] = str_replace('Cookie: ', '', $newcook[$i]);      
    $newcook = explode('; ', $newcook[0]);

    for($i=0;$i<count($newcook);$i++)
        $newcook[$i] = explode('=', $newcook[$i]);
    for($i=0;$i<count($newcook);$i++)
        echo 'cookie variable name "'.$newcook[$i][0].'" with value of "'.$newcook[$i][1].'"<br>';

    echo '</pre>';
    inject($newcook);
    ?>

---------------Cookies being set----------------------

Set-Cookie: MoodleSession=h0j51hvrkvu30mdeu3d9321thit8c8pdkle66llr2lipj80chjb0
Set-Cookie: __utma=16796069.1074685784.1352477410.1352477410.1352477410.1
Set-Cookie: __utmc=16796069
Set-Cookie: __utmz=16796069.1352477410.1.1.utmcsr

---------------Cookies being sent to the server -----------

Cookie: MoodleSession=hn92mn8vhl6kvg7f8qogpgm8reeisnoope27o7q3ivrecnr84gb1; __utma=16796069.1720416199.1352484234.1352484234.1352484234.1; __utmb=16796069.1.10.1352484234; __utmc=16796069; __utmz=16796069.1352484234.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)

---------------正在设置Cookies----------------------
设置Cookie:MoodleSession=h0j51hvrkvu30mdu3d9321thit8c8pdkle66llr2lipj80chjb0
设置Cookie:uu utma=16796069.1074685784.1352477410.1352477410.1352477410.1352477410.1
设置Cookie:\uuuUTMC=16796069
设置Cookie:uu utmz=16796069.1352477410.1.1.utmcsr
---------------正在将Cookies发送到服务器-----------
Cookie:MoodleSession=hn92mn8vhl6kvg7f8qogpgm8reeisnoope27o7q3ivrecnr84gb1__utma=16796069.1720416199.1352484234.1352484234.1352484234.1__utmb=16796069.1.10.1352484234__utmc=16796069__utmz=16796069.1352484234.1.1.utmcsr=(直接)| UTMCN=(直接)| utmcmd=(无)

cookie不仅仅是名称=值对。我想说,如果你把整个cookie行添加到你的问题中,那么问题就会变得更清楚,这会很有用+1用于检查wireshark。感谢提示,现在输出在代码中:)这实际上并没有回答您的问题,但为什么要在同一数组上循环四次,而不是循环一次,对每个项目执行四个操作?好的,将
ini\u集(“显示错误”,1);错误报告(~0)位于PHP代码的最顶端。很可能是在发送了邮件头后,您正在回音。此错误报告将使其可见。添加“ini\u集('display\u errors',1')后,我不会再获得任何输出;错误报告(~0);'线