Ho tentato di creare una classe ( contaclick ) che mi aggiungesse +1 alla voce click del mio db per ogni click su un prodotto.
Faccio arrivare l'id del prodotto selezionato tramite get es: www.miosito.it/paginaricevente.php?id=1
la ricevo così..
La classe è la seguente.. cerco di commentarla così da spiegare come ho operato..
Ma avviato il tutto mi appare la pagina bianca.. ma non procede al reindirizzamento ne all'update dei valori nel db.. Secondo voi perchè??
Grazie per le eventuali risposte
Faccio arrivare l'id del prodotto selezionato tramite get es: www.miosito.it/paginaricevente.php?id=1
la ricevo così..
PHP:
<?php
include 'classi.php';
$id = $_GET['id'];
$addclickclass = new Contaclick();
$addclickclass->addclick($id);
?>
La classe è la seguente.. cerco di commentarla così da spiegare come ho operato..
PHP:
/*Inizio classe contaclick*/
Class Contaclick {
function addclick($id) {
$this->id = $id; // setto l'id
$this->ip = $_SERVER['REMOTE_ADDR']; // setto l' ip che mi servirà dopo per un controllo sui click
include 'db/connection.php'; // Posso includere così?? Primo dubbio ..
try
{
$sql = "SELECT COUNT(*) FROM prodotti WHERE id = '".$this->id."' AND ip != '".$this->ip."'"; /* seleziono e conto tutti i record dove l'id è uguale a quello passato e l'ip non è uguale a quello attualmente in uso.. così evito che qualcuno che ha già cliccato venga ricontato..*/
$result = $pdo->query($sql);
$final = $result->fetch();
}
catch (PDOException $e)
{
$error = 'Error: ' . $e->getMessage();
include 'error.html.php';
exit();
}
if ($final[0] > 0){ // se esiste quindi è maggiore di 0 ..
include 'db/connection.php';
try
{
$sql = 'SELECT linkprod FROM prodotti WHERE id = "'.$this->id.'"'; // mi prelevo il suo link
$result = $pdo->query($sql);
}
catch (PDOException $e)
{
$error = 'Error: ' . $e->getMessage();
include 'ERRORDB/outputpage.php';
exit();
}
foreach ($result as $row)
{
$prodchange[] = array(
'id' => $row['id'],
'linkprod' => $row['linkprod']
);
}
}
if ($prodchange[id] > 0){ // Se ancora l'id è maggiore di 0..
$this->link = $prodotto['linkprod']; // setto il link
include 'db/connection.php';
try
{
$sql = 'UPDATE prodotti SET // provo ad aggiornare i click aggiungendone uno e aggiorno anche l'ip ( che di defoult è 0 )
click = click + 1,
ip = "'.$this->ip.'"
WHERE id = "'.$this->id.'"';
$pdo->query($sql);
}
catch (PDOException $e)
{
$error = 'Errore aggiornamento click prodotti.';
include 'db/ERRORDB/outputpage.php';
exit();
}
header("location: ". $this->link);
exit();
} else { // se l'id non è maggiore di 0 quindi è un utente che ha fatto un secondo click reindirizza senza calcolare il click..
header("location: ". $this->link);
}
}
}
/* fine classe contaclick*/
Ma avviato il tutto mi appare la pagina bianca.. ma non procede al reindirizzamento ne all'update dei valori nel db.. Secondo voi perchè??
Grazie per le eventuali risposte