编辑表单不需要';不工作php
实际上,我花了三天时间试图解决这个问题,现在不知道该怎么办。 编辑表单不起作用。我没有错误消息 并没有保存数据文件,因为我只从数据库输出数据。 和edit.php编辑表单不需要';不工作php,php,mysql,Php,Mysql,实际上,我花了三天时间试图解决这个问题,现在不知道该怎么办。 编辑表单不起作用。我没有错误消息 并没有保存数据文件,因为我只从数据库输出数据。 和edit.php <?php include_once 'config.php'; if (isset($_POST['submit'])){ if (empty($_POST['username'])){ $errors = "Впишите ваше имя"; }elseif (empty($_POST['email']))
<?php
include_once 'config.php';
if (isset($_POST['submit'])){
if (empty($_POST['username'])){
$errors = "Впишите ваше имя";
}elseif (empty($_POST['email'])){
$errors = "Впишите ваш email";
}elseif (empty($_POST['task'])){
$errors = "Впишите задание";
}elseif (empty($_FILES['image']['name'])){
$errors = "Вставьте картинку";
}else{
$id = $_GET['edit'];
$username = mysqli_real_escape_string($db,
trim($_POST['username']));
$email = mysqli_real_escape_string($db,
trim($_POST['email']));
$task = mysqli_real_escape_string($db,
trim($_POST['task']));
$image = mysqli_real_escape_string($db,
$_FILES['image']['name']);
$target = "uploads/".basename($_FILES['image']['name']);
$sql = "UPDATE `tasks` SET `username`='$username', `email`='$email',
`task`='$task', `image`='$image' WHERE `id`='$id'";
mysqli_query($db, $sql);
move_uploaded_file($_FILES['image']['tmp_name'], $target);
$home_url = 'http://' . $_SERVER['HTTP_HOST'];
header('Location:' . $home_url);
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>задачник</title>
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
integrity="sha384-
BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">
<link href="/css/style.css" rel="stylesheet">
</head>
<body>
<header>
<h3>Внесение изменений в запись</h3>
<a href="index.php" class="btn btn-default">На страницу
администратора</a>
</header>
<br>
<form method="POST" action="<?=$_SERVER['PHP_SELF'];?>" class="input_form"
enctype="multipart/form-data">
<input type="text" name="username" placeholder="Введите Имя"
class="username_input">
<input type="email" name="email" placeholder="Введите email"
class="email_input">
<br>
<br>
<input type="hidden" name="MAX_FILE_SIZE" value="300000" />
<input type="text" name="task" placeholder="Введите задание"
class="task_input">
<p>Сменить изображение</p>
<input type="file" name="image" multiple accept="image/png, image/jpeg,
image/gif">
<br>
<button type="submit" name="submit" id="add_btn">Изменить
запись</button>
</form>
编辑.php文件中的更新查询不正确
$sql = "UPDATE `tasks` SET `username`='$username', `email`='$email',`task`='$task', WHERE `id`='$id'";
update query before where子句中存在其他分号。请将其删除。我认为错误在$image
值中。自己调试并找到错误-
<?php
include_once 'config.php';
if (isset($_POST['submit'])){
echo 'form submitted? - okay <br/>';
if (empty($_POST['username'])){
$errors = "Впишите ваше имя";
}elseif (empty($_POST['email'])){
$errors = "Впишите ваш email";
}elseif (empty($_POST['task'])){
$errors = "Впишите задание";
}elseif (empty($_FILES['image']['name'])){
$errors = "Вставьте картинку";
}else{
echo 'form validated? - okay <br/>';
$id = $_GET['edit'];
$username = mysqli_real_escape_string($db,
trim($_POST['username']));
$email = mysqli_real_escape_string($db,
trim($_POST['email']));
$task = mysqli_real_escape_string($db,
trim($_POST['task']));
$image = mysqli_real_escape_string($db,
$_FILES['image']['name']);
//most probably error is here --- $_FILES['image']['name'] should gives you array!!! as you have used "multiple" in input
var_dump($_FILES, $_FILES['image'], $_FILES['image']['name']); //die('debug--');
$target = "uploads/".basename($_FILES['image']['name']);
$sql = "UPDATE `tasks` SET `username`='$username', `email`='$email',
`task`='$task', `image`='$image' WHERE `id`='$id'";
echo $sql.'<br/>' ; //copy this sql and run in phpmyadmin sql-console and check if there is any error
die('checking sql statement');
mysqli_query($db, $sql);
move_uploaded_file($_FILES['image']['tmp_name'], $target);
$home_url = 'http://' . $_SERVER['HTTP_HOST'];
//header('Location:' . $home_url);
}
}
?>
检查edit.php文件中表单标记中的“action”属性action=“”
。它应该是action=“/”
。
PHP_SELF不附加get参数。您能更准确地说明您的问题并将给定的代码简化为该问题吗?请尝试注释/禁用行标题('Location:'。$home\u url)代码>因此它不会被重定向。只是看看更新查询是否有任何错误。您的查询容易受到注入攻击,因为您没有逃逸$id
参数。切换到使用。它更健壮,更安全secure@NicoHaase对此我很抱歉,但我认为仅仅显示edit.php文件并不能给出problem@DharmaSaputra现在在点击提交后,我有了类似[test/edit.php]的url,很抱歉我的Innation,我删除了一些代码来观察表单在不编辑图像的情况下是如何工作的,它什么也没有给我,我用i$mages now更新了sql首先,在“edit.php”文件中注释“header('Location:'.$home_url);”这一行,看看它抛出了什么错误。单击提交后,我得到了类似[test/edit.php]的url如果未保存数据,则在单击“提交”后必须打印错误消息。能否在edit.php文件顶部添加以下两行,然后再次提交表单。错误报告(E_全部);ini设置(“显示错误”,1);我收到通知:未定义索引:在第14行编辑$id=$\u get['edit']代码>我在sql语句UPDATE
tasks`SETusername
='123qwe',email
='123@gmail.rasr“,task
='123qwe',image
='22111.jpg'其中id
=''检查sql语句`但var\u转储($\u GET['edit']))
提供了我想要编辑的数据的正确id。您现在能解决您的问题吗??如果没有,则用适当的问题更新问题