Jump to content
131313sd

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

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>

Share this post


Link to post
Share on other sites

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

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

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

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

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.

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...