Puoi scrivere il tuo login PHP come,
<?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();
}
?>
Quindi per fare clic sugli URL potresti forse usare jQuery e AJAX. Dovresti dichiarare una classe come "link-block" nel tuo CSS e scrivere gli URL in questo modo
echo '<div class="link-block">'.$row['url'].'</div>';
e aggiungi un gestore di clic a quei DIV nel Javascript onReady della pagina, dopo aver incluso gli script jQuery:
$('.link-block').on('click', function(e) {
$.post('/increase-points.php', { }, function(retval){
if (retval.newpoints) {
$('#point-block').html(retval.newpoints);
}
});
});
Il gestore del punto di aumento deve aprire la sessione, che è lo stesso codice di cui sopra (quindi puoi inserirlo in un include esterno "session.php") e aprire la connessione al database (un altro include...), quindi:
UPDATE usertable SET points = points + 1 WHERE user_id = {$_SESSION['user_id']};
o se hai solo un nome utente (assicurati che sia correttamente sottoposto a escape)
...WHERE username = '{$escapedSessionUsername}';
A proposito, devo aggiungere il standard mysql_*
dichiarazione di non responsabilità
.
Dopodiché, potresti restituire i punti correnti da visualizzare in un DIV con id "punti-blocco":
You have <span id="points-block"></span> points.
restituendolo in JSON dopo averli interrogati dal database (oppure puoi tenerli in sessione e aggiornare sia il DB che la sessione; ti salva una query)
// This in /update-points.php
$retval = array('newpoints' => $updated_points);
Header('Content-Type: application/json;charset=utf8');
die(json_encode($retval));
Puoi farlo anche in altri modi, ma non ho visto alcun anchor nel tuo link div, quindi immagino che tu voglia qualcosa di dinamico, il che significa principalmente AJAX.