php 代码离线工作,但不在线工作
php Code working offline but not online
我在调用使用 sql 查询 MySQL 数据库的 php 脚本时遇到问题。代码正在脱机工作,但是当我上传到服务器时,代码循环了 5 次并返回了一个奇怪的 json 字符串。我已经检查了phpMyAdmin中的sql,它返回了正确的值。
我使用以下 javascript 调用脚本:
var jsonData1 = $.ajax({
url: "php/ResidualArisingsdata.php?PrimaryKey=<?php echo $primarykey ?>",
dataType: "json",
async: false
}).responseText;
并且 PHP 脚本是(删除了登录详细信息(
<?php
$_SESSION['url'] = $_SERVER['REQUEST_URI'];
$primarykey = $_GET['PrimaryKey'];
// These variables define the connection information for your MySQL database
$username = "xxx";
$password = "xxx";
$host = "localhost";
$dbname = "xxx";
$mysqli = new mysqli($host, $username, $password, $dbname);
if (mysqli_connect_errno()) {
printf("Connect failed: %s'n", mysqli_connect_error());
exit();
}
$SQLString = "SELECT PrimaryKey,
Name,
`HouseholdRecyclingRate2005/06`,
`HouseholdRecyclingRate2006/07`,
`HouseholdRecyclingRate2007/08`,
`HouseholdRecyclingRate2008/09`,
`HouseholdRecyclingRate2009/10`,
`HouseholdRecyclingRate2010/11`,
`HouseholdRecyclingRate2011/12`
FROM `districts_recyclingrates`
WHERE `districts_recyclingrates`.PrimaryKey =" . $primarykey;
$result = $mysqli->query($SQLString);
$rows = array();
$table = array();
$table['cols'] = array(
array('label' => 'Year', 'type' => 'string'),
array('label' => 'Name', 'type' => 'number'),
array('label' => 'UK Average', 'type' => 'number')
);
foreach($result as $r) {
$temp = array();
$temp[] = array('v' => "05/06");
$temp[] = array('v' =>(int) $r['`HouseholdRecyclingRate2005/06`']);
$temp[] = array('v' => "25.2");
$rows[] = array('c' => $temp);
unset($temp);
$temp[] = array('v' => "06/07");
$temp[] = array('v' =>(int) $r['HouseholdRecyclingRate2006/07']);
$temp[] = array('v' => "29.7");
$rows[] = array('c' => $temp);
unset($temp);
$temp[] = array('v' => "07/08");
$temp[] = array('v' =>(int) $r['HouseholdRecyclingRate2007/08']);
$temp[] = array('v' => "33.6");
$rows[] = array('c' => $temp);
unset($temp);
$temp[] = array('v' => "08/09");
$temp[] = array('v' =>(int) $r['HouseholdRecyclingRate2008/09']);
$temp[] = array('v' => "36.4");
$rows[] = array('c' => $temp);
unset($temp);
$temp[] = array('v' => "09/10");
$temp[] = array('v' =>(int) $r['HouseholdRecyclingRate2009/10']);
$temp[] = array('v' => "38.2");
$rows[] = array('c' => $temp);
unset($temp);
$temp[] = array('v' => "10/11");
$temp[] = array('v' =>(int) $r['HouseholdRecyclingRate2010/11']);
$temp[] = array('v' => "40.3");
$rows[] = array('c' => $temp);
unset($temp);
$temp[] = array('v' => "11/12");
$temp[] = array('v' =>(int) $r['HouseholdRecyclingRate2011/12']);
$temp[] = array('v' => "42.1");
$rows[] = array('c' => $temp);
}
$table['rows'] = $rows;
// convert data into JSON format
$jsonTable = json_encode($table);
echo $jsonTable;
mysqli_close($mysqli);
?>
返回的 json(使用 console.log 标识(如下所示,其中数据库值为 0,foreach 循环了 5 次。
{"cols":[{"label":"Year","type":"string"},{"label":"Name","type":"number"},{"label":"UK Average","type":"number"}],"rows":[{"c":[{"v":"05'/06"},{"v":0},{"v":"25.2"}]},{"c":[{"v":"06'/07"},{"v":0},{"v":"29.7"}]},{"c":[{"v":"07'/08"},{"v":0},{"v":"33.6"}]},{"c":[{"v":"08'/09"},{"v":0},{"v":"36.4"}]},{"c":[{"v":"09'/10"},{"v":0},{"v":"38.2"}]},{"c":[{"v":"10'/11"},{"v":0},{"v":"40.3"}]},{"c":[{"v":"11'/12"},{"v":0},{"v":"42.1"}]},{"c":[{"v":"05'/06"},{"v":0},{"v":"25.2"}]},{"c":[{"v":"06'/07"},{"v":0},{"v":"29.7"}]},{"c":[{"v":"07'/08"},{"v":0},{"v":"33.6"}]},{"c":[{"v":"08'/09"},{"v":0},{"v":"36.4"}]},{"c":[{"v":"09'/10"},{"v":0},{"v":"38.2"}]},{"c":[{"v":"10'/11"},{"v":0},{"v":"40.3"}]},{"c":[{"v":"11'/12"},{"v":0},{"v":"42.1"}]},{"c":[{"v":"05'/06"},{"v":0},{"v":"25.2"}]},{"c":[{"v":"06'/07"},{"v":0},{"v":"29.7"}]},{"c":[{"v":"07'/08"},{"v":0},{"v":"33.6"}]},{"c":[{"v":"08'/09"},{"v":0},{"v":"36.4"}]},{"c":[{"v":"09'/10"},{"v":0},{"v":"38.2"}]},{"c":[{"v":"10'/11"},{"v":0},{"v":"40.3"}]},{"c":[{"v":"11'/12"},{"v":0},{"v":"42.1"}]},{"c":[{"v":"05'/06"},{"v":0},{"v":"25.2"}]},{"c":[{"v":"06'/07"},{"v":0},{"v":"29.7"}]},{"c":[{"v":"07'/08"},{"v":0},{"v":"33.6"}]},{"c":[{"v":"08'/09"},{"v":0},{"v":"36.4"}]},{"c":[{"v":"09'/10"},{"v":0},{"v":"38.2"}]},{"c":[{"v":"10'/11"},{"v":0},{"v":"40.3"}]},{"c":[{"v":"11'/12"},{"v":0},{"v":"42.1"}]},{"c":[{"v":"05'/06"},{"v":0},{"v":"25.2"}]},{"c":[{"v":"06'/07"},{"v":0},{"v":"29.7"}]},{"c":[{"v":"07'/08"},{"v":0},{"v":"33.6"}]},{"c":[{"v":"08'/09"},{"v":0},{"v":"36.4"}]},{"c":[{"v":"09'/10"},{"v":0},{"v":"38.2"}]},{"c":[{"v":"10'/11"},{"v":0},{"v":"40.3"}]},{"c":[{"v":"11'/12"},{"v":0},{"v":"42.1"}]}]}
将不胜感激。提前谢谢。
您可以使用json_last_error函数在 php 中调试 JSON 错误。
一个例子是:
<?php
// An invalid UTF8 sequence
$text = "'xB1'x31";
$json = json_encode($text);
$error = json_last_error();
var_dump($json, $error === JSON_ERROR_UTF8);
?>
无论如何,您在编写第一个称为XSS(跨站点脚本(的代码中存在信息安全漏洞。
它位于你的 JavaScript 代码中,这一行:
url: "php/ResidualArisingsdata.php?主键=",
您正在打印来自用户的未经验证的输入,请阅读:
http://en.wikipedia.org/wiki/Cross-site_scripting
第二个缺陷是SQL注入,您将来自用户的未经验证的输入包含在SQL查询中,这是非常危险的事情,请在此处阅读:http://en.wikipedia.org/wiki/SQL_injection
相关文章:
- 漂亮的照片在Dreamweaver上完美运行;但不能在任何浏览器上在线工作
- SVG和Javascript在Chrome中无法“在线”工作
- 通过登录和在线照片显示上传照片的工作流程
- 在本地工作,但不能在线工作
- php 代码离线工作,但不在线工作
- 当我将我的网站移动到在线测试服务器时,“添加到购物车”按钮停止工作
- D3JS 强制引导,鼠标悬停在线链接无法正常工作
- Javascript在本地工作,而不是在线工作
- Javascript regex在在线验证器上工作,但在代码中失败
- 在线youtube视频没有'不能在iOS上的cordova应用程序中工作
- 猫头鹰旋转木马-无法在线工作
- 代码不在线工作,但在localhost中工作
- jQuery动画工作在小提琴,但不是平滑的在线
- Javascript不能在safari(在线)中工作
- Javascript滚动在本地服务器上工作,但不能在线(jsScroller.js)
- 如何使用JavaScript检查网站是否在线?再加上如何使这个函数的其余部分更好地工作的提示
- 为什么javascript不能在网站在线时工作
- Php /javascript不能在线工作
- jQuery插件离线工作,但不在线
- KineticJS图像不工作在本地,有时工作在线