Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите доделать форму!

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Есть форма но не всё работает как надо и надо кое что добавить!
Pitmen
Отправлено: 24 Июля, 2009 - 14:39:09
Post Id


Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




Есть форма отправки на мейл, работает нормально, но пре выборе двух и более чекбоксов отображает только один, что надо доделать? Сама форма:
CODE (text):
скопировать код в буфер обмена
  1. <form name="zacaz" action="rashet_form.php" method="POST" enctype="multipart/form-data">
  2. <font size="4">Посчитать стоимость</font><br>
  3. <br>*Имя&nbsp; <input name="neim" size="80" value=""><br><br>
  4. *Телефон для связи &nbsp; <input name="tel" size="64" value="" type="text"><br><br>
  5. *e-mail&nbsp;  <input name="mail" size="79" value="" type="text"><br><br>&nbsp;
  6. *Что бы Вы хотели просчитать?<br>&nbsp;
  7. <input name="vb" value="кухня" type="checkbox"> кухня <input name="vb" value="детская" type="checkbox"> детская <input name="vb" value="шкафы купе" type="checkbox"> шкафы купе <input name="vb" value="мебель для дома" type="checkbox"> мебель для дома <input name="vb" value="мебель для офиса" type="checkbox"> мебель для офиса <br>&nbsp;
  8. <input name="vb" value="роспись стен" type="checkbox"> роспись стен <input name="vb" value="мягкая мебель" type="checkbox"> мягкая мебель <input name="vb" value="текстиль" type="checkbox"> текстиль <input name="vb" value="свет" type="checkbox"> свет <input name="vb" value="полы" type="checkbox"> полы <br>&nbsp;
  9. <input name="vb" value="докаративная отделка" type="checkbox"> докаративная отделка <input name="vb" value="роспись по стеклу" type="checkbox"> роспись по стеклу<br>
  10. <br>&nbsp;Описание<br><br>
  11.  <textarea name="opis" rows="10" cols="67"> метраж, количество, опишите своими словами что именно Вам хотелось бы заказать
  12.  </textarea> <br>
  13. <br>Присоединить файл: <input name="fail" size="20" value="" type="file"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name="otpr" value="Отправить" type="submit">
  14. </form>

Обработчик:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if ( isset( $_POST['vb'] ) )
  3.   echo 'Включен';
  4. else
  5.   echo 'Выключен';
  6.  
  7. if (isset ($neim))
  8. {
  9. $name = substr($neim,0,20); //Не может быть более 20 символов
  10. if (empty($neim))
  11. {
  12. echo "<center><b>Не указано имя !!!<p>";
  13. echo "<a href=index.php?option=com_content&view=article&id=4&Itemid=3>Вернуться и правильно заполнить форму.</a>";
  14. }
  15. }
  16. else
  17. {
  18. $neim = "не указано";
  19. }
  20. if (isset ($tel))
  21. {
  22. $tel = substr($tel,0,20); //Не может быть более 20 символов
  23. if (empty($tel))
  24. {
  25. echo "<center><b>Не указан номер телефона!!!<p>";
  26. echo "<a href=index.php?option=com_content&view=article&id=4&Itemid=3>Вернуться и правильно заполнить форму.</a>";
  27. }
  28. }
  29. else
  30. {
  31. $tel = "не указано";
  32. }
  33. if (isset ($mail))
  34. {
  35. $mail = substr($mail,0,20); //Не может быть более 20 символов
  36. if (empty($mail))
  37. {
  38. echo "<center><b>Не указан e-mail !!!<p>";
  39. echo "<a href=index.php?option=com_content&view=article&id=4&Itemid=3>Вернуться и правильно заполнить форму.</a>";
  40. }
  41. }
  42. else
  43. {
  44. $mail = "не указано";
  45. }
  46.  
  47. if (isset ($opis))
  48. {
  49. $opis = substr($opis,0,1000); //Не может быть более 1000 символов
  50. if (empty($opis))
  51. {
  52. echo "<center><b>Сообщение не написано !!!<p>";
  53. echo "<a href=index.php?option=com_content&view=article&id=4&Itemid=3>Вернуться и правильно заполнить форму.</a>";
  54. }
  55. }
  56. else
  57. {
  58. $opis = "не указано";
  59. }
  60.  
  61. $i = "не указано";
  62. if ($neim == $i AND $mail == $i AND $opis == $i AND $tel == $i)
  63. {
  64. echo "Ошибка ! Скрипту не были переданы параметры !";
  65. }
  66.  
  67. $to = "ваш@адрес.ru";
  68. $subject = "Сообщение с вашего интернет-сайта: Заявка на просчёт стоимости!";
  69. $message = "Имя пославшего:$neim::::::::::Телефонный номер:$tel:::::::::: адрес:$mail::::::::::Выбранно: $vb ::::::Описание:$opis:::::::::IP-адрес:$REMOTE_ADDR";
  70. mail ($to,$subject,$message) or print "Не могу отправить письмо !!!";
  71. echo "<center><b>Спасибо за отправку Вашего сообщения";
  72. ?>

И ещё, как мне добавить к обработчику вложение?
 
 Top
Viper
Отправлено: 24 Июля, 2009 - 15:09:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




<input name="name[]" value="$value" type="checkbox">

кажись так. на выходе будет массив

(Отредактировано автором: 24 Июля, 2009 - 15:11:19)



-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Pitmen
Отправлено: 24 Июля, 2009 - 15:19:41
Post Id


Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




Viper пишет:
<input name="name[]" value="$value" type="checkbox">

кажись так. на выходе будет массив

А как тагда значение выбранного в текст письма вставлять?
Вот у меня
CODE (text):
скопировать код в буфер обмена
  1. <input name="vb" type="checkbox"value="dekotdelca"> докаративная отделка

Если сделать как ты сказал, то как обработчик поймёт, что выбранна докаративная отделка а не сто то другое? Может id какойнить прописать, но куда? И как в обработчике это прописать?
 
 Top
Viper
Отправлено: 24 Июля, 2009 - 15:52:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




создайте файл index.php где-нить в новой папке и пропишите в него
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <span>Декоративные штукатурки</span>
  3. <form action="index.php" method="post">
  4. <input type="checkbox" name="val[]" value="mineral" /><label>Минеральные штукатурки</label><br>
  5. <input type="checkbox" name="val[]" value="silicone" /><label>Силиконовая (силоксановая) штукатурка</label><br>
  6. <input type="checkbox" name="val[]" value="silicate" /><label>Штукатурки на силикатной основе</label><br>
  7. <input type="checkbox" name="val[]" value="interar" /><label>Интерьерные декоративные штукатурки</label><br>
  8. <input type="submit" value="send" />
  9. </form>
  10. <?php
  11. echo '<pre>';
  12. print_r($_POST);
  13. echo '</pre>';
  14. ?>


и теперь посмотрите что у вас приезжает с выбранных чекбоксов. так понятней ?


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Pitmen
Отправлено: 24 Июля, 2009 - 16:14:00
Post Id


Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




Viper
Спасибо большое, теперь понятно, а как в обработчике прописать?
 
 Top
Viper
Отправлено: 24 Июля, 2009 - 16:28:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Pitmen пишет:
а как в обработчике прописать?


ну как-то так

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if (isset($_POST['val']) && !empty($_POST['val'])) {
  3.         $type = $_POST['val'];
  4.         for ($i = 0; $i<count($type); $i++) {
  5.                 echo $type[$i],$i+1==count($type)?'':', ';
  6.         }
  7. } else {
  8.         echo 'Something went wrong!';
  9. }
  10. ?>


в результате у вас строка с перечислением выбранных значений.

(Отредактировано автором: 24 Июля, 2009 - 16:29:59)



-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Pitmen
Отправлено: 24 Июля, 2009 - 17:11:37
Post Id


Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




строчка появляется, а как её тперь вставить в тело письма, вот сюда:
PHP:
скопировать код в буфер обмена
  1. $to = "ваш@адрес.ru";
  2. $subject = "Сообщение с вашего интернет-сайта: Заявка на просчёт стоимости!";
  3. $message = "Имя пославшего:$neim::::::::::Телефонный номер:$tel:::::::::: адрес:$mail::::::::::Выбранно: ??????::::::Описание:$opis:::::::::IP-адрес:$REMOTE_ADDR";
  4. mail ($to,$subject,$message) or print "Не могу отправить письмо !!!";
  5. echo "<center><b>Спасибо за отправку Вашего сообщения";
 
 Top
Viper
Отправлено: 24 Июля, 2009 - 17:29:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['val']) && !empty($_POST['val'])) {
  2.     $type = $_POST['val'];
  3.     for ($i = 0; $i<count($type); $i++) {
  4.         $vb = $type[$i],$i+1==count($type)?'':', ';
  5.     }
  6. } else {
  7.     $vb = 'Something went wrong!';
  8. }
  9.  
  10. $ip = getenv('REMOTE_ADDR');
  11. $message = 'Имя пославшего: '.$neim.'<br>Телефонный номер: '.$tel.' <br>адрес: '.$mail.'<br>Выбранно: '.$vb.'<br>Описание: '.$opis.'<br>IP-адрес: '.$ip;


как-то так.

(Отредактировано автором: 24 Июля, 2009 - 17:29:59)



-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Pitmen
Отправлено: 24 Июля, 2009 - 17:54:41
Post Id


Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




Не проходит выдаёт: Parse error: syntax error, unexpected T_VARIABLE in Z:\home\Desingarhiclub\www\rashet_form.php on line 5
строка:
PHP:
скопировать код в буфер обмена
  1. $vb = $type[$i] $i+1==count($type)?'':', ';

а если делать совсем как ты сказал
PHP:
скопировать код в буфер обмена
  1. $vb = $type[$i],$i+1==count($type)?'':', ';
то ругается на запятую между $type[$i] и $i+1
(Добавление)
С ошибкой разобрался, там надо кавычки поставить было вот так
PHP:
скопировать код в буфер обмена
  1. $vb = "$type[$i] $i+1==count($type)?'':' '";
, но когда письмо приходит то выдаёт такое
Выбранно: полы 3+1==count(Array)?'':' ' тоесть опять весь выбор не выдаёт!
 
 Top
Viper
Отправлено: 24 Июля, 2009 - 19:08:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Pitmen пишет:
Выбранно: полы 3+1==count(Array)?'':' '


ну так и не будет работать. кавычками закрыт исполняемый код. вот и пишет бред.

попробуйте так
CODE (text):
скопировать код в буфер обмена
  1. $vb = $type[$i].', '.$i+1==count($type)?'':', ';


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Pitmen
Отправлено: 24 Июля, 2009 - 20:00:01
Post Id


Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. $vb = $type[$i].', '.$i+1==count($type)?'':', ';

ну так вообще только запятую выводит!
 
 Top
Viper
Отправлено: 24 Июля, 2009 - 21:40:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




CODE (text):
скопировать код в буфер обмена
  1. if (isset($_POST['val']) && !empty($_POST['val'])) {
  2.     $type = $_POST['val'];
  3.     for ($i = 0; $i<count($type); $i++) {
  4.         $vb = $type[$i].'',$i+1==count($type)?'':', ';
  5.     }
  6. } else {
  7.     $vb = 'Something went wrong!';
  8.     exit();
  9. }


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Pitmen
Отправлено: 24 Июля, 2009 - 21:57:13
Post Id


Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




Опять двадцать пять, Parse error: syntax error, unexpected T_VARIABLE in Z:\home\Desingarhiclub\www\rashet_form.php on line 5 или просто ругается на запятую!
(Добавление)
А когда кавычки ставиш, то данные не выводит в теле письма!
 
 Top
Pitmen
Отправлено: 25 Июля, 2009 - 12:03:21
Post Id


Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




Что некто не поможет?
(Добавление)
Проблема решена, вот таким образома:
PHP:
скопировать код в буфер обмена
  1. $msg.=" ";
  2. $chs=$_POST['vb'];
  3. if($chs)
  4. {
  5.    foreach($chs as $tmp)
  6.    {
  7.       $tmp=stripslashes($tmp);
  8.       $msg.="$tmp, ";
  9.    }
  10. }
  11. else
  12. {
  13.    $msg.="НЕТ";
  14. }
  15. $msg.="\r\n";

Всё работает прекрасно, вот как бы теперь реализовать отправку в теле письма файл?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB