Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Автоподстановка в поле темы???? Форма обратной связи 
V
    Опции темы
sokpet
Дата 7.12.2009, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 13.1.2008

Репутация: нет
Всего: нет



Это форма ofertas.html

Код

     <form action="" method="post">
  <div id="oferta_container">
   
<div class="oferta_sub_cont"> 
<div class="checkbox_link">
<div class="mas_info"><a href="contactos.html">Mas info</a></div>
 <input type="checkbox" name="art[]" class="free" value="oferta1"/>
</div>
<div class="oferta"><a href="styles/fotos/ofertas_large.jpg" rel="lightbox[roadtrip]"><img src="styles/fotos/ofertas_mini.jpg" title="Pulse el imagen de oferta para verla en la pantalla completa" alt="Pulse el imagen de oferta para verla en la pantalla completa"/></a></div>
</div>



<div class="oferta_sub_cont"> 
<div class="checkbox_link">
    <div class="mas_info"><a href="contactos.html">Mas info</a></div>

     <input type="checkbox" name="art[]" class="free" value="oferta2"/>

 </div>
<div class="oferta"><a href="styles/fotos/ofertas_mini_empty_large.jpg" rel="lightbox[roadtrip]"><img src="styles/fotos/ofertas_mini_empty.jpg" title="Pulse el imagen de oferta para verla en la pantalla completa" alt="Pulse el imagen de oferta para verla en la pantalla completa" /></a></div>
</div>

<div class="oferta_sub_cont"> 
<div class="checkbox_link">
    <div class="mas_info"><a href="contactos.html">Mas info</a></div>
      <input type="checkbox" name="art[]" class="free" value="oferta3"/>
 </div>
<div class="oferta"><a href="styles/fotos/ofertas_mini_empty_large.jpg" rel="lightbox[roadtrip]"><img src="styles/fotos/ofertas_mini_empty.jpg" title="Pulse el imagen de oferta para verla en la pantalla completa" alt="Pulse el imagen de oferta para verla en la pantalla completa" /></a></div>
</div>

<div class="oferta_sub_cont"> 
<div class="checkbox_link">
   <div class="mas_info"><a href="contactos.html">Mas info</a></div> 
<input type="checkbox" name="art[]" class="free" value="oferta4"/>
  </div>
<div class="oferta"><a href="styles/fotos/ofertas_mini_empty_large.jpg" rel="lightbox[roadtrip]"><img src="styles/fotos/ofertas_mini_empty.jpg" title="Pulse el imagen de oferta para verla en la pantalla completa" alt="Pulse el imagen de oferta para verla en la pantalla completa"/></a></div>
</div></div>
<input type="submit">
     </form>



Это форма из contactos.html

Код

  <form action="contact.php" method="post" id="formulario" title="Formulario de contactos" dir="ltr" xml:lang="es" lang="es">
   <table class="formulario" width="500" border="0" cellpadding="3">
  <tr>
    <td width="231">NOMBRE DE LA EMPRESA:</td>
    <td width="267"><input type="text" name="Nombre_empresa" class="formularioright" id="Nombre_empresa"/>
</td>
  </tr>
  <tr>
    <td>NOMBRE:</td>
    <td><input name="Nombre" type="text" class="formularioright" id="Nombre"/></td>
  </tr>
  <tr>
    <td>CORREO ELECTRONICO:</td>
    <td><input name="Email" type="text" class="formularioright" id="Correo_Electronico"/></td>
  </tr>
  <tr>
    <td>ASUNTO:</td>
    <td>

      <input name="Asunto" type="text" class="formularioright" id="Asunto" /> 

  </td>
  </tr>
    <tr>
    <td colspan="2">MENSAJE:
    </td>
    </tr>
        <tr>
    <td colspan="2"><textarea name="Mensaje" cols="99" rows="14" class="formularioright1" id="Mensaje"></textarea></td>
    </tr>
      <tr>
          <td colspan="2"><input name="submit" type="submit" class="enviar" onclick="MM_validateForm('Nombre_empresa','','R','Nombre','','R','Correo_Electronico','','RisEmail','Asunto','','R','Mensaje','','R');return document.MM_returnValue" value="ENVIAR"/>
 </td>
    </tr>
</table>

  </form>


Код

<?php 
if($_SERVER['HTTP_REFERER'] == "http://www.xxx/ofertas.html" || $_SERVER['HTTP_REFERER'] == "http://www.xxx/ofertas_2.html")
{
$send = "[email protected]";}
else
{$send2 = "[email protected]"; }

$from = $_POST['Email'] ; 
$name = $_POST['Nombre'] ; 
$headers = "De: $from"; 
$subject = "Web Datos de Contacto"; 

$fields = array(); 
$fields{"Nombre_empresa"} = "Nombre_empresa"; 
$fields{"Nombre"} = "Nombre"; 
$fields{"Email"} = "Email"; 
$fields{"Asunto"} = "Asunto"; 
$fields{"Mensaje"} = "Mensaje"; 

$body = "Hemos recibido la seguiente informacion:\n\n"; foreach($fields as $a => $b){ $body .= sprintf("%20s: %s\n",$b,$_POST[$a]); } 

$headers2 = "De: [email protected]"; 
$subject2 = "Gracias por contactar con nosotros"; 
$autoreply = "Gracias por contactar con nosotros. Nos pondremos en contacto con usted en 24 horas. Si tiene una pregunta, visite nuestro sitio web  www.xxx.com";

$send = mail($subject, $body, $headers); 
$send2 = mail($from, $subject2, $autoreply, $headers2); 
if($send) 
{header( "Location: http://www.xxx/gracias.html" );} 
else 
{print "No hemos podido enviar su mensaje, por favor avise [email protected]"; } 

?>



Ну а задача излагалась выше...

Заранее спасибо за помощь
PM MAIL   Вверх
Ипатьев
Дата 7.12.2009, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Задачу излагает преподаватель на экзамене.
А здесь вы делаете свою работу, за которую вам платят деньги, и спрашиваете совета, как лучше сделать.
Как я это понимаю.

Начнем с того, что пока файл contactos будет иметь расширение html, никакие операции на РНР в нем не будут возможны.
следовательно, надо переименовать в contactos.php
Далее. В ofertas убрать  method="post", а в action наоборот прописать contactos.php

В итоге после выбора в ofertas, у нас должен открыться contactos.php с выбранными параметрами в адресной строке.
А в теле файла если написать 
Код

<pre><?PHP print_r($_GET['art']) ?></pre>

то будут выведены выбранные чекбоксы.
Когда это заработает, перейдем к следующему этапу
 




Это сообщение отредактировал(а) Ипатьев - 7.12.2009, 18:24
PM MAIL   Вверх
sokpet
Дата 9.12.2009, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 13.1.2008

Репутация: нет
Всего: нет



Спасибо, переделал как ты сказал,

только <pre><?PHP print_r($_GET['art']) ?></pre>

поставил в 

Код

<input name="Asunto" type="text" class="formularioright" id="Asunto" value="<pre><?PHP print_r($_GET['art']) ?></pre>

"/>


так как мне нужно чтобы именно в этом поле все заполнялось. Теперь заполняет, только почему то пишет следующим образом: <pre>Array(    [0] => oferta2    [1] => oferta3)</pre>
как убрать, чтобы писалось только oferta2, oferta3  ???

и теперь не работает contact.php (т.е. обработчик отправки почты). Где что исправить???

 Спасибо
PM MAIL   Вверх
Ипатьев
Дата 9.12.2009, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Цитата(sokpet @  9.12.2009,  15:57 Найти цитируемый пост)
чтобы писалось только oferta2, oferta3 

<?PHP echo implode(",",$_GET['art']) ?>


Цитата(sokpet @  9.12.2009,  15:57 Найти цитируемый пост)
Где что исправить???

для этого надо знать, что именно не работает
PM MAIL   Вверх
sokpet
Дата 9.12.2009, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 13.1.2008

Репутация: нет
Всего: нет



Спасибо теперь пишет как надо, только если ничего не выбираешь и нажимаешь 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 убрать? 
PM MAIL   Вверх
bars80080
Дата 9.12.2009, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(sokpet @  9.12.2009,  15:19 Найти цитируемый пост)
вылезает 
<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 />

проблемы в функции implode на строке 21. почему бы не посмотреть, что там не соответствует синтаксису?


Цитата(sokpet @  9.12.2009,  15:19 Найти цитируемый пост)
И когда нажимаешь отправить в contactos.php срабатывает contact.php и выдает ошибку на линии 33 (закрывающий тег php)

и какую же ошибку?
/скорее всего какой-то скобки не хватает/
PM MAIL WWW   Вверх
sokpet
Дата 10.12.2009, 02:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 13.1.2008

Репутация: нет
Всего: нет



С частью вопроса разобрался, в итоге получилось следующее:

Код

<input name="Asunto" type="text" class="formularioright" id="Asunto" value="<?PHP if($_GET['art'] ==  '') 
           { echo $_GET['art'] = "Ofertas General"; }
           else  
           { echo "Oferta: ", implode(", ",$_GET['art']);} ?>"/>


А как теперь правильно привинтить contact.php (обработчик почты). Если он указан как action то не срабатывает условие REFERER, так как последнюю страницу, которую он видит это contactos.php. и шлет все на второй ящик, а если я вставляю все в один файл contactos.php , и в action пишу '<?=echo $_server['PHP_self']?>' то файл срабатывает даже не показав форму для заполения.
Подскажите как лучше сделать? 

код обработчика:

Код

<?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]"; }

$from = $_REQUEST['Email'] ; 
$name = $_REQUEST['Nombre'] ; 
$headers = "De: $from"; 
$subject = "Web Datos de Contacto"; 

$fields = array(); 
$fields["Nombre_empresa"] = "Nombre_empresa"; 
$fields["Nombre"] = "Nombre"; 
$fields["Email"] = "Email"; 
$fields["Asunto"] = "Asunto"; 
$fields["Mensaje"] = "Mensaje"; 

$body = "Hemos recibido la seguiente informacion:\n\n"; foreach($fields as $a => $b){ $body .= sprintf("%20s: %s\n",$b,$_REQUEST[$a]); } 

$headers2 = "De: [email protected]"; 
$subject2 = "Gracias por contactar con nosotros"; 
$autoreply = "Gracias por contactar con nosotros. Nos pondremos en contacto con usted en 24 horas. Si tiene una pregunta, visite nuestro sitio web  www.xxx.com";

$send = mail($to, $subject, $body, $headers); 
$send2 = mail($from, $subject2, $autoreply, $headers2); 
if($send) 
{header( "Location: http://www.xxx/gracias.html" );} 
else 
{print "No hemos podido enviar su mensaje, por favor avise [email protected]"; } 

?>


Заранее спасибо
PM MAIL   Вверх
bars80080
Дата 10.12.2009, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(sokpet @  10.12.2009,  01:33 Найти цитируемый пост)
<input name="Asunto" type="text" class="formularioright" id="Asunto" value="<?PHP if($_GET['art'] ==  '') 
           { echo $_GET['art'] = "Ofertas General"; }
           else  
           { echo "Oferta: ", implode(", ",$_GET['art']);} ?>"/>

это какой-то страх божий. такое ощущение, что вы целенаправленно пытаетесь сделать код максимально не читаемым.
почему было не написать так:

Код

<?php
if(empty($_GET['art'])) { $val = "Ofertas General"; }
elseif(is_array($_GET['art'])) { $val = implode(", ",$_GET['art']); }
else { $val = $_GET['art']; }
?>
<input name="Asunto" type="text" class="formularioright" id="Asunto" value="<?php echo $val; ?>" />

что имелось в виду в echo $_GET['art'] = "Ofertas General"; - не знаю, поэтому убрал


Цитата(sokpet @  10.12.2009,  01:33 Найти цитируемый пост)
 '<?=echo $_server['PHP_self']?>' 

так оно не работает. либо <?php echo $some; ?> , либо <?=$some?> , а не винегретом

PM MAIL WWW   Вверх
sokpet
Дата 14.12.2009, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 13.1.2008

Репутация: нет
Всего: нет



Спасибо, поправил.

Не совсем понял что делать с

Код

<?php echo $some; ?>


Мне нужно чтобы выполнялось вот это условие, но если в 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]"; }

Как это правильно привинтить?

Спасибо
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0831 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.