Learning PHP MySQL JavaScript With jQuery CSS HTML5 Early Release 5th 5th Edition Robin Nixon All Chapters Instant Download
Learning PHP MySQL JavaScript With jQuery CSS HTML5 Early Release 5th 5th Edition Robin Nixon All Chapters Instant Download
https://ebookfinal.com
https://ebookfinal.com/download/learning-php-
mysql-javascript-with-jquery-css-html5-early-
release-5th-5th-edition-robin-nixon/
https://ebookfinal.com/download/learning-php-mysql-javascript-and-
css-2nd-edition-robin-nixon/
ebookfinal.com
https://ebookfinal.com/download/css-floating-floats-and-float-shapes-
early-release-1-early-release-edition-eric-a-meyer/
ebookfinal.com
https://ebookfinal.com/download/thoughtful-machine-learning-with-
python-early-release-matthew-kirk/
ebookfinal.com
https://ebookfinal.com/download/html5-programming-with-javascript-for-
dummies-mueller/
ebookfinal.com
Learning jQuery 4th Edition Better interaction design and
web development with simple JavaScript techniques Jonathan
Chaffer
https://ebookfinal.com/download/learning-jquery-4th-edition-better-
interaction-design-and-web-development-with-simple-javascript-
techniques-jonathan-chaffer/
ebookfinal.com
https://ebookfinal.com/download/php-mysql-novice-to-ninja-5th-edition-
the-easy-way-to-build-your-own-database-driven-website-kevin-yank/
ebookfinal.com
https://ebookfinal.com/download/starting-out-with-c-early-objects-5th-
edition-tony-gaddis/
ebookfinal.com
https://ebookfinal.com/download/core-web-application-development-with-
php-and-mysql-1-printing-edition-wandschneider/
ebookfinal.com
Learning PHP MySQL JavaScript With jQuery CSS
HTML5 Early Release 5th 5th Edition Robin Nixon
Digital Instant Download
Author(s): Robin Nixon
ISBN(s): 9781491978917, 1491978910
Edition: 5
File Details: PDF, 7.50 MB
Year: 2018
Language: english
Learning PHP, MySQL, & JavaScript
With jQuery, CSS, & HTML5
Fifth Edition
Robin Nixon
In fact, anyone ready to learn the fundamentals behind the Web 2.0 technology known as Ajax
will obtain a thorough grounding in all of these core technologies: PHP, MySQL, JavaScript,
CSS, and HTML5, and learn the basics of the jQuery and jQuery Mobile libraries too.
Assumptions This Book Makes
This book assumes that you have a basic understanding of HTML and can at least put together a
simple, static website, but does not assume that you have any prior knowledge of PHP, MySQL,
JavaScript, CSS, or HTML5—although if you do, your progress through the book will be even
quicker.
Organization of This Book
The chapters in this book are written in a specific order, first introducing all of the core
technologies it covers and then walking you through their installation on a web development
server so that you will be ready to work through the examples.
In the first section, you will gain a grounding in the PHP programming language, covering the
basics of syntax, arrays, functions, and object-oriented programming.
Then, with PHP under your belt, you will move on to an introduction to the MySQL database
system, where you will learn everything from how MySQL databases are structured to how to
generate complex queries.
After that, you will learn how you can combine PHP and MySQL to start creating your own
dynamic web pages by integrating forms and other HTML features. Following that, you will get
down to the nitty-gritty practical aspects of PHP and MySQL development by learning a variety
of useful functions and how to manage cookies and sessions, as well as how to maintain a high
level of security.
In the next few chapters, you will gain a thorough grounding in JavaScript, from simple
functions and event handling to accessing the Document Object Model and in-browser validation
and error handling, plus a comprehensive primer on using the popular jQuery library for
JavaScript.
With an understanding of all three of these core technologies, you will then learn how to make
behind-the-scenes Ajax calls and turn your websites into highly dynamic environments.
Next, you’ll spend two chapters learning all about using CSS to style and lay out your web
pages, before discovering how the jQuery libraries can make your development job a great deal
easdier, and then moving on to the final section on the interactive features built into HTML5,
including geolocation, audio, video, and the canvas. After this, you’ll put together everything
you’ve learned in a complete set of programs that together constitute a fully functional social
networking website.
Along the way, you’ll find plenty of advice on good programming practices and tips that could
help you find and solve hard-to-detect programming errors. There are also plenty of links to
websites containing further details on the topics covered.
Supporting Books
Once you have learned to develop using PHP, MySQL, JavaScript, CSS, and HTML5, you will
be ready to take your skills to the next level using the following O’Reilly reference books. To
learn more about any of these titles, simply enter the ISBN shown next to it into the search box at
http://oreilly.com or at any good online book seller’s website.
Plain text
Indicates menu titles, options, and buttons.
Italic
Indicates new terms, URLs, email addresses, filenames, file extensions, pathnames,
directories, and Unix utilities.
Constant width
Indicates command-line options, variables and other code elements, HTML tags, macros,
and the contents of files.
Constant width bold
Shows program output or highlighted sections of code that are discussed in the text.
Constant width italic
Shows text that should be replaced with user-supplied values.
Note
Warning
We appreciate, but do not require, attribution. An attribution usually includes the title, author,
publisher, and ISBN. For example: “Learning PHP, MySQL & JavaScript, 5th Edition by Robin
Nixon (O’Reilly). Copyright 2018 Robin Nixon,
.”
If you feel your use of code examples falls outside fair use or the permission given above, feel
free to contact us at [email protected].
How to Contact Us
Please address comments and questions concerning this book to the publisher:
Sebastopol, CA 95472
We have a web page for this book, where we list errata, examples, and any additional
information. You can access this page at http://bit.ly/lpmjch_4e.
For more information about our books, courses, conferences, and news, see our website at
http://www.oreilly.com.
??? ??? for his comprehensive technical review, ??? ??? for overseeing production, ??? ??? for
copy editing, ??? ??? for proofreading, Robert Romano and Rebecca Demarest for their
illustrations, ??? ??? for interior design, ??? ??? for creating the index, Karen Montgomery for
the original sugar glider front cover design, ??? ??? for the latest book cover, and everyone else
too numerous to name who submitted errata and offered suggestions for this new edition.
Chapter 1. Introduction to Dynamic Web
Content
The World Wide Web is a constantly evolving network that has already traveled far beyond its
conception in the early 1990s, when it was created to solve a specific problem. State-of-the-art
experiments at CERN (the European Laboratory for Particle Physics—now best known as the
operator of the Large Hadron Collider) were producing incredible amounts of data—so much
that the data was proving unwieldy to distribute to the participating scientists who were spread
out across the world.
At this time, the Internet was already in place, connecting several hundred thousand computers,
so Tim Berners-Lee (a CERN fellow) devised a method of navigating between them using a
hyperlinking framework, which came to be known as Hypertext Transfer Protocol, or HTTP. He
also created a markup language called Hypertext Markup Language, or HTML. To bring these
together, he wrote the first web browser and web server, tools that we now take for granted.
But back then, the concept was revolutionary. The most connectivity so far experienced by at-
home modem users was dialing up and connecting to a bulletin board that was hosted by a single
computer, where you could communicate and swap data only with other users of that service.
Consequently, you needed to be a member of many bulletin board systems in order to effectively
communicate electronically with your colleagues and friends.
But Berners-Lee changed all that in one fell swoop, and by the mid-1990s, there were three
major graphical web browsers competing for the attention of 5 million users. It soon became
obvious, though, that something was missing. Yes, pages of text and graphics with hyperlinks to
take you to other pages was a brilliant concept, but the results didn’t reflect the instantaneous
potential of computers and the Internet to meet the particular needs of each user with
dynamically changing content. Using the Web was a very dry and plain experience, even if we
did now have scrolling text and animated GIFs!
Shopping carts, search engines, and social networks have clearly altered how we use the Web. In
this chapter, we’ll take a brief look at the various components that make up the Web, and the
software that helps make it a rich and dynamic experience.
Note
It is necessary to start using some acronyms more or less right away. I have tried to clearly
explain them before proceeding. But don’t worry too much about what they stand for or what
these names mean, because the details will become clear as you read on.
(1)
HTTP and HTML: Berners-Lee’s Basics
HTTP is a communication standard governing the requests and responses that take place between
the browser running on the end user’s computer and the web server. The server’s job is to accept
a request from the client and attempt to reply to it in a meaningful way, usually by serving up a
requested web page—that’s why the term server is used. The natural counterpart to a server is a
client, so that term is applied both to the web browser and the computer on which it’s running.
Between the client and the server there can be several other devices, such as routers, proxies,
gateways, and so on. They serve different roles in ensuring that the requests and responses are
correctly transferred between the client and server. Typically, they use the Internet to send this
information. Some of these in-between devices can also help speed up the Internet by storing
pages or information locally in what is called a cache, and then serving these up to clients
directly from this cache, rather than fetching them all the way from the source server.
A web server can usually handle multiple simultaneous connections and—when not
communicating with a client—spends its time listening for an incoming connection. When one
arrives, the server sends back a response to confirm its receipt.
(2)
The Request/Response Procedure
At its most basic level, the request/response process consists of a web browser asking the web
server to send it a web page and the server sending back the page. The browser then takes care of
displaying the page (see Figure 1-1).
(3)
Figure 1-1. The basic client/server request/response sequence
4. The request crosses the Internet and arrives at the server.com web server.
5. The web server, having received the request, looks for the web page on its disk.
6. The web page is retrieved by the server and returned to the browser.
For an average web page, this process takes place once for each object within the page: a
graphic, an embedded video or Flash file, and even a CSS template.
(4)
In step 2, notice that the browser looked up the IP address of server.com. Every machine attached
to the Internet has an IP address—your computer included. But we generally access web servers
by name, such as google.com. As you probably know, the browser consults an additional Internet
service called the Domain Name Service (DNS) to find its associated IP address and then uses it
to communicate with the computer.
For dynamic web pages, the procedure is a little more involved, because it may bring both PHP
and MySQL into the mix. For instance, you may click on a picture of a raincoat. The PHP will
put together a request using the standard database language, SQL—many of whose commands
you will learn in this book—and send the request to the MySQL server. The MySQL server will
return information about the raincoat you selected, and the PHP code will wrap it all up in some
HTML, which the server will send to your browser (see Figure 1-2).
(5)
Figure 1-2. A dynamic client/server request/response sequence
3. Your browser issues a request to that address for the web server’s home page.
4. The request crosses the Internet and arrives at the server.com web server.
5. The web server, having received the request, fetches the home page from its hard disk.
6. With the home page now in memory, the web server notices that it is a file incorporating
PHP scripting and passes the page to the PHP interpreter.
8. Some of the PHP contains SQL statements, which the PHP interpreter now passes to the
(6)
MySQL database engine.
9. The MySQL database returns the results of the statements to the PHP interpreter.
10. The PHP interpreter returns the results of the executed PHP code, along with the results
from the MySQL database, to the web server.
11. The web server returns the page to the requesting client, which displays it.
Although it’s helpful to be aware of this process so that you know how the three elements work
together, in practice you don’t really need to concern yourself with these details, because they all
happen automatically.
HTML pages returned to the browser in each example may well contain JavaScript, which will
be interpreted locally by the client, and which could initiate another request—the same way
embedded objects such as images would.
(7)
The Benefits of PHP, MySQL, JavaScript,
CSS, and HTML5
At the start of this chapter, I introduced the world of Web 1.0, but it wasn’t long before the rush
was on to create Web 1.1, with the development of such browser enhancements as Java,
JavaScript, JScript (Microsoft’s slight variant of JavaScript), and ActiveX. On the server side,
progress was being made on the Common Gateway Interface (CGI) using scripting languages
such as Perl (an alternative to the PHP language) and server-side scripting—inserting the
contents of one file (or the output of running a local program) into another one dynamically.
Once the dust had settled, three main technologies stood head and shoulders above the others.
Although Perl was still a popular scripting language with a strong following, PHP’s simplicity
and built-in links to the MySQL database program had earned it more than double the number of
users. And JavaScript, which had become an essential part of the equation for dynamically
manipulating Cascading Style Sheets (CSS) and HTML, now took on the even more muscular
task of handling the client side of the asynchronous communication (exchanging data between a
client and server after a web page has loaded). Using asynchronous communication, web pages
perform data handling and send requests to web servers in the background—without the web
user being aware that this is going on.
No doubt the symbiotic nature of PHP and MySQL helped propel them both forward, but what
attracted developers to them in the first place? The simple answer has to be the ease with which
you can use them to quickly create dynamic elements on websites. MySQL is a fast and
powerful, yet easy-to-use, database system that offers just about anything a website would need
in order to find and serve up data to browsers. When PHP allies with MySQL to store and
retrieve this data, you have the fundamental parts required for the development of social
networking sites and the beginnings of Web 2.0.
And when you bring JavaScript and CSS into the mix too, you have a recipe for building highly
dynamic and interactive websites, especially when there is now a wide range of sophisticated
frameworks of JavaScript functions you can now call on to really speed up web development,
such as the well-known jQuery, which is now probably the most common way programmers
access asynchronous communication features.
(8)
Using PHP
With PHP, it’s a simple matter to embed dynamic activity in web pages. When you give pages
the .php extension, they have instant access to the scripting language. From a developer’s point
of view, all you have to do is write code such as the following:
<?php
echo " Today is " . date("l") . ". ";
?>
The opening <?php tells the web server to allow the PHP program to interpret all the following
code up to the ?> tag. Outside of this construct, everything is sent to the client as direct HTML.
So the text Here's the latest news. is simply output to the browser; within the PHP tags, the
built-in date function displays the current day of the week according to the server’s system time.
PHP is a flexible language, and some people prefer to place the PHP construct directly next to
PHP code, like this:
Today is <?php echo date("l"); ?>. Here's the latest news.
There are even more ways of formatting and outputting information, which I’ll explain in the
chapters on PHP. The point is that with PHP, web developers have a scripting language that,
although not as fast as compiling your code in C or a similar language, is incredibly speedy and
also integrates seamlessly with HTML markup.
Note
If you intend to enter the PHP examples in this book to work along with me, you must remember
to add <?php in front and ?> after them to ensure that the PHP interpreter processes them. To
facilitate this, you may wish to prepare a file called example.php with those tags in place.
Using PHP, you have unlimited control over your web server. Whether you need to modify
HTML on the fly, process a credit card, add user details to a database, or fetch information from
a third-party website, you can do it all from within the same PHP files in which the HTML itself
resides.
(9)
Using MySQL
Of course, there’s not a lot of point to being able to change HTML output dynamically unless
you also have a means to track the information users provide to your website as they use it. In the
early days of the Web, many sites used “flat” text files to store data such as usernames and
passwords. But this approach could cause problems if the file wasn’t correctly locked against
corruption from multiple simultaneous accesses. Also, a flat file can get only so big before it
becomes unwieldy to manage—not to mention the difficulty of trying to merge files and perform
complex searches in any kind of reasonable time.
That’s where relational databases with structured querying become essential. And MySQL, being
free to use and installed on vast numbers of Internet web servers, rises superbly to the occasion.
It is a robust and exceptionally fast database management system that uses English-like
commands.
The highest level of MySQL structure is a database, within which you can have one or more
tables that contain your data. For example, let’s suppose you are working on a table called users,
within which you have created columns for surname, firstname, and email, and you now wish to
add another user. One command that you might use to do this is as follows:
INSERT INTO users VALUES('Smith', 'John', '[email protected]');
You will previously have issued other commands to create the database and table and to set up
all the correct fields, but the INSERT command here shows how simple it can be to add new data to
a database. INSERT is an example of Structured Query Language (SQL), a language designed in
the early 1970s and reminiscent of one of the oldest programming languages, COBOL. It is well
suited, however, to database queries, which is why it is still in use after all this time.
It’s equally easy to look up data. Let’s assume that you have an email address for a user and need
to look up that person’s name. To do this, you could issue a MySQL query such as the following:
SELECT surname,firstname FROM users WHERE email='[email protected]';
MySQL will then return Smith, John and any other pairs of names that may be associated with
that email address in the database.
As you’d expect, there’s quite a bit more that you can do with MySQL than just simple INSERT
and SELECT commands. For example, you can combine related data sets to bring related pieces of
information together, ask for results in a variety of orders, make partial matches when you know
only part of the string that you are searching for, return only the nth result, and a lot more.
Using PHP, you can make all these calls directly to MySQL without having to directly access the
MySQL command line interface yourself. This means you can save the results in arrays for
processing and perform multiple lookups, each dependent on the results returned from earlier
ones, to drill down to the item of data you need.
For even more power, as you’ll see later, there are additional functions built right into MySQL
that you can call up to efficiently run common operations within MySQL, rather than create them
out of multiple PHP calls to MySQL.
(10)
Using JavaScript
The oldest of the three core technologies in this book, JavaScript, was created to enable scripting
access to all the elements of an HTML document. In other words, it provides a means for
dynamic user interaction such as checking email address validity in input forms, and displaying
prompts such as “Did you really mean that?” (although it cannot be relied upon for security,
which should always be performed on the web server).
Combined with CSS (see the following section), JavaScript is the power behind dynamic web
pages that change in front of your eyes rather than when a new page is returned by the server.
However, JavaScript can also be tricky to use, due to some major differences in the ways
different browser designers have chosen to implement it. This mainly came about when some
manufacturers tried to put additional functionality into their browsers at the expense of
compatibility with their rivals.
Thankfully, the developers have mostly now come to their senses and have realized the need for
full compatibility with one another, so it is less necessary these days to have to optimise your
code for different browsers. However there remain millions of legacy browsers that will be in use
for a good many years to come. Luckily, there are solutions for the incompatibility problems, and
later in this book we’ll look at libraries and techniques that enable you to safely ignore these
differences.
For now, let’s take a look at how to use basic JavaScript, accepted by all browsers:
<script type="text/javascript">
document.write("Today is " + Date() );
</script>
This code snippet tells the web browser to interpret everything within the script tags as
JavaScript, which the browser then does by writing the text Today is to the current document,
along with the date, by using the JavaScript function Date. The result will look something like
this:
Today is Sun Jan 01 2017 01:23:45
Note
Unless you need to specify an exact version of JavaScript, you can normally omit the
type="text/javascript" and just use <script> to start the interpretation of the JavaScript.
As previously mentioned, JavaScript was originally developed to offer dynamic control over the
various elements within an HTML document, and that is still its main use. But more and more,
JavaScript is being used for asynchronous communication, the process of accessing the web
server in the background.
Asynchronous communication is the process in which web pages begin to resemble standalone
programs, because they don’t have to be reloaded in their entirety. Instead, an asynchronous call
can pull in and update a single element on a web page, such as changing your photograph on a
social networking site or replacing a button that you click with the answer to a question. This
subject is fully covered in [Link to Come].
(11)
Then, in [Link to Come], we take a good look at the jQuery framework, which you can use to
save reinventing the wheel when you need fast, cross-browser code to manipulate your web
pages. Of course, there are other frameworks available too, but jQuery is by far the most popular.
Due to continuous maintenance, it is extremely reliable, and a major tool in the utility kit of
many seasoned web developers.
(12)
Using CSS
CSS is the crucial companion to HTML, ensuring that the HTML text and embeddd images are
laid out consistently and in a manner appropriate for the user’s screen. With the emergence of the
CSS3 standard in recent years, CSS now offers a level of dynamic interactivity previously
supported only by JavaScript. For example, not only can you style any HTML element to change
its dimensions, colors, borders, spacing, and so on, but now you can also add animated
transitions and transformations to your web pages, using only a few lines of CSS.
Using CSS can be as simple as inserting a few rules between <style> and </style> tags in the
head of a web page, like this:
<style>
p {
text-align:justify;
font-family:Helvetica;
}
</style>
These rules change the default text alignment of the <p> tag so that paragraphs contained in it are
fully justified and use the Helvetica font.
As you’ll learn in [Link to Come], there are many different ways you can lay out CSS rules, and
you can also include them directly within tags or save a set of rules to an external file to be
loaded in separately. This flexibility not only lets you style your HTML precisely, but can also
(for example) provide built-in hover functionality to animate objects as the mouse passes over
them. You will also learn how to access all of an element’s CSS properties from JavaScript as
well as HTML.
(13)
And Then There’s HTML5
As useful as all these additions to the web standards became, they were not enough for ever more
ambitious developers. For example, there was still no simple way to manipulate graphics in a
web browser without resorting to plug-ins such as Flash. And the same went for inserting audio
and video into web pages. Plus, several annoying inconsistencies had crept into HTML during its
evolution.
So, to clear all this up and take the Internet beyond Web 2.0 and into its next iteration, a new
standard for HTML was created to address all these shortcomings. It was called HTML5 and it
began development as long ago as 2004, when the first draft was drawn up by the Mozilla
Foundation and Opera Software (developers of two popular web browsers). But it wasn’t until
the start of 2013 that the final draft was submitted to the World Wide Web Consortium (W3C),
the international governing body for web standards.
It has taken a few years for HTML5 to develop, but now we are at a very solid and stable version
5.1 (since 2016). But it’s a never-ending cycle of development, and more functionality is sure to
be built into it over time. Some of the best features in HTML5 for handling and displaying media
include the <audio>, <video>, and <canvas> elements, which add sound, video and advanced
graphics. Everything you need to know about these and all other aspects of HTML5 is covered in
detail starting in [Link to Come].
Note
One of the little things I like about the HTML5 specification is that XHTML syntax is no longer
required for self-closing elements. In the past, you could display a line break using the <br>
element. Then, to ensure future compatibility with XHTML (the planned replacement for HTML
that never happened), this was changed to <br />, in which a closing / character was added (since
all elements were expected to include a closing tag featuring this character). But now things have
gone full circle, and you can use either version of these types of element. So, for the sake of
brevity and fewer keystrokes, in this book I have reverted to the former style of <br>, <hr>, and so
on.
(14)
The Apache Web Server
In addition to PHP, MySQL, JavaScript, CSS, and HTML5, there’s a sixth hero in the dynamic
Web: the web server. In the case of this book, that means the Apache web server. We’ve
discussed a little of what a web server does during the HTTP server/client exchange, but it does
much more behind the scenes.
For example, Apache doesn’t serve up just HTML files—it handles a wide range of files from
images and Flash files to MP3 audio files, RSS (Really Simple Syndication) feeds, and so on.
And these objects don’t have to be static files such as GIF images. They can all be generated by
programs such as PHP scripts. That’s right: PHP can even create images and other files for you,
either on the fly or in advance to serve up later.
To do this, you normally have modules either precompiled into Apache or PHP or called up at
runtime. One such module is the GD (Graphics Draw) library, which PHP uses to create and
handle graphics.
Apache also supports a huge range of modules of its own. In addition to the PHP module, the
most important for your purposes as a web programmer are the modules that handle security.
Other examples are the Rewrite module, which enables the web server to handle a varying range
of URL types and rewrite them to its own internal requirements, and the Proxy module, which
you can use to serve up often-requested pages from a cache to ease the load on the server.
Later in the book, you’ll see how to use some of these modules to enhance the features provided
by the three core technologies.
(15)
Handling mobile devices
We are now firmly in a world of interconnected mobile computing devices, and the concept of
developing websites solely for desktop computers is now rather dated. Instead developers now
aim to develop responsive websites and web apps that tailor themselves to the environment in
which they find themselves running.
So, new in this edition, I show how you can easily create these types of products using just the
technologies detailed in this book, along with the powerful jQuery Mobile library of responsive
JavaScript functions. With it, you’ll be able to focus on the content and usability of your
websites and web apps, knowing that how they display will be automatically optimised for a
range of different computing devices—one less thing for you to worry about.
To learn how to make full use of its power, the final chapter of this book creates a simple social
networking example website, using jQuery Mobile to make it fully responsive and display well
on anything from a small mobile phone screen to a tablet, or a desktop computer.
(16)
About Open Source
The technologies in this book are open source: anyone is allowed to read and change the code.
Whether or not this status is the reason these technologies are so popular has often been debated,
but PHP, MySQL, and Apache are the three most commonly used tools in their categories. What
can be said definitively, though, is that their being open source means that they have been
developed in the community by teams of programmers writing the features they themselves want
and need, with the original code available for all to see and change. Bugs can be found and
security breaches can be prevented before they happen.
There’s another benefit: all these programs are free to use. There’s no worrying about having to
purchase additional licenses if you have to scale up your website and add more servers. And you
don’t need to check the budget before deciding whether to upgrade to the latest versions of these
products.
(17)
Bringing It All Together
The real beauty of PHP, MySQL, JavaScript (sometimes aided by jQuery or other frameworks),
CSS, and HTML5 is the wonderful way in which they all work together to produce dynamic
web content: PHP handles all the main work on the web server, MySQL manages all the data,
and the combination of CSS and JavaScript looks after web page presentation. JavaScript can
also talk with your PHP code on the web server whenever it needs to update something (either on
the server or on the web page). And with the powerful new features in HTML5, such as the
canvas, audio and video, and geolocation, you can make your web pages highly dynamic,
interactive, and multimedia-packed.
Without using program code, let’s summarize the contents of this chapter by looking at the
process of combining some of these technologies into an everyday asynchronous communication
feature that many websites use: checking whether a desired username already exists on the site
when a user is signing up for a new account. A good example of this can be seen with Gmail (see
Figure 1-3).
Figure 1-3. Gmail uses asynchronous communication to check the availability of usernames
The steps involved in this asynchronous process would be similar to the following:
1. The server outputs the HTML to create the web form, which asks for the necessary details,
such as username, first name, last name, and email address.
2. At the same time, the server attaches some JavaScript to the HTML to monitor the
username input box and check for two things: (a) whether some text has been typed into it,
and (b) whether the input has been deselected because the user has clicked on another
input box.
(18)
3. Once the text has been entered and the field deselected, in the background the JavaScript
code passes the username that was entered back to a PHP script on the web server and
awaits a response.
4. The web server looks up the username and replies back to the JavaScript regarding
whether that name has already been taken.
5. The JavaScript then places an indication next to the username input box to show whether
the name is one available to the user—perhaps a green checkmark or a red cross graphic,
along with some text.
6. If the username is not available and the user still submits the form, the JavaScript
interrupts the submission and reemphasizes (perhaps with a larger graphic and/or an alert
box) that the user needs to choose another username.
7. Optionally, an improved version of this process could even look at the username requested
by the user and suggest an alternative that is currently available.
All of this takes place quietly in the background and makes for a comfortable and seamless user
experience. Without asynchronous communication, the entire form would have to be submitted
to the server, which would then send back HTML, highlighting any mistakes. It would be a
workable solution, but nowhere near as tidy or pleasurable as on-the-fly form-field processing.
Asynchronous communication can be used for a lot more than simple input verification and
processing, though; we’ll explore many additional things that you can do with it later in this
book.
In this chapter, you have read a good introduction to the core technologies of PHP, MySQL,
JavaScript, CSS, and HTML5 (as well as Apache), and have learned how they work together. In
Chapter 2, we’ll look at how you can install your own web development server on which to
practice everything that you will be learning.
(19)
Questions
1. What four components (at the minimum) are needed to create a fully dynamic web page?
2. What does HTML stand for?
3. Why does the name MySQL contain the letters SQL?
4. PHP and JavaScript are both programming languages that generate dynamic results for
web pages. What is their main difference, and why would you use both of them?
5. What does CSS stand for?
6. List three major new elements introduced in HTML5.
7. If you encounter a bug (which is rare) in one of the open source tools, how do you think
you could get it fixed?
8. Why is a framework such as jQuery Mobile so important for developing modern websites
and web apps?
(20)
Chapter 2. Setting Up a Development Server
If you wish to develop Internet applications but don’t have your own development server, you
will have to upload every modification you make to a server somewhere else on the Web before
you can test it.
Even on a fast broadband connection, this can still represent a significant slowdown in
development time. On a local computer, however, testing can be as easy as saving an update
(usually just a matter of clicking once on an icon) and then hitting the Refresh button in your
browser.
Another advantage of a development server is that you don’t have to worry about embarrassing
errors or security problems while you’re writing and testing, whereas you need to be aware of
what people may see or do with your application when it’s on a public website. It’s best to iron
everything out while you’re still on a home or small office system, presumably protected by
firewalls and other safeguards.
Once you have your own development server, you’ll wonder how you ever managed without
one, and it’s easy to set one up. Just follow the steps in the following sections, using the
appropriate instructions for a PC, a Mac, or a Linux system.
In this chapter, we cover just the server side of the web experience, as described in Chapter 1.
But to test the results of your work—particularly when we start using JavaScript, CSS, and
HTML5 later in this book—you should ideally have an instance of every major web browser
running on some system convenient to you. Whenever possible, the list of browsers should
include at least Internet Explorer, Mozilla Firefox, Opera, Safari, and Google Chrome. If you
plan to ensure that your sites look good on mobile devices too, you should try to arrange access
to a wide range of Apple iOS and Google Android phones and tablets.
(21)
What Is a WAMP, MAMP, or LAMP?
WAMP, MAMP, and LAMP are abbreviations for “Windows, Apache, MySQL, and PHP,”
“Mac, Apache, MySQL, and PHP,” and “Linux, Apache, MySQL, and PHP.” These
abbreviations describe a fully functioning setup used for developing dynamic Internet web pages.
WAMPs, MAMPs, and LAMPs come in the form of packages that bind the bundled programs
together so that you don’t have to install and set them up separately. This means you can simply
download and install a single program, and follow a few easy prompts, to get your web
development server up and running in the quickest time with a minimum hassle.
During installation, several default settings are created for you. The security configurations of
such an installation will not be as tight as on a production web server, because it is optimized for
local use. For these reasons, you should never install such a setup as a production server.
But for developing and testing websites and applications, one of these installations should be
entirely sufficient.
Warning
If you choose not to go the WAMP/MAMP/LAMP route for building your own development
system, you should know that downloading and integrating the various parts yourself can be very
time-consuming and may require a lot of research in order to configure everything fully. But if
you already have all the components installed and integrated with one another, they should work
with the examples in this book.
(22)
Installing Ampps on Windows
There are several available WAMP servers, each offering slightly different configurations, but
out of the various open source and free options, one of the best is Ampps. You can download it
by clicking the button on the website’s home page at ampps.com, as shown in Figure 2-1.
I recommend that you always download the latest stable release (as I write this, it’s 3.7, which is
a little over 200MB in size). The various Windows, OS X, and Linux installers are listed on the
download page.
Note
During the lifetime of this edition, some of the screens and options shown in the following walk-
through may change. If so, just use your common sense to proceed in as similar a manner as
possible to the sequence of actions described.
Once you’ve downloaded the installer, run it to bring up the window shown in Figure 2-2. Before
arriving at that window, though, if you use an anti-virus program or have User Account Control
activated on Windows, you may first be shown one or more advisory notices, and will have to
click Yes and/or OK to continue installation.
(23)
Figure 2-2. The opening window of the installer
Click Next, after which you must accept the agreement, click Next once again, and then once
more to move past the information screen. You will now need to confirm the installation
location, which will probably be suggested as something like the following, depending on the
letter of your main hard drive, but you can change this if you wish:
C:\Program Files (x86)\Ampps
Once you have decided where to install Ampps, click Next, choose a Start menu folder name,
and click Next. You can choose which icons you wish to install, as shown in Figure 2-3. On the
screen that follows, click the Install button to start the process off.
(24)
Figure 2-3. Choose which icons to install
Installation will take a few minutes, after which you should see the completion screen in
Figure 2-4, and you can click Finish.
(25)
The final thing you must do is install C++ Redistributable Visual Studio, if you haven’t already.
Visual Studio is an environment in which you’ll be doing development work. A window will pop
up to prompt you, as in Figure 2-5. Click Yes to start the installation or No if you are certain you
already have it.
Figure 2-5. Install C++ Redistributable Visual Studio if you don’t already have it
If you choose to go ahead and install, you will have to agree to the terms and conditions in the
pop-up window that appears, and then click Install. Installation of this should be fairly fast. Click
Close to finish.
Once Ampps is installed, the control window shown in Figure 2-6 should appear at the bottom-
right of your desktop. This window can also be called up using the Ampps application in the
Start menu, or on the desktop if you allowed these icons to be created.
(26)
Figure 2-6. The Ampps control window
Before proceeding, I recommend you acquaint yourself with the Ampps documentation available
at ampps.com/wiki. Once you have digested this, and should you still have an issue, there’s a
useful support link at the bottom of the control window that will take you to the Ampps website,
where you can open up a trouble ticket.
(27)
Other versions of PHP
You may notice that the default version of PHP in Ampps is 5.5. In other sections of this book I
detail some of the more important changes in PHP 7. So if you wish to try them out for yourself,
click the Options button (nine white boxes in a square) within the Ampps control window, and
then select Change PHP Version, whereupon a new menu will appear in which you can choose
between a number of versions from 5.3 up to 7.1.
(28)
Testing the Installation
The first thing to do at this point is verify that everything is working correctly. To do this, you
are going to try to display the default web page, which will have been saved in the server’s
document root folder (see Figure 2-7). Enter either of the following two URLs into the address
bar of your browser:
localhost
127.0.0.1
The word localhost is used in URLs to specify the local computer, which will also respond to the
IP address of 127.0.0.1, so you can use either method of calling up the document root of your
web server.
To ensure that you have everything correctly configured, you should now create the obligatory
“Hello World” file. So create a small HTML file along the following lines using Windows
Notepad or any other program or text editor, but not a rich word processor such as Microsoft
Word (unless you save as plain text):
<!DOCTYPE html>
<html lang="en">
<head>
<title>A quick test</title>
</head>
<body>
Hello World!
</body>
</html>
Once you have typed this, save the file into the document root directory previously discussed,
(29)
Random documents with unrelated
content Scribd suggests to you:
hänellä on hieman kuumetta. Sitten sanoo hän hyvää yötä ja sulkee
raukeat silmänsä sekä on hetkisen kuluttua nukkunut.
Lääkäri oli täällä, eikä sanonut juuri mitään. Täytyy odottaa, arveli
hän. Mutta minä olen levoton. Alan ymmärtää, että tauti voi kääntyä
vaarallisemmaksi. Ehkä muuttuu se tulirokoksi, jota liikkuu
kaupungissa. Hän on ehkä saanut tartunnan kadulla, joltakin
ohikulkevalta henkilöltä. Kaupungissa, tässä hyvän ja huonon
luonnottomassa yhtymäpaikassa on alttiina kaikelle. Kaupunki on
saituri, joka ei laske meitä kynsistään ennen kuin on imenyt meidät
kuiviin ja köyhdyttänyt, kaupunki on ruumiillisten ja henkisten tautien
pesäpaikka, josta ei kukaan pääse ilman poltinmerkkiä. Kaupunki on
antanut meille kuumeen, antanut Signelle kuumeen.
Toukokuun 29 päivä.
Toukokuun 30 päivä.
Lääkäri vaatii, että minun täytyy maata, että minä olen valvonut
neljä päivää ja yötä yhtä mittaa, ja etten minä voi kestää kauvempaa.
Minäkö en voisi kestää! Minä uhmailen sekä lääkäriä että kuolemaa,
minä tiedän, että minä kestän ja että minä elän niin kauvan kuin
lapsenikin elää. Jos Signe kuolee, silloin saatan minäkin kuolla.
Toukokuun 31 päivä.
"Armahda!"
Kesäkuun 2 päivänä.
Minuutin taiteilijana.
Se oli hauska ilta. Emäntä oli oikein toden perään pitänyt silmällä
keittäjää — tarjottiin oivallista kalaa, mainioita liharuokia ja
legymeriä, vino rosso vecchiota, marsalaa, kahvia ja certosaa ja
ilman täytti neilikkain, ruusujen ja narsissien lemu, ja mielissä vallitsi
iloinen tunnelma, että kevään aika oli tullut haaveiluineen, uhkuvine
ajatuksineen tulevaisuuden urotöistä ja aavistus siitä, että salaisuus,
jota kaikki odottivat, nyt julkaistaisiin loistavassa valossa —
kaikkihan tahtoivat onnitella Prima veraa ja kaikki tahtoivat kantaa
häntä käsillään.
Kun seurue vähän sen jälkeen käveli Viale dei Colli'a pitkin, sen
tuoksuavien pensaitten, vakavien sypressien ja kukkivien
kastanjoitten ja akasiain keskellä, missä satakielet lauloivat
viidakoissa, Valkosien, kuunvalaisemien huvilain ympärillä, ja jossa
tulikärpäset kimaltelivat kuin kipunat, silloin oli kevät kaikkialla,
kevään elämänhalu ja kevään surumielinen tunnelma, ei paljon
sanoja, mutta paljon ajatuksia ja tunteita — eikä kukaan ajatellut
pilkallista ajatusta viinuriraukasta, josta oli tullut taiteilija yhdeksi
minuutiksi, vaikka konservatooriossa oli väitetty, että hän oli aivan
mahdoton.
Girolamo.
1.
Niin kurjaa oli siis elämä tässä maailmassa, jossa kuitenkin on niin
paljon kaunista. Taivashan hymyili kirkkaana ja sinisenä tuolla
ylhäällä, meri loisti ihmeellisillä väreillä, aurinko kultasi seudun,
paistoi vainion vihreyteen, ruusut tuoksuivat pitkin puutarhan
käytäviä. Mutta kurjaa oli elämä, joka esiintyi kaikessa tässä
komeudessa, ylpeys ja petollisuus oli vallannut ihmisten sydämmet.
Ja hän, joka oli Saronin liljan ja Damaskon ruusun kaltainen, siellä,
missä hän tavallisesti istuu puutarhan suihkulähteen luona, hänkin
oli yhtynyt tähän, hänet oli saatu vedetyksi tähän elämään, elämään,
jossa ei huolittu huomispäivästä eikä sen koston hedelmistä. Hän,
joka oli kasvanut Danten ja kukkien kaupungissa, hän, jonka perhe
oli sortunut Mediciläisten juonien uhriksi ja karkoitettu
kotikaupungistaan, hän otti osaa näihin turhuuden ja nautinnonhimon
vallattomuuksiin? Hänetkin oli houkuteltu viekkaudella ja
petollisuudella, hänen kuuluisan nimensä tulisi loistaa siellä muiden
muassa — nimen Strozzi.
2.
Girolamo ei tietänyt oliko tie loppunut tai oliko hän poikennut siltä
syrjään, mutta hän kompastui kiviin ja turpeisiin ja luonto raivosi
kauheana hänen ympärillään. Hän huomasi sen yhtäkkiä ja ajatus
palasi takasin kotia kohti, jossa isä ja äiti kenties olivat levottomia.
Pilvet peittivät taivaan, salamat leimuivat, niin että hän näki vesien
kimaltelevan kaukana lakeudella ja ukkonen jyrisi. Girolamo tunsi,
kuinka hän lyyhistyi kokoon. Jännitys, joka niin kauan oli ylläpitänyt
hänen voimiaan herposi. Rajuilman raivon huumaamana, märkänä ja
voimattomana, tahtoi hän etsiä suojaa. Hän ei tietänyt, mihin hänen
tulisi kääntyä, tässä tuntemattomassa erämaassa, ei mitään polkua
näkynyt, eikä ihmisasuntoa ja väsyneenä ja voimattomana horjui hän
eteenpäin puiden alla. Silloin vilahti äkkiä salaman valossa puiden
lomasta rakennus. Tultuaan lähemmäksi, löysi hän luostarin ja
luostarin kirkosta loisti valo. Vaivoin löysi hän oven, aukasi sen ja
astui sisään.
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
ebookfinal.com