Проверка на обращение к файлу
Здравствуйте. Можно ли сделать проверку на обращение к .php файлу? То есть, если обращение происходит, то выполняется определенное действие для пользователя, который обратился к файлу?
|
Цитата:
|
А есть пример этой проверки обращения?
|
Запрашиваемый URL и проверяйте, а вот что это за запрос, чтобы приводить пример неизвестно. Описывайте задачу полностью что и как, приводя примеры своего кода.
|
Если идет обращение к файлу forms.php, то должно срабатывать перенаправление location.href = '#Modal';
пытался делать перенаправление через header('location'), использовал все возможные средства, ничего не помогает, думаю может такое решение хоть как-то поможет |
Цитата:
|
Если пользователь отправляет сообщение в форме обратной связи, то идет обращение к файлу forms.php, если обращение произошло, то нужно его перенаправить на другую страницу.
Пытаюсь сделать таким образом: [SPOILER]
<?php
header('location: http://f0184040.xsph.ru/#openModal');
$backurl="/index.php#openModal";
$name=$_POST['name'];
$phone=$_POST['phone'];
$email=$_POST['email'];
$service=$_POST['service'];
$inn=$_POST['inn'];
$auction=$_POST['auction'];
$period=$_POST['period'];
$amount=$_POST['amount'];
$mess=$_POST['mess'];
$dopinf=$_POST['dopinf'];
$to .= "<mail@mail.ru>";
$subject = "Заявка с сайта";
if (!empty($name))
{
$msg =$msg."\nИмя: ".$name;
}
if (!empty($phone))
{
$msg =$msg."\nТелефон для связи: ".$phone;
}
if (!empty($email))
{
$msg =$msg."\nEmail: ".$email;
}
if (!empty($service))
{
$msg =$msg."\nТип услуг: ".$service;
}
if (!empty($inn))
{
$msg =$msg."\nИНН: ".$inn;
}
if (!empty($auction))
{
$msg =$msg."\nСсылка или № аукциона: ".$auction;
}
if (!empty($period))
{
$msg =$msg."\nСрок гарантии: ".$period;
}
if (!empty($amount))
{
$msg =$msg."\nСумма обеспечения: ".$amount;
}
if (!empty($mess))
{
$msg =$msg."\nСообщение / вопрос: ".$mess;
}
if (!empty($dopinf))
{
$msg =$msg."\n ".$dopinf;
}
$headers = array();
$headers[] = "Content-type: text/plain; charset=utf-8";
$headers[] = "From:admin";
$headers[] = "Reply-To: Заявка";
if (mail($to, $subject, $msg, implode("\r\n", $headers) ))
{
//////////////////////////////////////////////
$txt="$name,$phone,$email
";
$fp = fopen("mail.txt", "a+");
$fw = fwrite($fp, $txt);
fclose($fp);
/////////////////////////////////////////////
echo "location.href = '#openModal'";}
else { echo "False"; }
/*echo "<script language='Javascript'>
window.location = '/index.php#openModal'
</script>";
*/
?>
[/SPOILER]Использую header('location') - не работает Пытаюсь так сделать:
if (mail($to, $subject, $msg, implode("\r\n", $headers) ))
{
//////////////////////////////////////////////
$txt="$name,$phone,$email
";
$fp = fopen("mail.txt", "a+");
$fw = fwrite($fp, $txt);
fclose($fp);
/////////////////////////////////////////////
echo "location.href = '#openModal'";}
else { echo "False"; }
Тоже не работает. Вот у меня и появился вопрос, возможно ли и насколько качественно будет если сделать через js проверку на обращение к файлу forms.php, если обращение произошло, то применяется перенаправление location.href = '#openModal'; |
Цитата:
header('location:/index.php#openModal');
exit;
А еще проще прописать такое перенапрваление в .htaccess, если исходить из вашей логики. Но как же тогда можно попасть на страницу forms.php? Вы ничего не путаете в пояснении, может быть перенаправление нужно если запрос страницы без отправления формы? |
Делаю так, перенаправление не работает.
Заполняем и отправляем форму:
<form id="oboloc" class="form-horizontal" method="post" action="forms.php">
<input class="type" name="type" value="1" type="hidden">
<div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 f-group var0 var1 var2 var3">
<input type="text" class="form-control" name="name" placeholder="Контактное лицо" required>
</div>
</div>
<div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 f-group var1 var2 var3">
<input type="text" class="form-control phone or" name="phone" placeholder="Телефон с кодом или" required>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 f-group var0 var1 var2 var3">
<input type="text" class="form-control email or" name="email" placeholder="e-mail" required>
</div>
</div>
<div>
<div class="col-sm-12 col-md-12 col-lg-12 f-group var2 var3">
<input type="text" class="form-control only-numbers inn" name="inn" maxlength="12" placeholder="ИНН" required>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 f-group var2 var3">
<input type="text" class="form-control" name="auction" placeholder="Ссылка или № аукциона" required>
</div>
</div>
<div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 f-group var0 var1 var2 var3">
<textarea class="form-control" name="mess" placeholder="Сообщение / вопрос"></textarea>
</div>
</div>
<div id="kn001" class="f-group var0 var1 var2 var3">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 center">
<input type="button" class="btn btn-primary form" value="Отправка">
<input type="reset" class="btn btn-default" value="Очистить форму">
</div>
</div>
</form>
action="forms.php" - получается попадаем на эту страницу, которая отправляет сообщение. Сообщение отправилось, нужно перенаправить на страницу #openModal, чтобы проинформировать отправителя о том, что его заявка отправлена. Способами описанными выше не получается это сделать |
Я вас же спрашиваю об отправке формы, а вы кодом отвечаете. Вопрос отношения к JS не имеет, не в этом разделе его надо было задавать.
header('location: http://f0184040.xsph.ru/#openModal'); и далее код, это уже неверно, обязательно нужно делать выход - exit; после передачи заголовка. Но что это за заголовок? А это что означает - action="forms.php" - получается попадаем на эту страницу, которая отправляет сообщение.? Как это, если не видно асинхронных запросов, а значит с этой страницы либо уйти на другую, либо нет смысла в таком перенаправлении. echo "location.href = '#openModal'"; - а это попытка тогда чего? Во-первых работать не будет, ибо это просто строка, а не js-код. Во-вторых как одним значением можно определить два состояния - первый заголовок с #openModal, и вторая попытка тоже с #openModal? Вообще по уму должно быть так - страница должна отвечать только на POST запросы, то есть если вызов ее будет через адресную строку, то либо перенапрваление, либо выход и ..., решайте.
if($_SERVER['REQUEST_METHOD']=='POST') {
//основной код
//Здесь же и перенаправления, и если #openModal запускает на клиенте окно сообщений, и нужно передать их два,
//то это либо два перехода по разным адресам, либо на один и тот же адрес,
//но с передачей дополнительного параметра определяющего текст сообщения.
//Если такой параметр нежелателен в адресе, можно передать через сессию.
//Не самый лучший вариант и разумнее ограничится одним сообщением - результатом "принято и свяжемся".
//А вот если форма отправляется асинхронным запросом (ajax), тогда возможны любые диалоги
//и передавать хеш в адресе не потребуется
} //else ...
Надеюсь правильно понял, чего делается. |
| Часовой пояс GMT +3, время: 08:49. |