Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编辑表单不需要';不工作php_Php_Mysql - Fatal编程技术网

编辑表单不需要';不工作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']))

实际上,我花了三天时间试图解决这个问题,现在不知道该怎么办。 编辑表单不起作用。我没有错误消息

并没有保存数据文件,因为我只从数据库输出数据。 和edit.php

<?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`SET
username
='123qwe',
email
='123@gmail.rasr“,
task
='123qwe',
image
='22111.jpg'其中
id
=''检查sql语句`但
var\u转储($\u GET['edit']))
提供了我想要编辑的数据的正确id。您现在能解决您的问题吗??如果没有,则用适当的问题更新问题