[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вы3ов функции
nugle
Подключаю файл с функцией к другому файлу
function.рhр
<?php 

function
uploadHandle($max_file_size = 100, $valid_extensions = array(), $upload_dir = '.')
{

$error = null;
$info = null;
$max_file_size *= 1024;

if ($_FILES['userfile']['error'] === UPLOAD_ERR_OK)
{
// проверяем расширение файла
$file_extension = pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION);
if (in_array($file_extension, $valid_extensions))
{
// проверяем размер файла
if ($_FILES['userfile']['size'] < $max_file_size)
{
$destination = $upload_dir .'/' . $_FILES['userfile']['name'];

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $destination))
$info = 'Файл успешно загружен';
else
$error = 'Не удалось загрузить файл';
}
else
$error = 'Размер файла больше допустимого';
}
else
$error = 'У файла недопустимое расширение';
}
else
{
// массив ошибок
$error_values = array(

UPLOAD_ERR_INI_SIZE => 'Размер файла больше разрешенного директивой upload_max_filesize в php.ini',
UPLOAD_ERR_FORM_SIZE => 'Размер файла превышает указанное значение в MAX_FILE_SIZE',
UPLOAD_ERR_PARTIAL => 'Файл был загружен только частично',
UPLOAD_ERR_NO_FILE => 'Не был выбран файл для загрузки',
UPLOAD_ERR_NO_TMP_DIR => 'Не найдена папка для временных файлов',
UPLOAD_ERR_CANT_WRITE => 'Ошибка записи файла на диск'

);

$error_code = $_FILES['userfile']['error'];

if (!empty($error_values[$error_code]))
$error = $error_values[$error_code];
else
$error = 'Случилось что-то непонятное';
}

return array('info' => $info, 'error' => $error);
}

/////////////////////////////////////////////////////////////////////
$extensions = array('jpg', 'jpeg', 'png', 'gif');
$upload_dir = 'img';

// Запускаем функцию
if(!empty($_POST['upload_submit']))
{
$message = uploadHandle(200, $extensions, $upload_dir);

// Выводим сообщение
echo $message['error'] ? $message['error'] : $message['info'];
}
?>

К файлу
new_art.php
<?php 

require "../../options/db.php"; //Подключение к БД
require "../../function.php";

//Инициализация переменных

$l=0;

$name = trim(!empty($_POST['name'])) ? $_POST['name'] : null;
$price = trim(!empty($_POST['price'])) ? $_POST['price'] : null;
$description = nl2br(trim(!empty($_POST['description']))) ? $_POST['description'] : null;
$img = $_FILES['userfile']['tmp_name'];
$images = $_FILES['userfile']['name'];
if (isset($img)) {uploadHandle();}
$menu = trim(!empty($_POST['menu'])) ? $_POST['menu'] : null;
$menu_section = trim(!empty($_POST['menu_section'])) ? $_POST['menu_section'] : null;
$sub = !empty($_POST['sub']) ? $_POST['sub'] : null;


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Добавление меню</title>
<
base href="http://fiesta.ru/admin/">
<
link href="class.css" rel="stylesheet" type="text/css" />
</
head>

<
body>
<
table align="center" width="960" height="437" border="0" cellpadding="0" cellspacing="0">
<
tr>
<
td height="198" colspan="2"> </td>
</
tr>
<
tr>
<?php require "../blocks/lefttd.php";?>
<td width="711" align="left" valign="top">
Для создания пункта меню заполните поля формы:<br /><br />
<
form action="articles/new_art.php" method="post" enctype="multipart/form-data">
Введите новый товар: <input name="name" type="text" />
<?php if (empty($name) && $sub){echo "Вы неввели название товара"; $l=1;}?><br />
Введите описание товара: <input name="description" height="50" type="textarea"/>
<?php
if (empty($description) && $sub){echo "Вы не указали описание товара"; $l=1;}?><br />
Введите цену товара: <input name="price" type="text"/>
<?php if (empty($price) && $sub){echo "Вы неввели цену товара"; $l=1;}?><br />
<
input type="file" name="img" /><br />
<?
$sql = "select name from menu";
$result = mysql_query($sql) or die(mysql_error."<br />". $sql);
echo 'Выберите пункт меню:<br />
<select name="menu" multiple> '
;
while($row = mysql_fetch_assoc($result))
{
echo '<option value="'.$row['name'].'">'.$row['name'].'</option>';

}
echo '</select><br />';

$sql2 = "select name from menu_section";
$result2 = mysql_query($sql2) or die(mysql_error."<br />". $sql2);
echo 'Выберите подпункт меню:<br />
<select name="menu_section" multiple> '
;
while($row2 = mysql_fetch_assoc($result2))
{
echo '<option value="'.$row2['name'].'">'.$row2['name'].'</option>';

}
echo '</select><br />';

?>
<input name="sub" type="submit" class="but" value="Добавить" />
</
form>
<?php

if($sub && $l==0)
{

$sql3 = "insert into `articles` (`name`,`description`,`price`,`img`,`menu`,`menu_section`) values ('".$name."','".$description."','".$price."','".$images."','".$menu."','".$menu_section."')";
$result3 = mysql_query($sql3) or die(mysql_error ."<br />". $sql3) ;
if ($result3 === true)
{
echo "<br /><br />Товар успешно добавлен";
}

}


?>

</td>
</
tr>
</
table>


</
body>
</
html>

вот так я вы3ываю эту функцию
if (isset($img)) {uploadHandle();}

В чём ошибка?



Спустя 7 минут, 53 секунды (10.12.2010 - 17:35) twin написал(а):
Да, в чем ошибка?

Спустя 3 минуты, 55 секунд (10.12.2010 - 17:39) nugle написал(а):
twin, я не правильно вы3ываю?

Спустя 13 минут, 20 секунд (10.12.2010 - 17:52) twin написал(а):
Ты не описал ошибку. Что не работает?

Спустя 3 минуты, 46 секунд (10.12.2010 - 17:56) nugle написал(а):
просто ничего не работает...Ведь после того как я нажму на кнопку мне над вытащить 3начения глобального массива
$_FILES['userfile']['name'];
но он пуст, я пишу echo $_FILES['userfile']['name'];
но ничего не выводится

Спустя 3 минуты, 41 секунда (10.12.2010 - 17:59) twin написал(а):
Для начала, массив нужно смотреть не echo, а print_r или var_dump
Во вторых, откуда по твоему разумению, должно появиться $_FILES['userfile']['name'] ?

Спустя 2 минуты, 8 секунд (10.12.2010 - 18:01) nugle написал(а):
ну я же 3агружаю файл на сервер или нет или я вообще не прав?

Спустя 2 минуты, 3 секунды (10.12.2010 - 18:04) twin написал(а):
Каким образом ты его загружаешь? Откуда он берется?

Спустя 5 минут, 49 секунд (10.12.2010 - 18:09) nugle написал(а):
и3 вашей функции или неправильно я думаю?

Спустя 20 минут, 35 секунд (10.12.2010 - 18:30) twin написал(а):
Двай по порядку. Где находится файл, который надо загрузить?

Спустя 20 минут, 15 секунд (10.12.2010 - 18:50) nugle написал(а):
мне нужно 3агру3ить картинку..она находится в документы-downloads - системной папки, 3агру3ить на мой сервер z:/home/fiesta.ru/www/img
потом добавить Insert-ом в БД

Спустя 55 минут, 20 секунд (10.12.2010 - 19:45) inpost написал(а):
Покажи код inputа, откуда загружаешь файл, и покажи его инициализацию. Эти 2 строчки, сделаешь - найдешь ошибку =)

Спустя 1 минута, 20 секунд (10.12.2010 - 19:47) inpost написал(а):
Или давай по другому, есть:
$_FILES['userfile']['size']
Прочитай его по слогам, и скажи, что значит по отдельности:
$_FILES, ['userfile'], ['size'] . Жду ответа

Спустя 1 час, 8 минут, 1 секунда (10.12.2010 - 20:55) nugle написал(а):
inpost, извеняюсь что так долго просто на работу поехал и теперь пишу, не уверен что это точное определение:

$_FILES - глобальный массив, содержащий данные о загруженном файле
['username'] - имя инпута для выбранного файла, и
['size'] - размер файла

Спустя 16 минут, 15 секунд (10.12.2010 - 21:11) twin написал(а):
Ну а теперь вникни в то, что сейчас написал (все верно кстати) и найди все это в своем коде.

Спустя 3 минуты, 47 секунд (10.12.2010 - 21:15) nugle написал(а):
мне нужно инициализировать переменную
$images = !empty($_POST['img']) ? $_POST['name'] : null;

и тогда будет работать?Жаль теперь не могу проверить

Спустя 2 минуты, 30 секунд (10.12.2010 - 21:17) twin написал(а):
Ну пиши как сможешь проверить. Хотя ошибка не в этом.

Спустя 4 минуты, 36 секунд (10.12.2010 - 21:22) nugle написал(а):
А в чём же тогда?

Спустя 4 минуты, 2 секунды (10.12.2010 - 21:26) inpost написал(а):
nugle
['username'] - имя инпута для выбранного файла, Ещё раз, что за имя? Где оно написано? Ткни меня носом в эту строчку =)

Спустя 1 минута, 17 секунд (10.12.2010 - 21:27) twin написал(а):
Цитата
А в чём же тогда?

Чтобы исправить ошибку, нужно понять это. Самому. А для этого нужно понять, как вообще работает механизм загрузки файлов и массив $_FILES в частности. Изучай.

Спустя 5 минут, 14 секунд (10.12.2010 - 21:33) nugle написал(а):
inpost,
я перепутал
['userfile'], А не ['username']

Спустя 25 минут, 46 секунд (10.12.2010 - 21:58) inpost написал(а):
А откуда это имя берётся? Из инпута? А в инпуте какое имя? Покажи инпут...

Спустя 8 часов, 10 минут, 39 секунд (11.12.2010 - 06:09) nugle написал(а):
<input type="file" name="img" />

Спустя 5 минут, 34 секунды (11.12.2010 - 06:15) inpost написал(а):
nugle
А теперь: ['username'] - имя инпута для выбранного файла, смотрим на инпут =)

Спустя 8 часов, 20 минут, 4 секунды (11.12.2010 - 14:35) nugle написал(а):
дошло ['img']?
Я всё поменял под свой скрипт и выла3ают такие ошибки
Warning: move_uploaded_file(img/Закат.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in Z:\home\fiesta.ru\www\function.php on line 21
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'Z:\tmp\php77.tmp' to 'img/Закат.jpg' in Z:\home\fiesta.ru\www\function.php on line 21
Почему?

<?php 

function
uploadHandle($max_file_size = 100, $valid_extensions = array(), $upload_dir = '.')
{

$error = null;
$info = null;
$max_file_size *= 1024;

if ($_FILES['img']['error'] === UPLOAD_ERR_OK)
{
// проверяем расширение файла
$file_extension = pathinfo($_FILES['img']['name'], PATHINFO_EXTENSION);
if (in_array($file_extension, $valid_extensions))
{
// проверяем размер файла
if ($_FILES['img']['size'] < $max_file_size)
{
$destination = $upload_dir .'/' . $_FILES['img']['name'];

if (move_uploaded_file($_FILES['img']['tmp_name'], $destination))
$info = 'Файл успешно загружен';
else
$error = 'Не удалось загрузить файл';
}
else
$error = 'Размер файла больше допустимого';
}
else
$error = 'У файла недопустимое расширение';
}
else
{
// массив ошибок
$error_values = array(

UPLOAD_ERR_INI_SIZE => 'Размер файла больше разрешенного директивой upload_max_filesize в php.ini',
UPLOAD_ERR_FORM_SIZE => 'Размер файла превышает указанное значение в MAX_FILE_SIZE',
UPLOAD_ERR_PARTIAL => 'Файл был загружен только частично',
UPLOAD_ERR_NO_FILE => 'Не был выбран файл для загрузки',
UPLOAD_ERR_NO_TMP_DIR => 'Не найдена папка для временных файлов',
UPLOAD_ERR_CANT_WRITE => 'Ошибка записи файла на диск'

);

$error_code = $_FILES['img']['error'];

if (!empty($error_values[$error_code]))
$error = $error_values[$error_code];
else
$error = 'Случилось что-то непонятное';
}

return array('info' => $info, 'error' => $error);
}

/////////////////////////////////////////////////////////////////////
$extensions = array('jpg', 'jpeg', 'png', 'gif');
$upload_dir = 'img';

// Запускаем функцию
if(!empty($_POST['sub']))
{
$message = uploadHandle(200, $extensions, $upload_dir);

// Выводим сообщение
echo $message['error'] ? $message['error'] : $message['info'];
}
?>



Спустя 1 час, 12 минут, 14 секунд (11.12.2010 - 15:47) twin написал(а):
ну все сначала. Мы это проходили уже. Смотри пути и права.

Спустя 14 минут, 21 секунда (11.12.2010 - 16:01) nugle написал(а):
в том то и дело, ошибка таже, но тогда я всё норм сделал и ниче не менял

Спустя 1 час, 9 минут, 40 секунд (11.12.2010 - 17:11) inpost написал(а):
Какие права на папку?

Спустя 6 часов, 14 минут, 12 секунд (11.12.2010 - 23:25) nugle написал(а):
как их посмотреть?

Спустя 2 минуты, 19 секунд (11.12.2010 - 23:27) twin написал(а):
Ты этот скрипт подключил к другому. Теперь путь надо считать от того.
Рядом с главным скриптом есть папка img?

Спустя 7 минут, 57 секунд (11.12.2010 - 23:35) inpost написал(а):
google.ru, права папки 777

Спустя 1 минута, 34 секунды (11.12.2010 - 23:37) twin написал(а):
Не надо ему права. Он под виндой. С путями просто заблудился.

Спустя 3 часа, 5 минут, 43 секунды (12.12.2010 - 02:43) nugle написал(а):
да, а там походу тег base
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.