doulei6778
2016-10-25 20:54
浏览 40
已采纳

cURL不使用GET var和fopen - PHP

I open test1.php in my browser, which should call test2.php with the GET variable id in the url which in turn should append the id and time to a local text file called test1.txt

But it doesn't work.

If I call test2.php directly with the GET var it works just fine - http://www.example.com/test2.php?id=123456 - but it doesn't work when I load test1.php in my browser.

test1.php

curl_setopt_array(
$ch, array(
CURLOPT_URL => 'http://www.example.com/test2.php?id=123456',
CURLOPT_RETURNTRANSFER => 0
));

curl_exec($ch);

test2.php

if(!isset($_GET['id'])) {
  die();
}

$ID = (int)$_GET['id'];

$myfile = fopen("test1.txt", "a") or die();
$txt = $ID . " - " .time() . "
";
fwrite($myfile, $txt);
fclose($myfile);

Is there a security measure in php to prevent this kind of action or am I just missing something really obvious here?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • douluo6626 2016-10-25 21:27
    已采纳

    You need to initialize $ch:

    $ch = curl_init();
    url_setopt_array(
        $ch, array(
            CURLOPT_URL => 'http://www.example.com/test2.php?id=123456',
            CURLOPT_RETURNTRANSFER => 0
    ));
    
    curl_exec($ch);
    
    点赞 打赏 评论
  • doupuxuan5784 2016-10-25 20:58

    If I am not wrong, you are supposed to call test2.php, but in the code I see that you are calling the same file.

        curl_setopt_array(
        $ch, array(
        CURLOPT_URL => 'http://www.example.com/test2.php?id=123456',
        CURLOPT_RETURNTRANSFER => 0
        ));
    

    Should work.

    点赞 打赏 评论

相关推荐 更多相似问题