Showing posts with label simple. Show all posts
Showing posts with label simple. Show all posts

Saturday, June 25, 2016

PHP Login Script A Simple Free PHP Login Script

A simple home made PHP/MySQL login script to protect your web page content from spam and bot registrations so that only registered users can view the content of your site.. It is free of charge and you can use it on any commercial or personal projects!


Features
  • Quickly Integrate to any Website.
  • User Registration Form with reCaptcha feature.
  • Login with remember me feature.
  • Easy to customize for your needs.
  • Login protect your web pages
  • Login by either username or email.
  • Javascript validation of fields.
  • MyAccount area for users.
  • Username checkup and registration
  • Email confirmation code and activation of account
  • Admin area to manage users with Ban user option
  • Forgot password option (resetting password for users)
  • Change Password option for users
  • Neatly formatted error Messages
Requirements
  • MySQL Database 3+ 
  • Linux server Apache Web server 
  • PHP scripting language
  • reCaptcha Keys + php library (register for free) 
  • JQuery for javascript validation.
How it works

Registration:

User registers with their chosen username, email and password. The script checks for existing username or email, if exists, it denies them registering an account. The username is restricted to only alphabets, numbers and underscore. No special characters allowed.


And of course, they have to verify their captcha image.

The password is stored in md5 format during registration and we send an 4 digit random activation code to their email address.

Login:

The script determines whether username or email is entered and it checks for existing account. When the user enters his password, the script converts the password to md5 string and then compares this to the md5 of the password stored in the database. We never want to know or store the real password of users. That is why we are using md5.

Once logged in we are registering a session and a Cookie with remember me feature.

Admin area:

You can manage the users like activating accounts of pending users, create user and ban them. I have kept it so simple and nothing fancy in the admin area. You have to set admin login and password in the script to login. Most the admin functions are made to work with javascript.

Error Messages:

The error messages are neatly formatted for the users.


Integrate to your Website

I have left spaces for header, footer, left menu and right menu in table layout so that you can easily insert your logo, header and footers depending on your website.


Installation Instructions

Here is how you install the script in your website.

1. MySQL database setup

(i) Create database table


Download and unzip the php login script and you can import the whole dbsql.sql or open the file in notepad and copy the lines and paste into the SQL of database. It will create users table and your admin login.

If you have cpanel you can access phpmyadmin directly this way - point your browser to http://domain.com:2082/3rdparty/phpMyAdmin/

(ii) Database settings

Open dbc.php and set values inside the quotes for your mysql settings.

  •  database name
  •  database user
  •  database password

you will get these information from your hosting provider. Make sure you give full access rights to the database user. If you have cpanel, just login and create database and database user.

example:
define ("DB_HOST", "xxxxx"); // set database host
define ("DB_USER", "xxxx"); // set database user
define ("DB_PASS","xxxx"); // set database password
define ("DB_NAME","xxxx"); // set database name

3. Setting up reCaptcha for your Script

(i) Download recaptcha php library (https://developers.google.com/recaptcha/docs/php), unzip and copy the single php file recaptchalib.php into login script folder. This is very important, without which the login script will not work

(ii) Go to recaptcha.net, register a free account, and you will get public and private keys. Make a note of that and set it here inside dbc.php
$publickey = "xxxxxxxxxxxxxxxxxxxxxxxxxxx"
$privatekey = "xxxxxxxxxxxxxxxxxxxxxxxxx";

4. Configuration settings

Open dbc.php and you have to configure the php login script.

(i) Automatic or Manual registration
/* Registration Type (Automatic or Manual)
1 -> Automatic Registration (Users will receive activation code and they will be automatically approved after clicking activation link)
0 -> Manual Approval (Users will not receive activation code and you will need to approve every user manually)
*/
$user_registration = 1; // set 0 or 1

(ii) Other Settings (optional only)

These are the other settings in the script if you want you can change it like cookie expiry time, specify admin levels and much more..
define("COOKIE_TIME_OUT", 10); //specify cookie timeout in days (default is 10 days)
define(SALT_LENGTH, 9); // salt for password
5. Integrate to your website

I have left spaces for header,footer inside each of the pages. You can place there logos, footer or whatever you want depending on your website.

6. Thank you page.

Upon registering, the users will be taken to thankyou.php page and you can customize it to whatever that suits your needs.

7. Login protect a new page

Lets say you have a new page page1.php, and you want only the logged in users to access it. To get this done, just add this one line of code and it should be VERY TOP of your page1.php. Any other html code or php code should be below it.
<?php
include dbc.php;
page_protect();
?>
// place html or other php code below this.
If any users who have not registered and accesses this page1.php, they will be redirected to login page.

8. Display MyAccount menu to all logged in users

You want to show the myaccount menu to all those logged in users with links to change password, logout, settings etc... To show the menu place this code anywhere in your page1.php.

Only logged in users will see this menu.
<?
if (isset($_SESSION[user_id])) {?>
<div class="myaccount">
<p><strong>My Account</strong></p>
<a href="myaccount.php">My Account</a><br>
<a href="mysettings.php">Settings</a><br>
<a href="logout.php">Logout </a>
<p>You can add more links here for users</p></div>
<? } ?>
You can add more links you want like submit etc..
Take a look at myaccount.php and see how this menu shows up on the left side.

9. Access Admin area

Just login as administrator with username admin and password admin123 and you will see Admin CP link below your myaccount.

You MUST change the password for admin once logged in.



Download PHP Login Script

Tuesday, June 21, 2016

Simple jQuery Add Update Delete with PHP and MySQL

In this tutorial we will cover a simple Insert, Update and Delete using jQuery, PHP and MySQL with PDO, well we have lot's of CRUD tutorials on this blog but we haven't jQuery CRUD tutorial yet, and few email requests i received from readers regarding jQuery Insert, Update, Delete with PHP MySQL, so here in this tutorial we will do it, using jQuery to perform such operations become easy and for the better user interface bootstrap is here i have used, let's start.
Simple jQuery Insert, Update, Delete with PHP & MySQL
Read more »

Saturday, June 18, 2016

Creating a simple poll

We are going to create a simple poll that users may select what programming laguage they prefer (ASP or PHP)

First of all prepare four files as below:

1. asp.txt and then insert the number 0 in it as initial value. 
2. php.txt and then type the number 0 in it as initial value. 
Note:  Do not forget to insert the value 0 in the asp.txt and php.txt. This is very important so that the script works
3. create an image file poll.jpg with size 100x10px. This is to make the percentage of polling. 
This is also important to make our poll eye-catching. 
4. index.php and type in it the script below 

<title> Simple Polling </ title>
<style type="text/css">
<! --
. style1 (font-size: 24px)
. style2 (color: # 0000FF)
->
</style>
<form name="form1" method="post" action="index.php?content=polling">
<p>
Polling <label> <span class="style1"> </span> </label>
</p>
<p>
<label> Which web programming language do you prefer? </label>
</p>
<p>
<label>
<input type="radio" name="vote" value="php">
PHP </label>
<br>
<label>
<input type="radio" name="vote" value="asp">
ASP </label>
</p>
<p>
<label>
<input type="submit" name="Submit" value="Submit">
</label>
<br>
</p>
</form>
<?php
if (@$_GET[content])
{
$vote = $_POST[vote];
if ($vote == "") // if no choice yet
{
echo "You have not <font color=red> fill surveys </font>";
exit;
}
if ($vote == "php") // add 1 for  php
{
$open = fopen("php.txt", "r");
$read = fgets($open, 65535);
fclose ($open);
$open = fopen("php.txt", "w");
$read++;
fwrite ($open, $read);
fclose ($open);
}
if ($vote == "asp") // add 1 for asp
{
$open = fopen ("asp.txt", "r");
$read = fgets ($open, 65535);
fclose($open);
$open = fopen("asp.txt", "w");
$read++;
fwrite($open, $read);
fclose($open);
}
$open_php = fopen("php.txt", "r");
$readphp = fgets($open_php, 65535); // read the value for php
fclose($open_php);
$open_asp = fopen ("asp.txt", "r");
$readasp = fgets($open_asp, 65535); // read the value for asp
fclose($open_asp);
$total_user = $readphp + $readasp; // the number of voters
$persentase_php = ($readphp / $total_user) * 100;
$persentase_asp = ($readasp / $total_user * 100);
echo "Total voters: $total_user <br>";
echo "PHP:"; printf("% 1.0f", "$persentase_php"); echo "% <img src=poll.jpg width =$persentase_php  $height = 10 /> $readphp voters <br> ";
echo "ASP"; printf("% 1.0f", "$persentase_asp"); echo "% <img src = poll.jpg width =$persentase_asp  $height = 10 /> $readasp voters <br> ";
}
?>

Friday, June 17, 2016

Creating a Simple Pagination Script using PHP PDO with jQuery

hi there, this tutorial will cover creating a simple pagination script using PHP MySQL with jQuery, i have used here "bootpag - jQuery plugin for dynamic pagination" this plugin is easy to use which creates dynamic pagination with jQuery using PHP, when we have number of records in MySQL table, we must paginate them, we already have a pagination tutorial using PHP OOP and PDO without jQuery, now in this tutorial i have used jQuery which makes pagination easy, so before proceed you can see live demo of jQuery pagination or you can download and try it, have a look.
Creating a Simple Pagination Script using PHP PDO with jQuery
Read more »

Wednesday, June 8, 2016

Simple Login and Signup System using PHP and MySQLi

hello friends, we have this tutorial but some users want it using MySQLi extension, so i have decided to post Login and Registration System using PHP with the improved MySQLi. it's a simple script which you can easily understand. for the designing purpose i have used here bootstrap to create login and signup form which is simple and easy to create with the help of bootstrap, if you are using PHP5.5 then you must use new password hashing function, you can see it how to use them here in this tutorial, Login script with MySQL so let's take a look.
Simple Login and Signup System with PHP and MySQLi
Read more »

Sunday, June 5, 2016

How To Code A Simple Calculator In PHP

In this php tutorial you will learn how to make a simple PHP calculator
<?php

if($submit)
{
if($operator == *)
{
echo $numa * $numb;
} elseif($operator == /)
{
echo $numa / $numb;
} elseif($operator == +)
{
echo $numa + $numb;
} elseif($operator == -)
{
echo $numa - $numb;
}
} else { ?>
<form method="POST" action="<?php $_SERVER[PHP_SELF]; ?>">
<input type="text" name="numa" size="10">
<select name="operator">
<option value="+">Add</option>
<option value="-">Subtract</option>
<option value="*">Multiply</option>
<option value="/">Divide</option>
</select>
<input type="text" name="numb" size="10">
<input type="submit" value="Calculate" name="submit">
</form>
<?php } ?>
If you have any suggestions regarding the script please feel free to share it with us.Feel free to edit the above script to suit your personal needs.

Subscribe to our blog and we will email you similar interesting php scripts as soon as it is published.

Beside you could also refer to our PHP Interview Questions Series.

Enjoy!

PHP CAPTCHA Script A Simple But Effective Free CAPTCHA Script in PHP

PhpCaptcha php script is a library for generating visual and audio CAPTCHAs (completely automated public Turing test to tell computers and humans apart). You can read more about CAPTCHAs at Wikipedia.

It can help you to prevent/reduce:

  •     Automated sign-ups in registration forms.
  •     Comment spam in blogs and guestbooks.
  •     Brute force attacks on login systems.


A Word of Warning

OK, so this might sounds strange given what follows but please consider whether you really need to use a CAPTCHA before implementing this on your site. Although its legitimate to use CAPTCHAs in some situations you really need to be aware of the inherent accessibility pitfalls before implementing. Id also encourage you to fully investigate the alternatives such as the Akismet spam filtering WordPress plug-in and API before resorting to a CAPTCHA to solve your spam problems.

Right, Ive said my piece - on with the script.

Origins

The library is loosely based on an article I wrote for SitePoint which was published on 9th November 2005 - Toughen Forms Security with an Image.

Supported Features

  •     Multiple random TrueType fonts
  •     Character rotation
  •     Optional chararacter shadow support
  •     Optional site owner display text
  •     Random custom background images
  •     Font size selection
  •     Greyscale or colour lines and characters
  •     Character set selection
  •     Integration of validation function for checking the user entered code with the generated code

Requirements

The library requires PHP 4 compiled with GD 1 or 2 (Image Generation) and FreeType text support. It should work fine with Linux, Mac OS X or Windows based systems although you will need to change the default temporary file storage directory specified when using with Windows. PHP session support is also required. The audio CAPTCHA requires the Flite text to speech synthesis engine - more details on set up below.

License

PhpCaptcha is licensed under the Free BSD license.

Implementation Steps:

Step 1

Unzip and copy the php-captcha.inc.php to a directory within your site.

Step 2

To create a basic visual CAPTCHA with the minimal options create a new file (visual-captcha.php) containing the code shown below.


 <?php
require(php-captcha.inc.php);
$aFonts = array(fonts/VeraBd.ttf, fonts/VeraIt.ttf, fonts/Vera.ttf);
$oVisualCaptcha = new PhpCaptcha($aFonts, 200, 60);
$oVisualCaptcha->Create();
?>

Step 3

To create an audio CAPTCHA create a new file (audio-captcha.php) containing the code shown below. For this to work youll need to ensure that your have a working installation of Flite.
 <?php
require(php-captcha.inc.php);
$oAudioCaptcha = new AudioPhpCaptcha(/usr/bin/flite, /tmp/);
$oAudioCaptcha->Create();
?>

You need to pass the path to the Flite binary and the temporary directory you want to use for storing generated audio CAPTCHAs to the class constructor. Alternatively you can modify the corresponding constants in the library file and then omit the parameters in the constructor.

Step 4

Include the visual and audio CAPTCHAs in your application/form with the following code. The audio CAPTCHA should ideally follow the visual CAPTCHA in the source code. This will ensure the visual CAPTCHA has generated a random code before the audio CAPTCHA is called.


 <p><img src="visual-captcha.php" width="200" height="60" alt="Visual CAPTCHA" /></p>
<p><a href="audio-captcha.php">Cant see the image? Click for audible version</a></p>

Step 5

On form submission you need to check the code the user enters with the one generated by the CAPTCHA. You can do this with the following code assuming that the user entered code was submitted in an HTML POST form field "user_code".


 <?php
require(php-captcha.inc.php);
if (PhpCaptcha::Validate($_POST[user_code])) {
echo Valid code entered;
} else {
echo Invalid code entered;
}
?>

Please note that the Validate method needs to be called statically, i.e you dont create an instance of the class before calling it.

Configuration Options

  1. SetWidth(int iWidth) - set the width of the CAPTCHA image. Defaults to 200px.
  2. SetHeight(int iHeight) - set the height of the CAPTCHA image. Defaults to 50px.
  3. SetNumChars(int iNumChars) - set the number of characters to display. Defaults to 5.
  4. SetNumLines(int iNumLines) - set the number of interference lines to draw. Defaults to 70.
  5. DisplayShadow(bool bShadow) - specify whether or not to display character shadows.
  6. SetOwnerText(sting sOwnerText) - owner text to display at bottom of CAPTCHA image, discourages attempts to break your CAPTCHA through display on porn and other unsavoury sites.
  7. SetCharSet(variant vCharSet) - specify the character set to select characters from. If left blank defaults to A-Z. Can be specified as an array of chracters e.g. array(1, G, 3) or as a string of characters and character ranges e.g. a-z,A-Z,0,3,7.
  8. CaseInsensitive(bool bCaseInsensitive) - specify whether or not to save user code preserving case. If setting to "false" you need to pass "false" as the second parameter to the "Validate" function when checking the user entered code.
  9. SetBackgroundImages(variant vBackgroundImages) - specify one (a string) or more (an array) images to display instead of noise lines. If more than one image is specified the library selects one at random.
  10. SetMinFontSize(int iMinFontSize) - specify the minimum font size to display. Defaults to 16.
  11. SetMaxFontSize(int iMaxFontSize) - specify the maximum font size to display. Defaults to 25.
  12. UseColour(bool bUseColour) - if true displays noise lines and characters in randomly selected colours.
  13. SetFileType(string sFileType) - specify the output format jpeg, gif or png. Defaults to jpeg.
The methods listed below allow you to refine the look and feel as well as the behaviour of the generated CAPTCHA. They should all be called before the "Create" method.

Download Free PHP CAPTCHA Script

Saturday, May 28, 2016

A Simple But Secure PHP Login Script For Newbs

Recently I posted about a Login Script in PHP, but some of our readers emailed me and complained about the Implementation Complexity of the script.Though I still consider that script very secure and one of the best, but still to make the unsatisfied lot a little happy, I am going to share a very very simple and yet very secure PHP Login script with you guys.Hope this script will be easy to understand and implement.

Besides, this script is quite secure, protecting your login form against SQL Injection and XSS attacks.You will also need MySQL database to implement this login script.


First Create a table as shown below:

CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`password` char(64) COLLATE utf8_unicode_ci NOT NULL,
`salt` char(16) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Now create a file common.php which will contain code that is shared between the different parts of your login system.

<?php

// These variables define the connection information for your MySQL database
$username = "dbusername";
$password = "dbpassword";
$host = "localhost";
$dbname = "dbname";

// UTF-8 is a character encoding scheme that allows you to conveniently store
// a wide varienty of special characters, like ¢ or €, in your database.
// By passing the following $options array to the database connection code we
// are telling the MySQL server that we want to communicate with it using UTF-8
// See Wikipedia for more information on UTF-8:
// http://en.wikipedia.org/wiki/UTF-8
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => SET NAMES utf8);

// A try/catch statement is a common method of error handling in object oriented code.
// First, PHP executes the code within the try block. If, at any time, it encounters an
// error while executing that code, it stops immediately and jumps down to the
// catch block. For more detailed information on exceptions and try/catch blocks:
// http://us2.php.net/manual/en/language.exceptions.php
try
{
// This statement opens a connect to your database using the PDO library
// PDO is designed to provide a flexible interface between PHP and many
// different types of database servers. For more information on PDO:
// http://us2.php.net/manual/en/class.pdo.php
$db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options);
}
catch(PDOException $ex)
{
// If an error occurs while opening a connection to your database, it will
// be trapped here. The script will output an error and stop executing.
// Note: On a production website, you should not output $ex->getMessage().
// It may provide an attacker with helpful information about your code.
die("Failed to connect to the database: " . $ex->getMessage());
}

// This statement configures PDO to throw an exception when it encounters
// an error. This allows us to use try/catch blocks to trap database errors.
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// This statement PDO to return database rows from your database using an associative
// array. This means the array will have string indexes, where the string value
// represents the name of the column in your database.
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

// This block of code is used to undo magic quotes. Magic quotes are a terrible
// feature that was removed from PHP as of PHP 5.4. However, older installations
// of PHP may still have magic quotes enabled and this code is necessary to
// prevent them from causing problems. For more information on magic quotes:
// http://php.net/manual/en/security.magicquotes.php
if(function_exists(get_magic_quotes_gpc) && get_magic_quotes_gpc())
{
function undo_magic_quotes_gpc(&$array)
{
foreach($array as &$value)
{
if(is_array($value))
{
undo_magic_quotes_gpc($value);
}
else
{
$value = stripslashes($value);
}
}
}

undo_magic_quotes_gpc($_POST);
undo_magic_quotes_gpc($_GET);
undo_magic_quotes_gpc($_COOKIE);
}

// This tells the web browser that your content is encoded using UTF-8
// and that it should submit content back to you using UTF-8
header(Content-Type: text/html; charset=utf-8);

// This initializes a session. Sessions are used to store information about
// a visitor from one request to the next. Unlike a cookie, the information is
// stored on the server-side and cannot be modified by the visitor. However,
// note that in most cases sessions do still use cookies and require the visitor
// to have cookies enabled. For more information about sessions:
// http://us.php.net/manual/en/book.session.php
session_start();

Now create another file register.php which will allow you to create a user account. 

<?php

// First we execute our common code to connection to the database and start the session
require("common.php");

// This if statement checks to determine whether the registration form has been submitted
// If it has, then the registration code is run, otherwise the form is displayed
if(!empty($_POST))
{
// Ensure that the user has entered a non-empty username
if(empty($_POST[username]))
{
// Note that die() is generally a terrible way of handling user errors
// like this. It is much better to display the error with the form
// and allow the user to correct their mistake. However, that is an
// exercise for you to implement yourself.
die("Please enter a username.");
}

// Ensure that the user has entered a non-empty password
if(empty($_POST[password]))
{
die("Please enter a password.");
}

// We will use this SQL query to see whether the username entered by the
// user is already in use. :username is a special token. We will define
// its value later.
$query = "
SELECT
id
FROM users
WHERE
username = :username
";

// This contains the definitions for any special tokens that we place in
// our SQL query. In this case, we are defining a value for the token
// :username. It is possible to insert $_POST[username] directly into
// your $query string; however doing so is very insecure and opens your
// code up to SQL injection exploits. Using tokens prevents this.
// For more information on SQL injections, see Wikipedia:
// http://en.wikipedia.org/wiki/SQL_Injection
$query_params = array(
:username => $_POST[username]
);

try
{
// These two statements run the query against your database table.
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch(PDOException $ex)
{
// Note: On a production website, you should not output $ex->getMessage().
// It may provide an attacker with helpful information about your code.
die("Failed to run query: " . $ex->getMessage());
}

// The fetch() method returns an array representing the "next" row from
// the selected results, or false if there are no more rows to fetch.
$row = $stmt->fetch();

// If a row was returned, then we know a matching username was found in
// the database already and we should not allow the user to continue.
if($row)
{
die("This username is already in use");
}

// This query is used to create a new user record in the database table.
// Again, we are using special tokens (technically called parameters) to
// protect against SQL injection attacks.
$query = "
INSERT INTO users (
username,
password,
salt
) VALUES (
:username,
:password,
:salt
)
";

// A salt is randomly generated here to protect again brute force attacks
// and rainbow table attacks. The following statement generates a hex
// representation of an 8 byte salt. Representing this in hex provides
// no additional security, but makes it easier for humans to read.
// For more information:
// http://en.wikipedia.org/wiki/Salt_%28cryptography%29
// http://en.wikipedia.org/wiki/Brute-force_attack
// http://en.wikipedia.org/wiki/Rainbow_table
$salt = dechex(mt_rand(0, 2147483647)) . dechex(mt_rand(0, 2147483647));

// This hashes the password with the salt so that it can be stored securely
// in your database. The output of this next statement is a 64 byte hex
// string representing the 32 byte sha256 hash of the password. The original
// password cannot be recovered from the hash. For more information:
// http://en.wikipedia.org/wiki/Cryptographic_hash_function
$password = hash(sha256, $_POST[password] . $salt);

// Here we prepare our tokens for insertion into the SQL query. We do not
// store the original password; only the hashed version of it. We do store
// the salt (in its plaintext form).
$query_params = array(
:username => $_POST[username],
:password => $password,
:salt => $salt
);

try
{
// Execute the query to create the user
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch(PDOException $ex)
{
// Note: On a production website, you should not output $ex->getMessage().
// It may provide an attacker with helpful information about your code.
die("Failed to run query: " . $ex->getMessage());
}

// This redirects the user back to the login page after they register
header("Location: login.php");

// Calling die or exit after performing a redirect using the header function
// is critical. The rest of your PHP script will continue to execute and
// will be sent to the user if you do not die or exit.
die("Redirecting to login.php");
}

?>
<h1>Register</h1>
<form action="register.php" method="post">
Username:<br />
<input type="text" name="username" value="" />
<br /><br />
Password:<br />
<input type="password" name="password" value="" />
<br /><br />
<input type="submit" value="Register" />
</form>

Create a login.php which allows user to authenticate. 

<?php

// First we execute our common code to connection to the database and start the session
require("common.php");

// This variable will be used to re-display the users username to them in the
// login form if they fail to enter the correct password. It is initialized here
// to an empty value, which will be shown if the user has not submitted the form.
$submitted_username = ;

// This if statement checks to determine whether the login form has been submitted
// If it has, then the login code is run, otherwise the form is displayed
if(!empty($_POST))
{
// This query retreives the users information from the database using
// their username.
$query = "
SELECT
id,
username,
password,
salt
FROM users
WHERE
username = :username
";

$query_params = array(
:username => $_POST[username]
);

try
{
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch(PDOException $ex)
{
// Note: On a production website, you should not output $ex->getMessage().
// It may provide an attacker with helpful information about your code.
die("Failed to run query: " . $ex->getMessage());
}

// This variable tells us whether the user has successfully logged in or not.
// We initialize it to false, assuming they have not.
// If we determine that they have entered the right details, then we switch it to true.
$login_ok = false;

$row = $stmt->fetch();
if($row)
{
// Using the password submitted by the user and the salt stored in the database,
// we now check to see whether the passwords match by hashing the submitted password
// and comparing it to the hashed version already stored in the database.
$check_password = hash(sha256, $_POST[password] . $row[salt]);
if($check_password === $row[password])
{
// If they do, then we flip this to true
$login_ok = true;
}
}

// If the user logged in successfully, then we send them to the members page
// Otherwise, we display a login failed message and show the login form again
if($login_ok)
{
// Here I am preparing to store the $row array into the $_SESSION by
// removing the salt and password values from it. Although $_SESSION is
// stored on the server-side, there is no reason to store sensitive values
// in it unless you have to. Thus, it is best practice to remove these
// sensitive values first.
unset($row[salt]);
unset($row[password]);

// This stores the users data into the session at the index user.
// We will check this index on the members page to determine whether
// or not the user is logged in. We can also use it to retrieve
// the users details.
$_SESSION[user] = $row;

// Redirect the user to the members page.
header("Location: members.php");
die("Redirecting to: members.php");
}
else
{
// Tell the user they failed
print("Login Failed.");

// Show them their username again so all they have to do is enter a new
// password. The use of htmlentities prevents XSS attacks. You should
// always use htmlentities on user submitted values before displaying them
// to any users (including the user that submitted them). For more information:
// http://en.wikipedia.org/wiki/XSS_attack
$submitted_username = htmlentities($_POST[username], ENT_QUOTES, UTF-8);
}
}

?>
<h1>Login</h1>
<form action="login.php" method="post">
Username:<br />
<input type="text" name="username" value="<?php echo $submitted_username; ?>" />
<br /><br />
Password:<br />
<input type="password" name="password" value="" />
<br /><br />
<input type="submit" value="Login" />
</form>
<a href="register.php">Register</a>

Now create another file members.php which you may protect with your login system. 

<?php

// First we execute our common code to connection to the database and start the session
require("common.php");

// At the top of the page we check to see whether the user is logged in or not
if(empty($_SESSION[user]))
{
// If they are not, we redirect them to the login page.
header("Location: login.php");

// Remember that this die statement is absolutely critical. Without it,
// people can view your members-only content without logging in.
die("Redirecting to login.php");
}

// Everything below this point in the file is secured by the login system

// We can display the users username to them by reading it from the session array. Remember that because
// a username is user submitted content we must use htmlentities on it before displaying it to the user. The
// fact that we retrieved it from a database and not directly from the user does not matter.
?>
Hello <?php echo htmlentities($_SESSION[user][username], ENT_QUOTES, UTF-8); ?>, secret content!<br />
<a href="logout.php">Logout</a>

Now create a logout script logout.php which will enable your user to logout safely.
<?php

// First we execute our common code to connection to the database and start the session
require("common.php");

// We remove their data from the session
unset($_SESSION[user]);

// We redirect them to the login page
header("Location: login.php");
die("Redirecting to: login.php");

?>

Thats all!


I think that the PHP Script is simple enough to be understood and is self explanatory.And its tried and tested as well, so you can straightaway implement this script on your website.If you have any suggestions regarding this script then feel free to comment below.

Besides, if you like our blog and want to receive updates directly in your email, then you can subscribe below and dont forget to activate your subscription.Enjoy!

Cheers!


Thursday, May 26, 2016

Code A Simple PHP Contact Form With A Reply To Option

Today I will show to how to code a Contact form in PHP Which also has a Reply To feature.It is very simple to do so using combination of HTML and PHP.

The Code for the form is given below:

Form Code:
<form action="procesar_form.php" method="post" name="formulario" id="formulario" onsubmit=return validarFormulario()>
<label for="nombre">Nombre </label>
<input type="text" name="nombre" id="nombre" size="60"/>

<label for="apellido">Apellido </label>
<input type="text" name="apellido" id="apellido" size="60"/>

<label for="email">Email </label>
<input type="text" name="email" id="email" size="60"/>

<label for="comentarios">Comentarios</label>
<textarea name="comentarios" id="comentarios" cols="44" rows="10"></textarea>

<input type="button" name="enviar" id="enviar" value="Enviar" onclick="validarFormulario()" /></textarea>

</form>

PHP Code
$email = $_POST[email];


$to = xyz@gmail.com;
$subject = Contacto Us;
$message = Name: . $_POST[name] . " " .
Surname: . $_POST[surname] . " " .
Email: . $_POST[email] . " " .
Comments: . $_POST[comments];
$headers = From: $email . " " .
Reply-to: $email . " " .
X-Mailer: PHP/ . phpversion();


mail($to, $subject, $message, $headers);


header("Location: ../../index.html");

Just put it all together and you are ready to go.I hope you enjoyed this free php script

Enjoy!

Wednesday, May 25, 2016

Simple Member PHP Script Add Protective Area On Your Website

Simple Member allows you to put up that much needed protective area on your web site where you don’t want anyone snooping without first signing up. This is a real simple membership script written in PHP 5+ that requires MySQL 5+ to run it on your website.

Requirements

    PHP 5+ -http://www.php.net
    MySQL 5+ – http://www.mysql.com
MySQL Database Setup

    Open sql.txt using any text editor. (located in the main Simple Member folder)
    Paste the contents into a tool that can execute SQL commands for your MySQL DB

Installation

    Follow the MySQL Database Setup Before Continuing
    Open main.php with any text editor in the root folder and modify the settings for your server
    Upload to your server

How to Use Simple Member
    At this time there are no admin utilities to view, edit, remove your members, etc.
    The login / add member php script is located at http://domain/to/main/path/index.php
    Your members area would be located in member.php … so this is where you would put content that you want only your members to see. You may copy member.php into a new file to add multiple member restricted pages. Look for the MEMBER CONTENT GOES HERE comment.

Download Simple Member PHP Script

Simple Image Gallery Image Gallery Management System In PHP

Simple Gallery is an easy to use image gallery management system written in PHP and utilizes jQuery, MySQL, and the GD Library. It allows multiple categories and subcategories as well as image hit / download tracking and a built in installer. Also, the latest version adds support for Thickbox displaying of images when downloading.

Requirements
  •     PHP 5+ -http://www.php.net
  •     GD Library – http://www.libgd.org
  •     MySQL – http://www.mysql.com

Installation
  •     Open “inc/config.php” and modify the settings to your liking
  •     Do Not Run the “install.php” script before doing the above
  •     To use an existing mysql database, just set “$db” in “inc/config.php” to the DB name you wish to use
  •     If the DB name you specify in “$db”, the install.php script will attempt to create it for you.
  •     3 database tables will be added to your DB name above “freephp_gallery, freephp_gallery_admin, freephp_gallery_category”
  •     The directory you specify for “$base_dir” should be chmod to 777 (full permissions)
  •     When you are sure your settings are correct, run the “install.php” file
  •     You will be asked to create your admin username and password on the install.php page
  •     After completing the install, REMOVE “install.php” (running this again will remove any data from your Simple Gallery tables)
  •     Run “login.php” to login as the admin username and password you setup so that you may start using Simple Gallery

Download Simple Image Gallery PHP Script

Tuesday, May 24, 2016

A simple Validation Form in PHP

Today I am going to share a simple script in PHP which does the validation when user registers with your site.It is a very simple one and aimed at a complete newb.I am not going to discuss much about the script as it is pretty much self explanatory.The script is given below:

<?php 
}
else {
$usr = new Users;
$usr->storeFormValues( $_POST );
$n6 = 6;

if( $_POST[password] == $_POST[cpassword] ) {
echo $usr->register($_POST);
}
else {
echo "Password and Confirm password not match";
}

if( $_POST[username] < $n6 ) {
echo "Username must be more than 6 characters.";
}
else {
echo $usr->register($_POST);
}

if( $_POST[password] < $n6 ) {
echo "Password must be more than 6 characters.";
}
else {
echo $usr->register($_POST);
}
}
?>
Thats it with it.You may change it according to your needs.Besides, if your are working on a Registration form then you will also find the Login Form in PHP interesting.

Enjoy!

Thursday, May 19, 2016

Simple PHP CRUD Operations with MySQL

In this tutorial we are going to discuss about simple CRUD(Create , Read , Update , Delete) PHP operations , these are some of the basic things of PHP web application , Records are insert , select update and delete using PHP and MySQL, Creating a Simple Insert, Select, Update and Delete using PHP with MySQL Database is easy task. learning a crud operations is the first way to understand this is a simple and easy tutorial i have posted for beginners, let's have a look.
Simple PHP CRUD Operations with MySQL
Read more »

Tuesday, May 17, 2016

Simple HTML Form Validation using jQuery

We have seen server side form validation using PHP and Client Side Validation using HTML5, and there is also another way to validate HTML forms using jQuery, you can set user defined error messages and it's easy to handle form validations using jQuery, so this tutorial will show you that how to use jQuery to validate forms, we must validate the forms either client side or server side to store and get authenticate details from the users, so this one is also easy to implement in your webpage forms, so take a quick look at this tutorial.
Simple HTML Form Validation using jQuery
Read more »

Sunday, May 15, 2016

Simple File Uploading With PHP

In this tutorial you are going to learn , How to upload files using PHP and moves uploaded files into the specified files folder, Using some PHP global variable like $_FILES['controller_name'] , move_uploaded_files() , you can move uploaded file into the folder it's easy, for that we have to create html form and embed few lines of PHP code into the single file, let's have a look.
Simple file uploading Script with PHP
Read more »

Monday, May 9, 2016

Simple PHP Book A must have PHP Book for a PHP Web Designer

We Recommend this amazingly simply written PHP Book by Robert Plank.This PHP Book is a must have for any PHP Web Designer.

This PHP Book will teach you how to:

  • Easily Personalize your Web Pages.
  • Create .htaccess code for yourself very easily.
  • Code games, quizzes & other lead-building tools including 5 tutorial scripts.
  • Create your Own Autoresponder for your website (this is the coolest part of this book).
  • Combine the Power of JavaScript and PHP to create dynamic Web Pages.

BONUS: Download this PHP Book now and along with it you will get 5 hour PHP training video tutorials covering each and every topic in this book.And yes its Completely Free!