Проверка на обращение к файлу
Здравствуйте. Можно ли сделать проверку на обращение к .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, время: 00:50. |