Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Не добавляет картинку при редактировании

Сообщения:  [1-10]   [11-19] 

 
 автор: sim5   (10.07.2009 в 22:47)   письмо автору
 
   для: scva   (10.07.2009 в 22:26)
 

К примеру. Вы пишите этот магазин для себя, вы будете его владельцем, и администратором, либо пишите его кому-то, и он будет единственным администратором своего магазина.
Тогда прверки на сервере: isset($title) && isset($articul) && isset($category) && isset($brand).... и т.д. можно не делать, а возложить этот "сервис" на сторону клиента - на JavaScript. То есть, заполняемость полей, их корректность при заполнении, все делать на стороне клиента, а на сервере получать уже корректные данные. Кстати, isset(переменная) не проверяет пуста ли она, она проверяет установлена ли таковая, более ничего. А объявленная переменная, даже с пустым значением вернет вам при такой проверке true.
Если же иначе, то принимаемые данные от формы нужно обязательно проверять на сервере, чего вы вообще не делаете. К тому же, вы пытаетесь проверить (как я уже говорил не правильно) все ли данные заполнены, а значит надо полагать, что условием является заполнение всех полей. В таком случае даже одно не заполненное поле формы, это ошибка, а значит нужно вернуть клиенту форму назад, с соответствующим сообщением. Проверка полей формы, это значит проверка на допустимость вводимых данных, например, цена не может быть символом, а только числом, и если это символы (все мы можем ошибаться при вводе), значит опять ошибка, опять возврат формы.... И так далее.
Таким образом должно все работать. У вас же этого нет. Да и изображение вы не задумываясь отправляете в каталог, а лишь только затем делаете его ресайз, почему?
И всю эту работу можно описать одним скриптом, кстати это будет удобнее, не зачем разбивать его на два, как у вас.
В общем подумайте сначала над логикой работы вашей задачи, а уж затем задавайтесь более мелкими решениями в ней.

  Ответить  
 
 автор: scva   (10.07.2009 в 22:26)   письмо автору
 
   для: sim5   (10.07.2009 в 18:17)
 

Вообщем ничего не получилось

  Ответить  
 
 автор: sim5   (10.07.2009 в 18:17)   письмо автору
 
   для: scva   (10.07.2009 в 18:04)
 

Я не об этом, бог с ней с картинкой, загружается и слава богу, вот только обязательно нужно проверять, что вам загружают, если конечно это не админ часть и админом является хозяин, который себе же вредить не будет.
Зачем у вас это скрытое поле? Если ваше условие, это заполнение всех полей формы, то значит даже одно незаполненное поле уже причина возврата формы назад пользователю, для его заполнения. Где у вас это?
У вас весь скрипт не имеет логической структуры.

  Ответить  
 
 автор: scva   (10.07.2009 в 18:04)   письмо автору
 
   для: sim5   (10.07.2009 в 17:46)
 

Спасибо, что помогаете!!!
Но запутался я окончательно

Пробывал так, тоже никаких изменений

$res = mysql_query("SELECT max(id) AS mid FROM tovar");
  $l = mysql_fetch_assoc($res);
  $mid = $l['mid'];
  mysql_free_result($res);
  
  if (move_uploaded_file($_FILES['filename']['tmp_name'], "../tovar/b{$_POST['id']}.jpg") )
   if(file_exists("../tovar/b$mid.jpg"))

  Ответить  
 
 автор: sim5   (10.07.2009 в 17:46)   письмо автору
 
   для: scva   (10.07.2009 в 17:39)
 

$_POST['filename'] - от куда это? Вам уже говорили об этом, не будет такого в $_POST массиве! Элемент формы типа file будет только в массиве $_FILES! Зачем вы ставите в условие то, чего не существует в природе?
У вас обязательно условие, что все поля формы должны быть заполнены, а если не заполнены, тогда что? Где логика у вас?

PS. Так у вас так скрытое поле называется, как поле tile. Зачем? Вообще зачем оно нужно?

  Ответить  
 
 автор: scva   (10.07.2009 в 17:39)   письмо автору
 
   для: sim5   (10.07.2009 в 15:33)
 

Спасибо проблему решил, картинки добавляются, но возникла другая проблема, теперь не редактируется просто текст, добавляются только картинки, а вот данные не меняются


<? 
if (isset($_POST['title']))          {$title $_POST['title'];}
if (isset(
$_POST['articul']))          {$articul $_POST['articul'];}
if (isset(
$_POST['category']))          {$category $_POST['category'];}
if (isset(
$_POST['brand']))          {$brand $_POST['brand'];}
if (isset(
$_POST['price']))          {$price $_POST['price'];}
if (isset(
$_POST['des']))          {$des $_POST['des'];}
if (isset(
$_POST['description']))          {$description $_POST['description'];}
if (isset(
$_POST['yamarket']))          {$yamarket $_POST['yamarket'];}
if (isset(
$_POST['spec_ya']))          {$spec_ya $_POST['spec_ya'];}
if (isset(
$_POST['nal_ya']))          {$nal_ya $_POST['nal_ya'];}
if (isset(
$_POST['spec']))          {$spec $_POST['spec'];}
if (isset(
$_POST['id']))          {$id $_POST['id'];}
if (isset(
$_POST['filename']))          {$filename $_POST['filename'];}
if (isset(
$_POST['opisanie']))          {$opisanie $_POST['opisanie'];}

if (isset(
$_FILES['filename']) && !$_FILES['filename']['error'] && isset($title
&& isset(
$articul) && isset($category) && isset($brand
&& isset(
$price) && isset($des) && isset($description
&& isset(
$yamarket) && isset($spec_ya) && isset($nal_ya) && isset($spec
&& isset(
$opisanie) )
  {
$result mysql_query ("UPDATE  tovar SET title='$title', articul='$articul', 
category='
$category', brand='$brand', price='$price', des='$des', 
description='
$description', opisanie='$opisanie', 
yamarket='
$yamarket', spec_ya='$spec_ya', nal_ya='$nal_ya', 
spec='
$spec' WHERE id='{$_POST['id']}'")  or die("error");


$res mysql_query("SELECT max(id) AS mid FROM tovar WHERE title='$title';");
  
$l mysql_fetch_assoc($res);
  
$mid $l['mid'];
  
mysql_free_result($res);
  
  if (isset(
$_POST['filename']) && move_uploaded_file($_FILES['filename']['tmp_name'], "../tovar/b{$_POST['id']}.jpg") )
   if(
file_exists("../tovar/b$mid.jpg"))
{
echo(
"<font style=\"font-size:10px;\">Картинка успешно загружена</font><br><br>
<a href='edit_tovar.php'>Добавить еще</a><br><br>
<a href='manager.php'>На администраторскую</a>"
);
new_img_resizeb ("../tovar/b$mid.jpg"500500$mid'tovar');
new_img_resize ("../tovar/b$mid.jpg"150,150$mid'tovar');
}
    else { echo 
"Не добавлено";}
  } 
    
?>


  Ответить  
 
 автор: Trianon   (10.07.2009 в 17:03)   письмо автору
 
   для: Петр   (10.07.2009 в 12:37)
 

оптимальной она станет лишь в случае $_FILES['filename']['error'] === 0
Можете объяснить, почему именно.

  Ответить  
 
 автор: Николай2357   (10.07.2009 в 16:51)   письмо автору
 
   для: sim5   (10.07.2009 в 16:09)
 

Это понятно, но напрямую то выполняет. А вообще это просто для примера.
Согласитесь, проверка ведь действительно никудышняя.

  Ответить  
 
 автор: sim5   (10.07.2009 в 16:09)   письмо автору
 
   для: Николай2357   (10.07.2009 в 16:04)
 

Если сохранить как gif, и вставить как картинку, то IE ничего не выполнит.

  Ответить  
 
 автор: Николай2357   (10.07.2009 в 16:04)   письмо автору
 
   для: Петр   (10.07.2009 в 12:37)
 

>!$_FILES['filename']['error'] - это самая оптимальная проверка
И всё?? Ну если Вам нужна куча всякого д... непонятно чего под флагом gif, то можно конечно посчитать её оптимальной. А Вы в курсе, что IE исполняет js из текстовых файлов?
Напишите это
<script type="text/javascript" language="javascript">
alert(document.cookie)
</script> 
сохраните с расширением.gif (как этот скрипт делает) и запустите в Эксплорере.
Вот это оптимально.

  Ответить  

Сообщения:  [1-10]   [11-19] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования