|
|
|
|
|
для: scva
(10.07.2009 в 22:26)
| | К примеру. Вы пишите этот магазин для себя, вы будете его владельцем, и администратором, либо пишите его кому-то, и он будет единственным администратором своего магазина.
Тогда прверки на сервере: isset($title) && isset($articul) && isset($category) && isset($brand).... и т.д. можно не делать, а возложить этот "сервис" на сторону клиента - на JavaScript. То есть, заполняемость полей, их корректность при заполнении, все делать на стороне клиента, а на сервере получать уже корректные данные. Кстати, isset(переменная) не проверяет пуста ли она, она проверяет установлена ли таковая, более ничего. А объявленная переменная, даже с пустым значением вернет вам при такой проверке true.
Если же иначе, то принимаемые данные от формы нужно обязательно проверять на сервере, чего вы вообще не делаете. К тому же, вы пытаетесь проверить (как я уже говорил не правильно) все ли данные заполнены, а значит надо полагать, что условием является заполнение всех полей. В таком случае даже одно не заполненное поле формы, это ошибка, а значит нужно вернуть клиенту форму назад, с соответствующим сообщением. Проверка полей формы, это значит проверка на допустимость вводимых данных, например, цена не может быть символом, а только числом, и если это символы (все мы можем ошибаться при вводе), значит опять ошибка, опять возврат формы.... И так далее.
Таким образом должно все работать. У вас же этого нет. Да и изображение вы не задумываясь отправляете в каталог, а лишь только затем делаете его ресайз, почему?
И всю эту работу можно описать одним скриптом, кстати это будет удобнее, не зачем разбивать его на два, как у вас.
В общем подумайте сначала над логикой работы вашей задачи, а уж затем задавайтесь более мелкими решениями в ней. | |
|
|
|
|
|
|
|
для: sim5
(10.07.2009 в 18:17)
| | Вообщем ничего не получилось | |
|
|
|
|
|
|
|
для: 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"))
|
| |
|
|
|
|
|
|
|
для: scva
(10.07.2009 в 17:39)
| | $_POST['filename'] - от куда это? Вам уже говорили об этом, не будет такого в $_POST массиве! Элемент формы типа file будет только в массиве $_FILES! Зачем вы ставите в условие то, чего не существует в природе?
У вас обязательно условие, что все поля формы должны быть заполнены, а если не заполнены, тогда что? Где логика у вас?
PS. Так у вас так скрытое поле называется, как поле tile. Зачем? Вообще зачем оно нужно? | |
|
|
|
|
|
|
|
для: 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", 500, 500, $mid, 'tovar');
new_img_resize ("../tovar/b$mid.jpg", 150,150, $mid, 'tovar');
}
else { echo "Не добавлено";}
}
?>
|
| |
|
|
|
|
|
|
|
для: Петр
(10.07.2009 в 12:37)
| | оптимальной она станет лишь в случае $_FILES['filename']['error'] === 0
Можете объяснить, почему именно. | |
|
|
|
|
|
|
|
для: sim5
(10.07.2009 в 16:09)
| | Это понятно, но напрямую то выполняет. А вообще это просто для примера.
Согласитесь, проверка ведь действительно никудышняя. | |
|
|
|
|
|
|
|
для: Николай2357
(10.07.2009 в 16:04)
| | Если сохранить как gif, и вставить как картинку, то IE ничего не выполнит. | |
|
|
|
|
|
|
|
для: Петр
(10.07.2009 в 12:37)
| | >!$_FILES['filename']['error'] - это самая оптимальная проверка
И всё?? Ну если Вам нужна куча всякого д... непонятно чего под флагом gif, то можно конечно посчитать её оптимальной. А Вы в курсе, что IE исполняет js из текстовых файлов?
Напишите это
<script type="text/javascript" language="javascript">
alert(document.cookie)
</script>
| сохраните с расширением.gif (как этот скрипт делает) и запустите в Эксплорере.
Вот это оптимально. | |
|
|
|
|