@snake_jan

Как поставить пароль только для главной страницы PHP сайта?

Здравствуйте. Есть самописный движок на php.
Главная страница у него Index.php

Задача, поставить пароль на доступ к Index.php оставив не тронутыми все каталоги и подкаталоги сайта. То есть пароль должен быть только на главной, реально ли? И если да, то как?

update:
Прошу прощения, не знаю уместно ли.... но приведу свой код....

Вот исходник Index.php:
<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);

include_once('./lib/Index.php');
include_once ('./lib/Wiev.php');

if(!empty($_GET['show_yourself']))
{
	$wiev = new Wiev();
	$wiev->generateContent();
	$wiev->writeContent();
}

$index = new Index();

?>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Инструмент для CPA V2.0</title>
	<link rel="stylesheet" type="text/css" href="lib/css/index.css">
	<script type="text/javascript" src="lib/js/jquery-1.10.2.js"></script>
	<script type="text/javascript" src="lib/js/index.js"></script>
</head>
<body>

<?php foreach ($index->scanAll() as $unit) { ?>

	<div class="unit_container">
		<div class="unit_head">
			<?php print($unit['path'])?> <a class="unit_content_toggle" href="#">показать / скрыть</a>
		</div>
		<div class="unit_content">
			<table>
				<tr>
					<td>static</td>
					<td><?php print($index->makeStatus($unit['static_status']))?></td>
				</tr>
				<tr>
					<td>content</td>
					<td><?php print($index->makeStatus($unit['content_status']))?></td>
				</tr>
				<tr>
					<td>config</td>
					<td><?php print($index->makeStatus($unit['config_status']))?></td>
				</tr>

				<tr>
					<td>настройка<br/>просмотра</td>
					<td>
						<div class="unit_config">
							<table  class="unit_config_table">
								<thead>
								<tr>
									<th>Параметр</th>
									<th>Значение</th>
								</tr>
								</thead>
								<tbody>
								<tr>
									<td>
									Ссылка на лендинг<br> <strong>*обязательно с http://</strong>
									</td>
									<td>
										<input type="text" class="parameter" name="url">
									</td>
								</tr>
								</tbody>
							</table><br>
							<a class="show_your_self" href="#" target="_blank">ПОСМОТРЕТЬ ★</a>
						</div>
						<script>
							$('.unit_config:last').data('config', <?php print($unit['config'] ? $unit['config'] : '[]')?>);
							$('.show_your_self:last').data('path', '<?php print($unit['path'] ? str_replace('/','_',$unit['path']) : '')?>');
						</script>
					</td>
				</tr>
			</table>
		</div>
	</div>

<?php } ?>

<script>

	$(function(){

		function checkConditions(evt, container = false){

			if(!container && evt){
				container = $(evt.target).closest('.unit_config')
			}

			var params = {};
			$(container).find('.parameter').each(function(key,element){
				if($(element).attr('type') == 'checkbox'){
					if($(element).is(':checked')){
						params[$(element).attr('name')] = $(element).val();
					}
				}else{
					params[$(element).attr('name')] = $(element).val();
				}
			});
			$(container).find('.parameter').each(function(key,element) {
				var currShowCondition = $(element).data('showCondition');
				if (currShowCondition) {
					if (new Function('return ' + currShowCondition).call(params)) {
						$(element).closest('tr').show();
					} else {
						$(element).closest('tr').hide();
					}
				}
			});
		}

		$('.unit_config').each(function(key, container){
			var l_params = $(container).data('config');

			$.each(l_params, function(key, val) {
				new_element = '';
				if (val.type == 'checkbox') {
					var new_element = $('<input>');
					new_element.attr({
						type: 'checkbox',
						class: 'parameter',
						name: val.name,
						value: val.value
					});
					if (val.value == val.def) {
						new_element.attr('checked', 'checked');
					}
					if(val.showCondition){
						new_element.data('showCondition', val.showCondition);
					}
				}
				if (val.type == 'number') {
					var new_element = $('<input>');
					new_element.attr({
						type: 'number',
						class: 'parameter',
						name: val.name,
						value: val.value,
						min: val.min,
						max: val.max,
						step: val.step,
						value: val.def
					});
					if(val.showCondition){
						new_element.data('showCondition', val.showCondition);
					}
				}
				if (val.type == 'select') {
					var new_element = $('<select></select>');
					new_element.attr({
						class: 'parameter',
						name: val.name
					});
					if(val.multiple){
						new_element.attr('multiple',1);
					}
					$.each(val.values, function(key1, val1) {
						var option = $('<option></option>');
						option.text(val1.value);
						option.attr('value', val1.value);
						if(val1.value == val.def){
							option.attr('selected','selected');
						}
						option.appendTo(new_element);
					});
					if(val.showCondition){
						new_element.data('showCondition', val.showCondition);
					}
				}
				if (new_element != '') {
					new_element.change(checkConditions);
					var tr = $('<tr></tr>');
					tr.append($('<td></td>').text(val.label));
					tr.append($('<td></td>').append(new_element));
					$(container).find('.unit_config_table').find('tbody').append(tr);
				}
			});

			checkConditions({}, container);

			$(container).find('.show_your_self').click(function(evt){
				var params = {
					show_yourself: 1,
					path: $(evt.target).data('path')
				};
				$(container).find('.parameter').each(function(key,element){
					if($(element).attr('type') == 'checkbox'){
						if($(element).is(':checked')){
							params[$(element).attr('name')] = $(element).val();
						}else{
							params[$(element).attr('name')] = 'off';
						}
					}else{
						params[$(element).attr('name')] = $(element).val();
					}
				});
				window.open('/?' + $.param(params),'_blank');
				return false;
			});

		});
	});

</script>

</body><code lang="php">

</code>
</html>


Буду очень признателен за любую помощь, в прошлом верстальщик, в php знания очень минимальны :(
  • Вопрос задан
  • 439 просмотров
Пригласить эксперта
Ответы на вопрос 1
Maksclub
@Maksclub Куратор тега PHP
maksfedorov.ru
тогда этот сервис для чего???
Если не знаете, то зачем вообще пишите что то.

Скрипт самый не на есть обычный скрипт,

Сервис нужен помогать тем, кто ищет помощи...
Как можно помочь тем, кто сам не помогает себе помочь?!

По мне обычный скрипт -- самостоятельный скрипт без авторизации... либо это скрипт авторизации без привязки к index.php

Вот как можно помочь людям дать тебе ответ:
  • выложить код или фрагмент кода
  • написать что именно не получается и что получается
  • не требовать и остро поносить сервис при попытке людей разобраться что вы там химичите, этот мир вам ничего не должен -- тут все по своему желанию, но не принуждению.. тем более с таким тоном


Все реально, можно сделать серверную регистрацию общей, например
  • NGinx: диррективы auth_basic и auth_basic_user_file
  • Apache: диррективы AuthType Basic и AuthUserFile в .htaccess

но проверку на зареган ли выводить только на index.php
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
30 апр. 2024, в 15:24
3000 руб./за проект
30 апр. 2024, в 15:11
500 руб./в час
30 апр. 2024, в 15:11
5000 руб./за проект