我对php相当陌生,我正在尝试构建一个to-do应用程序。
我在一个名为public的文件夹中有一个基本的html表单,如下所示:
<form method="POST" action="src/create.php">
<label>Task:</label>
<input name="title" type="text" placeholder="Name your task..." required>
<br>
<label>Task description: </label>
<input name="description" type="text" placeholder="Description" required>
<br><br>
<input type="submit" name="submit" value="Create a task">
</form>
..就像这个动作所暗示的那样,我有一个文件夹src,我试图在其中将数据插入到数据库中,如下所示:
<?php
include_once __DIR__ . '/../database/conn_db.php';
if (isset($_POST["submit"])){
$taskTitle = mysqli_real_escape_string($conn, $_REQUEST["title"]);
$taskDescription = mysqli_real_escape_string($conn, $_REQUEST["description"]);
if(empty($_POST["title"])) {
header("Location: ../public/index.php?create=error".urlencode("Invalid title"));
exit();
}
if(empty($_POST["description"])) {
header("Location: ../public/index.php?create=error".urlencode("Invalid description"));
exit();
}
$sql = "INSERT INTO todolist.tasks (title, description) VALUES ('$taskTitle', '$taskDescription')";
mysqli_query($conn, $sql);
header("Location: ../public/index.php?create=success");
}
当我提交数据到create.php我撞到一个 *404请求的URL并没有在此服务器上找到 * error
我已经尝试了action="../src/create.php
等,但由于某种原因,我就是不能访问src文件夹或其中的文件。
我的文件夹结构如下:
公开的
--index.php
源代码
--create.php
资料库
--conn_db.php
任何帮助都是感激不尽的,谢谢!
P.S.当我使用Xdebug的live服务器时,一切都运行良好,但当我使用Apache 2.4(WIN)时,就会发生这个错误。
1条答案
按热度按时间gwbalxhn1#
它看起来像你正在你的开发pc上尝试。在这种情况下,你需要使用这样的东西
action="localhost/src/create.php"
否则,浏览器不知道您正在查看的是哪个域。当然,对于部署,您必须更改路径。
以下是实现此目的的一些方法
1.我有一个名为make_link的函数,它使用Debug标志为路径返回一个不同的前缀。
1.在common.php中设置一个前缀,根据您是在调试还是在生产服务器上运行而定。将此前缀包含在所有页面中,并为所有公共路径添加前缀(不包括路径)。
1.在php.ini中具有前缀变量
1.更安全的方法是在**.htaccess**文件中包含环境变量