mi dispiace, ma non trovo errori di sintassi. Ecco il codice:
Codice PHP:
$pdo = new PDO('mysql:host=ip;dbname=mydb', 'user', 'pass');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if(isset($_POST['validate_token']))
{
// Eseguo la validazione
$stmt = $pdo->prepare("SELECT * FROM validation WHERE url_key = ? AND expire_date > NOW()");
$stmt->execute(array($_POST['token']));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$go = ($row && ($row['captcha'] == $_POST['validate_token'])) ? true : false;
$stmt = $pdo->prepare("DELETE FROM validation WHERE url_key = ?");
$stmt->execute(array($_POST['token']));
}
// Elimino tutti i record scaduti
$pdo->query("DELETE FROM validation WHERE expire_date <= NOW()");
// Genero casualmente un record per la tabella validation
$url_key = sha1(uniqid(rand(), true));
$captcha = random_string(6);
$stmt = $pdo->prepare("INSERT INTO validation (id, url_key, captcha, expire_date) VALUES ('', ?, ?, DATE_ADD(NOW(), INTERVAL 5 MINUTE))");
$stmt->execute(array($url_key, $captcha));