-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行
你的佔位符':用戶名'和':密碼' –
你不應該再使用MD5哈希。 http://php.net/manual/en/ref.password.php – chris85
@u_mulder我的佔位符是什麼意思是':username'和':password'? –