SlideShare une entreprise Scribd logo
1  sur  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 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") Open connection: conn.open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:ebatabaseescomptudy.mdb") 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.MoveNextloop Add to or edit table: Create and open Record Set object: set RS = Server.CreateObject("ADODB.Recordset")RS.Open “table name", conn, , adLockOptimistic, adCmdTable(where adLockOptimistic = 3, adCmdTable = 2)
ASP Key Points (4) Add to or edit table (continued): Create new record, Edit, & Update: RS.AddNewRS(“Dosage”) = 200RS.Update Or Find desired record, Edit, & Update : do while NOT RS.eof	if RS(“ID”) = 7 then		RS(“Dosage”) = 200		RS.Update	else		RS.MoveNext	end ifloop
ASP Key Points (5) Clean up (free server resources) when done: Queries: Patients.Closeset Patients = nothing Record Sets: RS.Closeset RS = nothing The Connection: conn.closeset conn = nothing
ASP Security Apart from various Internet Information Services (IIS – Window’s 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 Microsoft’s VBScript Tutorial & Language Reference (also here) WebMonkey’s 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:  <CFtagnameCF 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 PatientsORDER BY FirstName</CFQUERY> 	Where the variables are defined beforehand: <CFset Dbdriver = "Driver={MICROSOFT ACCESS DRIVER (*.mdb)}; UID=admin; PWD=; dbq="> <CFset Dbfile = "f:ebatabaseescomptudy.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 TreatmentVALUES (#PatientID#, #EventID#, Now(), #Dosage(mg)#, #Severity#, #Time#)</CFquery> Other Data editing features also available; see documentation
Cold Fusion Resources Cold Fusion Introduction Allaire/Macromedia’s Documentation Web page  Developing CF Applications CFML Reference CFML Quick Reference WebMonkey’s tutorial Security links page
Practical Extraction andReport 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 linemust 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";
Perl Key Points (3) Set the usual parameters: my $hostname = “lebec.tc.edu"; my $username = “gordie";  # "my" defines a local variablemy $password = “mine122";my $database = $username . "_study";  # = dld5s_studymy $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";
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";$sth->execute or die "Unable to execute query: $dbh->errstr"; Clean up $sth->finish;$dbh->disconnect;
Perl Resources Perl Programming Introduction Perl Programming for the Web Perl Documentation Overview, Built-in functions, Data types, Regular expressions, … Modules: DBI(1), DBI(2), CGI WebMonkey’s Tutorial, etc. MySQL and PERL for the Web by DuBois (New Riders) Learning Perl by Schwartz & Christiansen (O’Reilly) Programming Perl by Wall, Orwant, & Christiansen (O’Reilly) Programming the Perl DBI: Database Programming with Perl by Descartes, Bunce, & Mui (Editor) (O’Reilly)
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"); Connect with database mysql_select_db($dbName) or die("Unable to select database $dbName");
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); Editing, adding, and deleting records and tables $SQL = "INSERT INTO Patients (FirstName, LastName) VALUES('$firstName', '$lastName')";$Patients = mysql_query($SQL);
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 PHP’s Tutorial WebMonkey’s 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 (O’Reilly) Programming Perl by Wall, Orwant, & Christiansen (O’Reilly) Programming the Perl DBI: Database Programming with Perl by Descartes, Bunce, & Mui (Editor) (O’Reilly) 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.
Let’s 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 Let’s 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 InternetExplorer</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, it’s output is HTML and then bangs all the HTML together.
PHP Forms Forms are a useful part of any internet site, and I’m sure you’ve 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 isn’t 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 get’s created at every webpage by the server. Sample out put from our script would be: Hi Joe. You are 22 years old
Data Types There are eight data types in PHP (which isn’t a lot), I’m 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; // a boolean  $str = "foo"; // a string  $int = 12; // an integer  echogettype($bool); // prints out"boolean"  echo gettype($str); // prints out "string"  // If this is an integer, increment it by four if (is_int($int)) { $int += 4; }  /* If $bool is a string, print it out (does not print out anything) */ 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”); } else { 	printf(“Never gona see this!”); }
While $a = 0; While($a < 100) { 	printf(“hello $a”); 	a++; } Prints all the numbers from 0 to 99.
For & others For($a = 0; $a < 100; $a++){ 	printf(“Hello $a”); } //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 We’ve already seen the use of some global or Super variables in $_POST and $_SERVER.  There’s 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.  PHP’s website is the best resource for consultation, www.php.net it has a simple to follow tutorial (you might find striking resemblances with tonite’s!), 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 Acquaro’s class this Summer.

Contenu connexe

Tendances

Php hypertext pre-processor
Php   hypertext pre-processorPhp   hypertext pre-processor
Php hypertext pre-processorSiddique Ibrahim
 
Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)Ivo Jansch
 
Advanced PHP Web Development Tools in 2015
Advanced PHP Web Development Tools in 2015Advanced PHP Web Development Tools in 2015
Advanced PHP Web Development Tools in 2015iScripts
 
Linux Apache Php Mysql Lamp1273
Linux Apache Php Mysql Lamp1273Linux Apache Php Mysql Lamp1273
Linux Apache Php Mysql Lamp1273hussulinux
 
PHP LICTURES ..........
PHP LICTURES ..........PHP LICTURES ..........
PHP LICTURES ..........Rashid Ahmad
 
PHP and Web Services
PHP and Web ServicesPHP and Web Services
PHP and Web ServicesBruno Pedro
 
Top 100 PHP Questions and Answers
Top 100 PHP Questions and AnswersTop 100 PHP Questions and Answers
Top 100 PHP Questions and Answersiimjobs and hirist
 
Coldfusion
ColdfusionColdfusion
ColdfusionRam
 
PHP and Platform Independance in the Cloud
PHP and Platform Independance in the CloudPHP and Platform Independance in the Cloud
PHP and Platform Independance in the CloudZendCon
 

Tendances (19)

Php hypertext pre-processor
Php   hypertext pre-processorPhp   hypertext pre-processor
Php hypertext pre-processor
 
Overview of PHP and MYSQL
Overview of PHP and MYSQLOverview of PHP and MYSQL
Overview of PHP and MYSQL
 
Phpbasics
PhpbasicsPhpbasics
Phpbasics
 
Introduction to php
Introduction to phpIntroduction to php
Introduction to php
 
Php intro
Php introPhp intro
Php intro
 
Php intro
Php introPhp intro
Php intro
 
Presentation php
Presentation phpPresentation php
Presentation php
 
Php unit i
Php unit i Php unit i
Php unit i
 
Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)
 
PHP ITCS 323
PHP ITCS 323PHP ITCS 323
PHP ITCS 323
 
01 Php Introduction
01 Php Introduction01 Php Introduction
01 Php Introduction
 
Advanced PHP Web Development Tools in 2015
Advanced PHP Web Development Tools in 2015Advanced PHP Web Development Tools in 2015
Advanced PHP Web Development Tools in 2015
 
Linux Apache Php Mysql Lamp1273
Linux Apache Php Mysql Lamp1273Linux Apache Php Mysql Lamp1273
Linux Apache Php Mysql Lamp1273
 
PHP LICTURES ..........
PHP LICTURES ..........PHP LICTURES ..........
PHP LICTURES ..........
 
PHP and Web Services
PHP and Web ServicesPHP and Web Services
PHP and Web Services
 
Top 100 PHP Questions and Answers
Top 100 PHP Questions and AnswersTop 100 PHP Questions and Answers
Top 100 PHP Questions and Answers
 
Coldfusion
ColdfusionColdfusion
Coldfusion
 
PHP and Platform Independance in the Cloud
PHP and Platform Independance in the CloudPHP and Platform Independance in the Cloud
PHP and Platform Independance in the Cloud
 
Introduction to php
Introduction to phpIntroduction to php
Introduction to php
 

Similaire à Dynamic Web Programming

Similaire à Dynamic Web Programming (20)

Database driven web pages
Database driven web pagesDatabase driven web pages
Database driven web pages
 
Php intro
Php introPhp intro
Php intro
 
Php intro
Php introPhp intro
Php intro
 
Chowdhury-webtech.ppt
Chowdhury-webtech.pptChowdhury-webtech.ppt
Chowdhury-webtech.ppt
 
Chowdhury-webtech.ppt
Chowdhury-webtech.pptChowdhury-webtech.ppt
Chowdhury-webtech.ppt
 
Chowdhury-webtech.ppt
Chowdhury-webtech.pptChowdhury-webtech.ppt
Chowdhury-webtech.ppt
 
Hypertext Mark Up Language Introduction.
Hypertext Mark Up Language Introduction.Hypertext Mark Up Language Introduction.
Hypertext Mark Up Language Introduction.
 
Chowdhury-webtech.ppt
Chowdhury-webtech.pptChowdhury-webtech.ppt
Chowdhury-webtech.ppt
 
Basics of HTML.ppt
Basics of HTML.pptBasics of HTML.ppt
Basics of HTML.ppt
 
Chowdhury webtech
Chowdhury webtechChowdhury webtech
Chowdhury webtech
 
Chowdhury webtech
Chowdhury webtechChowdhury webtech
Chowdhury webtech
 
Chowdhury webtech
Chowdhury webtechChowdhury webtech
Chowdhury webtech
 
Chowdhury webtech
Chowdhury webtechChowdhury webtech
Chowdhury webtech
 
Css Founder.com | Cssfounder Net
Css Founder.com | Cssfounder NetCss Founder.com | Cssfounder Net
Css Founder.com | Cssfounder Net
 
Sa
SaSa
Sa
 
Php intro
Php introPhp intro
Php intro
 
Current state-of-php
Current state-of-phpCurrent state-of-php
Current state-of-php
 
Justmeans power point
Justmeans power pointJustmeans power point
Justmeans power point
 
Justmeans power point
Justmeans power pointJustmeans power point
Justmeans power point
 
Justmeans power point
Justmeans power pointJustmeans power point
Justmeans power point
 

Plus de Information Technology (20)

Web303
Web303Web303
Web303
 
Sql Server Security Best Practices
Sql Server Security Best PracticesSql Server Security Best Practices
Sql Server Security Best Practices
 
SAN
SANSAN
SAN
 
SAN Review
SAN ReviewSAN Review
SAN Review
 
SQL 2005 Disk IO Performance
SQL 2005 Disk IO PerformanceSQL 2005 Disk IO Performance
SQL 2005 Disk IO Performance
 
RAID Review
RAID ReviewRAID Review
RAID Review
 
Review of SQL
Review of SQLReview of SQL
Review of SQL
 
Sql 2005 high availability
Sql 2005 high availabilitySql 2005 high availability
Sql 2005 high availability
 
IIS 7: The Administrator’s Guide
IIS 7: The Administrator’s GuideIIS 7: The Administrator’s Guide
IIS 7: The Administrator’s Guide
 
MOSS 2007 Deployment Fundamentals -Part2
MOSS 2007 Deployment Fundamentals -Part2MOSS 2007 Deployment Fundamentals -Part2
MOSS 2007 Deployment Fundamentals -Part2
 
MOSS 2007 Deployment Fundamentals -Part1
MOSS 2007 Deployment Fundamentals -Part1MOSS 2007 Deployment Fundamentals -Part1
MOSS 2007 Deployment Fundamentals -Part1
 
Clustering and High Availability
Clustering and High Availability Clustering and High Availability
Clustering and High Availability
 
F5 beyond load balancer (nov 2009)
F5 beyond load balancer (nov 2009)F5 beyond load balancer (nov 2009)
F5 beyond load balancer (nov 2009)
 
WSS 3.0 & SharePoint 2007
WSS 3.0 & SharePoint 2007WSS 3.0 & SharePoint 2007
WSS 3.0 & SharePoint 2007
 
SharePoint Topology
SharePoint Topology SharePoint Topology
SharePoint Topology
 
Sharepoint Deployments
Sharepoint DeploymentsSharepoint Deployments
Sharepoint Deployments
 
Microsoft Clustering
Microsoft ClusteringMicrosoft Clustering
Microsoft Clustering
 
Scalable Internet Servers and Load Balancing
Scalable Internet Servers and Load BalancingScalable Internet Servers and Load Balancing
Scalable Internet Servers and Load Balancing
 
Web Hacking
Web HackingWeb Hacking
Web Hacking
 
Migration from ASP to ASP.NET
Migration from ASP to ASP.NETMigration from ASP to ASP.NET
Migration from ASP to ASP.NET
 

Dernier

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Dernier (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

Dynamic Web Programming

  • 1. Dynamic Web Programming: Application and Transfer
  • 2. Active Server Pages (ASP) When a browser calls an ASP document, the ASP Server reads the .asp document and 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)
  • 3. 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>
  • 4. ASP Key Points (2) Connect with database: Create connection object: set conn = Server.CreateObject("ADODB.Connection") Open connection: conn.open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:ebatabaseescomptudy.mdb") 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)
  • 5. ASP Key Points (3) Move through the data records: do while NOT Patients.eof Name = Patients(0) & " " & Patients(1) Patients.MoveNextloop Add to or edit table: Create and open Record Set object: set RS = Server.CreateObject("ADODB.Recordset")RS.Open “table name", conn, , adLockOptimistic, adCmdTable(where adLockOptimistic = 3, adCmdTable = 2)
  • 6. ASP Key Points (4) Add to or edit table (continued): Create new record, Edit, & Update: RS.AddNewRS(“Dosage”) = 200RS.Update Or Find desired record, Edit, & Update : do while NOT RS.eof if RS(“ID”) = 7 then RS(“Dosage”) = 200 RS.Update else RS.MoveNext end ifloop
  • 7. ASP Key Points (5) Clean up (free server resources) when done: Queries: Patients.Closeset Patients = nothing Record Sets: RS.Closeset RS = nothing The Connection: conn.closeset conn = nothing
  • 8. ASP Security Apart from various Internet Information Services (IIS – Window’s 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
  • 9. ASP Resources ASP Introduction Microsoft’s VBScript Tutorial & Language Reference (also here) WebMonkey’s tutorial
  • 10. 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: <CFtagnameCF code > <Cftagname > CF Code </Cftagname > Documents must end in .cfm ColdFusion is Case Insensitive Example (code, copy of database)
  • 11. 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>
  • 12. ColdFusion Key Points (1) Connect with database and run query simultaneously: <CFQUERY Name="Patients" dbtype="dynamic" connectstring="#DBdriver# #DBfile#">SELECT ID, FirstName, LastName FROM PatientsORDER BY FirstName</CFQUERY> Where the variables are defined beforehand: <CFset Dbdriver = "Driver={MICROSOFT ACCESS DRIVER (*.mdb)}; UID=admin; PWD=; dbq="> <CFset Dbfile = "f:ebatabaseescomptudy.mdb">
  • 13. 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
  • 14. ColdFusion Key Points (3) Insert Data using Cfquery (SQL): <CFquery name="Treatment" dbtype="dynamic" connectstring="#DBdriver# #DBfile#">INSERT into TreatmentVALUES (#PatientID#, #EventID#, Now(), #Dosage(mg)#, #Severity#, #Time#)</CFquery> Other Data editing features also available; see documentation
  • 15. Cold Fusion Resources Cold Fusion Introduction Allaire/Macromedia’s Documentation Web page Developing CF Applications CFML Reference CFML Quick Reference WebMonkey’s tutorial Security links page
  • 16. Practical Extraction andReport 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)
  • 17. Perl Key Points (1) The file itself must end in “.cgi” or “.pl” First linemust 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";
  • 18. Perl Key Points (3) Set the usual parameters: my $hostname = “lebec.tc.edu"; my $username = “gordie"; # "my" defines a local variablemy $password = “mine122";my $database = $username . "_study"; # = dld5s_studymy $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";
  • 19. 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";$sth->execute or die "Unable to execute query: $dbh->errstr"; Clean up $sth->finish;$dbh->disconnect;
  • 20. Perl Resources Perl Programming Introduction Perl Programming for the Web Perl Documentation Overview, Built-in functions, Data types, Regular expressions, … Modules: DBI(1), DBI(2), CGI WebMonkey’s Tutorial, etc. MySQL and PERL for the Web by DuBois (New Riders) Learning Perl by Schwartz & Christiansen (O’Reilly) Programming Perl by Wall, Orwant, & Christiansen (O’Reilly) Programming the Perl DBI: Database Programming with Perl by Descartes, Bunce, & Mui (Editor) (O’Reilly)
  • 21. PHP Example Add Source Index Source
  • 22. 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)
  • 23. 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
  • 24. 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"); Connect with database mysql_select_db($dbName) or die("Unable to select database $dbName");
  • 25. 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); Editing, adding, and deleting records and tables $SQL = "INSERT INTO Patients (FirstName, LastName) VALUES('$firstName', '$lastName')";$Patients = mysql_query($SQL);
  • 26. PHP Key Points (4) Cleaning up: close the database connection mysql_close();
  • 27. 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
  • 28. PHP Resources PHP and MySQL PHP Documentation PHP’s Tutorial WebMonkey’s Tutorial PHP and MySQL Web Development by Welling & Thomson (SAMS) Beginning PHP4 by Blan, Choi, et. al (Wrox)
  • 29. (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 (O’Reilly) Programming Perl by Wall, Orwant, & Christiansen (O’Reilly) Programming the Perl DBI: Database Programming with Perl by Descartes, Bunce, & Mui (Editor) (O’Reilly) SQL-99 Complete, Really by Gulutzan & Pelzer (R&D Books)
  • 30. 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.
  • 31. Let’s 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>
  • 32. 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 Let’s look at the first line of the file #!/usr/local/bin/php
  • 33. 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).
  • 34. 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 InternetExplorer</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, it’s output is HTML and then bangs all the HTML together.
  • 35. PHP Forms Forms are a useful part of any internet site, and I’m sure you’ve 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 isn’t specific to PHP, the only thing to notice is how we pass the values to “action.php”
  • 36. 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.
  • 37. Handling POST data $_POST[] is an autoglobal array which get’s created at every webpage by the server. Sample out put from our script would be: Hi Joe. You are 22 years old
  • 38. Data Types There are eight data types in PHP (which isn’t a lot), I’m 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.
  • 39. Data Types $bool = TRUE; // a boolean $str = "foo"; // a string $int = 12; // an integer echogettype($bool); // prints out"boolean" echo gettype($str); // prints out "string" // If this is an integer, increment it by four if (is_int($int)) { $int += 4; } /* If $bool is a string, print it out (does not print out anything) */ if (is_string($bool)) { echo "String: $bool"; }
  • 40. 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!
  • 41. Control Structures If: $hey = TRUE; If($hey) { printf(“Hello”); } else { printf(“Never gona see this!”); }
  • 42. While $a = 0; While($a < 100) { printf(“hello $a”); a++; } Prints all the numbers from 0 to 99.
  • 43. For & others For($a = 0; $a < 100; $a++){ printf(“Hello $a”); } //prints all the numbers from 0 to 99 again PHP has also all the other control structures you can think of, until, do, switch, : ?
  • 44. Global Variables We’ve already seen the use of some global or Super variables in $_POST and $_SERVER. There’s 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(); ?>
  • 45. Resources This helpdesk tutorial like the others is just geared to get you started at PHP coding. PHP’s website is the best resource for consultation, www.php.net it has a simple to follow tutorial (you might find striking resemblances with tonite’s!), 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.
  • 46. 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 Acquaro’s class this Summer.