2016-04-07 2 views
1

Im Использование PHP curl для сохранения имени страницы имени веб-сайта, на котором пользователь только что нажал, и IP-адрес в моей базе данных, но проблема завитка отправляет 2 запроса автоматически с правильными данными, а в другом только что изменилась имя страницы в index.php, я хочу, чтобы прервать второй запрос просто, означает, что когда curl выполняется один раз, а затем запрос не зависает до другого щелчка на той же странице, надеюсь, что мое описание поможет вам узнать мою ошибку для меня , вот мой код.PHP curl автоматически отправляет два запроса

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

Sorry Bro, этот трюк не работает Даже я изменил свой Curl код очень много, это мой код в настоящее время $ 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); ?> –

Смежные вопросы