Перейти к содержимому

Сервис обмена электронных валют

Партнерская программа Kredov

Как закрыть просмотр отдельного файла php в каталоге

#1 BLIK

BLIK
  • Супермодератор
  • 3 183 сообщений
  • Репутация: 633
0

Отправлено 23 Май 2014 - 08:25

Здравствуйте форумчане.
На сайте имеется контактная форма на php. Все файлы формы лежат в папке php. Сама папка скрыта для просмотра. Но проблема в том,  что если прописать в браузере такой путь
site.ru/php/contact-form.php
то форма обрабатывает и отсылает на почту пустое письмо.
 
Отсюда вопрос как закрыть этот файл от вызова его в браузере.
Пробовал в Htaccess  закрывать и папку и файл. Но когда закрываю в htaccess, то форма перестает работать и отправлять письма. Может кто знает, как закрыть простым пользователям доступ к файлу этому 
site.ru/php/contact-form.php

За ответ заранее спасибо.

 
 

 

 

  • 0


#2 kamchatniyoleg

kamchatniyoleg
  • Пользователь PRO
  • 1 178 сообщений
  • Репутация: 84

Отправлено 23 Май 2014 - 08:58

А поставить проверку на входящие параметры совсем не ? Например вот так :

if ($_POST) {
    ....................
}

  • 0
Сервис электронного информирования клиентов PostTrail.ru
Отслеживание посылок Почты России в автоматическом режиме! Лояльность клиента - прибыль магазина!


#3 BLIK

BLIK
    Topic Starter
  • Супермодератор
  • 3 183 сообщений
  • Репутация: 633

Отправлено 23 Май 2014 - 09:05

Ну если бы я знал, то не задавал бы этот вопрос. По подробнее если можно? Что,где и куда..


  • 0


#4 kamchatniyoleg

kamchatniyoleg
  • Пользователь PRO
  • 1 178 сообщений
  • Репутация: 84

Отправлено 23 Май 2014 - 09:13

BLIK, Да конечно можно скиньте мне файл  site.ru/php/contact-form.php


  • 0
Сервис электронного информирования клиентов PostTrail.ru
Отслеживание посылок Почты России в автоматическом режиме! Лояльность клиента - прибыль магазина!


#5 BLIK

BLIK
    Topic Starter
  • Супермодератор
  • 3 183 сообщений
  • Репутация: 633

Отправлено 23 Май 2014 - 09:15

Вот файл

<?php
session_cache_limiter('nocache');
header('Expires: ' . gmdate('r', 0));

header('Content-type: application/json');


$to = 'mail.ru';

$subject = $_POST['subject'];

if($to) {
	$name = $_POST['name'];
	$email = $_POST['email'];

	$fields = array(
		0 => array(
			'text' => 'Name',
			'val' => $_POST['name']
		),
		1 => array(
			'text' => 'Email address',
			'val' => $_POST['email']
		),
		2 => array(
			'text' => 'Message',
			'val' => $_POST['message']
		)
	);

	$message = "";

	foreach($fields as $field) {
		$message .= $field['text'].": " . htmlspecialchars($field['val'], ENT_QUOTES) . "<br>\n";
	}

	$headers = '';
	$headers .= 'From: ' . $name . ' <' . $email . '>' . "\r\n";
	$headers .= "Reply-To: " .  $email . "\r\n";
	$headers .= "MIME-Version: 1.0\r\n";
	$headers .= "Content-Type: text/html; charset=UTF-8\r\n";

	if (mail($to, $subject, $message, $headers)){
		$arrResult = array ('response'=>'success');
	} else{
		$arrResult = array ('response'=>'error');
	}

	echo json_encode($arrResult);

} else {

	$arrResult = array ('response'=>'error');
	echo json_encode($arrResult);

}
?>

  • 0


#6 kamchatniyoleg

kamchatniyoleg
  • Пользователь PRO
  • 1 178 сообщений
  • Репутация: 84

Отправлено 23 Май 2014 - 10:02

BLIK, вот держи . Теперь файл будет отправлять письмо только тогда - когда к нему приходят пост запросы .

<?php
if ($_POST) {
session_cache_limiter('nocache');
header('Expires: ' . gmdate('r', 0));

header('Content-type: application/json');


$to = 'mail.ru';

$subject = $_POST['subject'];

if($to) {
	$name = $_POST['name'];
	$email = $_POST['email'];

	$fields = array(
		0 => array(
			'text' => 'Name',
			'val' => $_POST['name']
		),
		1 => array(
			'text' => 'Email address',
			'val' => $_POST['email']
		),
		2 => array(
			'text' => 'Message',
			'val' => $_POST['message']
		)
	);

	$message = "";

	foreach($fields as $field) {
		$message .= $field['text'].": " . htmlspecialchars($field['val'], ENT_QUOTES) . "<br>\n";
	}

	$headers = '';
	$headers .= 'From: ' . $name . ' <' . $email . '>' . "\r\n";
	$headers .= "Reply-To: " .  $email . "\r\n";
	$headers .= "MIME-Version: 1.0\r\n";
	$headers .= "Content-Type: text/html; charset=UTF-8\r\n";

	if (mail($to, $subject, $message, $headers)){
		$arrResult = array ('response'=>'success');
	} else{
		$arrResult = array ('response'=>'error');
	}

	echo json_encode($arrResult);

} else {

	$arrResult = array ('response'=>'error');
	echo json_encode($arrResult);

}
}
?> 

  • 1
Сервис электронного информирования клиентов PostTrail.ru
Отслеживание посылок Почты России в автоматическом режиме! Лояльность клиента - прибыль магазина!


#7 BLIK

BLIK
    Topic Starter
  • Супермодератор
  • 3 183 сообщений
  • Репутация: 633

Отправлено 23 Май 2014 - 18:39

kamchatniyoleg,Спасибо все работает! И при запросе этого файла в браузере открывается белое окно! :) То что нужно! Тему можно закрывать. 


  • 0



Оформление форума – IPBSkins.ru