Защита на страница с парола?

streleca_stz

Registered
Здравейте. Искам да ви попитам как мога да огранича достъпа на страници с парола? Понеже сайта няма да има логин система и няма потребители че да сложа рангове и да направя само админи да ги виждат..

За това ще съм ви много благодарен ако дадете някакъв скрипт или ми обясните как да си защитя страниците! :)
 
Няма как да няма логин система, понеже няма да има къде да въведеш паролата и няма да има как да защитиш страниците.
Ако идеята ти е страницата да се вижда винаги от едни и същи компютри, то те ще трябва да са със статични IP адреси, който да се попълват или в база с данни или да в самия скрипт. Така при всеки опит на някой да влезе в страницата ще се проверява дали може, ако ли не го препраща към друга страница.
Надявам се, че съм ти помогнал :)
 
Според мен човекът се нуждае от нещо от този сорт:

Код:
<?php 

// инициализираме потребителското име и парола
$username = "user"; 
$password = "password"; 

if ($_POST['txtUsername'] != $username || $_POST['txtPassword'] != $password) { 

?> 

<h1>Форма</h1> 

<form name="form" method="post" action=""> 
    <p><label for="txtUsername">Име:</label> 
    <br /><input type="text" title="Въведи име" name="txtUsername" /></p> 

    <p><label for="txtpassword">Парола:</label> 
    <br /><input type="password" title="Въведи парола" name="txtPassword" /></p> 

    <p><input type="submit" name="Submit" value="Действай!" /></p> 

</form> 

<?php 

} 
else { 

?> 

<p>Съдържание на скритата страница.</p> 

<?php 

} 

?>

Ако не ти трябва потребител - модифицираш кода само за поле с парола. Ако ли пък не можеш сам да си я модифицираш, пишеш тук и се учиш. Логиката е много проста: Потребителят отваря страницата. Тя извежда форма за въвеждане на парола (все пак, не може без нея :)), след което ако той я отгатне - съдържанието на файла се зарежда. Ако ли не - може да се препрати примерно към друга страница, друг код и т.н...
Поздрави!

П.п. Извинявам се, ако не съм разбрал коректно, но информацията в заданието беше доста лимитирана. :)
 
@BoBySS - да точно такова ми трябва обаче как може да стане да се създава сесия или бисквитка защото при всеки рефреш ми иска логин.. а на мен няма да ми трябва да речем само за една страница?
 
Ще ти дам малко повод за размисъл... Завърти се около тази елементарна проверка. Проверих го доколкото мога в бързината (не е лесно да се намерят 2 компа с различни IP-та)... :) Оставям на теб да го свържеш с останалата част от кода.
Код:
<?php
session_start();
$ip = $_SERVER['REMOTE_ADDR'];

if ($ip == "XXX.XXX.XXX.XXX") {
	//Ако е твоето IP
	$ip == $_SESSION["$ip"];
	print $ip;
	
} else {
	//Ако не е твоето IP
	print $ip;
	
}
?>

Поздрави!

П.п. Естествено може да ползваш проверката или само приравняването на стойността към Сесията...както ти прецениш. :)
 
BoBySS каза:
Ще ти дам малко повод за размисъл... Завърти се около тази елементарна проверка. Проверих го доколкото мога в бързината (не е лесно да се намерят 2 компа с различни IP-та)... :) Оставям на теб да го свържеш с останалата част от кода.
Код:
<?php
session_start();
$ip = $_SERVER['REMOTE_ADDR'];

if ($ip == "XXX.XXX.XXX.XXX") {
	//Ако е твоето IP
	$ip == $_SESSION["$ip"];
	print $ip;
	
} else {
	//Ако не е твоето IP
	print $ip;
	
}
?>

Поздрави!

П.п. Естествено може да ползваш проверката или само приравняването на стойността към Сесията...както ти прецениш. :)

Ако е с динамично ip така няма да стане...
 
Сега ще ти обясня как.
PHP:
	 <?php 
session_start();  //начало на сесията
// потребителско име и парола
$username = "user"; 
$password = "password"; 

if($_SESSION['is_logged']==='lognat_potrebitel') {  
//проверка дали е логнат потребителя
echo 'Съдържанието на страницата';

} 
else { 
// ако не е логнат искарва форма за логване
if ($_POST['login'] != $username && $_POST['pass'] != $password){
 $_SESSION['is_logged']='lognat_potrebitel';
//ако името и паролата са правилни записваме, че потребителя е логнат
}

?> 
<form method="post" action="този_скрипт.php"> 
    <p><label for="login">Име:</label> 
    <br /><input type="text" name="login" /></p> 

    <p><label for="pass">Парола:</label> 
    <br /><input type="password" name="pass" /></p> 

    <p><input type="submit" name="Submit" value="Log In" /></p> 
</form> 
<?php 
} 

?>
И после останалите ти страници трябва да представляват следното :
PHP:
<?php 
session_start(); //начало на сесията

if($_SESSION['is_logged']==='lognat_potrebitel') { 
//проверка дали потребителя е логнат
echo 'Съдържанието на страницата';
} 
else { 
//в случай, че не е го пращаме в началната страница
header('Location: index.php');
exit;
}
 

Back
Горе