这很好用:
$username= $_GET["username"];
$query= "INSERT INTO test (latitude) VALUES ('$username')";
mysql_query($query) or die (mysql_error("error"));
mysql_close();
这不起作用:
if(!isset($_POST['submit']))
{
}
else
{
$username= $_GET["username"];
$query= "INSERT INTO test (latitude) VALUES ('$username')";
mysql_query($query) or die (mysql_error("error"));
mysql_close();
}
如果将$ username设置为get之外的其他内容,就像'7'一样。
GET从目标c中检索值。如果我没有把它放在if语句中,它只会在数据库中输入数百次。如果我把它放在'if'语句中它只会输入一次,但值将为零。我完全难过了。任何帮助都会很棒。
编辑: 我想因为我得到的答案我没解释得很好。澄清:我正在使用POST发布user_id,answer_body。我使用GET作为从Core Location导入纬度和经度的方法(即使我将其命名为username,它是纬度)。我希望他们都进入相同的条目,这就是为什么我把GET绑定到isset_POST。此外,当GET(用户名)独立时,使用INSERT查询,它将在我的数据库中生成数百个重复项。这是objective-C脚本:
//sends whatever username is set to, to database
float username = location.coordinate.latitude;
NSString *theValue = [NSString stringWithFormat:@"%f", username];
NSString *hostStr =[NSString stringWithFormat:@"http://mysite.com/page.php?username=%@", theValue];
NSData *dataURL = [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr ]];
NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSUTF8StringEncoding];
NSLog(@"Server output: %@", serverOutput);
表单代码为:
<form action="gpstestertwo.php" method="post"><center>
$<input type="text" name="answer_body" maxlentgh= "5" style="height:3em;"/>
<input type="submit" value="submit" name="submit" style="height:2em; width:5em; font-size:19px "
/>
</center>
</form>
答案 0 :(得分:1)
$_POST['submit']
和$_GET['username']
...为什么不使用$_POST['username']
。
您如何发送FORM
个数据,POST
或GET
?或者使用$_REQUEST['username']
来确定。
更不用说在使用查询之前需要转义用户名。
编辑(始终对POSTs
进行处理,而不是GETs
):
if(!strcasecmp($_SERVER['REQUEST_METHOD'], 'POST')){
// post operation, do your work HERE only
if(!empty($_POST['username'])){
// ... do your worst here ...
}
}
GETs
是默认请求,您最终可能会在数据库中轰炸。 POSTs
是特殊的。因此,在执行REQUEST_METHOD
处理之前,请确保POST
为POST
。
答案 1 :(得分:1)
if(isset($_REQUEST['submit']))
{
$username= mysql_real_escape_string($_REQUEST["username"]);
$query= "INSERT INTO test (latitude) VALUES ('$username')";
mysql_query($query) or die (mysql_error("error"));
mysql_close();
}
编辑: 首先,我将$ _GET和$ _POST更改为$ _REQUEST,因此它将同时接受$ _GET和$ _POST。
其次,我添加了mysql_real_escape_string
函数,它将逃避不需要的字符,例如qutation标记,以防止SQL注入。