PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Описание: Есть форма но не всё работает как надо и надо кое что добавить!
Поиск в теме | Версия для печати
Pitmen
Отправлено: 24 Июля, 2009 - 14:39:09
Новичок
Покинул форум
Сообщений всего: 47
Дата рег-ции: Июнь 2009
Помог: 0 раз(а)
Есть форма отправки на мейл, работает нормально, но пре выборе двух и более чекбоксов отображает только один, что надо доделать? Сама форма:
CODE (
text ):
скопировать код в буфер обмена
<form name="zacaz" action="rashet_form.php" method="POST" enctype="multipart/form-data">
<font size="4">Посчитать стоимость</font><br>
<br>*Имя <input name="neim" size="80" value=""><br><br>
*Телефон для связи <input name="tel" size="64" value="" type="text"><br><br>
*e-mail <input name="mail" size="79" value="" type="text"><br><br>
*Что бы Вы хотели просчитать?<br>
<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>
<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>
<input name="vb" value="докаративная отделка" type="checkbox"> докаративная отделка <input name="vb" value="роспись по стеклу" type="checkbox"> роспись по стеклу<br>
<br> Описание<br><br>
<textarea name="opis" rows="10" cols="67"> метраж, количество, опишите своими словами что именно Вам хотелось бы заказать
</textarea> <br>
<br>Присоединить файл: <input name="fail" size="20" value="" type="file"> <input name="otpr" value="Отправить" type="submit">
</form>
Обработчик:
PHP:
скопировать код в буфер обмена
<?PHP
if ( isset ( $_POST [ 'vb' ] ) ) echo 'Включен' ;
else
echo 'Выключен' ;
{
$name = substr ( $neim , 0
, 20
) ; //Не может быть более 20 символов {
echo "<center><b>Не указано имя !!!<p>" ;
echo "<a href=index.php?option=com_content&view=article&id=4&Itemid=3>Вернуться и правильно заполнить форму.</a>" ;
}
}
else
{
$neim = "не указано" ;
}
{
$tel = substr ( $tel , 0
, 20
) ; //Не может быть более 20 символов {
echo "<center><b>Не указан номер телефона!!!<p>" ;
echo "<a href=index.php?option=com_content&view=article&id=4&Itemid=3>Вернуться и правильно заполнить форму.</a>" ;
}
}
else
{
$tel = "не указано" ;
}
{
$mail = substr ( $mail , 0
, 20
) ; //Не может быть более 20 символов {
echo "<center><b>Не указан e-mail !!!<p>" ;
echo "<a href=index.php?option=com_content&view=article&id=4&Itemid=3>Вернуться и правильно заполнить форму.</a>" ;
}
}
else
{
$mail = "не указано" ;
}
{
$opis = substr ( $opis , 0
, 1000
) ; //Не может быть более 1000 символов {
echo "<center><b>Сообщение не написано !!!<p>" ;
echo "<a href=index.php?option=com_content&view=article&id=4&Itemid=3>Вернуться и правильно заполнить форму.</a>" ;
}
}
else
{
$opis = "не указано" ;
}
$i = "не указано" ;
if ( $neim == $i AND $mail == $i AND $opis == $i AND $tel == $i )
{
echo "Ошибка ! Скрипту не были переданы параметры !" ;
}
$to = "ваш@адрес.ru" ;
$subject = "Сообщение с вашего интернет-сайта: Заявка на просчёт стоимости!" ;
$message = "Имя пославшего:$neim ::::::::::Телефонный номер:$tel :::::::::: адрес:$mail ::::::::::Выбранно: $vb ::::::Описание:$opis :::::::::IP-адрес:$REMOTE_ADDR " ;
mail ( $to , $subject , $message ) or
print "Не могу отправить письмо !!!" ; echo "<center><b>Спасибо за отправку Вашего сообщения" ;
?>
И ещё, как мне добавить к обработчику вложение?
Viper
Отправлено: 24 Июля, 2009 - 15:09:10
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007
Откуда: Симферополь
Помог: 98 раз(а)
<input name="name
[] " value="$value" type="checkbox">
кажись так. на выходе будет массив
(Отредактировано автором: 24 Июля, 2009 - 15:11:19)
Pitmen
Отправлено: 24 Июля, 2009 - 15:19:41
Новичок
Покинул форум
Сообщений всего: 47
Дата рег-ции: Июнь 2009
Помог: 0 раз(а)
Viper пишет: <input name="name[] " value="$value" type="checkbox">
кажись так. на выходе будет массив
А как тагда значение выбранного в текст письма вставлять?
Вот у меня
Если сделать как ты сказал, то как обработчик поймёт, что выбранна докаративная отделка а не сто то другое? Может id какойнить прописать, но куда? И как в обработчике это прописать?
Viper
Отправлено: 24 Июля, 2009 - 15:52:07
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007
Откуда: Симферополь
Помог: 98 раз(а)
создайте файл index.php где-нить в новой папке и пропишите в него
CODE (
text ):
скопировать код в буфер обмена
<span>Декоративные штукатурки</span>
<form action="index.php" method="post">
<input type="checkbox" name="val[]" value="mineral" /><label>Минеральные штукатурки</label><br>
<input type="checkbox" name="val[]" value="silicone" /><label>Силиконовая (силоксановая) штукатурка</label><br>
<input type="checkbox" name="val[]" value="silicate" /><label>Штукатурки на силикатной основе</label><br>
<input type="checkbox" name="val[]" value="interar" /><label>Интерьерные декоративные штукатурки</label><br>
<input type="submit" value="send" />
</form>
<?php
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>
и теперь посмотрите что у вас приезжает с выбранных чекбоксов. так понятней ?
Viper
Отправлено: 24 Июля, 2009 - 16:28:41
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007
Откуда: Симферополь
Помог: 98 раз(а)
Pitmen пишет: а как в обработчике прописать?
ну как-то так
PHP:
скопировать код в буфер обмена
<?PHP
if ( isset ( $_POST [ 'val' ] ) && ! empty ( $_POST [ 'val' ] ) ) { $type = $_POST [ 'val' ] ;
for ( $i = 0 ; $i < count( $type ) ; $i ++ ) {
echo $type [ $i ] , $i + 1
== count ( $type ) ?
'' : ', ' ; }
} else {
echo 'Something went wrong!' ;
}
?>
в результате у вас строка с перечислением выбранных значений.(Отредактировано автором: 24 Июля, 2009 - 16:29:59)
Pitmen
Отправлено: 24 Июля, 2009 - 17:11:37
Новичок
Покинул форум
Сообщений всего: 47
Дата рег-ции: Июнь 2009
Помог: 0 раз(а)
строчка появляется, а как её тперь вставить в тело письма, вот сюда:
PHP:
скопировать код в буфер обмена
$to = "ваш@адрес.ru" ;
$subject = "Сообщение с вашего интернет-сайта: Заявка на просчёт стоимости!" ;
$message = "Имя пославшего:$neim ::::::::::Телефонный номер:$tel :::::::::: адрес:$mail ::::::::::Выбранно: ??????::::::Описание:$opis :::::::::IP-адрес:$REMOTE_ADDR " ;
mail ( $to , $subject , $message ) or
print "Не могу отправить письмо !!!" ; echo "<center><b>Спасибо за отправку Вашего сообщения" ;
Viper
Отправлено: 24 Июля, 2009 - 17:29:33
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007
Откуда: Симферополь
Помог: 98 раз(а)
PHP:
скопировать код в буфер обмена
if ( isset ( $_POST [ 'val' ] ) && ! empty ( $_POST [ 'val' ] ) ) { $type = $_POST [ 'val' ] ;
for ( $i = 0 ; $i < count( $type ) ; $i ++ ) {
$vb = $type [ $i ] , $i + 1
== count ( $type ) ?
'' : ', ' ; }
} else {
$vb = 'Something went wrong!' ;
}
$message = 'Имя пославшего: ' . $neim . '<br>Телефонный номер: ' . $tel . ' <br>адрес: ' . $mail . '<br>Выбранно: ' . $vb . '<br>Описание: ' . $opis . '<br>IP-адрес: ' . $ip ;
как-то так.(Отредактировано автором: 24 Июля, 2009 - 17:29:59)
Pitmen
Отправлено: 24 Июля, 2009 - 17:54:41
Новичок
Покинул форум
Сообщений всего: 47
Дата рег-ции: Июнь 2009
Помог: 0 раз(а)
Не проходит выдаёт: Parse error: syntax error, unexpected T_VARIABLE in Z:\home\Desingarhiclub\www\rashet_form.php on line 5
строка:
а если делать совсем как ты сказал то ругается на запятую между $type[$i] и $i+1
(Добавление)
С ошибкой разобрался, там надо кавычки поставить было вот так , но когда письмо приходит то выдаёт такое
Выбранно: полы 3+1==count(Array)?'':' ' тоесть опять весь выбор не выдаёт!
Viper
Отправлено: 24 Июля, 2009 - 19:08:05
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007
Откуда: Симферополь
Помог: 98 раз(а)
Pitmen пишет: Выбранно: полы 3+1==count(Array)?'':' '
ну так и не будет работать. кавычками закрыт исполняемый код. вот и пишет бред.
попробуйте так
Viper
Отправлено: 24 Июля, 2009 - 21:40:43
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007
Откуда: Симферополь
Помог: 98 раз(а)
CODE (
text ):
скопировать код в буфер обмена
if (isset($_POST['val']) && !empty($_POST['val'])) {
$type = $_POST['val'];
for ($i = 0; $i<count($type); $i++) {
$vb = $type[$i].'',$i+1==count($type)?'':', ';
}
} else {
$vb = 'Something went wrong!';
exit();
}
Pitmen
Отправлено: 25 Июля, 2009 - 12:03:21
Новичок
Покинул форум
Сообщений всего: 47
Дата рег-ции: Июнь 2009
Помог: 0 раз(а)
Что некто не поможет?
(Добавление)
Проблема решена, вот таким образома:
Всё работает прекрасно, вот как бы теперь реализовать отправку в теле письма файл?
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB