2014-04-27 13 views
0

我正在为一个学期的项目应用程序制作一个管理界面。AJAX和PHP;没有通过变量或不工作?

我们最后的责任是做一个管理页面。我设置了管理员应该访问的所有内容(更新用户信息,删除用户,重置统计信息等),除了最重要的一点:创建新用户。

当我输入数据来创建用户时,数据库中没有新的东西显示出来。试用一个标准的查询(没有变量,你会看到下面),但仍然没有任何东西让我相信它根本没有访问变量。

我的JavaScript AJAX:

function createNewUser() 
{ 
    if (confirm("Are you sure you wish to create this user?") == true) 
    { 
    createNewUserAJAX(); 
    } 
} 



function createNewUserAJAX() 
{ 
     var fName = document.getElementById('ADDFirstName').value; 
    var lName = document.getElementById('ADDLastName').value; 
    var user = document.getElementById('ADDUserName').value; 
    var password = document.getElementById('ADDPassword').value; 
    var password2 = document.getElementById('ADDPassword2').value; 
    var slateID = document.getElementById('ADDSlate').value; 
    var keeperID = document.getElementById('ADDKeeper').value; 

     xmlhttp=new XMLHttpRequest(); 
    xmlhttp.onreadystatechange=function() 
    { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
      { 
      alert(user+" created successfully!"); 
      toggleCreateUserInterface(); 
     } 
    } 

    if (password == password2) 
    { 
      xmlhttp.open("GET","AddUserAJAX.php?uname="+user+"&pwd="+password+"&slate="+slateID+"&keeper="+keeperID+"&fName="+fName+"&lName="+lName, true); 
    xmlhttp.send(); 
} 
else 
{ 
    alert("Passwords must match"); 
} 
} 

我ADDUserAJAX.php网页上的代码:

<?php 
$userName = mysql_real_escape_string($_GET['uname']); 
$pw = mysql_real_escape_string($_GET['pwd']); 
$slateID = mysql__real_escape_string($_GET['slate']); 
$keeperID = mysql_real_escape_string($_GET['keeper']); 
$fName = mysql_real_escape_string($_GET['fName']); 
$lName = mysql_real_escape_string($_GET['lName']); 

mysql_connect('127.0.0.1', 'root', ''); 
@mysql_select_db('slatekeeperdatabase') or die("Unable to select database"); 

$lastUserQuery = mysql_query("select max(userID) from users;"); 
$lastUserID = mysql_result($lastUserQuery,0); 
$newUserID = $lastUserID+1; 

$lastStatsQuery = mysql_query("select max(statsID) from stats;"); 
$lastStatsID = mysql_result($lastStatsQuery,0); 
$newStatsID = $lastStatsID+1; 


//$query= "INSERT INTO users VALUES (".$newUserID.", ".$fName.", ".$lName.", ".$pw.", ".$userName.", '', 1, 1000, 100, ".$slateID.", ".$keeperID.", ".$newStatsID.", 0)"; 
$query2 = "insert into users values (9, 'James','Lom', 'red','jlom4', '', 1, 1000, 100, 1, 1, 1, 0);"; 
mysql_query($query2); 




mysql_close(); 
?> 

$ query变量是什么,我想试图打通。 $ query2只是测试查询,以检查它是否甚至通过(它不是)

任何帮助,非常感谢。这很奇怪,因为我之前用测试数据得到了它的工作(从来没有和我实际试图通过的东西一起工作)。也许我把一些不正确的语法放在了某处我找不到的地方......(哦,POST会在所有的工作都被使用之后使用,安全性并不是我们最关心的问题)

+0

您是否使用浏览器测试了'ADDuserAJAX.php'? –

+0

是的,我已经这么做了。 –

+0

我更新了我的答案,你可以检查 –

回答

0

我想你在使用mysql_real_escape_string之前。如果没有连接,mysql_real_escape_string将不会执行任何操作。

+0

没有注意到,我现在就试试看。 –

+0

什么都没有。谢谢你指出,虽然。 –

0

你不给查询字段中插入

$query2 = "insert into users (id, Name etc) values (9, 'James','Lom', 'red','jlom4', '', 1, 1000, 100, 1, 1, 1, 0);"; 

我在$ QUERY2注意到"".删除此我想我也可以是一个错误,第二次在那种)

要删除;调试回显您的$query2查看缺少的内容,并尝试直接在数据库中运行您的查询SQL

+0

以前做过这个但我只是试了一遍,仍然没有:(但是谢谢, –

+0

你必须这样做才能插入开始调试Echo Your $ query2看看缺少什么或打印这个SQuery 2的最佳方法数据库SQL数据库错误会帮助你 –

+0

编辑:我通过调试通过硬编码访问页面。谢谢。我已经断定在AddUserAJAX.php上我的PHP变量有一些错误,我将继续调试。 –