c# pdfsharp pdf to image : Adding text to a pdf form control Library system azure .net wpf console 05-welling-php-mysql-web59-part108

557
Implementing User Authentication
// get the bookmarks this user has saved
if ($url_array = get_user_urls($_SESSION[‘valid_user’]))
display_user_urls($url_array);
// give menu of options
display_user_menu();
do_html_footer();
?>
You might recognize the logic in the 
member.php
script:It reuses some of the ideas from
Chapter 22.
First, you check whether the user has come from the front page—that is,whether he
has just filled in the login form—and try to log him in as follows:
if ($username && $passwd)
// they have just tried logging in
{
try
{
login($username, $passwd);
// if they are in the database register the user id
$_SESSION[‘valid_user’] = $username;
}
You try to log the user in by using a function called 
login()
.It is defined in the
user_auth_fns.php
library,and we look at the code for it shortly.
If the user is logged in successfully, you register his session as you did before,storing
the username in the session variable 
valid_user
.
If all goes well,you then show the user the members page:
do_html_header(‘Home’);
check_valid_user();
// get the bookmarks this user has saved
if ($url_array = get_user_urls($_SESSION[‘valid_user’]))
display_user_urls($url_array);
// give menu of options
display_user_menu();
do_html_footer();
This page is again formed using the output functions.Notice that the page uses several
other new functions:
check_valid_user()
from 
user_auth_fns.php
,
get_user_urls()
from 
url_fns.php
,and 
display_user_urls()
from 
output_fns.php
.The
check_valid_user()
function checks that the current user has a registered session.
Listing 26.11 Continued
Adding text to a pdf form - C# PDF Field Edit Library: insert, delete, update pdf form field in C#.net, ASP.NET, MVC, Ajax, WPF
Online C# Tutorial to Insert, Delete and Update Fields in PDF Document
create a pdf form to fill out; add email button to pdf form
Adding text to a pdf form - VB.NET PDF Field Edit library: insert, delete, update pdf form field in vb.net, ASP.NET, MVC, Ajax, WPF
How to Insert, Delete and Update Fields in PDF Document with VB.NET Demo Code
add image field to pdf form; can save pdf form data
558
Chapter 26 Building User Authentication and Personalization
This is aimed at users who have not just logged in, but are mid-session.The
get_user_urls()
function gets a user’s bookmarks from the database,and
display_user_urls()
outputs the bookmarks to the browser in a table.We look at
check_valid_user()
in a moment and at the other two in the section on bookmark
storage and retrieval.
The 
member.php
script ends the page by displaying a menu with the
display_user_menu()
function. Some sample output as displayed by 
member.php
is
shown in Figure 26.6.
Figure 26.6 The 
member.php
script checks that a user is logged in, retrieves
and displays his bookmarks, and gives him a menu of options.
Let’s look at the 
login()
and 
check_valid_user()
functions a little more closely now.
The 
login()
function is shown in Listing 26.12.
Listing 26.12 login()Function from user_auth_fns.php—This Function Checks a
User’s Details Against the Database
function login($username, $password)
// check username and password with db
// if yes, return true
// else throw exception
{
// connect to db
$conn = db_connect();
C# PDF insert text Library: insert text into PDF content in C#.net
Supports adding text to PDF in preview without adobe reader installed in ASP.NET. Powerful .NET PDF edit control allows modify existing scanned PDF text.
add an image to a pdf form; change font pdf fillable form
VB.NET PDF insert text library: insert text into PDF content in vb
VB.NET PDF - Insert Text to PDF Document in VB.NET. Providing Demo Code for Adding and Inserting Text to PDF File Page in VB.NET Program.
convert word document to editable pdf form; create a fillable pdf form from a pdf
559
Implementing User Authentication
// check if username is unique
$result = $conn->query(“select * from user
where username=’$username’
and passwd = sha1(‘$password’)”);
if (!$result)
throw new Exception(‘Could not log you in.’);
if ($result->num_rows>0)
return true;
else
throw new Exception(‘Could not log you in.’);
}
As you can see, the 
login()
function connects to the database and checks that there is a
user with the username and password combination supplied. It returns 
true
if there is or
throws an exception if there is not or if the user’s credentials could not be checked.
The 
check_valid_user()
function does not connect to the database again, but
instead just checks that the user has a registered session—that is, that he has already
logged in.This function is shown in Listing 26.13.
Listing 26.13 check_valid_user()Function from user_auth_fns.php—This
Function Checks That the User Has a Valid Session
function check_valid_user()
// see if somebody is logged in and notify them if not
{
if (isset($_SESSION[‘valid_user’]))
{
echo ‘Logged in as ‘.stripslashes($_SESSION[‘valid_user’]).’.’;
echo ‘<br />’;
}
else
{
// they are not logged in 
do_html_heading(‘Problem:’);
echo ‘You are not logged in.<br />’;
do_html_url(‘login.php’, ‘Login’);
do_html_footer();
exit;
 
}
If the user is not logged in, the function will tell him he has to be logged in to see this
page,and give him a link to the login page.
Listing 26.12 Continued 
VB.NET PDF Text Box Edit Library: add, delete, update PDF text box
Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete Metadata. Form Process. Provide VB.NET Users with Solution of Adding Text Box to PDF Page in VB
add fields to pdf form; add text fields to pdf
C# PDF Text Box Edit Library: add, delete, update PDF text box in
Provide .NET SDK library for adding text box to PDF document in .NET WinForms application. Adding text box is another way to add text to PDF page.
add form fields to pdf without acrobat; adding text fields to pdf acrobat
560
Chapter 26 Building User Authentication and Personalization
Logging Out
You might have noticed the link marked 
Logout
on the menu in Figure 26.6.This is a
link to the 
logout.php
script;the code for this script is shown in Listing 26.14.
Listing 26.14 logout.php—This Script Ends a User Session
<?php
// include function files for this application
require_once(‘bookmark_fns.php’);
session_start();
$old_user = $_SESSION[‘valid_user’];
// store  to test if they *were* logged in
unset($_SESSION[‘valid_user’]);
$result_dest = session_destroy();
// start output html
do_html_header(‘Logging Out’);
if (!empty($old_user))
{
if ($result_dest)
{
// if they were logged in and are now logged out
echo ‘Logged out.<br />’;
do_html_url(‘login.php’, ‘Login’);
}
else
{
// they were logged in and could not be logged out
echo ‘Could not log you out.<br />’;
}
}
else
{
// if they weren’t logged in but came to this page somehow
echo ‘You were not logged in, and so have not been logged out.<br />’;
do_html_url(‘login.php’, ‘Login’);
}
do_html_footer();
?>
Again, you might find that this code looks familiar.That’s because it is based on the code
you wrote in Chapter 22.
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
Support adding PDF page number. Offer PDF page break inserting function. DLLs for Adding Page into PDF Document in VB.NET Class. Add necessary references:
adding a signature to a pdf form; create pdf forms
VB.NET PDF Library SDK to view, edit, convert, process PDF file
Support adding protection features to PDF file by adding password, digital signatures and redaction feature. Various of PDF text and images processing features
cannot save pdf form in reader; edit pdf form
561
Implementing User Authentication
Changing Passwords
If a user follows the 
Change Password
menu option,she will be presented with the
form shown in Figure 26.7.
Figure 26.7 The 
change_passwd_form.php
script supplies a form where
users can change their passwords.
This form is generated by the script 
change_passwd_form.php
.This simple script just
uses the functions from the output library, so we did not include the source for it here.
When this form is submitted,it triggers the 
change_passwd.php
script,which is
shown in Listing 26.15.
Listing 26.15 change_passwd.php— This Script Attempts to Change a User
Password
<?php
require_once(‘bookmark_fns.php’);
session_start();
do_html_header(‘Changing password’);
// create short variable names
$old_passwd = $_POST[‘old_passwd’];
$new_passwd = $_POST[‘new_passwd’];
$new_passwd2 = $_POST[‘new_passwd2’];
VB.NET PDF Text Add Library: add, delete, edit PDF text in vb.net
Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete Metadata. Form Process. Professional VB.NET Solution for Adding Text Annotation to PDF Page in
build pdf forms; adding text fields to pdf
C# PDF Annotate Library: Draw, edit PDF annotation, markups in C#.
Provide users with examples for adding text box to PDF and edit font size and color in text box field in C#.NET program. C#.NET: Draw Markups on PDF File.
add fillable fields to pdf online; change font on pdf form
562
Chapter 26 Building User Authentication and Personalization
try
{
check_valid_user();
if (!filled_out($_POST))
throw new Exception(‘You have not filled out the form completely.’
.’ Please try again.’);
if ($new_passwd!=$new_passwd2)
throw new Exception(‘Passwords entered were not the same.  Not changed.’);
if (strlen($new_passwd)<6)
throw new Exception(‘New password must be at least 6 characters.’
.’ Try again.’);
// attempt update
change_password($_SESSION[‘valid_user’], $old_passwd, $new_passwd);
echo ‘Password changed.’;
}
catch (Exception $e)
{
echo $e->getMessage();
}
display_user_menu();
do_html_footer();
?>
This script checks that the user is logged in (using 
check_valid_user()
),that she’s filled
out the password form (using 
filled_out()
),and that the new passwords are the same
and the right length.None of this is new.If all that goes well,the script will call the
change_password()
function as follows:
change_password($_SESSION[‘valid_user’], $old_passwd, $new_passwd);
echo ‘Password changed.’;
This function is from the 
user_auth_fns.php
library, and the code for it is shown in
Listing 26.16.
Listing 26.16 change_password()Function from user_auth_fns.php—This
Function Attempts to Update a User Password in the Database
function change_password($username, $old_password, $new_password)
// change password for username/old_password to new_password
// return true or false
{
// if the old password is right
// change their password to new_password and return true
// else throw an exception
login($username, $old_password);
Listing 26.15 Continued 
C# PDF insert image Library: insert images into PDF in C#.net, ASP
Insert images into PDF form field. To help you solve this technical problem, we provide this C#.NET PDF image adding control, XDoc.PDF for .NET.
add fields to pdf; add form fields to pdf online
C# PDF Page Insert Library: insert pages into PDF file in C#.net
By using reliable APIs, C# programmers are capable of adding and inserting (empty) PDF page or pages from various file formats, such as PDF, Tiff, Word, Excel
convert pdf to editable form; chrome pdf save form data
563
Implementing User Authentication
$conn = db_connect();
$result = $conn->query( “update user
set passwd = sha1(‘$new_password’)
where username = ‘$username’”);
if (!$result)
throw new Exception(‘Password could not be changed.’);
else
return true;  // changed successfully
}
This function checks that the old password supplied was correct,using the 
login()
function that you have already looked at.If it’s correct,the function will connect to the
database and update the password to the new value.
Resetting Forgotten Passwords
In addition to changing passwords,you need to deal with the common situation in
which a user has forgotten her password. On the front page,
login.php
,you provide a
link,marked 
Forgotten your password?
,for users in this situation.This link takes users
to the script called 
forgot_form.php
,which uses the output functions to display a form,
as shown in Figure 26.8.
Listing 26.16 Continued 
Figure 26.8 The 
forgot_form.php
script supplies a form in which users
can ask to have their passwords reset and sent to them.
564
Chapter 26 Building User Authentication and Personalization
The 
forgot_form.php
script is very simple—just using the output functions—so we did
not include it here.When the form is submitted,it calls the 
forgot_passwd.php
script,
which is more interesting.This script is shown in Listing 26.17.
Listing 26.17 forgot_passwd.php —This Script Resets a User’s Password to a
Random Value and Emails Her the New One
<?php
require_once(‘bookmark_fns.php’);
do_html_header(‘Resetting password’);
// creating short variable name
$username = $_POST[‘username’];
try
{
$password = reset_password($username);
notify_password($username, $password);
echo ‘Your new password has been emailed to you.<br />’;
}
catch (Exception $e)
{
echo ‘Your password could not be reset - please try again later.’;
}
do_html_url(‘login.php’, ‘Login’);
do_html_footer();
?>
As you can see, this script uses two main functions to do its job:
reset_password()
and
notify_password()
.Let’s look at each of these in turn.
The 
reset_password()
function generates a random password for the user and puts
it into the database.The code for this function is shown in Listing 26.18.
Listing 26.18 reset_password()Function from user_auth_fns.php—This
Function Resets a User’s Password to a Random Value and Emails Her the New One
function reset_password($username)
// set password for username to a random value
// return the new password or false on failure
{
// get a random dictionary word b/w 6 and 13 chars in length
$new_password = get_random_word(6, 13);
if($new_password==false)
throw new Exception(‘Could not generate new password.’);
// add a number  between 0 and 999 to it
// to make it a slightly better password
565
Implementing User Authentication
srand ((double) microtime() * 1000000);
$rand_number = rand(0, 999);
$new_password .= $rand_number;
// set user’s password to this in database or return false
$conn = db_connect();
$result = $conn->query( “update user
set passwd = sha1(‘$new_password’)
where username = ‘$username’”);
if (!$result)
throw new Exception(‘Could not change password.’);  // not changed
else
return $new_password;  // changed successfully
}
The 
reset_password()
function generates its random password by getting a random
word from a dictionary,using the 
get_random_word()
function and suffixing it with a
random number between 0 and 999.The 
get_random_word()
function,shown in
Listing 26.19, is also in the 
user_auth_fns.php
library.
Listing 26.19 get_random_word()Function from user_auth_fns.php—This
Function Gets a Random Word from the Dictionary for Use in Generating Passwords
function get_random_word($min_length, $max_length)
// grab a random word from dictionary between the two lengths
// and return it
{
// generate a random word
$word = ‘’;
// remember to change this path to suit your system
$dictionary = ‘/usr/dict/words’;  // the ispell dictionary
$fp = @fopen($dictionary, ‘r’);
if(!$fp)
return false;
$size = filesize($dictionary);
// go to a random location in dictionary
srand ((double) microtime() * 1000000);
$rand_location = rand(0, $size);
fseek($fp, $rand_location);
// get the next whole word of the right length in the file
while (strlen($word)< $min_length || 
strlen($word)>$max_length || strstr($word, “‘“))
{
Listing 26.18 Continued 
566
Chapter 26 Building User Authentication and Personalization
if (feof($fp))
fseek($fp, 0);        // if at end, go to start
$word = fgets($fp, 80);  // skip first word as it could be partial
$word = fgets($fp, 80);  // the potential password
};
$word=trim($word); // trim the trailing \n from fgets
return $word;
}
To work,the 
get_random_word()
function needs a dictionary.If you are using a Unix
system,the built-in spell checker ispell comes with a dictionary of words,typically locat-
ed at 
/usr/dict/words
,as it is here,or at 
/usr/share/dict/words
.If you don’t find it
in one of these places,on most systems you can find yours by typing
$ locate dict/words
If you are using some other system or do not want to install ispell,don’t worry! You can
download word lists as used by ispell from http://wordlist.sourceforge.net/.
This site also has dictionaries in many other languages, so if you would like a random,
say,Norwegian or Esperanto word,you can download one of those dictionaries instead.
These files are formatted with each word on a separate line, separated by newlines.
To get a random word from this file,you pick a random location between 0 and the
filesize,and read from the file there. If you read from the random location to the next
newline,you will most likely get only a partial word,so you skip the line you open the
file to and take the next word as your word by calling 
fgets()
twice.
The function has two clever bits.The first is that,if you reach the end of the file
while looking for a word,you go back to the beginning:
if (feof($fp))
fseek($fp, 0);        // if at end, go to start
The second is that you can seek for a word of a particular length:You check each word
that you pull from the dictionary,and,if it is not between 
$min_length
and
$max_length
,you keep searching.At the same time,you also dump words with apostro-
phes (single quotation marks) in them.You could escape them out when using the word,
but just getting the next word is easier.
Back in 
reset_password()
,after you have generated a new password,you update the
database to reflect this and return the new password to the main script.This is then
passed on to 
notify_password()
,which emails it to the user.The 
notify_password()
function is shown in Listing 26.20.
Listing 26.19 Continued 
Documents you may be interested
Documents you may be interested