2013-05-10 20 views
1

問題:插入數據庫後無法獲取電子郵件值。爲什麼在插入數據庫後無法使用數據與PHP

編輯:

修正: 我的問題是$to = $_POST['$email'];給出了錯誤的價值吧。它應該是$to = $_POST['email'];。 問題是因爲我有$給予價值。

這是我創造我的激活碼:

$activation = sha1(uniqid(rand(), true)); 

這是我聲明我的數據庫插入查詢:

$query = "INSERT INTO users (activation, email) VALUES (:activation, :email)"; 

這裏我填寫的參數爲我插入查詢:

$query_params = array(
    ':activation' => $activation, 
    ':email' => $_POST['email'] 
); 

...以下是我如何通過執行查詢併發送電子郵件將數據添加到我的數據庫:

try 
    { 
     // Execute the query to create the user 
     $stmt = $db->prepare($query); 
     $stmt->execute($query_params); 

     if ($stmt->rowCount() > 0) { //If the Insert Query_params was successfull. 
      echo 'even gets to here.'; 


      // Send the email: 
      $to = $_POST['email']; 
      $subject = 'Registeerimis kinnitus'; 
      $from = 'From: [email protected]'; 
      $WEBSITE_URL = "http://mysite.com"; 
      $message = " Kasutaja aktiveerimiseks, palun vajutage aadressile:\n\n"; 
      $message .= $WEBSITE_URL . "/activate.php?email=" . urlencode($to) . "&key=".$activation; 
      mail($to, $subject, $message); 
     } 
    } 
    catch(PDOException $ex) 
    { 
     // Note: On a production website, you should not output $ex->getMessage(). 
     // It may provide an attacker with helpful information about your code. 
     die("Failed to run query: " . $ex->getMessage()); 
    } 

插入到數據庫的工作原理。

在此先感謝您的幫助。

+0

還是需要從DATEBASE回讀數據,插入後再次使用? – Markus 2013-05-10 06:53:56

+0

反正使用 sha1(uniqid(mt_rand(),true)); – Yogus 2013-05-10 06:55:52

+0

okey tnx暗示 – Markus 2013-05-10 07:08:43

回答

0

試試這個

$message .= $WEBSITE_URL . "/activate.php?email=" . urlencode($email) . "&key=".$activation; 

反正用這個sha1(uniqid(mt_rand(), true));

+0

是啊,我看到了這個點,但我的問題更多的是,它不知道電子郵件發送到哪裏。所以只有一種方法可以做到這一點?我需要在數據庫中讀取電子郵件和激活碼以獲取這些值後,我插入數據庫? 例如: 插入數據庫電子郵件,之後我使用相同的命令來獲取郵件()函數的電子郵件地址。它dosent通過電子郵件到那裏。 多數民衆贊成我的問題:( – Markus 2013-05-10 09:24:53

+0

@ Markus你嘗試我的代碼?複製粘貼它在你的代碼。並嘗試 – Yogus 2013-05-10 09:31:12

+0

不,因爲我知道我錯過了$激活前的點; 但我現在的問題是,我不能得到電子郵件的價值。得到了激活的工作,它把這個鏈接也 現在我唯一的問題是,我怎麼能得到電子郵件的價值 它插入數據庫以及我的電子郵件的價值,但如果我想用它後,同樣的方式,我給價值數據庫it劑量工作 – Markus 2013-05-10 09:32:51

0
'&key='$activation; 
'&key=' . $activation; 

在'& key ='和$ activation之間缺少一個點;

+0

我的不好,但它仍然劑量激活值給那裏。 – Markus 2013-05-10 07:07:20

相關問題