首页 > 解决方案 > 如何在 localhost 上提交我的代理和名称

问题描述

如果我提交表单,我想register.php获取我提交的代理和名称client.php

如果我不使用action='register.php',那么它会打印我提交的代理但不打印名称。

但是,如果我使用action='register.php'将表单发布到register.php然后它打印我的本地主机IP: 127.0.0.1而不是我提交的代理。

我不知道为什么当我register.phpaction=''标签中使用 curl 请求时没有提交我的代理。

if(!isset($_GET['name'])){

echo "<form class='' method='get' action='register.php'>
    
    <input id='cat' type='text' name='name' maximum='10' placeholder='Enter Name' autocomplete='off' required></input>
   <input id='cat' type='text' name='proxy' placeholder='Enter Your Proxy ' autocomplete='off'></input>
    <input class='button' type='submit' value='Submit'></input>
    </form>";
    
    }

if(isset($_GET['name'])){

        $number = $_GET['name'];
        $proxy = $_GET['proxy'];

        
    $headers['CLIENT-IP'] = $proxy;

    $headers['X-FORWARDED-FOR'] = $proxy;
    
    $headerArr = array();
    
    Foreach( $headers as $n => $v ) {
    
    $headerArr[] = $n .':' . $v;
    
    }


Ob_start();

$ch = curl_init();

Curl_setopt ($ch, CURLOPT_URL, "http://localhost/register.php");

Curl_setopt ($ch, CURLOPT_HTTPHEADER , $headerArr ); //Structure IP

Curl_setopt( $ch, CURLOPT_HEADER, 0);

#Curl_setopt( $ch, CURLOPT_POST, 1);

#Curl_setopt( $ch, CURLOPT_POSTFIELDS, $data);

Curl_setopt( $ch, CURLOPT_VERBOSE, true);

Curl_exec($ch);

Curl_close ($ch);

$out = ob_get_contents();

Ob_clean();

Echo $out;
}


这是我的 register.php

我从 client.php 提交的名称和代理应该打印在这里。


Function GetIP(){

if(!empty($_SERVER["HTTP_CLIENT_IP"]))

$cip = $_SERVER["HTTP_CLIENT_IP"];

else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))

$cip = $_SERVER["HTTP_X_FORWARDED_FOR"];

else if(!empty($_SERVER["REMOTE_ADDR"]))

$cip = $_SERVER["REMOTE_ADDR"];

else

$cip = "Unable to get!";

return $cip;

}

echo"IP: ". GetIP (). "
"; 


$name = $_GET['name'];

echo $name

结果是

Ip: 127.0.0.1 \\ here I want to print the proxy I have submitted
Rohan

标签: phpformscurl

解决方案


推荐阅读