131313sd 23 Posted May 20, 2015 Report Share Posted May 20, 2015 Всем привет, на учебу нужно сделать сайт на PHP. Запоролся в 2х местах: (нужно сделать добавление данных через форму, и туда добавить файл, с этим разобрался, файл добавляется, все отлично.) - А вот редактировать данный файл не получается, то есть при редактировании подгружаю файл, при нажатии кнопки сохранить, выдает ошибку, вы не ввели все поля, и ничего не меняется. - Второй косяк, хотел сделать, чтобы без авторизации, некоторые элементы не были видны, сделал, но авторизовываясь, все равно их не показывает, пришлось вообще убрать. Как это поправить. Может кто сможет помочь с этими вопросами. <?php include ("/lock.php"); header("Content-Type: text/html; charset=UTF-8"); error_reporting(E_ALL); ini_set("display_errors", 1); if (sizeof($_FILES)!=0){ $uploaddir = 'tovars/'; $uploadfile = $uploaddir . basename($_FILES['filename']['name']); if (move_uploaded_file($_FILES['filename']['tmp_name'], $uploadfile)) { echo"Загружено изображение- ".basename($_FILES['filename']['name']).""; } else { echo "Файл загрузить не удалось"; } } if (isset($_GET['id'])) {$id = $_GET['id'];} include("blocks/bd.php"); if(isset($_POST['title'])) {$title = $_POST['title']; if ($title == ''){unset($title);}} if(isset($_POST['meta_d'])) {$meta_d = $_POST['meta_d']; if ($meta_d == ''){unset($meta_d);}} if(isset($_POST['meta_k'])) {$meta_k = $_POST['meta_k']; if ($meta_k == ''){unset($meta_k);}} if(isset($_POST['date'])) {$date = $_POST['date']; if ($date == ''){unset($date);}} if(isset($_POST['description'])) {$description = $_POST['description']; if ($description == ''){unset($description);}} if(isset($_POST['text'])) {$text = $_POST['text']; if ($text == ''){unset($text);}} if(isset($_POST['author'])) {$author = $_POST['author']; if ($author == ''){unset($author);}} if(isset($_POST['price'])) {$price = $_POST['price']; if ($price == ''){unset($price);}} if(isset($_POST['cat'])) {$cat = $_POST['cat']; if ($cat == ''){unset($cat);}} if(isset($_POST['view'])) {$view = $_POST['view']; if ($view == ''){unset($view);}} if(isset($_FILES['uploadfile'])) {$uploadfile = $_FILES['uploadfile'];} if(isset($_POST['id'])) {$id = $_POST['id'];} ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Админ панель</title> <link href="style.css" rel="stylesheet" type="text/css"> </head> <body> <table width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFF" class="mainborder"> <tr> <td><!--Подключаем шапку--> <?php include("/blocks/header.php");?></td> </tr> <tr> <td> <table width="690"> <tr> <td width="180px" valign="top" class="left"><!--Подключаем админ меню--><?php include ("/blocks/admin_menu.php");?> </td> <td width="510px"><p align="center"><strong>Обработчик</strong></p> <?php if (isset($cat) && isset($meta_d) && isset($meta_k) && isset($description) && isset($text) && isset($view) && isset($author)&& isset($date) && isset($price) && isset($title) && isset($uploadfile)) {/* Бла бла бла*/ $result = mysql_query ("UPDATE tovars1 SET cat='$cat', meta_d='$meta_d',meta_k='$meta_k',description='$description',text='$text', view='$view', author='$author', date='$date', price='$price', title='$title', img='$file' WHERE id='$id'", $db); if ($result == true) {echo "<p>Товар успешно обновлен</p>";} else {echo "<p>Товар не обновлен</p>";} } else {echo "<p>Вы не заполнили все поля, поэтому товар не может быть обновлен</p>";} ?> </td> </tr></table> </td> </tr> <tr> <td><!--Подключаем футер--> <?php include ("/blocks/footer.php");?></td> </tr> </table> </body> </html> Link to post Share on other sites
VIP serjin 1061 Posted May 20, 2015 VIP Report Share Posted May 20, 2015 https: //www.youtube.com/watch?v=gUgtft0hTps тут пошагово все расказывается ,в том числе и про формы и их обработчиках в 2-й части 131313sd 1 Link to post Share on other sites
131313sd 23 Posted May 20, 2015 Author Report Share Posted May 20, 2015 https: //www.youtube.com/watch?v=gUgtft0hTps тут пошагово все расказывается ,в том числе и про формы и их обработчиках в 2-й части Большое спасибо, гляну сейчас! P.S. он нудный Ребята кто может помочь разобраться? тема актуальна Link to post Share on other sites
gefard 89 Posted May 21, 2015 Report Share Posted May 21, 2015 Проблема 23 -32 строка при пустом пустом ПОСТ запросе идет удаление переменной unset($title); и поэтому в 66 строке будет ошибка потому как переменные уничтожаются Link to post Share on other sites
Seoplus 33 Posted May 21, 2015 Report Share Posted May 21, 2015 Всем привет, на учебу нужно сделать сайт на PHP. Запоролся в 2х местах: (нужно сделать добавление данных через форму, и туда добавить файл, с этим разобрался, файл добавляется, все отлично.) - А вот редактировать данный файл не получается, то есть при редактировании подгружаю файл, при нажатии кнопки сохранить, выдает ошибку, вы не ввели все поля, и ничего не меняется. - Второй косяк, хотел сделать, чтобы без авторизации, некоторые элементы не были видны, сделал, но авторизовываясь, все равно их не показывает, пришлось вообще убрать. Как это поправить. Может кто сможет помочь с этими вопросами. <?php include ("/lock.php"); header("Content-Type: text/html; charset=UTF-8"); error_reporting(E_ALL); ini_set("display_errors", 1); if (sizeof($_FILES)!=0){ $uploaddir = 'tovars/'; $uploadfile = $uploaddir . basename($_FILES['filename']['name']); if (move_uploaded_file($_FILES['filename']['tmp_name'], $uploadfile)) { echo"Загружено изображение- ".basename($_FILES['filename']['name']).""; } else { echo "Файл загрузить не удалось"; } } if (isset($_GET['id'])) {$id = $_GET['id'];} include("blocks/bd.php"); if(isset($_POST['title'])) {$title = $_POST['title']; if ($title == ''){unset($title);}} if(isset($_POST['meta_d'])) {$meta_d = $_POST['meta_d']; if ($meta_d == ''){unset($meta_d);}} if(isset($_POST['meta_k'])) {$meta_k = $_POST['meta_k']; if ($meta_k == ''){unset($meta_k);}} if(isset($_POST['date'])) {$date = $_POST['date']; if ($date == ''){unset($date);}} if(isset($_POST['description'])) {$description = $_POST['description']; if ($description == ''){unset($description);}} if(isset($_POST['text'])) {$text = $_POST['text']; if ($text == ''){unset($text);}} if(isset($_POST['author'])) {$author = $_POST['author']; if ($author == ''){unset($author);}} if(isset($_POST['price'])) {$price = $_POST['price']; if ($price == ''){unset($price);}} if(isset($_POST['cat'])) {$cat = $_POST['cat']; if ($cat == ''){unset($cat);}} if(isset($_POST['view'])) {$view = $_POST['view']; if ($view == ''){unset($view);}} if(isset($_FILES['uploadfile'])) {$uploadfile = $_FILES['uploadfile'];} if(isset($_POST['id'])) {$id = $_POST['id'];} ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Админ панель</title> <link href="style.css" rel="stylesheet" type="text/css"> </head> <body> <table width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFF" class="mainborder"> <tr> <td><!--Подключаем шапку--> <?php include("/blocks/header.php");?></td> </tr> <tr> <td> <table width="690"> <tr> <td width="180px" valign="top" class="left"><!--Подключаем админ меню--><?php include ("/blocks/admin_menu.php");?> </td> <td width="510px"><p align="center"><strong>Обработчик</strong></p> <?php if (isset($cat) && isset($meta_d) && isset($meta_k) && isset($description) && isset($text) && isset($view) && isset($author)&& isset($date) && isset($price) && isset($title) && isset($uploadfile)) {/* Бла бла бла*/ $result = mysql_query ("UPDATE tovars1 SET cat='$cat', meta_d='$meta_d',meta_k='$meta_k',description='$description',text='$text', view='$view', author='$author', date='$date', price='$price', title='$title', img='$file' WHERE id='$id'", $db); if ($result == true) {echo "<p>Товар успешно обновлен</p>";} else {echo "<p>Товар не обновлен</p>";} } else {echo "<p>Вы не заполнили все поля, поэтому товар не может быть обновлен</p>";} ?> </td> </tr></table> </td> </tr> <tr> <td><!--Подключаем футер--> <?php include ("/blocks/footer.php");?></td> </tr> </table> </body> </html> кажется вам в 71 строке нужно вместо img='$file' написать img='$uploadfile' потому как выше вы проверяете переменную $uploadfile в isset($uploadfile) Link to post Share on other sites
131313sd 23 Posted May 22, 2015 Author Report Share Posted May 22, 2015 Проблема 23 -32 строка при пустом пустом ПОСТ запросе идет удаление переменной unset($title); и поэтому в 66 строке будет ошибка потому как переменные уничтожаются она уничтожается, при условии, если там ничего нет: if ($title == ''){unset($title);}} Link to post Share on other sites
чайник 3 Posted May 22, 2015 Report Share Posted May 22, 2015 <?php include ("/lock.php"); header("Content-Type: text/html; charset=UTF-8"); error_reporting(E_ALL); ini_set("display_errors", 1); $update=''; if (sizeof($_FILES)!=0){ $uploaddir = 'tovars/'; $uploadfile = $uploaddir . basename($_FILES['filename']['name']); if (move_uploaded_file($_FILES['filename']['tmp_name'], $uploadfile)) { echo"Загружено изображение- ".basename($_FILES['filename']['name']).""; $update.="img='".$uploadfile."', "; } else { echo "Файл загрузить не удалось"; } } if (isset($_GET['id'])) {$id = $_GET['id'];} include("blocks/bd.php"); if(isset($_POST['cat'])&& $_POST['cat']!='' ) { $update.="cat='".$_POST['cat']."', " ;} if(isset($_POST['meta_d'])&& $_POST['meta_d']!='') { $update.="meta_d='".$_POST['meta_d']."', " ;} if(isset($_POST['meta_k'])&& $_POST['meta_k']!='' ) { $update.="meta_k='".$_POST['meta_k']."', " ;} if(isset($_POST['description'])&& $_POST['description']!='' ) { $update.="description='".$_POST['description']."', " ;} if(isset($_POST['text'])&& $_POST['text']!='' ) { $update.="text='".$_POST['text']."', " ;} if(isset($_POST['view'])&& $_POST['view']!='' ) { $update.="view='".$_POST['view']."', " ;} if(isset($_POST['author'])&& $_POST['author']!='' ) { $update.="author='".$_POST['author']."', " ;} if(isset($_POST['date'])&& $_POST['date']!='' ) { $update.="date='".$_POST['date']."', " ;} if(isset($_POST['price'])&& $_POST['price']!='' ) { $update.="price='".$_POST['price']."', " ;} if(isset($_POST['title'])&& $_POST['title']!='' ) { $update.="title='".$_POST['title']."', " ;} if(isset($_FILES['uploadfile'])) {$uploadfile = $_FILES['uploadfile'];} ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Админ панель</title> <link href="style.css" rel="stylesheet" type="text/css"> </head> <body> <table width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFF" class="mainborder"> <tr> <td><!--Подключаем шапку--> <?php include("/blocks/header.php");?></td> </tr> <tr> <td> <table width="690"> <tr> <td width="180px" valign="top" class="left"><!--Подключаем админ меню--><?php include ("/blocks/admin_menu.php");?> </td> <td width="510px"><p align="center"><strong>Обработчик</strong></p> <?php if ($update!=''&&$id!='') {/* Не надо по 100 раз проверять одно и тоже)))*/ $len = strlen($update); $len-2; $update= substr($update, 0, $len); $result = mysql_query ("UPDATE tovars1 SET ".$update." WHERE id='$id'", $db); if ($result == true) {echo "<p>Товар успешно обновлен</p>";} else {echo "<p>Товар не обновлен</p>";} } else {echo "<p>Вы не заполнили все поля, поэтому товар не может быть обновлен</p>";} ?> </td> </tr></table> </td> </tr> <tr> <td><!--Подключаем футер--> <?php include ("/blocks/footer.php");?></td> </tr> </table> </body> </html> Вообщем то так вот, мой вариантик на скорую руку. Можно было бы еще упростить, массивом прогнать, ну да ладно. Link to post Share on other sites
131313sd 23 Posted June 2, 2015 Author Report Share Posted June 2, 2015 Закройте топик) решил вроде вопрос! Link to post Share on other sites
Seoplus 33 Posted June 3, 2015 Report Share Posted June 3, 2015 Закройте топик) решил вроде вопрос! Как решили, где была ошибка? Link to post Share on other sites
WQP 360 Posted June 3, 2015 Report Share Posted June 3, 2015 if(isset($_POST['cat'])&& $_POST['cat']!='' ) { $update.="cat='".$_POST['cat']."', " ;} if(isset($_POST['meta_d'])&& $_POST['meta_d']!='') { $update.="meta_d='".$_POST['meta_d']."', " ;} if(isset($_POST['meta_k'])&& $_POST['meta_k']!='' ) { $update.="meta_k='".$_POST['meta_k']."', " ;} if(isset($_POST['description'])&& $_POST['description']!='' ) { $update.="description='".$_POST['description']."', " ;} if(isset($_POST['text'])&& $_POST['text']!='' ) { $update.="text='".$_POST['text']."', " ;} if(isset($_POST['view'])&& $_POST['view']!='' ) { $update.="view='".$_POST['view']."', " ;} if(isset($_POST['author'])&& $_POST['author']!='' ) { $update.="author='".$_POST['author']."', " ;} if(isset($_POST['date'])&& $_POST['date']!='' ) { $update.="date='".$_POST['date']."', " ;} if(isset($_POST['price'])&& $_POST['price']!='' ) { $update.="price='".$_POST['price']."', " ;} if(isset($_POST['title'])&& $_POST['title']!='' ) { $update.="title='".$_POST['title']."', " ;} AlexBrush 1 Link to post Share on other sites
131313sd 23 Posted June 4, 2015 Author Report Share Posted June 4, 2015 WPQ, мне тоже не очень пришелся по душе, этот код. Seoplus, поле IMG было пустое, все теперь работает, но в редактировании идет тип поля текстовое, а не файл там, это не смог подкрутить к сожалению. Link to post Share on other sites
DeimosFobos 34 Posted June 4, 2015 Report Share Posted June 4, 2015 WPQ, что же вам не нравится? ну для начала: if(isset($_POST['key'])&& $_POST['key']!='' ) заменяем на if(!empty($_POST['key'])) а вот так лучше делать $columns = array('cat', 'meta_d',...); $update = array(); foreach($columns as $column) { if(!empty($_POST[$column])) $update[] = $column .' = "' .str_replace('"','\"', $_POST[$column]) .'"'; } $update = implode(',', $update); но лучше использовать prepare. WQP 1 Link to post Share on other sites
WQP 360 Posted June 4, 2015 Report Share Posted June 4, 2015 DeimosFobos, думаю так будет лучше foreach($columns as $key => $column) { ... $update[$key] Link to post Share on other sites
DeimosFobos 34 Posted June 4, 2015 Report Share Posted June 4, 2015 WQP, нене, зачем? это медленнее и не нужно Link to post Share on other sites
WQP 360 Posted June 4, 2015 Report Share Posted June 4, 2015 DeimosFobos, нагляднее + выполняется не так долго (если конечно нет подсчёта тысячных миллисекунд) Link to post Share on other sites
DeimosFobos 34 Posted June 5, 2015 Report Share Posted June 5, 2015 WQP, а чем оно нагляднее? одно дело, если бы индексы, что-то значили, но в данной ситуации они нам не значимы, да и $update[$key] и $update[] будут иметь такой же индекс. зачем добавочный код и лишняя нагрузка? это сейчас она не значима, а если проект большой и там важна скорость тогда это будет заметно Link to post Share on other sites
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now