[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Условие в action форма
sokpet
Скажите а асtion таким образом можно прописать?


 
<form action="<?php $page; ?>" method="post" id="formulario" title="Formulario de contactos" dir="ltr" xml:lang="es" lang="es">
<?php
if($_SERVER['HTTP_REFERER'] == "http://www.xxxx/ofertas.html" || $_SERVER['HTTP_REFERER'] == "http://www.xxxx/ofertas_2.html")
{$page = contact.php;}
else
{$page = contact1.php; }
?>



Ошибку не выдает, но и не работает тоже. Что не правильно?



Спустя 3 минуты, 5 секунд (14.12.2009 - 19:18) glock18 написал(а):
echo $page

Спустя 16 минут, 12 секунд (14.12.2009 - 19:35) sokpet написал(а):
все равно не работает, может кавычек где-то не хватает?

Спустя 7 минут, 6 секунд (14.12.2009 - 19:42) glock18 написал(а):
все есть. я же сказал, не хватает echo перед $page.

Спустя 9 минут (14.12.2009 - 19:51) sokpet написал(а):
работает, только не то что нужно.

Мне текст на экран выводить не нужно.

А нужно чтобы при соблюдение условия action запускал бы или один файл или второй.
contact.php и contact1.php это почтовые обработчики с разными эл. адресами и переадресацией на др. страницу в случае успешной отправки.

Спустя 5 минут, 25 секунд (14.12.2009 - 19:56) waldicom написал(а):
Во-первых, хотелось бы отметить, что сделать можно поэлегантнее, чем определять разные обработчики форм,
а во-вторыз вопрос... Я может чего не понимаю, но может надо СНАЧАЛА определять переменную, а ПОТОМ её использовать?

Спустя 18 минут, 18 секунд (14.12.2009 - 20:14) sokpet написал(а):


<?php
echo $_SERVER['HTTP_REFERER'];
if($_SERVER['HTTP_REFERER'] == "http://www.ххх/ofertas.html" || $_SERVER['HTTP_REFERER'] == "http://www.ххх/ofertas_2.html")
{$page = "contact.php";}
else
{$page = "contact1.php"; }
?>
<form action="<?php echo $page; ?>" method="post" id="formulario" title="Formulario de contactos" dir="ltr" xml:lang="es" lang="es">



echo не хватало, но кавычек тоже. Спасибо теперь все работает.

Если подскажешь как? с удовольствием сделаю поэлегантнее. Пытался слить все в один файл но ничего не работает. Поэтому пришлось сделать через одно место.

Вот код обработчика который хотелось бы слить в один флакон с формой:


<?php
if($_SERVER['HTTP_REFERER'] == "http://www.ххх.com/ofertas.html" || $_SERVER['HTTP_REFERER'] == "http://www.ххх.com/ofertas_2.html")
{$to = "mail1@gmail.com";}
else
{$page = "mail2@gmail.com"; }

$to = "ess711@gmail.com";
$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: noreply@ххх.com";
$subject2 = "Gracias por contactar con nosotros";
$autoreply = "Gracias por contactar con nosotros. Nos pondremos en contacto con usted en 24 horas. ";

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

?>


[html]

<form action=" Здесь что ставить если сливать в один файл?" 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>
<?php
if(empty($_GET['art'])) { $val = "Ofertas General"; }
else if(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; ?>"/>

</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>

Спустя 50 минут, 52 секунды (14.12.2009 - 21:05) waldicom написал(а):
Обработчик всегда один, меняется лишь какое-то поле, оно может быть скрытым (type="hidden")
А в обработчике что-то типа

if(isset($_POST['action1'])){
................
}else if(isset($_POST['action2'])){
................
}elsr{
// html
}

Спустя 1 час, 38 минут, 1 секунда (14.12.2009 - 22:43) sokpet написал(а):
<form action=" Здесь что ставить, если сливать в один файл?"???

и header тоже нужно наверх перед html правильно?

if($send) {header( "Location: http://www.ххх/gracias.html" );} else {print "No hemos podido enviar su mensaje, por favor avise webmaster@ххх.com"; }

и все это должно срабатывать только после нажатия кнопки submit...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.