Ciao ragazzi, sto cercando di inserire un captcha per evitare lo spam in un form. Non avendo mai affrontato l'argomento ho cercato un po' su internet e ho trovato la guida che c'è proprio sul sito html.it precisamente questa:

http://php.html.it/articoli/leggi/2276/captcha-con-php/
il codice della mia paginetta di prova è questo, copiato pari pari e non ancora modificato e la cosa strana è che mi da un errore:
prova.php
Codice PHP:
<?php

$pdo 
= new PDO('mysql:host=localhost;dbname=captcha''root''');

$stmt $pdo->prepare("SELECT * FROM validation WHERE url_key = ? AND expire_date > NOW()");
$stmt->execute(array($_GET['token']));

$row $stmt->fetch(PDO::FETCH_ASSOC);

$texture imagecreatefrompng('texture.png');

$source imagecolorat($texturerand(0imagesx($texture)), rand(0imagesy($texture)));
$r = ($source >> 16 0xff) + 50;
$g = ($source >> 0xff) + 50;
$b = ($source 0xff) + 50;
$text_color imagecolorallocate($texture$r$g$b);

imagestring($texture5, (imagesx($texture) - strlen($row['captcha']) * 5)/ 25,  $row['captcha'], $text_color);

header('Content-Type: image/png');

imagepng($texture);

imagedestroy($texture);

unction random_string($len)
{
   
$string "";
   
$chars = array("a""b""c""d""e""f""g""h""i""j""k",
               
"l""m""n""o""p""q""r""s""t""u""v",
               
"w""x""y""z""A""B""C""D""E""F""G",
               
"H""I""J""K""L""M""N""O""P""Q""R",
               
"S""T""U""V""W""X""Y""Z""0""1""2",
               
"3""4""5""6""7""8""9");
   for(
$i 0$i $len; ++$i)
   {
      
shuffle($chars);
      
$string .= $chars[0];
   }
   
   return 
$string;
}

$message 'Inserisci la scringa alphanumerica per effettuare la validazione:';

$pdo = new PDO('mysql:host=localhost;dbname=captcha''root''');
$pdo->setAttribute(PDO::ATTR_ERRMODEPDO::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);
   
   
$message = ($row && ($row['captcha'] == $_POST['validate_token'])) ? 'token corretto' 'token [b]NON[/b] corretto';
   
$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)); // Possiamo (e dovremmo) fare meglio
$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));

?>
<html>
   <head>
      <title>CAPTCHA test</title>
   </head>
   <body>
      <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
         <input type="hidden" name="token" value="<?php echo $url_key?>" />
         


            <?php echo $message?>
         </p>
         [img]captcha.php?token=<?php echo $url_key?>[/img]

         <input type="text" name="validate_token" />
         <input type="submit" name="action" value="Test" />
      </form>
   </body>
</html>

l'errore è il seguente:

Parse error: syntax error, unexpected ')', expecting '(' in /home/web/clienti/lavori/sito/prova.php on line 8

cioè a questa riga:
Codice PHP:
$row $stmt->fetch(PDO::FETCH_ASSOC); 
cosa può essere? grazie Simone