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

Форум PHP

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

 

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

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

тема: вопрос по работе с формой
 
 автор: Василий   (05.01.2012 в 15:38)   письмо автору
 
 

Пользователю предлагается менять свои данные
<center><form action="pu_action.php" method="get" name="f2">
<p>Заметили неточность – сообщите об ошибке!
<input type='hidden' name='title' value='<?php echo $myrow3['title']; ?>'>
<input type='hidden' name='licence' value='<?php echo $myrow3['licence']; ?>'>


Тут он вводит свои данные
обработчик
<form name="add" method='post' action='pu_add.php' enctype="multipart/form-data">
<table width="80%" 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">

если он оставит поле пустым, то в следующем файле
pu_add.php
<?php 
if (isset($title))
{
/*Здесь мы пишем, что можно заносить информацию в базу*/

$result mysql_query ("insert bd SET title='$title");
if (
$result == 'true') {echo "Спасибо! Информация получена.}
else {echo "
Вы ввели не всю информацию";
}
}          
else 
{
echo "
Вы ввели не всю информацию";
}
?>

то выходит ошибка - Вы ввели не всю информацию.
Как сделать поле со звездочкой (как кстати она добавляется?) обязательные к заполнению, а другие поля можно оставить пустыми

  Ответить  
 
 автор: Slo_Nik   (05.01.2012 в 15:48)   письмо автору
 
   для: Василий   (05.01.2012 в 15:38)
 

.

  Ответить  
 
 автор: Slo_Nik   (05.01.2012 в 15:49)   письмо автору
 
   для: Василий   (05.01.2012 в 15:38)
 

>как кстати она добавляется?
да просто пишите обычную звёздочку радом с названием поля в форме )))
Вы привели участок кода с ошибками, в двух местах нет нужных кавычек - подправьте.
В этом случае скорей всего будет правильно сообщить об ошибке записи в базу, а не о заполнении формы

<?php 
if ($result == 'true') {
 echo 
"Спасибо! Информация получена."

else {
echo 
"Вы ввели не всю информацию"


когда пишите код, то делайте так, что бы было легко читать
и можно переписать немного этот участок
сократить, так сказать

<?php 
 
if(!mysql_query ("insert bd SET title='$title")){
 echo 
"Ошибка записи в Базу Данных".mysql_error();

  Ответить  
 
 автор: Василий   (05.01.2012 в 16:08)   письмо автору
 
   для: Slo_Nik   (05.01.2012 в 15:49)
 

сокращать думаю не стоит. нужно информативно подавать для пользователя.

  Ответить  
 
 автор: Василий   (05.01.2012 в 16:10)   письмо автору
 
   для: Василий   (05.01.2012 в 16:08)
 

как сделать поле title не обязательное к заполнению?
Если оно будет пустое - чтобы не выходила ошибка Вы ввели не все данные

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

если $result будет false, то это не вина пользователя, а возможно ошибка выполнения запроса, так зачем выводить сообщение "Вы ввели не все данные"?
что бы title было не обязательно к заполнению надо убрать проверку if(isset(title))
сокращение записи ни как не повлияет на информативность. Зачем создавать переменную $result если достаточно обойтись той проверкой о которой я писал выше?

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

что бы title было не обязательно к заполнению надо убрать проверку if(isset(title))
Там два таких (isset(title)
Какое из них убрать? Вначале файла или при перед $result
if  (isset($_POST['title']))         {$title = $_POST['title']; if ($title == '') {unset ($title);}  }

if (isset($title))
{
/*Здесь мы пишем, что можно заносить информацию в базу*/
$result = mysql_query ("insert bd SET title='$title', l

  Ответить  
 
 автор: Slo_Nik   (05.01.2012 в 17:36)   письмо автору
 
   для: Василий   (05.01.2012 в 17:33)
 

а Вы как думаете?

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

Два варианта.
удалить все.
Или Удалить верхнее.

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

Кроме как в этих участках кода Вы ещё используете переменную title ?
Если да, то не надо удалять там где идёт присваивание значения POST, даже наоборот, дополнительно обработать можно, что бы исключить взлом БД
как это сделать смотрите в статье, ссылку на которую я дал в другой теме, "12 навыков...."
>Или Удалить верхнее.
Не надо гадать на кофейной гуще, думайте...!!!

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

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