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

Форум MySQL

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

 

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

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

тема: Обновление записи в базе

Сообщения:  [1-10]    [11-20]  [21-26] 

 
 автор: cheops   (28.03.2006 в 14:59)   письмо автору
 
   для: Trianon   (28.03.2006 в 14:43)
 

По уму конечно их не стоил бы отключать, но для их устранения придётся шибко код расширять...

   
 
 автор: Trianon   (28.03.2006 в 14:43)   письмо автору
 
   для: cheops   (28.03.2006 в 14:01)
 

По-моему, это был как раз один из тех случаев, когда warning предотвратил зарывание ошибки в логике скрипта в трясину наслоений исправлений этого скрипта.
Вот сижу теперь и думаю, а стоит ли отключать эти самые Warning'и....

   
 
 автор: juliya   (28.03.2006 в 14:22)   письмо автору
 
   для: Trianon   (28.03.2006 в 13:49)
 

Ура!!! Всем Спасибо!!! Все работает!!! Вы просто гении!!!

   
 
 автор: Trianon   (28.03.2006 в 14:11)   письмо автору
 
   для: Trianon   (28.03.2006 в 14:04)
 

$buffer = '';
if(isset($_FILES['photo']) && !empty($_FILES['photo']['tmp_name'])) 

  ini_set("max_execution_time", 999999); 
  $photo = $_FILES['photo']['tmp_name'];   
  // otkrivaem 
  $file = fopen($photo, "rb");   
  // chitaem 
  $buffer = fread($file, filesize($photo)); 
  $buffer = ", f_photo='".mysql_escape_string($buffer)."'"; 
  // zakrivaem 
  fclose($file); 

и

 $query = "UPDATE vsm_notebook SET f_surname='$HTTP_POST_VARS[surname]', f_name='$HTTP_POST_VARS[name]', f_patronymic='$HTTP_POST_VARS[patronymic]', f_country='$HTTP_POST_VARS[country]', f_city='$HTTP_POST_VARS[city]', f_zip='$HTTP_POST_VARS[zip]', f_street='$HTTP_POST_VARS[street]', f_house='$HTTP_POST_VARS[house]', f_flat='$HTTP_POST_VARS[flat]', f_home_tel='$HTTP_POST_VARS[home_tel]', f_working_tel='$HTTP_POST_VARS[working_tel]', f_mobile_tel='$HTTP_POST_VARS[mobile_tel]', f_email='$HTTP_POST_VARS[email]', f_additional_info='$HTTP_POST_VARS[additional_info]', f_date_time=NOW() $buffer 
WHERE (f_id='$id')"; 
  

   
 
 автор: Trianon   (28.03.2006 в 14:04)   письмо автору
 
   для: juliya   (28.03.2006 в 13:56)
 

Если не заполнено фото, то всю конструкцию
, f_photo='".mysql_escape_string($buffer)."' 

нужно из запроса выкинуть. Иначе Вы разрушите старую фотографию.

   
 
 автор: cheops   (28.03.2006 в 14:01)   письмо автору
 
   для: juliya   (28.03.2006 в 13:56)
 

Notice является своеобразным советом и выводится, когда выставлена максимальная чувствительность PHP к ошибкам - её следует понизить, как это сделано на всех хостингах, иначе они не дадут работать. Для этого, следует выставить соответствующее значение для директивы error_reporting http://www.softtime.ru/info/articlephp.php?id_article=23, в конфигурационном файле php.ini
error_reporting = E_ALL & ~E_NOTICE  

Так же можно изменить уровень обработки ошибок локально, для этого в начало скрипта следует поместить функцию
<?php 
Error_Reporting
(E_ALL & ~E_NOTICE); 
?>

В качестве параметра, которой передать соответствующий уровень обработки ошибок.

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4985

   
 
 автор: juliya   (28.03.2006 в 13:56)   письмо автору
 
   для: cheops   (28.03.2006 в 13:47)
 

Спасибо! Теперь все обновляется!

if(isset($_FILES['photo']) && !empty($_FILES['photo']['tmp_name'])) 

  ini_set("max_execution_time", 999999); 
  $photo = $_FILES['photo']['tmp_name'];  
  // otkrivaem 
  $file = fopen($photo, "rb");  
  // chitaem 
  $buffer = fread($file, filesize($photo)); 
  // zakrivaem 
  fclose($file);

echo '<pre>'; 
print_r($_FILES); 

    if (empty($error))
  {  $query = "UPDATE vsm_notebook SET f_surname='$HTTP_POST_VARS[surname]', f_name='$HTTP_POST_VARS[name]', f_patronymic='$HTTP_POST_VARS[patronymic]', f_country='$HTTP_POST_VARS[country]', f_city='$HTTP_POST_VARS[city]', f_zip='$HTTP_POST_VARS[zip]', f_street='$HTTP_POST_VARS[street]', f_house='$HTTP_POST_VARS[house]', f_flat='$HTTP_POST_VARS[flat]', f_home_tel='$HTTP_POST_VARS[home_tel]', f_working_tel='$HTTP_POST_VARS[working_tel]', f_mobile_tel='$HTTP_POST_VARS[mobile_tel]', f_email='$HTTP_POST_VARS[email]', f_additional_info='$HTTP_POST_VARS[additional_info]', f_date_time=NOW(), f_photo='".mysql_escape_string($buffer)."'
WHERE (f_id='$id')";
  $result = mysql_query($query);

Если не заполнено поле фото, то он ругается

Notice:  Undefined variable:  buffer in D:\SERVER\notebook\edit_contact.php on line 290

Можно ли от этого избавиться?

   
 
 автор: Trianon   (28.03.2006 в 13:49)   письмо автору
 
   для: juliya   (28.03.2006 в 13:24)
 

Можно. Для этого нужно в форму добавить еще одно поле. Скрытое.
<form enctype=multipart/form-data method="post">
  <input type=hidden name=id value=<?echo $id?> >

   
 
 автор: cheops   (28.03.2006 в 13:47)   письмо автору
 
   для: juliya   (28.03.2006 в 13:24)
 

А в HTML-форме у вас имеется скрытое поле id?
<input type=hidden name=id value=<?php echo $id?>>

   
 
 автор: juliya   (28.03.2006 в 13:24)   письмо автору
 
   для: Trianon   (28.03.2006 в 10:43)
 

Подскажите, пожалуйста, можно ли по нажатию на кнопке "submit" передать id записи в другой файл? Делала

 $id = $_POST["id"];
 print "id = ".$id;

В ответ:

Notice: Undefined index: id in D:\SERVER\notebook\edit_contact.php on line 35
id = 

И в базе ничего не обновляется.

   

Сообщения:  [1-10]    [11-20]  [21-26] 

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

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