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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: объединить 2 формы
 
 автор: Василий   (03.01.2012 в 16:54)   письмо автору
 
 

С Новым годом!
Есть две формы. Одна позволяет изменить название предприятия.
В другой - пользователь грузит свой логотип.
У пользователя есть свой id_pu
Надо объединить две формы. Чтобы была одна кнопка.
У пользователя в базе данных в поле logo прописан путь к его логотипу: img/logo_pu/его файл.jpg
Соотвественно, как надо прописывать путь в этой папке к вновь загруженному файлу
<form name="add" method='post' action='pu_add.php'>
<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" style='border:1px solid red'>
  </td>
 </tr>
</table>
<input name="id_pu" type="hidden" value="<?php echo $_GET['id_pu']; ?>">
     <label>
     <input type="submit" name="submit" id="submit" value="Сохранить изменения">
<strong><font color="#FF0000">
Организация будет добавлена после проверки редактором сайта.</font></strong>
     </label>
</form>


<?php 


/**  
 * Function of uploaded of a file   
 * Функция загрузки файла (аплоадер)  
 * @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'];  
    } 
?>  

<form action="" method="post" enctype="multipart/form-data">  
    <input type="file" name="userfile" />  
    <input type="submit" value="Закачать" name="upload_submit" />  
</form>

<?php


    
echo '<pre>'
    
print_r($_FILES['userfile']); 
    echo 
'</pre>';
    
?>  

  Ответить  
 
 автор: Slo_Nik   (03.01.2012 в 17:25)   письмо автору
 
   для: Василий   (03.01.2012 в 16:54)
 

Для начала надо получить имя нового файла, а потом заменить им имя старого файла.
Вот и всё.

  Ответить  
 
 автор: Василий   (03.01.2012 в 17:26)   письмо автору
 
   для: Slo_Nik   (03.01.2012 в 17:25)
 

а формы как объединить?

  Ответить  
 
 автор: Slo_Nik   (03.01.2012 в 17:41)   письмо автору
 
   для: Василий   (03.01.2012 в 17:26)
 

Насколько я помню, Вам уже писали как.
Объединить формы не главное, главное объединить обработчик...
Вы имеете представление как создаётся форма на html? Если да, то вопрос об объединении форм отпадает сам сабой, если же нет, то изучите как создаются формы.

  Ответить  
 
 автор: Василий   (03.01.2012 в 18:45)   письмо автору
 
   для: Slo_Nik   (03.01.2012 в 17:41)
 

отвечали. скрипт новый теперь

  Ответить  
 
 автор: Slo_Nik   (03.01.2012 в 19:01)   письмо автору
 
   для: Василий   (03.01.2012 в 18:45)
 

да какая разница?!
скрипт это php
а формы это html
может Вам надо объединить обработчик? тогда к формам Ваш вопрос не имеет ни какого отношения

  Ответить  
 
 автор: Василий   (03.01.2012 в 19:10)   письмо автору
 
   для: Slo_Nik   (03.01.2012 в 19:01)
 

обработчик пока не просил )))
прошу объединить формы

  Ответить  
 
 автор: Slo_Nik   (03.01.2012 в 19:12)   письмо автору
 
   для: Василий   (03.01.2012 в 19:10)
 

Вы можете сами создать форму с использованием html ?

  Ответить  
 
 автор: Василий   (03.01.2012 в 19:23)   письмо автору
 
   для: Slo_Nik   (03.01.2012 в 19:12)
 

они уже созданы. см. первый пост.
нужно из 2-х форм составить одну.
Если написал об этом значит не могу. Если не могу - значит читай Мануал?

  Ответить  
 
 автор: Slo_Nik   (03.01.2012 в 19:26)   письмо автору
 
   для: Василий   (03.01.2012 в 19:23)
 

не пойму Вас, если Вы сами создали первые две формы, то почему у Вас вызывает сложность создать одну, общую форму?
одна форма, два поля, одно для названия предприятия, второе для выбора файла.

<form>
Первое поле для названия предприятия
Второе поля для выбора файла
Третье, скрытое поле, для id предприятия
кнопка отправки формы
</fotm>

Разве это так сложно?

  Ответить  
 
 автор: elenaki   (03.01.2012 в 19:28)   письмо автору
 
   для: Slo_Nik   (03.01.2012 в 19:26)
 

главное, не забыть у новой формы поставить enctype="multipart/form-data"

  Ответить  
 
 автор: Slo_Nik   (03.01.2012 в 19:29)   письмо автору
 
   для: elenaki   (03.01.2012 в 19:28)
 

Я то это знаю, а вот автору поста надо это напомнить неоднократно....

>Если не могу - значит читай Мануал?
Да!!! И не только читать, но и пробовать самому сделать!!!
И если что то не получается, то показываете свой код, не копированный откуда то, и возможно Вам помогут.

  Ответить  
 
 автор: Василий   (03.01.2012 в 19:34)   письмо автору
 
   для: Slo_Nik   (03.01.2012 в 19:29)
 

Прошу проверить
<?php 


/**  
 * Function of uploaded of a file   
 * Функция загрузки файла (аплоадер)  
 * @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'];  
    } 
?>  

<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" style='border:1px solid red'>
  </td>
<td>
    <input type="file" name="userfile" />  
    <input type="submit" value="Закачать" name="upload_submit" />  
</td>
 </tr>
</table>
<input name="id_pu" type="hidden" value="<?php echo $_GET['id_pu']; ?>">
     <label>
     <input type="submit" name="submit" id="submit" value="Сохранить изменения">
<strong><font color="#FF0000">
Организация будет добавлена после проверки редактором сайта.</font></strong>
     </label>
</form>

  Ответить  
 
 автор: Slo_Nik   (03.01.2012 в 19:37)   письмо автору
 
   для: Василий   (03.01.2012 в 19:34)
 

а что мне тут проверять?
а php код проверяйте тоже сами, он или работает или нет.
вот когда не будет работать, пишите, какие есть ошибки/предупреждения/замечания.......
Вообще то Вы пробовали хотя бы запустить Ваш код в браузере?
Видели две кнопки?
а зачем две?

  Ответить  
 
 автор: elenaki   (03.01.2012 в 19:40)   письмо автору
 
   для: Slo_Nik   (03.01.2012 в 19:37)
 

ну, он же ДВЕ формы объединяет. было бы три формы - оставил бы все три сабмита...

  Ответить  
 
 автор: Slo_Nik   (03.01.2012 в 19:47)   письмо автору
 
   для: elenaki   (03.01.2012 в 19:40)
 

Это понятно, а ещё понятно то, что не хочет человек чуть подумать, просто копирует тупо и всё....
ведь вопрос то элементарный....
Да и в другую ветку форума ему надо с этим вопросом.
Повторю ещё раз для автора поста

<form> 
Первое поле для названия предприятия 
Второе поля для выбора файла 
Третье, скрытое поле, для id предприятия 
кнопка отправки формы 
</fotm> 

  Ответить  
Rambler's Top100
вверх

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