Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.02.2018, 20:13
Интересующийся
Отправить личное сообщение для xlebosolniy Посмотреть профиль Найти все сообщения от xlebosolniy
 
Регистрация: 27.01.2018
Сообщений: 29

Проверка на обращение к файлу
Здравствуйте. Можно ли сделать проверку на обращение к .php файлу? То есть, если обращение происходит, то выполняется определенное действие для пользователя, который обратился к файлу?
Ответить с цитированием
  #2 (permalink)  
Старый 07.02.2018, 20:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от xlebosolniy
Можно ли сделать проверку на обращение к .php файлу?
Можно, но выполнить какие-то действия можно при асинхронном запросе, в противном случае отменять действие по умолчанию, выполнить что-то, затем только переход по запрошенному адресу.
Ответить с цитированием
  #3 (permalink)  
Старый 07.02.2018, 20:28
Интересующийся
Отправить личное сообщение для xlebosolniy Посмотреть профиль Найти все сообщения от xlebosolniy
 
Регистрация: 27.01.2018
Сообщений: 29

А есть пример этой проверки обращения?
Ответить с цитированием
  #4 (permalink)  
Старый 07.02.2018, 20:41
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Запрашиваемый URL и проверяйте, а вот что это за запрос, чтобы приводить пример неизвестно. Описывайте задачу полностью что и как, приводя примеры своего кода.
Ответить с цитированием
  #5 (permalink)  
Старый 07.02.2018, 20:50
Интересующийся
Отправить личное сообщение для xlebosolniy Посмотреть профиль Найти все сообщения от xlebosolniy
 
Регистрация: 27.01.2018
Сообщений: 29

Если идет обращение к файлу forms.php, то должно срабатывать перенаправление location.href = '#Modal';

пытался делать перенаправление через header('location'), использовал все возможные средства, ничего не помогает, думаю может такое решение хоть как-то поможет
Ответить с цитированием
  #6 (permalink)  
Старый 07.02.2018, 20:58
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от xlebosolniy
пытался делать перенаправление через header('location')
Так вам на сервере это надо определить? Код показывать надо. Что запрашивает - ссылка, в которой такой URL или нечто иное?
Ответить с цитированием
  #7 (permalink)  
Старый 07.02.2018, 21:11
Интересующийся
Отправить личное сообщение для xlebosolniy Посмотреть профиль Найти все сообщения от xlebosolniy
 
Регистрация: 27.01.2018
Сообщений: 29

Если пользователь отправляет сообщение в форме обратной связи, то идет обращение к файлу 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';
Ответить с цитированием
  #8 (permalink)  
Старый 07.02.2018, 21:25
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от xlebosolniy
Если пользователь отправляет сообщение в форме обратной связи, то идет обращение к файлу forms.php, если обращение произошло, то нужно его перенаправить на другую страницу.
Если обращение произошло, а значит пользователь на странице forms.php и если перенаправить, на этой странице требуется только такой код:

header('location:/index.php#openModal');
exit;


А еще проще прописать такое перенапрваление в .htaccess, если исходить из вашей логики.

Но как же тогда можно попасть на страницу forms.php?

Вы ничего не путаете в пояснении, может быть перенаправление нужно если запрос страницы без отправления формы?
Ответить с цитированием
  #9 (permalink)  
Старый 07.02.2018, 21:34
Интересующийся
Отправить личное сообщение для xlebosolniy Посмотреть профиль Найти все сообщения от xlebosolniy
 
Регистрация: 27.01.2018
Сообщений: 29

Делаю так, перенаправление не работает.

Заполняем и отправляем форму:
<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, чтобы проинформировать отправителя о том, что его заявка отправлена. Способами описанными выше не получается это сделать
Ответить с цитированием
  #10 (permalink)  
Старый 07.02.2018, 22:13
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Я вас же спрашиваю об отправке формы, а вы кодом отвечаете. Вопрос отношения к 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 ...


Надеюсь правильно понял, чего делается.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверка, пока файл не будет готов headmaster911 AJAX и COMET 4 18.04.2017 08:44
проверка формы не работает в ie begelme Javascript под браузер 6 13.08.2013 01:00
Обращение к другому файлу FoxTrix Общие вопросы Javascript 3 11.11.2012 17:26
AJAX обращение к файлу php и получение значения zeraid jQuery 8 28.03.2011 14:46
Обращение к другому файлу... Работа с дрйгой страницей... Student Общие вопросы Javascript 4 11.06.2009 10:42