Java/PHP中的空白


Whitespaces in Java/PHP

从Java->PHP->SQL发送时空格不变为下划线

Java代码:

String urlString = "http://www.mysite.com/auth/verifyuser.php?name="+name.toLowerCase().replace(" ","_");
PHP代码:

$name = mysql_real_escape_string($_GET['name']);
$name = str_replace(' ', '_', $name);
$query = "select * from authinfo where name LIKE '$name'";
mysql_query($query);
$num = mysql_affected_rows();
if ($num > 0) {
echo '1';
} else {
echo '0';
}

当我在SQL数据库上实现测试日志时,它似乎仍然以空格而不是下划线显示(即使我在Java和PHP中替换它),PHP文件返回'0'而不是'1'。我听说这个问题可能是空白?这似乎只发生在某些用户身上,主要是mac用户。

如果您的php文件返回0,这意味着您的查询没有得到执行。在执行查询之前,在哪里建立与数据库的连接?

备注:where name = '$name'

mysql_affected_rows涉及INSERT, UPDATE和DELETE。

$r = mysql_query($query);
$num = mysql_num_rows($r);

将原始名称传递给URL而不进行编码是不安全的。

String urlString = "http://www.example.com/auth/verifyuser.php?name=" + URLEncoder.encode(name.toLowerCase(), "UTF-8");

在PHP中可以获取数据:

$name = urldecode($_GET['name']);