За последние 24 часа нас посетили 21985 программистов и 988 роботов. Сейчас ищут 714 программистов ...

$_GET('id') пропадает после отправки формы!

Тема в разделе "PHP для новичков", создана пользователем Drobotko Taras, 28 июл 2017.

  1. Drobotko Taras

    Drobotko Taras Активный пользователь

    С нами с:
    13 окт 2016
    Сообщения:
    30
    Симпатии:
    1
    Добрый день! Пишу код для edit.php (используя PDO), который дает возможность админу редактировать статьи на блоге. Админ заходит с главной страницы, например, по адресу /edit.php?id=7, делает необходимые правки статьи в полях формы и жмет кнопку "Сохранить". Но! Необходимого обновления таблицы в БД mysql не происходит. Проанализировав код, я пришёл к заключению, что ошибка св'язана с передачей $_GET['id'] внутрь блока if (isset($_POST['submit'])) { ...}. $_GET['id'] передает id статьи, по которому идентификуется стаття в БД. Как, в моем случае, можно передать id статьи внутрь блока с кодом:
    PHP:
    1. //....
    2. <?php
    3. if (isset($_POST['submit'])) {
    4.   try {
    5.   $stmt = $conn->prepare('UPDATE content SET title= :title, short_desc= :short_desc,
    6.  full_desc= :full_desc, timestamp= :timestamp WHERE id = :id');
    7.   $stmt->bindParam(':id', $_GET['id'], PDO::PARAM_INT);
    8.  
    9.   $stmt->bindParam(':title', strip_tags($_POST['title']));
    10.  
    11.   $stmt->bindParam(':short_desc', htmlspecialchars($_POST['short_desc']));
    12.   $stmt->bindParam(':full_desc', htmlspecialchars($_POST['full_desc']));
    13.  
    14.   $date = "{$_POST['date']}  {$_POST['time']}";
    15.   $stmt->bindParam(':timestamp', strtotime($date));
    16.  
    17.   $status= $stmt->execute();
    18.  
    19. } catch(PDOException $e) {
    20.  
    21.   print "ERROR: {$e->getMessage()}";
    22.  
    23.   require('base/footer.php');
    24.  
    25.   exit;
    26. }
    27. //...
    28. }
    29. ?>
    30. <form action="<?php print $_SERVER["PHP_SELF"]; ?>" method="POST">'
    31. //...
    32. </form>
    33. /...
    Помогите, пожалуста, разобраться!
     
    #1 Drobotko Taras, 28 июл 2017
    Последнее редактирование: 28 июл 2017
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    код формы покажи
     
  3. Drobotko Taras

    Drobotko Taras Активный пользователь

    С нами с:
    13 окт 2016
    Сообщения:
    30
    Симпатии:
    1
    PHP:
    1. <form action="<?php print $_SERVER["PHP_SELF"]; ?>" method="POST">
    2.  
    3.   <div class="field-item">
    4.   <label for="title">Заголовок</label>
    5.   <input type="text" name="title" id="title" required maxlength="255" value="<?php echo $article['title']; ?>">
    6.   </div>
    7.  
    8.   <div class="field-item">
    9.   <label for="short_desc">Короткий зміст</label>
    10.   <textarea name="short_desc" id="short_desc" required maxlength="600"><?php echo $article['short_desc']; ?></textarea>
    11.   </div>
    12.  
    13.   <div class="field-item">
    14.   <label for="full_desc">Повний зміст</label>
    15.   <textarea name="full_desc" id="full_desc"
    16.   required><?php echo $article['full_desc']; ?></textarea>
    17.   </div>
    18.  
    19.   <div class="field-item">
    20.   <label for="date">День створення</label>
    21.   <input type="date" name="date" id="date" required
    22.   value="<?php print date('Y-m-d', $article['timestamp']); ?>">
    23.  
    24.   <label for="time">Час створення</label>
    25.   <input type="time" name="time" id="time" required
    26.   value="<?php print date('G:i', $article['timestamp']); ?>">
    27.   </div>
    28.  
    29. <input type="submit" name="submit" value="Зберегти">
    30.  
    31. </form>
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    Код (Text):
    1.     <form action="<?php print $_SERVER["PHP_SELF"].'?id=7'; ?>
    так надо гет то оптравлять
     
  5. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    PHP:
    1. <?php print $_SERVER["REQUEST_URI"]; ?>