我发布了表单的缩短版本并更新了行。我真的很感激任何帮助。我花了最后48小时尝试了所有我能想到的东西,这让我疯狂。如果我删除行if($ _ SERVER [“REQUEST_METHOD”] ==“POST”),程序将在加载页面时运行,并使用空白字段更新URL中ID的表。提前致谢。这是代码:
<?php
$id = $_GET['id'];
$user = $_SESSION['user'];
Echo '<form action="editone.php" method="POST">
Enter new name:<input type="text" name="namex" />
<input type="submit" name="Submit" value="Update List" /> </form>';
if($_SERVER["REQUEST_METHOD"]=="POST")
{
$dblink = "nn000185_manager";
$cxn = new mysqli("localhost","user","password", $dblink);
$details = mysqli_real_escape_string($cxn, $_POST['namex']);
$numb = mysqli_real_escape_string($cxn, $id);
$query = "UPDATE EDITORES SET nom_edit = '$details' WHERE edit_id = $numb";
mysqli_query($cxn, $query);
echo $query;
}
?>
答案 0 :(得分:0)
我认为您的表单操作没有通过ID。
<form action="editone.php" method="POST">
如果您将单个文件用作表单编辑器和操作,则表单编辑器网址应为{{3} }
尝试将表单操作更改为
<form action="editone.php?id='.$_GET['id'].'" method="POST">
或只是将操作留空
<form action="" method="POST">
答案 1 :(得分:0)
好的 - 也许我离这里不远,但我看到了以下问题。
1)您的方法是POST,但您的ID来自GET。 2)我没有看到id来自哪里。它可能来自某个地方但没有发布,但我没有看到它。
您是否检查过验证该值是否实际传递给了php?
试试这个
echo "GET = " . var_dump($_GET);
echo "<br><br>";
echo "POST = " . var_dump($_POST);
exit();
发布结果,然后发布id来自哪里,如果你仍然无法弄明白。 :)
答案 2 :(得分:0)
使用以下代码:
$query = "SELECT now_edit, FROM EDITORIES WHERE edit_id='$numb' LIMIT 1";
答案 3 :(得分:0)
我认为您的网页最初是从另一个网页上的锚点链接调用的,这就是您从id
获取$_GET['id']
的原因。
当用户按下提交按钮时,表单将作为POST提交,因此所有数据都将在$ _POST中,因此$ _GET ['id']将失败,并且应该生成错误消息。
您需要从第一个实例化中保存$ _GET ['id'],以便在表单发布给您时使用它。因此,请将其放在hidden
字段中,该字段将通过帖子发布给您
<?php
session_start();
$user = $_SESSION['user'];
if($_SERVER["REQUEST_METHOD"]=="GET") {
if ( isset($_GET['id']) ) {
$id = $_GET['id']);
} else {
// no param passed, could be a hack
header('Location: some_error_page.php');
exit;
}
echo '<form action="editone.php" method="POST">';
echo '<input type="hidden" name="id" value="' . $id . '">';
echo 'Enter new name:<input type="text" name="namex" />';
echo '<input type="submit" name="Submit" value="Update List" /></form>';
}
if($_SERVER["REQUEST_METHOD"]=="POST") {
$dblink = "nn000185_manager";
$cxn = new mysqli("localhost","user","password", $dblink);
$details = mysqli_real_escape_string($cxn, $_POST['namex']);
$numb = mysqli_real_escape_string($cxn, $_POST['id']);
$query = "UPDATE EDITORES SET nom_edit = '$details' WHERE edit_id = $numb";
mysqli_query($cxn, $query);
echo $query;
}
?>