我和#34;奇怪的"问题。
这是我创建新主题的方式。 如果未设置sesson,请返回index.php,或者如果设置为连接到db,则从表单获取信息并将其放入db。然后,如果一切正常浏览器返回index.php。这很好用:
<?php
session_start();
if(!isset($_SESSION['username'])){
header("location: index.php");
}
if(isset($_POST["submit"])){
include ('../modules/dbconnect.php');
$uname = $_SESSION['username'];
$utitle = $_POST["title"];
$utext = $_POST["myTextArea"];
$query = mysqli_query($conn, "INSERT INTO topic (author, title, text) VALUES ('$uname', '$utitle','$utext')");
if($query){header("Location: ../index.php");}
$conn->close();
}
?>
<form class="registration_form" action="" method="post">
<label>Titolo</label>
<input type="text" name="title" class="input">
<label>Testo</label>
<textarea name="myTextArea"></textarea>
<input class="button" type="submit" name="submit" value="submit">
</form>
这是我的问题。我在进入主题后使用相同的结构插入帖子,但我不知道为什么这不起作用,我无法弄清楚问题是什么:
<?php
if(isset($_POST["submit"])){
include('modules/dbconnect.php');
$id = $_GET['id'];
$uname = $_SESSION['username'];
$utext = $_POST["myText"];
$query = mysqli_query($conn, "INSERT INTO post (id, author, text) VALUES ('$id, '$uname', '$utext')");
if($query){header("Location: ../index.php");}
$conn->close();
}
?>
<form class="reply_form" action="" method="post">
<label>Testo</label>
<textarea name="myText"></textarea>
<input class="button" type="submit" name="submit" value="submit">
</form>
答案 0 :(得分:1)
VALUES ('$id, '$uname', '$utext')
- &GT;缺少一个&#39;在$ id ???之后
答案 1 :(得分:1)
在第一个工作代码段中, include('../ modules / dbconnect.php');
以下你用过 包括( '的模块/ dbconnect.php');
因此,由于文件路径问题,您可能没有连接对象。 请检查一下 如果您看到任何错误,请发布错误
答案 2 :(得分:0)
改变这个:
$query = mysqli_query($conn, "INSERT INTO post (id, author, text) VALUES ('$id, '$uname', '$utext')");
对此:
$query = mysqli_query($conn, "INSERT INTO post (id, author, text) VALUES ('$id', '$uname', '$utext')");
另外,检查include('modules/dbconnect.php');
的正确路径,因为您首先使用了两条不同的路径include('../modules/dbconnect.php');
,然后又使用了另一条路径。
'
('$id,
答案 3 :(得分:0)
您使用InnoDB作为存储引擎吗?如果是这样,您可能忘记将mysqli_autocommit
设置为true或在查询后致电mysqli_commit
。