2014-04-05 45 views

回答

1

您需要關閉try塊。

{ 
    try 
    { 
     $email = ($_POST['email']); 
     $datnar = ($_POST['datnar']); 
     $nick = ($_POST['nick']); 
     $heslo = md5($_POST['heslo']); 
     $db->query("INSERT INTO tblosoba(`nick`, `heslo`, `email`, `datnar`) VALUES ($nick, '$heslo', $email, $datnar)"); 
     echo "Registrace dokončena."; 
    } //<-------------------------------------------- Here 
    catch(PDOException $Exception) { 
     echo "Uživatel existuje"; 
    } 
} 

警告:您的代碼很容易受到SQL注入。在將它傳遞給查詢之前,您需要過濾$_POST值。

使用Prepared Statements參數化查詢)來避免SQL注入攻擊,因爲您已經在使用PDO。

0

這裏添加一個右大括號(})是如何解決你的代碼

if (isset($_POST['nick']) && isset($_POST['heslo']) && 
    isset($_POST['email']) && isset($_POST['datnar'])) 

{ 
    $sql = "INSERT INTO tblosoba(`nick`, `heslo`, `email`, `datnar`) VALUES (?,?,?,?)"; 
    $data = [$_POST['nick'],$_POST['heslo'],$_POST['email'],$_POST['datnar']]; 
    $db->prepare($sql)->execute($data); 
    echo "Registrace dokončena."; 
} 

請注意,你不應該使用的try-catch在這裏,但應該用事先準備好的聲明,而不是

+0

如果你解釋爲什麼OP不應該使用'try catch'塊,那會更好。 –

相關問題