2017-07-30 132 views
-1

無法找到一個PHP腳本來幫助用戶使用已經存在的憑證數據庫對錶單進行身份驗證,嘗試了幾個腳本,但其中的每個人都似乎卡在相同的代碼$sth->execute(array("uname" => $_POST["username"], "upass" => $encryptedpassword));。爲了記錄,我們已經有了一個用於其他Web應用程序的現有憑據數據庫,爲了測試目的,我創建了一個帶有純文本用戶憑據的虛擬數據庫,請參閱下一頁。PHP SQL SERVER登錄憑證腳本

<?php 
$encryptedpassword = md5($_POST['password']); 

$db_myHost = "SERVERNAME"; 
$db_myUser= "sa"; 
$db_myPassword = "PASWORD"; 
$db_myDatabase = "DATABASE" 

$dbconn = new PDO("sqlsrv:server=$db_myHost;Database=$db_myDatabase",$db_myUser,$db_myPassword); 

try 
    { 
    $dbPDO = new PDO('sqlsrv:server='.$db_myHost.';Database='.$db_myDatabase, $db_myUser, $db_myPassword); 

    $dbPDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    } 
catch (PDOException $e) 
    { 
    echo "Error!: " . $e->getMessage() . " 
"; 
    die(); 
    } 

//Check user credentials 
$sth = $dbconn->prepare("SELECT * FROM wblgntst WHERE uname = :username AND upass = :password"); 

//CODE CAUSING ISSUE 
$sth->execute(array("uname" => $_POST["username"], "upass" => $encryptedpassword)); 

    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) { 
     session_start(); 
    $_SESSION['userName'] = $row['uname']; 
    header("Location: list.php"); 
    } 

?> 

ERROR

PHP警告:PDOStatement對象::執行():SQLSTATE [HY093]:無效 參數數:參數沒有在 C中定義:\的Inetpub \ wwwroot的\ salesportal \ PHP \ login.php中第28行

+1

你的佔位符':用戶名'和':密碼' –

+0

你不應該再使用MD5哈希。 http://php.net/manual/en/ref.password.php – chris85

+0

@u_mulder我的佔位符是什麼意思是':username'和':password'? –

回答

0

停止尋找一些腳本,找到了真正的解決方案:Zubrag.com