PHP SQL SERVER登录凭据脚本

PHP SQL SERVER登录凭据脚本,php,pdo,sqlsrv,Php,Pdo,Sqlsrv,很难找到一个PHP脚本来帮助用户使用已经存在的凭据数据库进行表单身份验证,尝试了几个脚本,但每个脚本似乎都被相同的代码卡住了$sth->execute(数组(“uname”=>$\u POST[“username”],“upass”=>$encryptedpassword))。作为记录,我们已经有一个用于另一个web应用程序的现有凭据数据库,出于测试目的,我创建了一个带有纯文本用户凭据的虚拟数据库,请参见下一步 <?php $encryptedpassword = md5($_POST

很难找到一个PHP脚本来帮助用户使用已经存在的凭据数据库进行表单身份验证,尝试了几个脚本,但每个脚本似乎都被相同的代码卡住了
$sth->execute(数组(“uname”=>$\u POST[“username”],“upass”=>$encryptedpassword))。作为记录,我们已经有一个用于另一个web应用程序的现有凭据数据库,出于测试目的,我创建了一个带有纯文本用户凭据的虚拟数据库,请参见下一步

<?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");
    }

?> 

错误

PHP警告:PDOStatement::execute():SQLSTATE[HY093]:无效 参数编号:中未定义参数 第28行的C:\inetpub\wwwroot\salesportal\php\login.php


停止寻找一些脚本,找到了真正的解决方案:

您的占位符是
:username
:password
您不应该再使用MD5哈希@u_mulder我的占位符是
:username
:password
,这是什么意思?@u_mulder好的,我明白了,这行应该是next
$sth->execute(数组(:username=>$\u POST[“username”],:password=>$encryptedpassword))我试试这个。