2016-04-07 21 views
1

Im PHPカールを使用してウェブサイト名を保存するページ名。ユーザーがデータベース内のIPアドレスをクリックしただけですが、問題のカールは正しいデータと2つのリクエストを自動的に送信しますindex.phpのページ名、私は2番目のリクエストを中止したいだけです。curlが1回実行した後、同じページの他のクリックまでカールしないことを意味します。私のdiscriptionが私のエラーを見つけるのを助けてくれることを願います。 、ここに私のコードです。PHP curlが自動的に2つのリクエストを送信する

**This IS My Curl Code** 


$wb_nm = $_SERVER[HTTP_HOST]; 
$pg_nm = $_SERVER[PHP_SELF]; 
$usr_ip = $_SERVER[REMOTE_ADDR]; 
$pg_nm_ultr = trim($pg_nm , '/'); 

$n_url = "localhost/curl/new_page.php"; 

$data = array(
"varhost" => $wb_nm, 
"varpage" => $pg_nm_ultr, 
"varip" => $usr_ip 
); 

$post = curl_init(); 

curl_setopt($post, CURLOPT_URL, $n_url); 

curl_setopt($post, CURLOPT_POSTFIELDS, $data); 

curl_setopt($post, CURLOPT_RETURNTRANSFER, false); 

$result = curl_exec($post); 

curl_close($post); 

?> 



**And This Is new_page.php** 



if(isset($_POST['varhost']) && isset($_POST['varpage']) && isset($_POST['varip'])) 
{ 
    $web_name = $_POST['varhost']; 
    $page_name_ulter = $_POST['varpage']; 
    $user_ip = $_POST['varip']; 

    define("DB_HOSTNAME", "localhost"); 

    define("DB_USER", "root"); 

    define("DB_PASS", ""); 

    define("DB_DB", "pan"); 

    $connection = mysqli_connect(DB_HOSTNAME, DB_USER, DB_PASS, DB_DB); 
    if(isset($connection)){ 
     $query = "SELECT * FROM tbl_agencies WHERE weblink = '".$web_name."'"; 
     $result = mysqli_query($connection , $query); 
     if($result){ 
     while($row = mysqli_fetch_array($result)){ 
      if(isset($row)) 
      { 
      $D_id = $row['domain_id']; 
      $D_name = $row['website']; 
      if($D_id == 0) 
      { 
      return false; 
     } 
    } 
    else 
    { 
    } 
    break; 
} 
} 
} 

$date_date = date('Y-m-d'); 
$time_stamp = date("H:i:s"); 

$query_Code = "INSERT INTO user_details (website_domain_id , website_domain_name , page_clicked , user_IP , access_date , access_time) VALUES ('".$D_id."','".$D_name."' , '".$page_name_ulter."' , '".$user_ip."' , '".$date_date."' , '".$time_stamp."')"; 

$result_Code = mysqli_query($connection , $query_Code); 
if($result_Code) 
{ 
    mysqli_close($connection); 

} 
} 
?> 

答えて

0

curl_setopt($post, CURLOPT_POSTFIELDS, $fields);では、フィールドを連想配列として送信できます。だから、このコード:

$fields = ''; 

foreach($data as $key => $value) { 
    $fields .= $key . '=' . $value . '&'; 
} 
rtrim($fields, '&'); 

は実際にcurl_setopt($post, CURLOPT_POSTFIELDS, $fields);

curl_setopt($post, CURLOPT_POSTFIELDS, $data); 
+0

なり申し訳ありませブロ、このトリックは に動作していないとしても、私はこれが今 私のコードで、非常に私のカールコードを変更するような必要はありません<?php /* USER_DETAILS CURL CODE */ $ wb_nm = $ _SERVER [HTTP_HOST]; $ pg_nm = $ _SERVER [PHP_SELF]; $ usr_ip = $ _SERVER [REMOTE_ADDR]; $ pg_nm_ultr = trim($ pg_nm、 '/'); $ n_url = "localhost/curl/new_page.php"; $ data = array( "varhost" => $ wb_nm、 "varpage" => $ pg_nm_ultr、 "varip" => $ usr_ip ); $ post = curl_init(); curl_setopt($ post、CURLOPT_URL、$ n_url); curl_setopt($ post、CURLOPT_POSTFIELDS、$ data); curl_setopt($ post、CURLOPT_RETURNTRANSFER、false); $結果= curl_exec($ post); curl_close($ post); ?> –

関連する問題