2017-07-30 143 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