Możesz napisać swój login PHP jak,
<?php
// if PHP > 5.4: if (PHP_SESSION_NONE == session_status()) {
if ('' == session_id()) {
session_start();
}
if (isset($_SESSION['expires_by'])) {
$expires_by = intval($_SESSION['expires_by']);
if (time() < $expires_by) {
$_SESSION['expires_by'] = time() + intval($_SESSION['expires_timeout']);
} else {
session_destroy();
}
}
if (!isset($_SESSION['username'])) {
Header('Location: ' . $_SERVER['REQUEST_URI']);
exit();
}
?>
Następnie, aby kliknąć adresy URL, możesz użyć jQuery i AJAX. Powinieneś zadeklarować klasę taką jak „link-block” w swoim CSS i pisać adresy URL w ten sposób
echo '<div class="link-block">'.$row['url'].'</div>';
i dodaj obsługę kliknięć do tych DIV w JavaScript onReady strony, po dołączeniu skryptów jQuery:
$('.link-block').on('click', function(e) {
$.post('/increase-points.php', { }, function(retval){
if (retval.newpoints) {
$('#point-block').html(retval.newpoints);
}
});
});
Program obsługi punktu wzrostu musi otworzyć sesję, która jest tym samym kodem, co powyżej (abyś mógł umieścić go w zewnętrznym pliku "session.php") i otworzyć połączenie z bazą danych (kolejny plik ...), następnie:
UPDATE usertable SET points = points + 1 WHERE user_id = {$_SESSION['user_id']};
lub jeśli masz tylko nazwę użytkownika (upewnij się, że jest poprawnie zmieniona)
...WHERE username = '{$escapedSessionUsername}';
Przy okazji muszę dodać standardowy mysql_*
wyłączenie odpowiedzialności
.
Następnie możesz zwrócić bieżące punkty do wyświetlenia do DIV o identyfikatorze "points-block":
You have <span id="points-block"></span> points.
zwracając je w JSON po zapytaniu o nie z bazy danych (lub możesz zachować je w sesji i zaktualizować zarówno bazę danych, jak i sesję; oszczędza to jedno zapytanie)
// This in /update-points.php
$retval = array('newpoints' => $updated_points);
Header('Content-Type: application/json;charset=utf8');
die(json_encode($retval));
Możesz to zrobić również na inne sposoby, ale nie widziałem kotwicy w twoim linku div, więc myślę, że potrzebujesz czegoś dynamicznego, co oznacza głównie AJAX.