Php 参数错误消息
我在尝试登录我的网站时收到此错误消息:数据库错误:SQLSTATE[HY093]:无效参数编号:未定义参数 我甚至不知道这意味着什么,即使在谷歌搜索之后。 这是我的密码:Php 参数错误消息,php,mysql,Php,Mysql,我在尝试登录我的网站时收到此错误消息:数据库错误:SQLSTATE[HY093]:无效参数编号:未定义参数 我甚至不知道这意味着什么,即使在谷歌搜索之后。 这是我的密码: <?php //declaring variables and assigning values from log in form //validate text was entered in UserName text box if(empty($_POST['txtUserName'])) {
<?php
//declaring variables and assigning values from log in form
//validate text was entered in UserName text box
if(empty($_POST['txtUserName']))
{
showForm(null);
exit();
}
else
{
$User_Name = $_POST['txtUserName'];
}
//validate text was entered in password text box
if(empty($_POST['txtPassword']))
{
showForm(null);
exit();
}
else
{
$Password = $_POST['txtPassword'];
}
if ($PasswordForm != Password($User_Name))
{
showForm('Customer ID and Password did not match. Please try again!');
exit();
}
function Password($User_Name)
{
//$UserName = $_GET['txtUserName'];
//$Password = $_GET['txtPassword'];
//declare and assign values to variables
$dsn = 'mysql:host=XXX;dbname=XXX';
$username='XXX';
$password='XXX';
//variable for errors
$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
//try to run code
try {
//object to open database
$db = new PDO($dsn,$username,$password, $options);
//check username against password
$SQL = $db->prepare("Select Password from user where USER_NAME = :USER_NAME");
$SQL->bindValue(':User_Name', $User_Name);
$SQL->execute();
$username = $SQL->fetch();
if($username === false)
{
$Password = null;
}
else
{
$Password = $username['Password'];
}
return $Password;
$SQL->closeCursor();
$db = null;
} catch(PDOException $e){
$error_message = $e->getMessage();
echo("<p>Database Error: $error_message</p>");
exit();
}
}
function showForm($formMessage = "Please Enter Valid User ID and Password")
{ ?>
PHP区分大小写,这意味着:User\u Name与:User\u Name不同 因此改变
:USER_NAME to :User_Name
试试这个:$SQL->bindValue(':USER\u NAME',$USER\u NAME);数组键在PHP中是区分大小写的。并非PHP中的所有内容都区分大小写,但数组键是区分大小写的。这是我的新代码。一切似乎都很好(标题略微下降,以便以后在那里放置超链接),但如果用户名和密码匹配,它不会将我重定向到索引页。如何将某人重定向到新页?我已经尝试了,包括,只是一个路径的文件。如果您想使用php:header('Location:yourpage.php');或JavaScript:window.location=“yourpage.php”
<?php
//declaring variables and assigning values from log in form
//validate text was entered in UserName text box
if(empty($_POST['txtUserName']))
{
showForm(null);
exit();
}
else
{
$User_Name = $_POST['txtUserName'];
}
//validate text was entered in password text box
if(empty($_POST['txtPassword']))
{
showForm(null);
exit();
}
else
{
$Password = $_POST['txtPassword'];
}
if ($Password != Password($User_Name))
{
include "teamc/index.php";
}
else
{
showForm('Customer ID and Password did not match. Please try again!');
exit();
}
function Password($User_Name)
{
//$UserName = $_GET['txtUserName'];
//$Password = $_GET['txtPassword'];
//declare and assign values to variables
$dsn = 'mysql:host=XXX;dbname=XXX';
$username='XXX';
$password='XXX';
//variable for errors
$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
//try to run code
try {
//object to open database
$db = new PDO($dsn,$username,$password, $options);
//check username against password
$SQL = $db->prepare("Select USER_PASSWORD FROM user WHERE USER_NAME = :USER_NAME");
$SQL->bindValue(':USER_NAME', $User_Name);
$SQL->execute();
$username = $SQL->fetch();
if($username === false)
{
$Password = null;
}
else
{
$Password = $username['USER_PASSWORD'];
}
return $Password;
$SQL->closeCursor();
$db = null;
} catch(PDOException $e){
$error_message = $e->getMessage();
echo("<p>Database Error: $error_message</p>");
exit();
}
}
function showForm($formMessage = "Please Enter Valid User ID and Password")
{ ?>