Contatore di click su link con redirect ogni 24 ore

Alessandro Le Mura

Utente Attivo
28 Apr 2013
74
0
0
www.glaucusgames.com
Premetto che me la cavo con Mysql, ho mischiato quest'altro linguaggio ma ke non conosco bene, ho scopiazzato qualche pezzo, un casino.. Se qualcuno legge attentamente capirà quello che voglio fare, solo che non riesco a farlo solo con mysql.. Mi manca un pezzo

Codice:
<?php

// include our configuration file
require '../mysql/configcounter.php';
$msg = "Sorry i was unable to find that link in my Database!"; // Message to show when link is not found
$URL_2 = "link"; // Column to look in
$Tbl_2 = "contatorepunti"; // Table to look in
$Clicks_2 = "punti"; // Column to update
$ip = $_SERVER['REMOTE_ADDR'];
$ora = time(); //momento visita

$connect = new PDO(DB_TYPE . ":host=" . DB_HOST . ";dbname=" . DB_NAME, DB_USER, DB_PASS);
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $connect->prepare("SELECT link FROM articoli WHERE id = :id");
$stmt->bindParam(':id', $_GET['id'], PDO::PARAM_INT);
$stmt->execute();
$URL_db = $stmt->fetch(PDO::FETCH_ASSOC);
$link = $URL_db[$URL_2];
if (empty($URL_db)) {
echo $msg;
exit;
}//empty($URL_db)

[COLOR="#FF0000"]$query_1 = mysql_query("SELECT * FROM contatorepunti WHERE titolo = '$link' AND ip = '$ip'");
if(mysql_num_rows($query_1)== 0){ //non ci sono record per quell'ip e quella pagina[/COLOR]
    
    $stmt = $connect->prepare("INSERT INTO $Tbl_2 (titolo, ip, punti, tempo) VALUES ('$link', '$ip', '3', '$ora')");
    $stmt->bindParam(':id', $_GET['id'], PDO::PARAM_INT);
    $stmt->execute();
    header('Location: ' . $link);
    exit;
		    
[COLOR="#FF0000"]}else{ //il record esiste

    $riga = mysql_fetch_array($query_1);

    $intervallo = ($ora - $riga['tempo'])/3600;

    if($intervallo > 24)[/COLOR]{ 
		
		$stmt = $connect->prepare("UPDATE $Tbl_2 SET $Clicks_2 =$Clicks_2 +3, tempo = $ora WHERE titolo = '$link' AND ip = '$ip'");
    $stmt->bindParam(':id', $_GET['id'], PDO::PARAM_INT);
    $stmt->execute();
    header('Location: ' . $link);
    exit;
		
    }
}

?>
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Faresti prima a spiegare cosa vorresti fare e dove incontri problemi.
 

Alessandro Le Mura

Utente Attivo
28 Apr 2013
74
0
0
www.glaucusgames.com
Allora c'è un motore di ricerca tipo google, una persona X cerca "smile". Risultati: "sito smile della persona Y", "sito smile della persona Z". La persona X clicca sul sito della persona Y e viene reinderizzata al suo sito, di conseguenza il sito della persona Y guadagna 1 click nella classifica. Fino a qui ci sono, il problema è ke se la persona X ricerca smile e clicca ancora una volta nel sito della persona Y, la persona Y guadagna un altro click, io sto cercando di implementare nel codice sopra citato la funzione ke permette ke uno stesso IP possa dare 1 click punto ogni 24 ore, chiaro? E dovrei fondere qst pezzo col codice sopra..

Il problema è ke il pezzo scritto in PDO è qll ke si occupa di fare reinderizzare il sito e del click, e il pezzo mysql nn funziona nn viene letto xk ovviamente nn si possono mischiare in qst maniera i 2 codici, x cui io vorrei realizzarlo tt in mysql ke lo conosco un po', PDO nn so cosa sia
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Abbandona mysql: prima o poi sarai costretto a riscrivere tutto
Puoi utilizzare anche mysqli che gli assomiglia di più
Io proverei a fare il tutto con una query sola
PHP:
<?php
// connessione
$connect = new mysqli("localhost", "root", "", "database");
// query
$query = "INSERT INTO contatorepunti
                      SET titolo = '$link',
                          ip = '$ip',
                          punti = 3,
                          tempo = now()
                 ON DUPLICATE KEY
          UPDATE contatorepunti
                 SET punti = punti + IF(tempo <= DATE_SUB(CURDATE(), INTERVAL 1 DAY),3,0)
                 WHERE titolo = '$link' AND ip = '$ip'
";
// eseguo la query
$result = $connect->query($query);
// per stampare eventuali errori
if (!$result) {
    die("errore : " . $connect->error);
}

// disconnessione
$connect->close();
?>
Dovrai apportare delle modifiche alla tabella : il campo "tempo" dovrà essere di tipo "TIMESTAMP" oppure "DATETIME" e dovrai inserire degli indici su "titolo" e su "link"
lo trovo piu elegante
detto questo non ho la minima idea se potrebbe funzionare : ho scritto di getto senza testarlo minimamente
vedi tu
 
Discussioni simili
Autore Titolo Forum Risposte Data
Alessandro Le Mura [RISOLTO]Contatore di click su link con redirect PHP 5
S Contatore click su link PHP 1
T contatore totale click e media in secondi PHP 7
davide1982 Incremento contatore click PHP 14
davide1982 Problema di redirect dal contatore di click Database 1
W Contatore di click PHP 0
A contatore click PHP 1
T Contatore alla rovescia su più elementi simultaneamente Javascript 4
L [PHP] contatore con sqlite PHP 9
T [PHP] [Javascript] Download e contatore PHP 3
bubino8 [PHP] Contatore Scan QR con redirect PHP 10
F Creare un contatore numerico in HTML HTML e CSS 9
M [PHP] Contatore Tempo Server-side PHP 8
M [PHP] contatore record PHP 7
J contatore visualizzazioni video HTML e CSS 1
Monital Contatore sul sito Google Analytics 2
R Contatore alla rovescia per adesioni Supporto Mr.Webmaster 0
Marco_88 Limitare un contatore PHP 1
W Contatore posti in un form, come implementarlo? WordPress 0
Marco_88 Contatore di accessi PHP 5
I contatore caratteri textarea sbagliato Javascript 1
D Record disconesso contatore dove sbaglio? Classic ASP 0
V [risolto] Contatore caratteri stile SMS da una textarea Javascript 6
Alessandro Le Mura Contatore visite per ogni pagina con MYSQL - PHP PHP 40
Alessandro Le Mura Contatore php - txt PHP 8
8 Script per il contatore download PHP 11
L Inserire campo input dinamico con contatore in jquery jQuery 8
A contatore visite PHP 6
Shyson richiamare contatore PHP 5
GoshMaledetto Contatore numero letture PHP 4
C Iframe e contatore visite HTML e CSS 4
Shyson Contatore post non si aggiorna in automatico PHP 7
C contatore alfanumerico 0000 -> ZZZZ, idee? PHP 3
F contatore PHP PHP 12
max_400 Contatore Top Forum PHP 17
B contatore di download PHP 1
max_400 Contatore scaricamento file... semplice semplice by max_400 PHP 8
C Contatore visite su Facebook (era: quesito) PHP 2
T Memberarea, forum, contatore...Mi chiarite le idee? HTML e CSS 7
A Contatore per code di clienti in attesa Flash 0
G contatore commenti PHP 6
R Creare un contatore visite senza mysql PHP 6
I contatore crediti a 8574 Supporto Mr.Webmaster 3
foki {PHP Script} Contatore Utenti Registrati PHP 17
danlupo Problemi visualizzazione Contatore PHP 2
danlupo Problema Contatore Accessi PHP 3
whirl Contatore condiviso tra 2 siti PHP 3
Z Contatore fotogallery: problemi a caricare onload laprima PHP 1
A Problema Contatore PHP 6
M Incrementare contatore da flash Flash 12

Discussioni simili