我在一个单独的文件中有一些PHP代码,并使用javascript调用它。但PHP代码不起作用。而只是把代码放在div中。就像div中的完整代码一样。我怎样才能使这个PHP代码执行
我的javascript函数如下所示:
function checklogin(){
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
if(xmlhttp.responseText='FAILED')
{alert('failed');};
}
}
var Usrname
Usrname=document.getElementById("edtLoginUsername").text;
xmlhttp.open("GET","DatabaseFunctions.php?Username="+Usrname,true);
xmlhttp.send();};
AND MY PHP代码如下所示:
<?php
$myServer = "example.com";
$myUser = "dbuser";
$myPass = "dbpass";
$myDB = "efarm";
//connection to the database
$dbhandle = mssql_connect($myServer, $myUser, $myPass)
or die("Couldn't connect to SQL Server on $myServer");
//select a database to work with
$selected = mssql_select_db($myDB, $dbhandle)
or die("Couldn't open database $myDB");
//declare the SQL statement that will query the database
$query = "SELECT COUNT(*) FROM Users WHERE Username=myQuoteString('$_GET(USERNAME)')'";
//execute the SQL query and return records
$result = mssql_query($query);
echo 'FAILED';
//close the connection
mssql_close($dbhandle);
?>
我已经检查了我的httpd.conf文件并检查了php的安装和配置
答案 0 :(得分:2)
检查您的MS SQL Connection
并使用$_GET['Username']
代替$_GET(USERNAME)
$query = "SELECT COUNT(*) FROM Users
WHERE Username='".$_GET['Username']."'";
答案 1 :(得分:0)
你的问题在这里:
"...myQuoteString('$_GET(USERNAME)')'";
这是PHP的错误语法。在这一小段代码中,大约有五个不同的错误。
$_GET
是一个数组,而不是函数,所以它需要方括号,而不是圆括号。USERNAME
括号内的$_GET
值是一个字符串,因此也必须用引号括起来。myQuoteString()
是一个函数调用,这意味着它不能在查询字符串中。$_GET
左右的引号,这也是不正确的。哎哟。
我假设myQuoteString()
是你编写的一个函数,用于转义变量以便在SQL查询中使用并添加引号?
在这种情况下,您的代码需要如下所示:
$query = "SELECT COUNT(*) FROM Users WHERE Username=".myQuoteString($_GET['USERNAME']);
如果myQuoteString()
没有做到这一切,你需要确保它或者你以其他方式逃避输入变量,因为否则你很容易受到黑客攻击。
(如果您不确定,请尝试使用包含引号字符的名称发布您的表单;如果您没有正确转义,则会导致程序失败)
希望有所帮助。