Ziyaretçi benzersiz kimliği oluşturmak?

4 Cevap php

Bazı ziyaretçi kullanarak, çünkü şu anda mevcut olarak ben günlük dosyası adı yani logs/127.0.0.1.php olarak IP ziyaretçi kullanın ama bu enough olmadığını düşünüyorum, ziyaretçi benzersiz kimliği oluşturmak için plan ve log dosyası olarak adlandırılan PC için bir IP adresi paylaşmak.

The visitor log file itself as setting place of configuration of visitors itself, so I plan to add another unique ID to identify each different visitor so let's say the log file: logs/127.0.0.0.1-t3451dq.php, -t3451dq as unique ID so as long as visitor browsing on my website the unique log file as setting configuration for each user (because I use plain text)

Şu anda kullanabilirsiniz:

<?
$filename = "./logs/".$_SERVER['REMOTE_ADDR'].".php" ; //out put logs/127.0.0.1.php
$data stripcslashes($data);
// each Visitor configuration here...
// bla...bla...

/* Writing file configurations */
    $buat = fopen($filename, "w+");
    fwrite($buat, "$data");
    fclose($buat);
?>

bu yüzden $ dosya onların günlük dosyasının ismi olarak $ benzersiz kimliğini eklemek gerek. Nasıl bunu yapmak için herhangi bir fikir?

4 Cevap

Try uniqid.

Sen Kullanıcıların oturumda ya da bir tanımlama bu eşsiz kimliği saklayabilirsiniz.

Örnek (test değil)

session_start();
if(!isset($_SESSION['uniqueID']))
{
    $_SESSION['uniqueID'] = uniqid();
}
$filename = "./logs/".$_SESSION['uniqueID'].$_SERVER['REMOTE_ADDR'].".php" ;

Bir oturumu kullanarak aynı kullanıcı tarayıcısını (veya oturumu sona) kapatır eğer onlar yoksa ne istediğinizi olmayabilir ki, yeni bir kimlik almak anlamına gelecektir.

Eğer daha kalıcı izci istiyorsanız o zaman çerezleri kullanarak daha iyi olabilir, ve (hiçbir çerez varsa yeni bir kimlik oluşturmak) çerez kimliğini saklayabilir.

if(!isset($_COOKIE['uniqueID']))
{
    $expire=time()+60*60*24*30;//however long you want
    setcookie('uniqueID', uniqid(), $expire);
}
$filename = "./logs/".$_COOKIE['uniqueID'].$_SERVER['REMOTE_ADDR'].".php" ;

Eğer çerezleri / oturumunu kullanabilirsiniz yapamıyorsanız o zaman URL sorgu dizesi eg kimliği etrafında geçmek gerekebilir mypage.php? id = 35dfgdfg3434

Onun IP dışında bir şey ve o sayfayı girdiğinde ilk defa oluşturun. Bu benzersiz olmalıdır.

Iki basit seçeneğiniz var: uniqid ya da bir dosya oluşturarak konum olarak tempnam

Tempnam örnek:

function log($string, $userIP = null, $filename = null){
  // Check if filename exists
  if(!file_exists(LOG_PATH.$filename)){
    $filename = tempname(LOG_PATH, $userIP.' - ');
    if(!$filename){
      return false;
    }
  }
  // write log into file
  $file = file_put_contents($filename, $string);
  if($file === false || $file != strlen($string)){
    return false;
  }
  return $filename
}

bu tür kullanım için günlük dosyalarını kullanarak sadece bir veritabanına veri bu tür şant çok kolay, gereksizdir. Bu sadece geçici ise veriler daha sonra Cookies ve / veya Oturumlar kullanın