@veryYoung

Счетчик кликов?

на просторах интернета был найден замечательный скрипт, счетчик кликов, с использованием cookie, всё отлично работает, число нажатий записывает в .txt файл, как его переделать, чтоб запись счетчика производилась в базу wordpress посредством update_option( 'count', $get_count ); get_option( 'count' );?

if (isset ($_POST['url'])) {
    $fn = $_SERVER['DOCUMENT_ROOT'] . $_POST['url'];
    if (file_exists($fn)) {
      $f = fopen($fn, "r+"); 
      if (flock($f, LOCK_EX)) {
        $fr = fread($f, filesize($fn));
        $pattern = '/(<output id="statlike">)(\d+)(<\/output>)/i';
        $line_ok = preg_match($pattern, $fr, $matches);
        if($line_ok == 1) { 
          $m = $matches[2] + 1;
          $fr = preg_replace($pattern, '${1}'.$m.'$3', $fr, 1);
          rewind($f);
          ftruncate($f, 0);
          fwrite($f, $fr);
        }
      echo $m;
      flock($f, LOCK_UN);
      }
      fclose($f); 
    }
  }


<a href="#" id="like">нажали <output id="statlike">0</output> раз</a>


document.getElementById('like').addEventListener('click', function(e){
  if (window.XMLHttpRequest && localStorage.getItem('like') != location.pathname) {
    var http = new XMLHttpRequest();
    http.open('POST', 'stat.php');
    http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    http.addEventListener('readystatechange', function() {
      if (this.readyState == 4 && this.status == 200) {
        document.getElementById('statlike').innerHTML = this.responseText;
      }
    });
    http.send('url=' + location.pathname); 
    localStorage.setItem('like', location.pathname); 
  }
});
  • Вопрос задан
  • 500 просмотров
Пригласить эксперта
Ответы на вопрос 1
@glagolew059
frontend developer
Наверное типо такого
if (isset ($_POST['url'])) {
    $new_count = (int)get_option( 'count' ) + 1;
    update_option( 'count', $new_count ); 
    ....
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы