Jump to content

Recommended Posts

Всем привет, на учебу нужно сделать сайт на 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

https:   //www.youtube.com/watch?v=gUgtft0hTps

тут пошагово все расказывается ,в том числе и про формы и их обработчиках в 2-й части

 

Большое спасибо, гляну сейчас!

P.S. он нудный  :blink:

Ребята кто может помочь разобраться? тема актуальна

Link to post
Share on other sites

Проблема 23 -32 строка при пустом пустом ПОСТ запросе идет удаление переменной unset($title);

и поэтому в 66 строке будет ошибка потому как переменные уничтожаются

Link to post
Share on other sites

 

Всем привет, на учебу нужно сделать сайт на 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

Проблема 23 -32 строка при пустом пустом ПОСТ запросе идет удаление переменной unset($title);

и поэтому в 66 строке будет ошибка потому как переменные уничтожаются

она уничтожается, при условии, если там ничего нет: if ($title == ''){unset($title);}}

Link to post
Share on other sites
<?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
  • 2 weeks later...

13442109423495.jpg

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']."', " ;}
Link to post
Share on other sites

WPQ, мне тоже не очень пришелся по душе, этот код.

 

Seoplus, поле IMG было пустое, все теперь работает, но в редактировании идет тип поля текстовое, а не файл там, это не смог подкрутить к сожалению.

Link to post
Share on other sites
 

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.
Link to post
Share on other sites

WQP, а чем оно нагляднее?

одно дело, если бы индексы, что-то значили, но в данной ситуации они нам не значимы, да и $update[$key] и $update[] будут иметь такой же индекс.
зачем добавочный код и лишняя нагрузка? это сейчас она не значима, а если проект большой и там важна скорость тогда это будет заметно:)
Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...