| | |||||||
| |||||||
| New! Use your Facebook, Google, AIM & Yahoo accounts to securely log into this site, click logo to login | |
| CODE This forum is for posting code snippets and example scripts that aren't quite tutorials, but could be useful for others. You may post code snippets and/or completed scripts that you've written and want to share here. |
![]() |
| | LinkBack | Thread Tools |
| | #1 (permalink) |
| NamePros Member | This login script allows you to add and remove users easily by editing the XML file accounts.xml. Out of the box, the script supports 4 user account types. These are as follows:
You may easily add new user accounts by creating a new file in the levels folder. Each access level has a separate class and file, and should always implement the TalkPHP_Level_Interface interface. Configuration By default there are 4 user accounts of all 4 user permissions. The index.php file is set-up to login to the first account: User1 with the password as password. Logging in is easily done via the login function: PHP Code: Adding Accounts If you open up accounts.xml in a plain text editor such as Notepad or Vi, you will see how easy it is to add and remove user accounts. A basic user segment is formatted like so: Code: <account> <username>User1</username> <password>password</password> <level>User</level> </account>
The username and password are case-sensitive, whereas the user levels are not. It's best to stick to the case-sensitivity as described above, however, merely for standard reasons. If you enter an incorrect user level name then that account will not be added, and casually ignored without throwing any errors. If an account is not being added then ensure you have specified a correct user level. As the user levels are all dynamic, these levels are named after the class name as outlined below. Adding User Levels In order to add a new user level you will need to have a little experience in PHP. Let's add a Gremlin account who will have both Moderator and User permissions, but no more. Create a new file in TalkPHP_Login/levels called levels_gremlin.php. If you copy and paste the details from one of the other files in there then we can easily edit just a few items and have done with it. The items you need to modify are as follows: PHP Code: Those are the only changes we need to make so save the file! As you can see we have used a constant called TALKPHP_LOGIN_GREMLIN which we have not yet defined. To add the constant open the file TalkPHP_Login/access.class.php and at the top where the defines are, add a new line like so: PHP Code: PHP Code: Code: <account> <username>User1</username> <password>password</password> <level>Gremlin</level> </account> PHP Code: As far as I can see, there are no security holes in the system. However, one potential security hole is the accounts.xml file being in a readable format. Out of the box the file is protected from outside access via a .htaccess file in the TalkPHP_Login directory. If the aforementioned .htaccess file is removed, or your web-server is not Apache and therefore doesn't support .htaccess files, then the accounts.xml file is open for anybody to download. The best way to check is try and access the file yourself. If the file is accessible then you will need to contact your host for a way in which you can protect the file. They'll be a way. External Libraries There is only one requisite really, although technically there are 2, if you have PHP 5 then you will also have SimpleXML. Ensure SimpleXML is enabled, and that you're running PHP 5. PHP recently announced it is discontinuing its support for PHP 4 and so all hosts should now support PHP 5, either as the primary PHP interpreter, or at least available through a .htaccess modification. Contact your host for further assistance. Download Script The script may be downloaded over at TalkPHP.com in the following thread.
__________________ TalkPHP.com - The Friendly PHP Community Watch Weeds Online - Watch Reaper Online |
| |
| | #4 (permalink) | ||||
| Senior Member |
Vulnerabilities in user systems is of major significance. ![]() Also, this is in the wrong forum. It should be on code. Just a heads up. Joe
__________________ Myself and "JackHeskett" are no longer associated with FusedHosting.net. Please pipe all PMs to admin [at] fusedhosting.net. | ||||
| |
| | #6 (permalink) | ||||
| NamePros Member |
__________________ TalkPHP.com - The Friendly PHP Community Watch Weeds Online - Watch Reaper Online | ||||
| |
| | #7 (permalink) |
| First Time Poster! | How would I go about doing this for securing pages. If for example you had an admin area and once validated on the index.php you they click a link to another page in the folder is there something in the header that to make sure they are logged in. Would you need to store the username/password in a session? I have tried adding a new page in and after logging in I go to the page that has if($pLogin->isLoggedIn()) but it always returns false. I assume you have to log in on every page with the stored session? Thanks for your help - a PHP newbie! |
| |