Защита на папка с парола посредством PHP

Правиш си един index.php в папката и слагаш нещо подобно:

Код:
<?php
session_start();

if(isset($_POST['submit'])) {
    $pass = trim($_POST['pass']);

    if($pass == "parola") 
    {
         $_SESSION['succ_'.$folder.''] = true;
         header("Location: index.php");
     }
}

if($_SESSION['succ_'.$folder.''] != true) {
?>

<form action="" method="POST">
Password:  <input type="text" name="pass" />
<input type="submit" name="submit" />
</form>

<?php
} else {
   $folder = "folder/";
   $print = scandir($folder);

   foreach($print as $key => $value) {
	echo "<a href='".$folder."".$value."'>".$value."</a> <br />";
   }
}
?>
 
В главната папка
.htaccess
Код:
<Directory /docroot>
    Order Deny,Allow
    Deny from all
    Allow from 127.1.1.0
</Directory>
А ако искаш да бъде с име и парола
От тук си генерираш име и парола - http://www.htaccesstools.com/htpasswd-generator/ и ги слагаш в файл с име .htpasswd, a в папката слагаш генерираното от http://www.htaccesstools.com/htaccess-authentication/ и го слагаш в файл .htaccess
 
.htaccess
Код:
deny from all
allow from 255.255.255.255

255.255.255.255 го заменяш с ip-то , което искаш да има достъп до папката. Друг вариант:

.htaccess
Код:
AuthType Basic
AuthUserFile /home/user/.htpasswd
AuthName "Password Protected Area"

<limit GET POST>
require valid-user
</limit>

AuthUserFile - съдържа файла .htpasswd и пълния път до него, в който се съдържат всички потребители и техните кодирани пароли.
AuthName - определя съобщението, което ще се показва на прозореца, където потребителя трябва да въведе своето потребителско име и парола.
require valid-user - определя, че всеки един потребител, би могъл да влезне в засекретената част на страницата, в случай че има парола за тази цел.

Тогава съдържанието на файла .htpasswd в папка: /home/user/ ще бъде следното:

Код:
kristiqn2:krE5nU6mCPll6

потребител:парола

Паролата можеш да я кодираш по следния начин:
PHP:
<?php
$pass = "kristiqn2";
$ht_pass = crypt($pass,substr($pass,0,2));
echo $ht_pass;
?>

А може и да използваш някой Уеб .htaccess генератор.

Примерен: http://www.webmaster-toolkit.com/htaccess-generator.shtml
 
Пробвах това с името и паролата но искам когато сгреша паролата да ми излиза отново формата а не Server Error!
 
kristiqn2 каза:
Пробвах това с името и паролата но искам когато сгреша паролата да ми излиза отново формата а не Server Error!

Говори със съпорта на хостинг фирмата, която използваш. В противен случай, се връщаме на варианта с php-то или ограничения достъп, чрез .htaccess
 
мм да само където съм на localhost...
И само да питам направих си форум и му добавих bbcode но ми изписва ето това :
Код:
Fatal error: Call to undefined function bbcode() in C:\xampp\htdocs\game-news\viewtopic.php on line 172
ето ги редовете 171-173:
PHP:
<br />
<? echo bbcode($r['post']); ?>
</td>
 

Back
Горе