0

我使用以下命令在 Ubuntu 12.04 中安装了灯:

$ sudo apt-get install tasksel

$ sudo tasksel install lamp-server

并在浏览器中运行以下 .php 文件,它是通过更新数据库来执行的

<?php
$con=mysqli_connect("localhost","root","passwd","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

mysqli_query($con,"INSERT INTO Persons (FirstName, LastName, Age)
VALUES ('Peter', 'Griffin',35)");

mysqli_query($con,"INSERT INTO Persons (FirstName, LastName, Age)
VALUES ('Glenn', 'Quagmire',33)");

mysqli_close($con);
?> 

但是当我使用 .html 文件连接 .php 文件并更新 mysql 数据库时,.php 不会执行并希望保存在文件夹中(默认为下载文件夹)。.html 文件是:

<html>
<body>

<form action="/var/www/insert.php" method="post">
Firstname: <input type="text" name="firstname">
Lastname: <input type="text" name="lastname">
Age: <input type="text" name="age">
<input type="submit">
</form>

</body>
</html> 

insert.php 文件是:

<?php
$con=mysqli_connect("localhost","root","passwd","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";

if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }
echo "1 record added";

mysqli_close($con);
?> 

请帮忙!

4

3 回答 3

1
action="/var/www/insert.php"

你的路看起来很奇怪,试试吧

action="insert.php"
于 2013-06-09T18:55:46.783 回答
0

解决了!我刚刚将html文件的一部分修改为,

<form action="http://localhost/insert.php" method="post">
于 2013-06-19T19:38:20.693 回答
0

正如已经指出的那样,您表单中的路径/操作不正确。当您只需要相对于 URL 路径的路径时,您已经输入了文件的完整本地路径:

action="insert.php"

除此之外,您的 SQL 非常混乱,不适用于多字输入,并且容易受到注入。至少这样做:

$sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES ('".mysqli_real_escape_string($_POST["firstname"])."','".mysqli_real_escape_string($_POST[lastname])."','".mysqli_real_escape_string($_POST[age])."')";

或者更好的是,查看准备好的语句。

于 2013-06-09T19:05:15.057 回答