2013-08-07 75 views
0

我在一個單獨的文件中有一些php代碼,並使用javascript調用它。但PHP代碼沒有工作。相反,它只是把代碼放在div中。像完整的代碼在div中。我怎樣才能使這個PHP代碼執行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();}; 

和我的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是否已安裝和配置

+1

您是否嘗試在瀏覽器中打開PHP文件並查看是否有效? – HMR

+0

瀏覽器是否顯示任何錯誤消息或任何消息? – sanj

+4

而且要非常小心你的代碼容易受到SQL注入的影響......不要在生產環境中使用它!\ – Freelancer

回答

2

檢查您的MS SQL Connection並使用$_GET['Username']代替$_GET(USERNAME)

$query = "SELECT COUNT(*) FROM Users 
     WHERE Username='".$_GET['Username']."'"; 
0

你的問題是在這裏:

"...myQuoteString('$_GET(USERNAME)')'"; 

這是PHP語法不正確。在這小小的代碼中,大約有五個單獨的錯誤。

  • $_GET是一個數組,不是函數,所以它需要方括號,而不是圓括號。
  • USERNAME括號內$_GET的值是一個字符串,所以也必須用引號引起來。
  • myQuoteString()是一個函數調用,這意味着它不能在查詢字符串中。
  • 你已經得到了有關$_GET的報價,這也是不正確的。

Ouch。

我認爲myQuoteString()是你寫的一個函數,用於轉換SQL查詢中使用的變量並添加引號?

在這種情況下,你的代碼需要看起來像這樣:

$query = "SELECT COUNT(*) FROM Users WHERE Username=".myQuoteString($_GET['USERNAME']); 

如果myQuoteString()沒有做這一切,你需要確保不管是或你逃避你的輸入變量一些其他的方式,因爲否則你會很容易受到黑客攻擊。

(如果你不能確定,請嘗試使用包含引號字符的名稱發佈您的形式;如果你不逃避不當,將導致程序失敗)

希望有所幫助。