2016-04-07 15 views
1

Im Sadece web sitenin kullanıcı adı tıklandığında ve ip adresi veritabanında saklamak için web sayfası adı sayfa adı kaydetmek için PHP curl kullanma, ancak sorun otomatik olarak doğru verileri ve diğer biri ile otomatik olarak 2 istek göndermek index.php sayfa adı, sadece ikinci isteği iptal etmek istiyorum, curl bir kez yürütürse o zaman aynı sayfada başka bir tıklama kadar curl tarafından istek yok anlamına gelir, benim benim hata benim hatamı bulmak için yardımcı olacaktır umuyoruz İşte benim kodum.PHP curl otomatik olarak iki istek gönderiyor

**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); 

} 
} 
?> 

cevap

0

curl_setopt($post, CURLOPT_POSTFIELDS, $fields);'da alanları birleştirici bir dizi olarak gönderebilirsiniz. Yani bu kodu:

$fields = ''; 

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

aslında curl_setopt($post, CURLOPT_POSTFIELDS, $fields);

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

Maalesef Bro olur, öyle ki gerekli değildir, bu hile çalışmıyor Hatta ben, bu benim Kod şimdi olduğunu çok benim Curl kod değiştirdi $ wb_nm, "varpage" => $ pg_nm_ultr, "varip" => $ usr_ip ); $ post = curl_init(); curl_setopt ($ post, CURLOPT_URL, $ n_url); curl_setopt ($ gönderi, CURLOPT_POSTFIELDS, $ data); curl_setopt ($ post, CURLOPT_RETURNTRANSFER, false); $ result = curl_exec ($ post); curl_close ($ gönderi); ?> –