| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Автоподстановка в поле темы???? |
| Автор: sokpet 6.12.2009, 19:58 | ||
| Добрый день. Помогите плиз. Имеется форма обратной связи (сontact.html) и обработчик (contact.php) на который ссылается форма. (Код ниже) Все работает. Теперь появилась новая задача: существует 2 страницы с продукцией (product.html и product_2.html), рядом с каждым продуктом стоит check box и ссылка для запроса доп. информации Вопрос: как сделать чтобы посетитель отметив необходимый артикул (один или несколько, на одной страницы или на двух) при нажатии ссылки переходил бы на страницу формы обратной связи на которой уже автоматичеки было бы заполнено поле Тема $fields["Subject"] = "Subject"; (в зависимости от выбранных артикулов) и сообщение отправлялось бы на другой почтовый ящик. (т.е. если посетитель входит на форму обр. связи на прямую = посылаем на почт. ящик1 и тему вводит сам, И если входит на форму через страницы с продукцией = посылаем на почт. ящик 2 и тема вставляется автоматически). В данном коде все письма идут только на второй ящик. А в REFERER всегда попадает только contact.html даже если пришел со страницы product.html. КАК ИСПРАВИТЬ?????
Если эта тема уже обсуждалась то дайте пожалуйста линк. Заранее спасибо |
| Автор: Pitlord 6.12.2009, 20:04 |
| Просто пользуйся дополнительным GET-параметром. |
| Автор: sokpet 6.12.2009, 21:02 |
| а подробнее про доп. GET можно? |
| Автор: Pitlord 6.12.2009, 21:11 | ||
Для этого страница с HTML-формой должна динамически формироваться, конечно. На страницах с продуктами необходимо формировать ссылку на страницу с формой с дополнительным GET-параметром. Например:
В contact_form.php в завимости от него составлять необходимую форму. |
| Автор: sokpet 6.12.2009, 22:30 |
| в том то и дело, что там только статика. Других вариантов нет? |
| Автор: Simpliest 6.12.2009, 22:38 |
| куки и яваскрипт. При условии что формы у тебя не на разных доменах. |
| Автор: sokpet 7.12.2009, 01:10 |
| а с кукисами где что добавлять нужно? На яве не желательно т-к- у многих она выключена. Формы на одном домене. Т.е. если я правильно рассуждаю то должны быть формы в product.html + product_2.html (там где клиент будет выбирать продукцию в чекбоксах) и contact.html (cама форма обр- связи) Заранее спасибо |
| Автор: Pitlord 7.12.2009, 01:22 |
Что мешает это исправить? |
| Автор: sokpet 7.12.2009, 01:33 |
| к сожалению с динамикой не силен. |
| Автор: Simpliest 7.12.2009, 06:54 |
тогда у тебя нет вариантов для решения этой задачи. Добавлено через 1 минуту и 16 секунд В них и нужно добавлять то значение, которое тебе нужно подставлять на другой форме. В одном месте сохранил в куки, в другом месте взял из кук и вставил в html. |
| Автор: Ипатьев 7.12.2009, 07:32 |
| Для начала я бы решал эту задачу для одной формы... |
| Автор: sokpet 7.12.2009, 17:22 |
| я через одну форму и пытаюсь решить. Там 60 страниц и все статика (в XHTML и CSS рублю) только формуляр через РНР (вот тут сложнее) и захотели чуть-чуть усложнитить задачу. К сожалению РНР за пару дней не выучить (если только под гипнозом!) Может хелпните (желательно без общих фраз) |
| Автор: Ипатьев 7.12.2009, 17:33 |
| Ну да, конечно. форму никто не видел, как она работает никто не знает, но отвечать надо без общих фраз. Форма с чекбоксами есть? Выбранные параметры из нее в страницу с формой обратной связи передаются? В адресной строке они видны? |
| Автор: sokpet 7.12.2009, 17:39 |
| сейчас все выложу. |
| Автор: Ипатьев 7.12.2009, 17:41 |
| выкладывать ничего не надо. надо ответить на вопросы, которые я задал |
| Автор: sokpet 7.12.2009, 17:52 | ||||||
Это форма ofertas.html
Это форма из contactos.html
Ну а задача излагалась выше... Заранее спасибо за помощь |
| Автор: Ипатьев 7.12.2009, 18:23 | ||
| Задачу излагает преподаватель на экзамене. А здесь вы делаете свою работу, за которую вам платят деньги, и спрашиваете совета, как лучше сделать. Как я это понимаю. Начнем с того, что пока файл contactos будет иметь расширение html, никакие операции на РНР в нем не будут возможны. следовательно, надо переименовать в contactos.php Далее. В ofertas убрать method="post", а в action наоборот прописать contactos.php В итоге после выбора в ofertas, у нас должен открыться contactos.php с выбранными параметрами в адресной строке. А в теле файла если написать
то будут выведены выбранные чекбоксы. Когда это заработает, перейдем к следующему этапу |
| Автор: sokpet 9.12.2009, 15:57 | ||
| Спасибо, переделал как ты сказал, только <pre><?PHP print_r($_GET['art']) ?></pre> поставил в
так как мне нужно чтобы именно в этом поле все заполнялось. Теперь заполняет, только почему то пишет следующим образом: <pre>Array( [0] => oferta2 [1] => oferta3)</pre> как убрать, чтобы писалось только oferta2, oferta3 ??? и теперь не работает contact.php (т.е. обработчик отправки почты). Где что исправить??? Спасибо |
| Автор: Ипатьев 9.12.2009, 16:00 |
<?PHP echo implode(",",$_GET['art']) ?> для этого надо знать, что именно не работает |
| Автор: sokpet 9.12.2009, 16:19 |
| Спасибо теперь пишет как надо, только если ничего не выбираешь и нажимаешь submit то в contactos.php вылезает <br /><b>Warning</b>: implode() [<a href='function.implode'>function.implode</a>]: Invalid arguments passed in <b>/homepages/12/d310437503/htdocs/contactos.php</b> on line <b>21</b><br /> Как сделать чтобы в таком случае просто вылезало: Ofertas General И когда нажимаешь отправить в contactos.php срабатывает contact.php и выдает ошибку на линии 33 (закрывающий тег php). Хотя когда contactos.php был html почта отправлялась. Может здесь тоже metod убрать? |
| Автор: sokpet 10.12.2009, 02:33 | ||||
С частью вопроса разобрался, в итоге получилось следующее:
А как теперь правильно привинтить contact.php (обработчик почты). Если он указан как action то не срабатывает условие REFERER, так как последнюю страницу, которую он видит это contactos.php. и шлет все на второй ящик, а если я вставляю все в один файл contactos.php , и в action пишу '<?=echo $_server['PHP_self']?>' то файл срабатывает даже не показав форму для заполения. Подскажите как лучше сделать? код обработчика:
Заранее спасибо |
| Автор: bars80080 10.12.2009, 11:13 | ||||
это какой-то страх божий. такое ощущение, что вы целенаправленно пытаетесь сделать код максимально не читаемым. почему было не написать так:
что имелось в виду в echo $_GET['art'] = "Ofertas General"; - не знаю, поэтому убрал так оно не работает. либо <?php echo $some; ?> , либо <?=$some?> , а не винегретом |
| Автор: sokpet 14.12.2009, 15:52 | ||
| Спасибо, поправил. Не совсем понял что делать с
Мне нужно чтобы выполнялось вот это условие, но если в action (contactos.php) стоит contact.php то условие не работает т.е. все уходит на второй ящик. А если вставляю все в один файл то вообще ничего не работает if($_SERVER['HTTP_REFERER'] == "http://www.xxx/ofertas.html" || $_SERVER['HTTP_REFERER'] == "http://www.xxx/ofertas_2.html") { $to = "[email protected]";} else {$to = "[email protected]"; } Как это правильно привинтить? Спасибо |