2012-06-30 76 views
-4

我使用此代碼連接到數據庫:PHP需要和JavaScript

@mysql_connect("localhost","root","") or die(mysql_error()); 
@mysql_select_db("ECOLE") or die (mysql_error()); 
@mysql_set_charset('utf8'); 

if(isset($_POST['profname_in'])){ 
    $querycheck = "SELECT prof_som FROM prof_table 
        WHERE prof_som=$_POST[profsom_in];"; 
    $_querycheck=mysql_fetch_array(mysql_query($querycheck)); 
    if(isset($_querycheck['prof_som'])){ 
    echo "0"; 
    }else{ 
    $query="INSERT INTO prof_table 
      VALUES('$_POST[profname_in]', 
        '$_POST[profcin_in]', 
        '$_POST[profsom_in]', 
        '$_POST[profville_in]', 
        '$_POST[profecole_in]', 
        '$_POST[profmat_in]', 
        '$_POST[profpass_in]');"; 
    if(mysql_query($query)){ 
      echo "1"; 
     } 
    } 
} 

的回聲是由JavaScript函數(阿賈克斯)recupered:

function adding_prof_Reply() { 

if(http.readyState == 4){ 
     var response = http.responseText; 

    if(response==0){ 
      document.getElementById('prof_validation').innerHTML = '<font color="red">'+response+'</font>'; 
     }else if (response==1){ 
      document.location.href="dir_paneau.php";   
     }else{ 
      document.getElementById('prof_validation').innerHTML = '<font color="red">'+response+'</font>'; 
     } 
} 
} 

一切工作正常,問題是當我在php代碼中使用require('anyfile')時,即使respose == 0,測試if(response==0)也總是爲false;如果我刪除了require的行,那麼所有的行爲都應該如此。 我需要不重複的連接信息,任何想法?

+2

代碼中的每個SQL查詢都包含深刻的SQL注入(https://en.wikipedia.org/wiki/SQL_injection)。 – MaxSem

+1

問題中的代碼包含錯誤抑制,沒有提及*在'PHP'中調用require函數,但不清楚「anyfile」是否確實表示「任何文件」,或者它是否一個不與我們共享的特定文件,並且沒有任何努力可以通過直接從瀏覽器(或cURL等)直接發出HTTP請求來調試獨立於JS的PHP。 – Quentin

+0

@ user1493590 - 您發佈的PHP不包含對require()的調用。這聽起來好像所需的文件要麼是錯誤的,要麼是你的JS期望的輸出的不同輸出。請*確認*接收的輸出,不要認爲它是0.您可以在Firebug/Dragonfly中查看,或直接在瀏覽器中訪問腳本。 – Utkanos

回答

0

「我需要的要求不重複的連接信息」

僅連接一次,放在一個單獨的文件中的「連接信息」,也許dbConnect.php和使用功能require_once('dbConnect.php')其中需要一個數據庫文件連接。

這可確保您只連接到您的數據庫一次,這可能會解決您的問題。

+0

沒問題是,如果我使用require或require_once - 並且只在這種情況下(whit ajax和java腳本) - 它會返回回聲,正如我所說的,但是當我在java腳本中測試返回值時,即使它應該返回真正!!。 – princezea

+1

在獲得響應之後做'alert(response)',這會給予什麼? – Timm

+0

+1 @Tim,我們甚至無法確定接下來會有什麼反應。 –