php代码没有执行。已检查配置文件

时间:2013-08-07 07:53:34

标签: php javascript apache

我在一个单独的文件中有一些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的安装和配置

2 个答案:

答案 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()没有做到这一切,你需要确保它或者你以其他方式逃避输入变量,因为否则你很容易受到黑客攻击。

(如果您不确定,请尝试使用包含引号字符的名称发布您的表单;如果您没有正确转义,则会导致程序失败)

希望有所帮助。