Beginning Php4

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 46

Dynamic Web Programming: Application and Transfer

Active Server Pages (ASP)

When a browser calls an ASP document, the ASP Server reads the .asp document and
1. 2. 3.

Substitutes appropriate files for the (server-side) include statements Runs the ASP code (Visual Basic Script see the Tutorial and Language Reference, ) Returns the resulting HTML code to the browser

Example (code, copy of database)

ASP Key Points (1)


ASP code enclosed in: <% VBScript code %> Everything outside is HTML The result of the combined HTML and ASP code must be a standard HTML document, e.g.:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Final//EN"> <html> <head> <title>Miracle Drug Study</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="Description" content=""><meta name="Keywords" content=""> <link rel=STYLESHEET type="text/css" href=""> </head> <body> </body> </html>

ASP Key Points (2)

Connect with database:


Create connection object:


set conn = Server.CreateObject("ADODB.Connection") conn.open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:\web\database\rescomp\study.mdb")

Open connection:

Submit a (read-only) Query:

Generate SQL statement:

SQL = "SELECT FirstName, LastName, DOB, Gender FROM Patients WHERE Gender = '" & Gender & "' ORDER BY FirstName DESC"

set Patients = conn.execute(SQL)

ASP Key Points (3)


Move

through the data records:

do while NOT Patients.eof Name = Patients(0) & " " & Patients(1) Patients.MoveNext loop

Add

to or edit table:
set RS = Server.CreateObject("ADODB.Recordset") RS.Open table name", conn, , adLockOptimistic, adCmdTable (where adLockOptimistic = 3, adCmdTable = 2)

Create and open Record Set object:

ASP Key Points (4)

Add to or edit table (continued): Create new record, Edit, & Update:

RS.AddNew RS(Dosage) = 200 RS.Update do while NOT RS.eof if RS(ID) = 7 then RS(Dosage) = 200 RS.Update else RS.MoveNext end if loop

Or Find desired record, Edit, & Update :

ASP Key Points (5)


Clean

up (free server resources) when done:

Queries:
Patients.Close

set Patients = nothing

Record Sets:
RS.Close

set RS = nothing

The Connection:
conn.close

set conn = nothing

ASP Security
Apart

from various Internet Information Services (IIS Windows Web service) security holes (for viruses and worms), security is quite good. Use https:// if you want to protect content over the internet provides Secure Socket Layer (SSL) security

ASP Resources
ASP Introduction
Microsofts

VBScript Tutorial & Language Reference (also here) WebMonkeys tutorial

ColdFusion

Easy-to-learn Server-Side Scripting Language: CFML, or Cold Fusion Markup Language, is embedded in HTML code CF code is enclosed in or by CF tags:

<CFtagname CF code > <Cftagname > CF Code </Cftagname >

Documents must end in .cfm ColdFusion is Case Insensitive Example (code, copy of database)

ColdFusion Key Points (1)

All

#variables# are enclosed in # signs HTML output which includes of CF variables must be surrounded by CF output tags; e.g.:

<Cfset height = tall> <CFoutput> The <B>#height#</B> boy fell. <Cfoutput>

ColdFusion Key Points (1)

Connect with database and run query simultaneously:

<CFQUERY Name="Patients" dbtype="dynamic" connectstring="#DBdriver# #DBfile#"> SELECT ID, FirstName, LastName FROM Patients ORDER BY FirstName </CFQUERY>

Where the variables are defined beforehand:


<CFset Dbdriver = "Driver={MICROSOFT ACCESS DRIVER (*.mdb)}; UID=admin; PWD=; dbq="> <CFset Dbfile = "f:\web\database\rescomp\study.mdb">

ColdFusion Key Points (2)

Access Query Results

<SELECT name="PatientID">

<CFoutput QUERY="Patients"> <OPTION value=#ID#>#FirstName# #LastName# </CFoutput>


</SELECT>

Insert Data from a Form

If a HTML form submits variables to be inserted, do so directly using CFinsert:

<CFinsert tablename="Treatment" dbtype="dynamic" connectstring="#DBdriver# #DBfile#">

All variables in the form object (e.g. Form.var1) that match attributes in the table are inserted into the table automatically

ColdFusion Key Points (3)


Insert

Data using Cfquery (SQL):

<CFquery name="Treatment" dbtype="dynamic" connectstring="#DBdriver# #DBfile#"> INSERT into Treatment VALUES (#PatientID#, #EventID#, Now(), #Dosage(mg)#, #Severity#, #Time#) </CFquery>

Other

Data editing features also available; see documentation

Cold Fusion Resources

Cold Fusion Introduction

Allaire/Macromedias

Documentation Web page


Developing CF Applications CFML Reference CFML Quick Reference

WebMonkeys

tutorial Security links page

Practical Extraction and Report Language (Perl)


Ubiquitous

Originally designed to be a better general purpose tool than a Unix shell, it has grown and spread to be supported from Windows to Macintosh to VMS.

Powerful

but Cryptic Example (code)

Perl Key Points (1)


The

file itself must end in .cgi or .pl First line must specify the location of the Perl engine (The DBI module will not work for #!/usr/local/bin /perl[5] see below):

#!/uva/bin/perl -w

First

printed line must be the following if you want its response to go to a browser:
print "Content-type: text/html\n\n";

Perl Key Points (3)


Set

the usual parameters:

my $hostname = lebec.tc.edu"; my $username = gordie"; # "my" defines a local variable my $password = mine122"; my $database = $username . "_study"; # = dld5s_study my $data_source = "DBI:mysql:$database:$hostname";

Connect

to the database:

my $dbh = DBI->connect($data_source, $username, $password) or die "Can't connect to $data_source: $DBI::errstr\n";

Perl Key Points (4)


Define

the SQL statement and execute

my $SQL = "SELECT FirstName, LastName, DOB, Gender FROM Patients WHERE Gender = '$Gender ORDER BY FirstName DESC"; my $sth = $dbh->prepare($SQL) or die "Unable to prepare $SQL: dbh->errstr\n"; $sth->execute or die "Unable to execute query: $dbh->errstr\n";

Clean

up

$sth->finish; $dbh->disconnect;

Perl Resources

Perl Programming Introduction Perl Programming for the Web Overview, Built-in functions, Data types, Regular expressions, Modules: DBI(1), DBI(2), CGI

Perl Documentation

WebMonkeys Tutorial, etc. MySQL and PERL for the Web by DuBois (New Riders) Learning Perl by Schwartz & Christiansen (OReilly) Programming Perl by Wall, Orwant, & Christiansen (OReilly) Programming the Perl DBI: Database Programming with Perl by Descartes, Bunce, & Mui (Editor) (OReilly)

PHP
Example Add

Source Index Source

PHP: Hypertext Preprocessor (PHP )


HTML

embedding scripting language (see the PHP online manual When a browser calls a PHP document, the Server reads the PHP document and

Runs the PHP code Returns the resulting HTML code to the browser

Example

(code)

PHP Key Points (1)


Filename

must end in .php or .phtml PHP code enclosed in <?php PHP code ?> or <? PHP code ?> Everything outside is HTML Output is (generally) to a browser requiring standard HTML

PHP Key Points (2)


Connecting with RDBMS and editing, adding, and deleting databases therein are all done through PHP functions Connect with MySQL RDBMS

mysql_connect($hostName, $userName, $password) or die("Unable to connect to host $hostName"); mysql_select_db($dbName) or die("Unable to select database $dbName");

Connect with database

PHP Key Points (3)


Queries: Nearly all table interaction and management is done through queries: Basic information searches

$SQL = "SELECT FirstName, LastName, DOB, Gender FROM Patients WHERE Gender = '$Gender ORDER BY FirstName DESC"; $Patients = mysql_query($SQL); $SQL = "INSERT INTO Patients (FirstName, LastName) VALUES('$firstName', '$lastName')"; $Patients = mysql_query($SQL);

Editing, adding, and deleting records and tables

PHP Key Points (4)


Cleaning

up: close the database connection

mysql_close();

PHP/MySQL Security
The

same problems as PHP occur with Perl if you run it as a Perl or CGI script.
See the passwords link

PHP Resources

PHP and MySQL

PHP

Documentation PHPs Tutorial WebMonkeys Tutorial PHP and MySQL Web Development by Welling & Thomson (SAMS) Beginning PHP4 by Blan, Choi, et. al (Wrox)

(Other) Books

MySQL by DuBois (New Riders) MySQL and PERL for the Web by DuBois (New Riders) MySQL & mSQL byYarger, Reese, & King PHP and MySQL Web Development by Welling & Thomson (SAMS) Beginning PHP4 by Blan, Choi, et. al (Wrox) Learning Perl by Schwartz & Christiansen (OReilly) Programming Perl by Wall, Orwant, & Christiansen (OReilly) Programming the Perl DBI: Database Programming with Perl by Descartes, Bunce, & Mui (Editor) (OReilly) SQL-99 Complete, Really by Gulutzan & Pelzer (R&D Books)

PHP

PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML. PHP is a project of the Apache Software Foundation. PHP stands for PHP: Hypertext Preprocessor.

Lets get started.

As we already said PHP can be embedded into HTML:

#!/usr/local/bin/php <html> <body> <?php echo Hello I am a PHP script; ?> </body> </html>

First file
Save

the file with a PHP extension in your public_html folder. Give the webserver execute permission (chmod 755 hello.php is the easiest way to do this) Point a webserver at the file Lets look at the first line of the file #!/usr/local/bin/php

Something more Useful


<?php echo $_SERVER["REMOTE_ADDR]; ?>
What is echo(); ? echo() is a PHP function which prints output to the webpage, php has many functions that do this, print(), printf() are two examples. What is $_SERVER?! $_SERVER is a special reserved PHP variable that contains all web server information. It's known as an Autoglobal (or Superglobal).

Mixin and matchin PHP & HTML


<?php if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) { ?> <h3>strstr must have returned true</h3> <center><b>You are using Internet Explorer</b> </center> <?php } else { ?> <h3>strstr must have returned false</h3> <center><b>You are not using Internet Explorer</b></center> <?php } ?>
Here we see you can mix and match HTML and PHP together, this is because PHP does the PHP bit first, its output is HTML and then bangs all the HTML together.

PHP Forms
Forms are a useful part of any internet site, and Im sure youve used them in the past. Forms are part of HTML, however you can pass their values to a PHP script. Here is a simple HTML form which you can put in any HTML file:
<form action="action.php" method="POST"> Your name: <input type="text" name="name"> Your age: <input type="text" name="age"> <input type="submit"> </form>

This isnt specific to PHP, the only thing to notice is how we pass the values to action.php

Handling POST data


Now we edit action.php (of course this file can be called whatever, as long as the form passes it on).
Hi <?php echo $_POST["name"]; ?>. You are <?php echo $_POST["age"]; ?> years old.

Handling POST data


$_POST[] is an autoglobal array which gets created at every webpage by the server. Sample out put from our script would be: HiJoe.Youare22yearsold

Data Types
There are eight data types in PHP (which isnt a lot), Im going to cover three, the others are not used a lot and would be considered advanced in the contexts of PHP anyways. Data types in PHP, unlike, are flexible or not strict, and are refrenced the same way, so inter-chaging is simple.

Data Types
$bool=TRUE;//aboolean $str="foo";//astring $int=12;//aninteger echogettype($bool);//printsout"boolean" echogettype($str);//printsout"string" //Ifthisisaninteger,incrementitbyfour if(is_int($int)){$int+=4;} /*If$boolisastring,printitout(doesnot printoutanything)*/ if(is_string($bool)){ echo"String:$bool"; }

Manulipating Data Types These types can be added, subtracted, concatinated like they can be in C or Java
$a = 5; $b = 4; Echo ($a + $b); // prints 9! $string = touch; $end = down; Echo $string.$end; //prints touchdown!

Control Structures
If:
$hey = TRUE; If($hey) { printf(Hello\n); } else { printf(Never gona see this!\n); }

While
$a = 0; While($a < 100) { printf(hello $a\n); a++; } Prints all the numbers from 0 to 99.

For & others


For($a = 0; $a < 100; $a++){ printf(Hello $a\n); }
//prints all the numbers from 0 to 99 again PHP has also all the other control structures you can think of, until, do, switch, : ?

Global Variables
Weve already seen the use of some global or Super variables in $_POST and $_SERVER. Theres a good few of them which can be useful to make your site more personal. To get a list of them, create this PHP file.
#!/usr/local/bin/php <?php phpinfo(); ?>

Resources This helpdesk tutorial like the others is just geared to get you started at PHP coding. PHPs website is the best resource for consultation, www.php.net it has a simple to follow tutorial (you might find striking resemblances with tonites!), as well as a manual page for every function in PHP. I recommend you go to the site for more detailed descriptions of what we did tonite.

Why is PHP good?


Php is good for a number of reasons Easy to use Well documented Large library Good Database interaction Good for Projects!! See Paul Acquaros class this Summer.

You might also like