|
|
|
|
|
для: cheops
(04.01.2012 в 17:05)
| | Позитивный Вы человек. А все позитивные - мудрые. | |
|
|
|
|
|
|
|
для: Василий
(04.01.2012 в 16:51)
| | Есть хороший прием. Помещайте в код временные строчки
<?php
echo "До сюда интерпретатор дошел";
exit();
?>
|
и постепенно сдвигайте их вниз, сначала внутри if-блока
if(!empty($_POST['upload_submit']))
| затем внутри функции uploadHandle(), и при загрузке смотрите, выводится вам сообщение или нет. Продвигайте строчки по программе до тех пор, пока они не перестанут выводиться, так вы выясните доходит до этой точки программа или нет, и что происходит, а главное в каком участке. У нас нет полностью вашего кода, всех ваших файлов и путей. Даже если вы выложите на их разворачивание уйдет время, в том числе и ваше. Лучше сразу приучаться локализовывать проблему.
Вы пишите "не срабатывает функция upload_submit, которая размещена сверху над формой", а теперь оказывается она срабатывает (проблема где-то внутри самой функции), а в тему уже 15 сообщений, т.е. вряд ли кто-то будет новый подключаться к обсуждению, просто читать все не будет. Если бы из первого поста было ясно, что до функции upload_submit() дело все-таки доходит, эти 15 сообщений можно было бы потратить на анализ функции uploadHandle(). Это ни в коем случае не упрек вам, просто совет, как можно заранее более точно локализовать проблему. Ведь участники дискуссии не имея кода, бросаются именно на то, на что вы указываете и бывают очень расстроены, что дело оказывается не в этом и они долго и упорно искали проблему там, где её нет. А из-за того, что они расстраиваются, начинает само сабой расти предубеждение уже против вас, хотя это и не правильно и сами они проходили через этот этап, только уже не помнят его. | |
|
|
|
|
|
|
|
для: cheops
(04.01.2012 в 16:41)
| | объединил в один обработчик.
сначала форма:
<form name="add" method='post' action='pu_add.php' enctype="multipart/form-data">
<table width="650" cellspacing="5" cellpadding="5">
<tr>
<td width="200" valign="top"><b>Название организации:</b></td>
<td width="550" align="left" style='background-color:#f0f0f0'>
<input value= "<?php echo $_GET['title']; ?>" type="text" name="title" size="80" >
</td>
</tr>
<tr>
<td width="200" valign="top"><b>Logotip:</b></td>
<td><input type="file" name="logo" value="<?php echo $_FILES['logo']['name']; ?>">загрузить</td>
</tr>
</table>
<input name="id_pu" type="hidden" value="<?php echo $_GET['id_pu']; ?>">
<br>
<center>
<label>
<input type="submit" value="Сохранить изменения" name="upload_submit" id="submit">
</label>
</center>
</form>
|
Обработчик pu_add.php
<table>
<tr><td>
<?php
/**
* Функция загрузки файла (аплоадер)
* @param int $max_file_size максимальный размер файла в килобайтах
* @param array $valid_extensions массив допустимых расширений
* @param string $upload_dir директория загрузки
* @return array сообщение о ходе выполнения
*
* @author IT studio IRBIS-team (www.irbis-team.com)
* @copyright © 2009 IRBIS-team
*/
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 ="img/logo_pu/" . $_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 = 'images';
// Запускаем функцию
if(!empty($_POST['upload_submit']))
{
$message = uploadHandle(200, $extensions, $upload_dir);
// Выводим сообщение
echo $message['error'] ? $message['error'] : $message['info'];
}
?>
<?php
if (isset($title) && isset($logo))
{
/*Здесь мы пишем, что можно заносить информацию в базу*/
$result = mysql_query ("insert bd SET title='$title', logo='$logo' ");
if ($result == 'true') {echo "<br><p><strong><font color='#085991'><center>Спасибо!";
else {echo "Вы ввели не всю информацию";}
}
else
{
echo "Вы ввели не всю информацию";
}
?>
</td></tr></table>
|
функция срабатывает в обработчике | |
|
|
|
|
|
|
|
для: Василий
(04.01.2012 в 16:40)
| | Значит условие
// Запускаем функцию
if(!empty($_POST['upload_submit']))
| должно срабатывать, что идет после него? Сразу вызов функции? | |
|
|
|
|
|
|
|
для: cheops
(04.01.2012 в 16:29)
| | Переменная заполнена и видно в файле pu_add
[upload_submit] => Сохранить изменения | |
|
|
|
|
|
|
|
для: Василий
(04.01.2012 в 16:29)
| | У вас у двух раздельных форм отдельные обработчики? Если да, их нужно объединить, например, в том же pu_add.php, тогда его можно указать в action.php. В любом случае, одна форма - один обработчик. | |
|
|
|
|
|
|
|
для: Василий
(04.01.2012 в 16:29)
| | так объедините те же обработчики!!!
я же в комментарии написал
<?php
// тут обрабатываете данные из формы, загружаете файл, записываете в базу
?>
|
[поправлено модератором] | |
|
|
|
|
|
|
|
для: Василий
(04.01.2012 в 15:59)
| | >она запускается в том же файле где и форма.
>
// Запускаем функцию
> if(!empty($_POST['upload_submit']))
|
Должно работать, выведите в обработчике дамп массива $_POST
<?php
echo "<pre>";
print_r($_POST);
echo "</pre>";
?>
| Посмотрите, заполнена ли переменная upload_submit | |
|
|
|
|
|
|
|
для: Slo_Nik
(04.01.2012 в 16:22)
| | если прописать action ="" то не включается обработчик pu_add.
Файл то загрузим, а название предприятия не запишем.
ЗАмкнутый круг | |
|
|
|
|
|
|
|
для: Василий
(04.01.2012 в 16:16)
| |
<?php
// тут обрабатываете данные из формы, загружаете файл, записываете в базу
?>
<!-- action оставьте пустым если хотите что бы форму обрабатывал код который буден находится в файле выше,
над формой, или пропишите имя файла, в котором находится форма -->
<form action=''>
<input type='text' name='title' value='<?php echo $_GET['title']; ?>' />
<input name="id_pu" type="hidden" value="<?php echo $_GET['id_pu']; ?>">
<input type="file" name="filename">
<input type="submit" name="submit" id="submit" value="Сохранить изменения">
</form>
|
p.s. чтобы избежать новых тем по вопросу загрузки файле не забудьте прописать остальные нужные атрибуты для тега form. я специально прописал только action
[поправлено модератором] | |
|
|
|
|