开发者

Password protect for specific pages

I've been making an educational website in PHP, and I've decided to password-protect pages to the public unless they're signed in - in this case, students.

The subjects covered are GCSE Maths, English and History, and I want to lock the pages via password.

Options I looked at were:

.htpassword = Not relevant here

Various password protection scripts = they could lock the pages, but people could view all pages - not much use, when, say I want people to enter a DIFFERENT password for DIFFERENT webpages (e.g. you visit the page on GCSE English literature, you use a separate password once logged-in to view it, you visit the page on GCSE Maths algebra, you would enter a different password once logged-in to view it.)

User registration isn't an issue, as because they're students, I'm creating the users and passwords - preventing useless registrations etc.

It's not how to password-protect that's the main issue, it's how to use a different password on every protected page in addition to the user login, so what would you suggest?

I've don开发者_JAVA技巧e my research, but am not sure where to go next with this, so where should I progress from here?

Sorry if it seems complex, it's just this issue is fairly important for me and none of the scripts I found online seemed to fit this, and my PHP coding skills are good for a beginner, but not in the area of securing files in PHP.

(I'd considered a CMS but since the site is a PHP adaptation from former HTML pages, it didn't make sense for the audience it was aimed at - it is an educational site, not a business site, and the website itself is moving servers anyway to a new Apache one.)


While actually registering your users, why not give your users permissions instead of extra passwords? That would be more efficient and add flexibility to your solution - in case you add extra material for your students.

It would only require an extra database table to link your users to the materials.


The most basic thing I can come up with, is just make a PHP file with arrays that contain pages, usernames and passwords.

<?php
$protected = array(
    'history.php' => array(
        'mike'  => 'pswrd',
        'ryan'  => 'pswrd',
    ),
    'maths.php' => array(
        'mike'  => 'pswrd',
        'ryan'  => 'pswrd',
    ),
);
?>

And then check on your page for this. Maybe through $_GET or make a simple form with POST.


You can do this with the session in PHP. Here is a full explanation of session. But here is a code for your site :

<?php
  if(isset($_SESSION['USER_NAME'])) //Checking if the session is available or not.
  {
      echo 'Private Content!'; //Show the private content.
  }
  else
  {
      echo 'You have no rights to view this page!'; //Error message.
  }
?>

And you can use MySql to store your passwords and username in it. Or can just create an array (to store data) file and a login (to process login) file in your server.

But I recommend you to create a well developed user based system for your users and give some specials offers for registered users.

Hope this helps.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜