2012-08-30 46 views
0

對不起信息,如果標題爲這個問題有點可笑,但我真的無法拿出更好的東西。如何檢索從基於MYSQL數據庫當前登錄的用戶憑據

那麼現在,就是我基本上是試圖做的是以下幾點:

有一個用戶登錄並重新定向到一個頁面,在它的形式,一旦用戶填寫表單,一封電子郵件會發送給用戶和郵件列表。

現在,在數據庫中,我顯然有用戶名和密碼,並與兩行以來我也有一個相應的電子郵件。

我不希望用戶輸入他的電子郵件,我想以某種方式訪問​​包含電子郵件的數據庫行,並有郵件自動sendscript在從現場與用戶的電子郵件填寫。

我真的很抱歉,如果我張貼在有你跳開了不少的代碼的順序,我真的不知道什麼樣的順序是最有意義的。該驗證的登錄

代碼:

require 'Mysql.php'; 

class Membership { 

function validate_user($un, $pwd) { 
    $mysql = New Mysql(); 
    $ensure_credentials = $mysql->verify_Username_and_Pass($un, $pwd); 

    if($ensure_credentials) { 
     $_SESSION['status'] = 'authorized'; 
     header("location: index.php"); 
    } else return "Please enter a correct username and password"; 

} 

function log_User_Out() { 
    if(isset($_SESSION['status'])) { 
     unset($_SESSION['status']); 

     if(isset($_COOKIE[session_name()])) 
      setcookie(session_name(), '', time() - 1000); 
      session_destroy(); 
    } 
} 

function confirm_Member() { 
    session_start(); 
    if($_SESSION['status'] !='authorized') header("location: login.php"); 
} 

} 

代碼訪問數據庫來獲取用戶名和密碼:

require_once 'includes/constants.php'; 

class Mysql { 
private $conn; 

function __construct() { 
    $this->conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or 
        die('There was a problem connecting to the database.'); 
} 

function verify_Username_and_Pass($un, $pwd) { 

    $query = "SELECT * 
      FROM members 
      WHERE usr = ? AND pass = ? 
      LIMIT 1"; 

    if($stmt = $this->conn->prepare($query)) { 
     $stmt->bind_param('ss', $un, $pwd); 
     $stmt->execute(); 

     if($stmt->fetch()) { 
      $stmt->close(); 
      return true; 
     } 
    } 

} 
} 

在電子郵件的腳本: 電子郵件( 「$行」, 「test」,$ messagebody,「From:[email protected]」);

最後下面是我目前已經坐在保存表單的頁面上面的代碼:

<?php 

require_once 'classes/Membership.php'; 
require_once 'includes/constants.php'; 
$membership = New Membership(); 

$membership->confirm_Member(); 
session_start(); 

if (isset($_SESSION['username'])); 
$username = $_SESSION['username']; 
$dbc = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME); 
$query = "SELECT email FROM members"; 
$result = mysqli_query($dbc, $query); 
$row = mysqli_fetch_array($result); 
?> 

我有實際的登錄系統功能,它拒絕不正確的用戶,並通過組合,接受正確的人並重定向到表單,這只是郵件的一部分,我幾乎不知道該怎麼做。我爲它編寫的代碼從幾個小時的谷歌搜索中拼湊而成,當它不起作用時,我真的不應該感到驚訝。

任何幫助將不勝感激。 (請在發佈回覆時假裝我儘可能簡單,編程從字面上使我的頭受傷)

回答

0

你做得部分正確。你使用過會話。但保持「授權」(正如你所見)是非常無用的。爲什麼不保留登錄用戶的個人資料?一般來說,你會檢查你是否有會話中的「個人資料」。如果你這樣做,那麼這意味着它被授權使用。如果不是,那麼它不是。同樣的效果,但現在它更有用。因此,保持用戶referecen(通常是他的唯一的ID,甚至整個輪廓從數據庫中取出,因此可以節省您自己的一些查詢),那麼在其他頁面上,你可以簡單地獲取他的個人資料根據ID從會議得到了和預填表格用電子郵件或他的名字或任何其他

相關問題