2016-08-26 5 views
0

У меня есть якорь тег:Как подсчитывать клики привязанного тега?

<a href="abc.php?a=1">Count Click</a> 

Я хочу, чтобы подсчитать, сколько раз эта ссылка была нажата.

В abc.php я использую следующий код, но он не работает:

$b = $_GET['a']; 
$b += 1; 
echo "Number of Times Clicked=".$b; 
+0

хранить его в переменной сеанса – JYoThI

+2

Возможная [этой] (http://stackoverflow.com/questions/4972290/counting-clicks-on-anchor-tag) ** ИЛИ ** Пойдите с [this] (http://stackoverflow.com/questions/26133012/auto-increment-when-clicked-an-anchor) – Virb

+1

Не храните количество кликов на URL-адресе, каждый может испортить его в своем браузере. – RiggsFolly

ответ

0

EDIT Используйте POST вместо;

$a = intval($_POST['a']); 

session_start(); 
$b = intval($_SESSION['clickCount']); 
$b += $a; 
$_SESSION['clickCount'] = $b; 
session_write_close(); 
+0

P.S. Перед обновлением убедитесь, что вы выполняете несколько пустых проверок. –

0

Вы должны сохранить значение этой переменной где-нибудь, потому что при отправке запроса GET страница освежает и ваше значение отсутствует.

Вы можете сохранить это значение в сеансе. См. http://php.net/manual/features.sessions.php или файлы cookie см. http://php.net/manual/features.cookies.php или в некоторой базе данных на сервере.

И затем получить его оттуда.

0

Прежде всего рекомендуем вам для хранения значений в $_SESSION, а также использовать $_POST

Почему $_SESSION & $_POST?, потому что никто не может испортить ваше приложение.

Базовый пример (PHP):

<?php 
session_start(); 
$varCount = 0; 
if(isset($_POST['submit'])){ 
    $var = intval($_POST['var']); 
    $addVar = $var+1; 
    $_SESSION['newVar'] = $addVar; 
} 
else{ 
    unset($_SESSION['newVar']); 
} 
if(isset($_SESSION['newVar'])){ 
    $varCount = intval($_SESSION['newVar']); 
    echo $varCount; 
} 
?> 

HTML:

<form method="post" action=""> 
    <input type="hidden" name="var" value="<?=$varCount?>"> 
    <input type="submit" name="submit" value="Add"> 
</form>