在此代码所在的页面中,有一个包含3个详细信息的表单 国,性别,主题
所以我的想法是将这3个细节发送到startChat.php,以便php可以提取3个细节。
代码如下
function startChat()
{
xmlHttp2 = GetXmlHttpObject();
if (xmlHttp2 == null)
{
alert("Browser does not support HTTP Request");
return;
}
var url = "startChat.php";
var params = "country,gender,topic";<<<<<<<<<<<<<<<<<<<<<<<what coding this should be?????
xmlHttp2.open("GET", url, true);
xmlHttp2.send(params);<<<<<<<<is this correct?????
xmlHttp2.onreadystatechange = stateChanged2;
}
我还需要有关startChat.php部分的帮助
<?php
include('config.inc.php');
$preference="$_GET[params]";<<<<<<<<<<<<<<<<<<<<<<<<<<<<what coding this should be????????????????????????????????????
include('database.inc.php');
mysql_query("INSERT INTO users (inchat,preference) values('N','$preference')");
echo mysql_insert_id();
mysql_close($con);
?>
请帮助,真诚地问:(
答案 0 :(得分:1)
首先,您应该使用POST请求而不是GET,因为从您的代码中可以清楚地看到此请求应该更改服务器上的状态。
您的params
变量应采用表单编码。您可以使用encodeURIComponent
执行此操作,如下所示:
var params = 'country=' + encodeURIComponent(userCountry) +
'&gender=' + encodeURIComponent(userGender) +
'&topic=' + encodeURIComponent(userTopic);
其次,在将数据插入数据库之前,您应该清理数据。否则你会暴露自己的SQL注入攻击。
&LT;
?php
include('config.inc.php');
// need to create db connection before mysql_real_escape_string is called
include('database.inc.php');
$country = mysql_real_escape_string($_POST['country'], $con);
$gender = mysql_real_escape_string($_POST['gender'], $con);
$topic = mysql_real_escape_string($_POST['topic'], $con);
mysql_query("
INSERT INTO users(inchat, country, gender, topic)
VALUES('N','$country', '$gender', '$topic')
");
echo mysql_insert_id();
mysql_close($con);
?>
请注意,我还更改了数据库结构。一般来说,最好避免将多个数据放入一个字段(DB normalization)。