Редактирование записи в базе данных.

Вывод записи правильный , после редактирования записи — не заносит в базу исправления, вот код

<?php
include 'config.php';
if($_SESSION['id'] == null OR $_SESSION['admin'] == '1')
{
header("Location: /signin.php"); exit();
}
if(!$_SESSION['id'] == null AND $_SESSION['admin'] == '2')
{
mysql_query('set character_set_client="utf8"');
mysql_query('set character_set_results="utf8"');
mysql_query('SET NAMES "utf8"');
?>
<!DOCTYPE html>
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Редактировать запись</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Редактировать запись">
<meta name="author" content="Dima TT&S">
<!-- Le styles -->
<link href="bootstrap/css/bootstrap.css" rel="stylesheet">
<link href="css/main.css" rel="stylesheet">
<script src="bootstrap/js/bootstrap.js"></script>
<link href="bootstrap/css/bootstrap-responsive.css" rel="stylesheet">
 </head>

<body>

<?php
include 'inc/menu.php';
?>
<div class="container">

  <h1>Редактировать запись</h1>


  <?php
error_reporting(E_ALL);
  $editq = mysql_query("SELECT * FROM otchet WHERE id='".$_GET['id']."'");
$edit = mysql_fetch_assoc($editq);

  ?>
           <form action="#" method="post"  class="form-horizontal">
 <div class="control-group">
 <label class="control-label" for="user_id">user_id:</label>
 <div class="controls">
  <input type="text" value="<?php echo $edit['user_id']; ?>" name="user_id" id="user_id" placeholder="">
  <?php if(isset($_POST['submit'])) { if($_POST['user_id'] == null) {echo '<span class="badge badge-warning">*    Обязательное поле</span>'; }} ?>
 </div>
 </div>
 <div class="control-group">
 <label class="control-label" for="awb">Номер AWB:</label>
 <div class="controls">
  <input type="text" value="<?php echo $edit['awb']; ?>" name="awb" id="awb" placeholder="">
  <?php if(isset($_POST['submit'])) { if($_POST['awb'] == null) {echo '<span class="badge badge-warning">* Обязательное    поле</span>'; }} ?>
  </div>
  </div>
  <div class="control-group">
  <label class="control-label" for="client">Псевдоним или фамилия:</label>
  <div class="controls">
  <input type="text" value="<?php echo $edit['client']; ?>" name="client" id="client" placeholder="">
  <?php if(isset($_POST['submit'])) { if($_POST['client'] == null) {echo '<span class="badge badge-warning">* Обязательное   поле</span>'; }} ?>
  </div>
  </div>
  <div class="control-group">
  <label class="control-label" for="phone">Телефон:</label>
  <div class="controls">
  <input type="text" value="<?php echo $edit['phone']; ?>" name="phone" id="phone" placeholder="">
  <?php if(isset($_POST['submit'])) { if($_POST['phone'] == null) {echo '<span class="badge badge-warning">* Обязательное   поле</span>'; }} ?>
  </div>
  </div>
  <div class="control-group">
   <label class="control-label" for="datatime">Когда привезли нам:</label>
   <div class="controls">
   <input type="text" value="<?php echo $edit['datatime']; ?>" name="datatime" id="datatime" placeholder="">
  <?php if(isset($_POST['submit'])) { if($_POST['datatime'] == null) {echo '<span class="badge badge-warning">* Обязательное  поле</span>'; }} ?>
   </div>
  <div class="control-group">
  <label class="control-label" for="birki_s">Бирки с:</label>
  <div class="controls">
  <input type="text" value="<?php echo $edit['birki_s']; ?>" name="birki_s" id="birki_s" placeholder="">
  <?php if(isset($_POST['submit'])) { if($_POST['birki_s'] == null) {echo '<span class="badge badge-warning">* Обязательное поле</span>'; }} ?>
  </div>
  <div class="control-group">
  <label class="control-label" for="birki_po">Бирки по:</label>
  <div class="controls">
  <input type="text" value="<?php echo $edit['birki_po']; ?>" name="birki_po" id="birki_po" placeholder="">
  <?php if(isset($_POST['submit'])) { if($_POST['birki_po'] == null) {echo '<span class="badge badge-warning">* Обязательное   поле</span>'; }} ?>
  </div>
  <div class="control-group">
  <label class="control-label" for="kol_mest">Количество мест:</label>
  <div class="controls">
  <input type="text" value="<?php echo $edit['kol_mest']; ?>" name="kol_mest" id="kol_mest" placeholder="">
  <?php if(isset($_POST['submit'])) { if($_POST['kol_mest'] == null) {echo '<span class="badge badge-warning">* Обязательное поле</span>'; }} ?>
  </div>
  <div class="control-group">
  <label class="control-label" for="ves">Вес:</label>
  <div class="controls">
  <input type="text" value="<?php echo $edit['ves']; ?>" name="ves" id="ves" placeholder="">
  <?php if(isset($_POST['submit'])) { if($_POST['ves'] == null) {echo '<span class="badge badge-warning">* Обязательное поле</span>'; }} ?>
  </div>    
  <div class="control-group">
  <label class="control-label" for="itogo">Итого:</label>
  <div class="controls">
  <input type="text" value="<?php echo $edit['itogo']; ?>" name="itogo" id="itogo" placeholder="">
  <?php if(isset($_POST['submit'])) { if($_POST['itogo'] == null) {echo '<span class="badge badge-warning">* Обязательное  поле</span>'; }} ?>
  </div>    
  <div class="control-group">
  <label class="control-label" for="plus">Плюс:</label>
  <div class="controls">
  <input type="text" value="<?php echo $edit['plus']; ?>" name="plus" id="plus" placeholder="">
  <?php if(isset($_POST['submit'])) { if($_POST['plus'] == null) {echo '<span class="badge badge-warning">* Обязательное поле</span>'; }} ?>
   </div>   
  <div class="control-group">
  <label class="control-label" for="vsego">Всего:</label>
  <div class="controls">
  <input type="text" value="<?php echo $edit['vsego']; ?>" name="vsego" id="vsego" placeholder="">
  <?php if(isset($_POST['submit'])) { if($_POST['vsego'] == null) {echo '<span class="badge badge-warning">* Обязательное поле</span>'; }} ?>
  </div>    
  <div class="control-group">
  <label class="control-label" for="umnozit_na">Умножить на:</label>
  <div class="controls">
  <input type="text" value="<?php echo $edit['umnozit_na']; ?>" name="umnozit_na" id="umnozit_na" placeholder="">
  <?php if(isset($_POST['submit'])) { if($_POST['umnozit_na'] == null) {echo '<span class="badge badge-warning">*   Обязательное поле</span>'; }} ?>
  </div>    
  <div class="control-group">
  <label class="control-label" for="primechanie">Примечание:</label>
  <div class="controls">
  <input type="text" value="<?php echo $edit['primechanie']; ?>" name="primechanie" id="primechanie" placeholder="">
  <?php if(isset($_POST['submit'])) { if($_POST['primechanie'] == null) {echo '<span class="badge badge-warning">* Обязательное поле</span>'; }} ?>
  </div>        
  </div>
  <div class="control-group">
  <div class="controls">

  <button type="submit" name="submit" id="submit" class="btn btn-primary show">Сохранить</button>
  </div>
  </div>
  </form>
  <?php if($_GET['ok'] == 1) {echo '<span class="badge badge-success">Запись изменена</span><br><br>'; } ?>                     
  <?php
  if(isset($_POST['submit'])) if(!$_POST['user_id'] == null AND !$_POST['awb'] == null AND !$_POST['client'] == null AND      !$_POST['phone'] == null AND !$_POST['datatime'] == null AND !$_POST['birki_s'] == null AND !$_POST['birki_po'] == null AND       !$_POST['kol_mest'] == null AND !$_POST['ves'] == null AND !$_POST['itogo'] == null AND !$_POST['plus'] == null AND       !$_POST['vsego'] == null AND !$_POST['umnozit_na'] == null AND !$_POST['primechanie'] == null)
  {

       mysql_query("UPDATE otchet SET user_id = '".$_POST['user_id']."', awb = '".$_POST['awb']."', client =     '".$_POST['client']."', phone = '".$_POST['phone']."', datatime = '".$_POST['datatime']."', birki_s = '".$_POST['birki_s']."',     birki_po = '".$_POST['birki_po']."', kol_mest = '".$_POST['kol_mest']."', ves = '".$_POST['ves']."', itogo =     '".$_POST['itogo']."', plus = '".$_POST['plus']."', vsego = '".$_POST['vsego']."', umnozit_na = '".$_POST['umnozit_na']."',          primechanie = '".$_POST['primechanie']."' WHERE id = '".$_GET['id']."'") or die("Ошибка!");    
        header("Location: tovaredit.php?id=".$_GET['id']."&ok=1"); exit();

}



   ?>
   </div>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
   <script src="bootstrap/js/bootstrap.js"></script>
   <script>
   window.onload = on_document_loaded;

    </script>
    </body></html>
    <?php } mysql_close();?>

Ошибку пишет такую:

Notice: Undefined index: ok in /home/www/ttsae.com/admin/tovaredit.php on line 140

140 строчка эта:

<?php if ($_GET['ok'] == 1) {
    echo '<span class="badge badge-success">Запись изменена</span><br><br>';
} ?>

Если эту строчку убрать совсем , то ошибки не будет , но и запись не меняется.

ТС, «Notice» — это не ошибка, а замечание об не оптимальной проверке индекса. Используйте функцию empty() или array_key_exists() для проверки ключа.

if (!empty($_GET["ok"]) && $_GET["ok"] === "1") {
    echo "Ok...";
}

Всё бы ничего , но оставил только if(isset($_POST['submit'])), а всё остальное выкинул и запись в базу пошла и без ошибок, непонятно...

Функция isset() проверяет существования переменной или индекса массива. Если не делать проверку, то при отправке пустой формы в базу попадут пустые значение.

Обрабатывайте значения из запроса функциями mysql_real_escape_string() и htmlspecialchars() для того, чтобы обезопаситься от инъекций и XSS.

if (!empty($_POST['birki_s'])) {
    $_POST['birki_s'] = mysql_real_escape_string($_POST['birki_s']);
    $_POST['birki_s'] = htmlspecialchars($_POST['birki_s']);
}

Но это не панацея. Лучше используйте расширение PDO для работы с базой данных. Функции mysql_query() и ее производные являются устаревшими, начиная с PHP 5.5.

У меня тоже выбивало ошибку, никак не мог найти причину.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.