131313sd

Делаю сайт на php

16 posts in this topic

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

Share this post


Link to post
Share on other sites

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

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

131313sd likes this

Share this post


Link to post
Share on other sites

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

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

 

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

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


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)

Share this post


Link to post
Share on other sites

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

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

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

Share this post


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>

Вообщем то так вот, мой вариантик на скорую руку.

Можно было бы еще упростить, массивом прогнать, ну да ладно.

Share this post


Link to post
Share on other sites

Закройте топик) решил вроде вопрос!

Share this post


Link to post
Share on other sites

Закройте топик) решил вроде вопрос!

 

Как решили, где была ошибка?

Share this post


Link to post
Share on other sites

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']."', " ;}
AlexBrush likes this

Share this post


Link to post
Share on other sites

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

 

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

Share this post


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.
WQP likes this

Share this post


Link to post
Share on other sites

DeimosFobos, думаю так будет лучше

foreach($columns as $key => $column) {
...
$update[$key]

Share this post


Link to post
Share on other sites

WQP, нене, зачем? это медленнее и не нужно :)

Share this post


Link to post
Share on other sites

DeimosFobos, нагляднее + выполняется не так долго (если конечно нет подсчёта тысячных миллисекунд)

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.