使用JS在服务器上运行PHP脚本
Using JS to run PHP script on server
我已经做了很长一段时间了,我对PHP几乎没有任何经验,我只是从JavaScript开始。
我正在尝试使用AJAX从网页上的JavaScript运行服务器上的PHP脚本。老实说,我真的不知道自己在做什么。
我当前的代码:
JS:
function Write() {
$.ajax({
type: "POST",
url: "Write.php",
data: {
'GUID': "12345678987654321",
'IP': "127.0.0.2",
'USERNAME': "George",
'BAN_REASON': "Broke my pencil."
},
success: function(data) {
console.log(data);
}
});
}
PHP:
<?php
exec("java -jar Database.jar '.$_POST['GUID']' '.$_POST['IP']' '.$_POST['USERNAME']' '.$_POST['BAN_REASON']'");
?>
基本上,PHP代码使用的是我制作的Java程序,该程序使用PHP"exec()"发送的参数写入MySQL数据库。它根本没有写入数据库,所以我假设这是AJAX进入PHP函数的结果。
当"Write()"运行时,它所做的只是将PHP代码打印到控制台。。。
新代码
<?php
//Server
$servername = "localhost";
$dbusername = $_POST['DB_USERNAME'];
$password = $_POST['DB_PASSWORD'];
$dbname = "bansdb";
$username = $_POST['USERNAME'];
$guid = $_POST['GUID'];
$ip = $_POST['IP'];
$ban_reason = $_POST['BAN_REASON'];
$connection = new mysqli($servername, $dbusername, $password, $dbname);
if ($connection->connect_error) {
die("Connection Failed: " . $connection->connect_error);
}
$sql = "INSERT INTO bans (GUID, IP, USERNAME, BAN_REASON)
VALUES ('$guid', '$ip', '$username', '$ban_reason')";
if (mysqli_query($connection, $sql)) {
echo "Ban successfully added.";
} else {
echo "Error: " . $sql . mysqli_error($connection);
}
mysqli_close($connection);
?>
我不会通过网络传递您的数据库用户/密码。只需制作一个简单的应用程序密码,并将密码与db user/password静态存储在PHP中(以HTML修改形式输入APP_PASSWORD
)。除了关闭SQL注入之外,使用参数化查询,您还可以在值中使用单引号,并且不必担心查询中断(驱动程序处理引号)。
<?php
//Server
$servername = "localhost";
$dbusername = 'static_db_user';//$_POST['DB_USERNAME'];
$password = 'staticpassword';//$_POST['DB_PASSWORD'];
$dbname = "bansdb";
if($_POST['APP_PASSWORD'] != 'Some generic password') {
die('Invalid Credentials');
}
$username = $_POST['USERNAME'];
$guid = $_POST['GUID'];
$ip = $_POST['IP']; // I would store IP as an unsigned int, ip2long
$ban_reason = $_POST['BAN_REASON'];
$connection = new mysqli($servername, $dbusername, $password, $dbname);
if ($connection->connect_error) {
die("Connection Failed: " . $connection->connect_error);
}
$sql = "INSERT INTO bans (GUID, IP, USERNAME, BAN_REASON)
VALUES (?,?,?,?)";
if ($stmt = mysqli_prepare($connection, $sql)) {
mysqli_stmt_bind_param($stmt, , 'ssss', $guid, $ip, $username, $ban_reason;
if(mysqli_stmt_execute($stmt)) {
echo "Ban successfully added.";
} else {
echo "Execute Error: " . $sql . mysqli_error($connection);
}
} else {
echo "Prepare Error: " . $sql . mysqli_error($connection);
}
mysqli_close($connection);
?>
它所做的只是将PHP代码打印到控制台。。。
您有配置为执行PHP代码的web服务器吗?您必须意识到,您不能只在浏览器中运行从"服务器"上的文件系统打开的普通php文件。
制作一个名为info.php
的新文件,并将其保存到web服务器。里面应该只有这个:
<?php
phpinfo();
如果您在浏览到该代码时看到该代码,则说明您没有启用PHP。否则,您将看到大量有关配置的信息。
不太确定我做的字符串正确
非常接近,但你应该读一下的一些报价
这可能对你有用:
<?php
exec("java -jar Database.jar $_POST[GUID] $_POST[IP] $_POST[USERNAME] $_POST[BAN_REASON]");
相关文章:
- Javascript运行php文件,然后下载文件
- 使用JS在服务器上运行PHP脚本
- 无法运行php代码,有角度路由问题
- 当使用答案运行PHP函数时,会弹出是/否警报
- 在从HTML表单提交时从javascript运行php
- 通过Wordpress中的jquery调用运行php文件
- 在JavaScript中运行php
- 在按钮'上运行PHP代码;s onclick事件,或者使用Ajax
- 使用JQuery运行php并刷新页面是不起作用的
- 当变量发生变化时运行PHP
- 通过JavaScript/jQuery运行PHP SQL Query以隐藏条目
- 如何在 NetBeans 中的 Java Web 应用程序项目中运行 php
- 如何在运行php脚本后保持弹出窗口打开
- 从Javascript运行PHP文件来检查在线用户:表示未登录的用户是
- 在不安装Zend优化器的情况下运行php文件
- 无法运行php函数来使用document.write更新db值
- ajax发布数据并点击运行php-sql查询
- 使用ajax运行php脚本不会显示任何结果
- 安排运行PHP文件
- 在onclick事件上运行PHP代码