Добрый день, подскажите пожалуйста не могу понять в чем причина, нажатие на "Сохранить" ни к чему не приводит. Могу ошибаться но возможно переменные не обьявлены в php части HTML: < ?php if(count($_FILES) > 0) { if(is_uploaded_file($_FILES['imaga']['tmp_name'])) { require_once "db.php"; $imgData =addslashes(file_get_contents($_FILES['imaga']['tmp_name'])); $imageProperties = getimageSize($_FILES['imaga']['tmp_name']); $sql = "INSERT INTO kuchnya(type, names, sostav, ves, opisanie, imageType, imageData ) VALUES('{$types}', '{$names}', '{$sostav}', '{$ves}', '{$opisanie}','{$imageProperties['mime']}', '{$imgData}')"; $current_id = mysqli_query($conn, $sql) or die("<b>Error:</b> Problem on Image Insert<br/>" . mysqli_error($conn)); if(isset($current_id)) { header("Location: listImages.php"); } } } ?> <!DOCTYPE html> <HTML lang="en"> <HEAD> <meta charset="utf-8"> </HEAD> <BODY> <form name="frmImage" enctype="multipart/form-data" action="" method="post" > <select name="types"> <option selected disabled>Выбери меня:</option> <option value="6">6</option> <option value="5">5</option> <option value="4">4</option> <option value="3">3</option> <option value="2">2</option> <option value="1">1</option> </select> <input name="names" type="text" class="text"/> <input name="sostav" type="text" class="text"/> <input name="ves" type="text" class="text"/> <input name="opisanie" type="text" class="text"/> <input name="imaga" type="file" class="inputFile" /> <input type="submit" value="Сохранить" class="btnSubmit" /> </form> </BODY> </HTML>
<?php --- Добавлено --- Чтобы два влож. ветвления не писать, можно объединить в одном простые условия в сложное при помощи && (AND). После header Location лучше exit написать, чтобы контент страницы «впустую» не отправлялся. В ответ на POST-запрос лучше всегда делать редирект, а не только по условию. Прочие POST-параметры находятся в массиве $_POST. При вставке вход. данных в БД их нужно фильтровать, экранировать или использовать т.н. подготовленные запросы. --- Добавлено --- Нет, просто if ($current_id). И там никакого current_id никогда не будет. Учите мат. часть.
вот так работает но, если ставлю кодировку в запросе, то картинка не грузится, если без кодировки то русские символы абра-кадаброй Код (Text): <?php if(count($_FILES) > 0) && (is_uploaded_file($_FILES['userImage']['tmp_name'])) { require_once "db.php"; $imgData =addslashes(file_get_contents($_FILES['userImage']['tmp_name'])); $imageProperties = getimageSize($_FILES['userImage']['tmp_name']); $type = $_POST['type']; $names = $_POST['names']; $sostav = $_POST['sostav']; $ves = $_POST['ves']; $opisanie = $_POST['opisanie']; $query = "INSERT INTO kuchnya(type, names, sostav, ves, opisanie, imageType, imageData ) VALUES('{$type}', '{$names}', '{$sostav}', '{$ves}', '{$opisanie}','{$imageProperties['mime']}', '{$imgData}')"; mysqli_query($conn,"SET CHARACTER SET 'utf8'"); date_default_timezone_set('Asia/Yekaterinburg'); $result = mysqli_query($conn, $query) or die("<b>Error:</b> Problem on Image Insert<br/>" . mysqli_error($conn)); if(isset($query)) { mysqli_free_result($result); header("Location: listImages.php"); exit(); } } ?> <!DOCTYPE html> <HTML lang="en"> <HEAD> <meta charset="utf-8"> </HEAD> <BODY> <form name="frmImage" enctype="multipart/form-data" action="" method="post" > <select name="types"> <option selected disabled>Выбери меня:</option> <option value="6">6</option> <option value="5">5</option> <option value="4">4</option> <option value="3">3</option> <option value="2">2</option> <option value="1">1</option> </select> <input name="names" type="text" class="text"/> <input name="sostav" type="text" class="text"/> <input name="ves" type="text" class="text"/> <input name="opisanie" type="text" class="text"/> <input name="imaga" type="file" class="inputFile" /> <input type="submit" value="Сохранить" class="btnSubmit" /> </form> </BODY> </HTML>
Код (Text): <?php if((count($_FILES) > 0)AND(is_uploaded_file($_FILES['userImage']['tmp_name']))) { require_once "db.php"; $imgData =addslashes(file_get_contents($_FILES['userImage']['tmp_name'])); $imageProperties = getimageSize($_FILES['userImage']['tmp_name']); $type = $_POST['type']; $names = $_POST['names']; $sostav = $_POST['sostav']; $ves = $_POST['ves']; $opisanie = $_POST['opisanie']; $query = "INSERT INTO kuchnya(type, names, sostav, ves, opisanie, imageType, imageData ) VALUES('{$type}', '{$names}', '{$sostav}', '{$ves}', '{$opisanie}','{$imageProperties['mime']}', '{$imgData}')"; mysqli_query($conn,"SET CHARACTER SET 'utf8'"); date_default_timezone_set('Asia/Yekaterinburg'); $result = mysqli_query($conn, $query) or die("<b>Error:</b> Problem on Image Insert<br/>" . mysqli_error($conn)); if(isset($query)) { mysqli_free_result($result); header("Location: listImages.php"); exit(); } } ?> <!DOCTYPE html> <HTML lang="en"> <HEAD> <meta charset="utf-8"> <form name="frmImage" enctype="multipart/form-data" action="" method="post" class="frmImageUpload"> <select name="type"> <option selected disabled>Тип блюда:</option> <option value="Чебурашка">Салаты</option> <option value="Крокодил Гена">Супы</option> <option value="Шапокляк">Второе блюдо</option> <option value="Крыса Лариса">Гарнир</option> <option value="Крыса Лариса">Напиток</option> <option value="Крыса Лариса">Выпечка</option> </select> <input name="names" type="text" class="text"/> <input name="sostav" type="text" class="text"/> <input name="ves" type="text" class="text"/> <input name="opisanie" type="text" class="text"/> <input name="userImage" type="file" class="inputFile" /> <input type="submit" value="Сохранить" class="btnSubmit"/></form> </BODY> </HTML>
короч сделал как попало через два коннекта Код (Text): $query = "INSERT INTO kuchnya(imageType, imageData ) VALUES('{$imageProperties['mime']}', '{$imgData}')"; $result = mysqli_query($conn, $query) or die("<b>Error:</b> Problem on Image Insert<br/>" . mysqli_error($conn)); mysqli_query($conn,"SET CHARACTER SET 'utf8'"); date_default_timezone_set('Asia/Yekaterinburg'); $query = "UPDATE kuchnya set type = '{$type}', names = '{$names}', sostav = '{$sostav}', ves = '{$ves}', opisanie = '{$opisanie}' where names is null ORDER BY imageId DESC LIMIT 1"; $result = mysqli_query($conn, $query) or die("<b>Error:</b>not insert data<br/>" . mysqli_error($conn)); mysqli_close($conn); тупо но работает
Должен заметить, что не получается у вас потому , что вы изначально в решении проблемы применили неверный подход. Разбейте действие скрипта на составляющие: 1. Cделайте тестовый обработчик и отправьте ему вашу форму. Распечатайте то, что он получает, и убедитесь, что это то, что вы и задумывали. 2. Из полученных данных вручную сформируйте строку запроса, и протестируйте его в phpMyAdmin. 3. Удостоверившись, что запрос выполняется именно так, как и задумывалось, там же в phpMyAdmin, преобразуйте его в код php. 4. С помощью echo выведите в вашем скрипте полученный код. Сравните его с ранее сформированной строкой запроса. И только после этого добавляйте туда переменные из формы, на каждом этапе контролируя вводимые данные. И т.д.