За последние 24 часа нас посетили 20736 программистов и 1134 робота. Сейчас ищут 383 программиста ...

Проблема с header

Тема в разделе "PHP для новичков", создана пользователем Journalist, 31 авг 2020.

  1. Journalist

    Journalist Новичок

    С нами с:
    21 авг 2020
    Сообщения:
    22
    Симпатии:
    0
    Подскажите пожалуйста. Столкнулся с такой проблемой. Есть форма загрузки инфы и фото. При этом я хочу, чтобы после загрузки выводилась главная страница. НО как только добавил header, то не могу залезть на страницу админки, меня сразу перенаправляет на главную страницу. В чем дело? Ниже код

    Код (Text):
    1. <?php
    2. require_once 'core/config.php'; //меняем пути
    3. require_once 'core/function.php';
    4. ?>
    5. <?php
    6. $title = $_POST['title'];
    7. $descrMin = $_POST['descr-min'];
    8. $description = $_POST['description'];
    9. move_uploaded_file($_FILES['image']['tmp_name'], 'images/'.$_FILES['image']['name']);
    10. $conn = connect();
    11. $sql = "INSERT INTO info (title, descr_min, description, image)
    12. VALUES ('".$title."', '".$descrMin."', '".$description."', '".$_FILES['image']['name']."')";
    13.  
    14. if (mysqli_query($conn, $sql)) {
    15. header('Location: /kurs/unit_14/index.php');
    16.   //echo 'Новая запись добавлена';
    17. } else {
    18.   echo "Error: " . $sql . "<br>" . mysqli_error($conn);
    19. }
    20. close($conn);
    21. ?>
    22.  
    23. <form action="" method="POSt" enctype="multipart/form-data">
    24. <p>Title: <input type="text" name="title"></p>  
    25. <p>Min description</p>
    26. <textarea name="descr-min"></textarea>
    27. <p>Description</p>
    28. <textarea name="description"></textarea>
    29. <p>Photo: <input type="file" name="image"></p>
    30. <p><input type="submit" value="add"></p>
    31. </form>
     
  2. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    @Journalist, для начала надо определиться с тем, когда надо, а когда - не надо выполнять запрос на вставку значения в базу.
    То есть, проверить - переданы ли из формы данные, или это просто страничка открывается... а данных в $_POST - нет.
    А ещё есть функции фильтрации данных.
    И много других нюансов.
     
  3. Journalist

    Journalist Новичок

    С нами с:
    21 авг 2020
    Сообщения:
    22
    Симпатии:
    0
    Проверка есть в файле inde.php. смысл в том, чтобы после нажатия кнопки добавить, данные уходили в базу данных, а переход осуществлялся на главную страницу. В принципе все работает, если перед тем как зайти в админку, я закомментирую header, а потом как отправлять файлы разкомментирую его.
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.787
    Симпатии:
    646
    Все работает, как ты и хотел :D
    --- Добавлено ---
    Про админку вАще не понятно.
     
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.734
    Симпатии:
    1.315
    Адрес:
    Лень
    @Journalist, где проверяешь в скрипте какой тип запроса пришел ?
     
  6. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.787
    Симпатии:
    646
    PHP:
    1. if ($_SERVER['REQUEST_METHOD']=='POST')
    2. {
    3.     // POST
    4.     exit;
    5. }
    6.  
    7. // GET и др.
    Также можно проверять на POST по наличию POST-параметров. Это все равно нужно делать! Писал уже об этом вам. Толку, вижу, ноль.
    --- Добавлено ---
    P.S. Для перенаправления по тек. адресу, чтобы его не хардкодить, можно использовать $_SERVER['REQUEST_URI']. Для гарантированного POST/Redirect/GET можно использовать статус 303 вместо дефолтного 302, хотя браузеры и 302 норм. обрабатывают.