PHP Programming Cookbook I

Total Page:16

File Type:pdf, Size:1020Kb

PHP Programming Cookbook I PHP Programming Cookbook i PHP Programming Cookbook PHP Programming Cookbook ii Contents 1 PHP Tutorial for Beginners 1 1.1 Introduction......................................................1 1.1.1 Where is PHP used?.............................................1 1.1.2 Why PHP?..................................................2 1.2 XAMPP Setup....................................................3 1.3 PHP Language Basics.................................................5 1.3.1 Escaping to PHP...............................................5 1.3.2 Commenting PHP..............................................5 1.3.3 Hello World..................................................6 1.3.4 Variables in PHP...............................................6 1.3.5 Conditional Statements in PHP........................................7 1.3.6 Loops in PHP.................................................8 1.4 PHP Arrays...................................................... 10 1.5 PHP Functions.................................................... 12 1.6 Connecting to a Database............................................... 14 1.6.1 Connecting to MySQL Databases...................................... 14 1.6.2 Connecting to MySQLi Databases (Procedurial).............................. 14 1.6.3 Connecting to MySQLi databases (Object-Oriented)............................ 15 1.6.4 Connecting to PDO Databases........................................ 15 1.7 PHP Form Handling................................................. 15 1.8 PHP Include & Require Statements.......................................... 17 1.9 Object Oriented Concepts............................................... 19 1.9.1 PHP Classes................................................. 20 1.9.2 PHP Constructor Function.......................................... 20 1.10 Conclusion...................................................... 21 1.11 Download the source code.............................................. 21 PHP Programming Cookbook iii 2 Upload Script Example 22 2.1 Preparing the environment.............................................. 22 2.1.1 Installation.................................................. 22 2.1.2 PHP configuration.............................................. 22 2.2 Upload form...................................................... 23 2.2.1 Accepting only certain type of files..................................... 23 2.3 PHP upload script................................................... 24 2.3.1 A secure file upload script.......................................... 24 2.3.2 Considerations................................................ 27 2.4 Summary....................................................... 27 2.5 Download the source code.............................................. 27 3 Mail Function Example 28 3.1 Preparing the environment.............................................. 28 3.1.1 Installation.................................................. 28 3.1.2 sSMTP configuration............................................. 29 3.1.3 PHP configuration.............................................. 29 3.2 PHP mail sending script................................................ 29 3.2.1 Setting additional headers.......................................... 30 3.2.2 Setting additional parameters......................................... 30 3.3 Troubleshooting.................................................... 31 3.3.1 Set verbose mode............................................... 31 3.3.2 Login is rejected by SMTP server...................................... 31 3.3.3 Firewall is filtering outgoing traffic..................................... 31 3.3.4 Check PHP error log............................................. 31 3.4 Alternatives to sSMTP................................................ 31 3.5 Summary....................................................... 32 3.6 Download the source code.............................................. 32 4 Date Format Example 33 4.1 Preparing the environment.............................................. 33 4.1.1 Installation.................................................. 33 4.2 How should dates be stored?............................................. 33 4.3 PHP examples..................................................... 34 4.3.1 From time stamp to human-readable..................................... 34 4.3.2 From human-readable to time stamp..................................... 34 4.3.3 DateTime class................................................ 35 4.3.4 Increasing precision............................................. 35 4.3.5 Validating user introduced date........................................ 36 4.4 Summary....................................................... 37 4.5 Download the source code.............................................. 37 PHP Programming Cookbook iv 5 SoapClient Example 38 5.1 Preparing the environment.............................................. 38 5.1.1 Installation.................................................. 38 5.1.2 PHP configuration.............................................. 38 5.2 What is SOAP?.................................................... 39 5.3 PHP example of SOAP clients............................................ 39 5.3.1 Working directory structure......................................... 39 5.3.2 The server................................................... 40 5.3.3 The client................................................... 40 5.3.4 Using the client................................................ 42 5.4 Considerations.................................................... 44 5.5 Summary....................................................... 44 5.6 Download the source code.............................................. 44 6 Login Form Example 45 6.1 Preparing the environment.............................................. 45 6.1.1 Installation.................................................. 45 6.1.2 PHP configuration.............................................. 45 6.2 How should passwords be stored?.......................................... 45 6.2.1 Worse: plain text............................................... 46 6.2.2 Not bad: password hashing.......................................... 46 6.2.3 Better: password hashing + salting...................................... 46 6.2.4 Even better: Key Derivation Functions.................................... 46 6.3 Creating users..................................................... 47 6.4 Login......................................................... 48 6.4.1 Form..................................................... 48 6.4.2 Form handling................................................ 48 6.4.3 Login against database............................................ 49 6.5 Summary....................................................... 52 6.6 Download the source code.............................................. 52 7 Curl Get/Post Example 53 7.1 Preparing the environment.............................................. 53 7.1.1 Installation.................................................. 53 7.1.2 PHP configuration.............................................. 53 7.2 GET requests..................................................... 53 7.3 POST requests.................................................... 55 7.4 Encapsulating operations in a cURL class...................................... 56 7.5 Summary....................................................... 59 7.6 Download the source code.............................................. 59 PHP Programming Cookbook v 8 HTML Table Example 60 8.1 Getting Started.................................................... 60 8.1.1 Forms..................................................... 60 8.1.2 Session in php................................................ 61 8.1.3 Html Tables.................................................. 63 8.1.4 Other table tags worthy of mention..................................... 63 8.2 Summary....................................................... 63 8.3 Download the source code.............................................. 63 PHP Programming Cookbook vi Copyright(c) Exelixis MediaP.C., 2016 All rights reserved. Without limiting the rights under copyright reserved above, no part of this publication may be reproduced, stored or introduced intoa retrieval system, or transmitted, in any form or by any means(electronic, mechanical, photocopying, recording or otherwise), without the prior written permission of the copyright owner. PHP Programming Cookbook vii Preface PHP is a server-side scripting language designed for web development but also used as a general-purpose programming language. Originally created by Rasmus Lerdorf in 1994, the PHP reference implementation is now produced by The PHP Group. PHP originally stood for Personal Home Page, but it now stands for the recursive backronym PHP: Hypertext Preprocessor. PHP code may be embedded into HTML code, or it can be used in combination with various web template systems, web content management systems and web frameworks. PHP code is usually processed by a PHP interpreter implemented as a module in the web server or as a Common Gateway Interface (CGI) executable. The web server combines the results of the interpreted and executed PHP code, which may be any type of data, including images, with the generated web page. (Source: https://en.wikipedia.org/wiki/PHP) In this ebook, we provide a compilation of PHP based examples that will help you kick-start your own web projects. We cover a wide range of topics, from HTML tables and files uploading,
Recommended publications
  • Resin 3.2 Reference
    Contents 1 Overview 3 1.1 Features - Resin and Resin Professional . .3 2 Installation 11 2.1 Resin Installation Quick Start . 11 2.2 Resin Installation . 16 2.3 Resin Web Server . 16 2.4 Resin with Apache . 22 2.5 Resin with IIS . 34 2.6 How the Plugins Dispatch to Resin . 44 3 Command-Line 47 3.1 Command-Line Configuration . 47 4 Admin Guide 51 4.1 User Guide: Administration . 51 5 Watchdog 63 5.1 Resin Watchdog . 63 6 Virtual Hosts 73 6.1 Virtual Hosting . 73 7 Clustering 89 7.1 Resin Clustering . 89 8 Web Applications 109 8.1 An Overview of Web Applications . 109 9 Logging 137 9.1 Log . 137 10 Administration 163 10.1 Resin Administration . 163 1 CONTENTS 11 Deployment 177 11.1 Packaging/Deployment . 177 12 Proxy Caching 181 12.1 Server Caching . 181 13 Quercus 193 13.1 Quercus: PHP in Java . 193 14 Security 217 14.1 Resin Security . 217 15 Inversion of Control 271 15.1 Resin IoC . 271 15.2 Scheduled Task . 308 16 Amber 327 16.1 Amber . 327 17 Embedding Resin 355 17.1 Embedding Resin . 355 18 Filters 367 18.1 Filters . 367 19 BAM 379 19.1 BAM . 379 20 Comet 405 20.1 Comet/Server-Push Servlet . 405 21 Remoting 411 21.1 Resin Remoting . 411 21.2 Hessian . 417 22 Messaging 423 22.1 Resin Messaging . 423 23 JSF - Java Server Faces 435 23.1 JSF - Java Server Faces . 435 24 Configuration Tags 445 24.1 cluster: Cluster tag configuration .
    [Show full text]
  • Object-Oriented Programming Basics with Java
    Object-Oriented Programming Object-Oriented Programming Basics With Java In his keynote address to the 11th World Computer Congress in 1989, renowned computer scientist Donald Knuth said that one of the most important lessons he had learned from his years of experience is that software is hard to write! Computer scientists have struggled for decades to design new languages and techniques for writing software. Unfortunately, experience has shown that writing large systems is virtually impossible. Small programs seem to be no problem, but scaling to large systems with large programming teams can result in $100M projects that never work and are thrown out. The only solution seems to lie in writing small software units that communicate via well-defined interfaces and protocols like computer chips. The units must be small enough that one developer can understand them entirely and, perhaps most importantly, the units must be protected from interference by other units so that programmers can code the units in isolation. The object-oriented paradigm fits these guidelines as designers represent complete concepts or real world entities as objects with approved interfaces for use by other objects. Like the outer membrane of a biological cell, the interface hides the internal implementation of the object, thus, isolating the code from interference by other objects. For many tasks, object-oriented programming has proven to be a very successful paradigm. Interestingly, the first object-oriented language (called Simula, which had even more features than C++) was designed in the 1960's, but object-oriented programming has only come into fashion in the 1990's.
    [Show full text]
  • The Machine That Builds Itself: How the Strengths of Lisp Family
    Khomtchouk et al. OPINION NOTE The Machine that Builds Itself: How the Strengths of Lisp Family Languages Facilitate Building Complex and Flexible Bioinformatic Models Bohdan B. Khomtchouk1*, Edmund Weitz2 and Claes Wahlestedt1 *Correspondence: [email protected] Abstract 1Center for Therapeutic Innovation and Department of We address the need for expanding the presence of the Lisp family of Psychiatry and Behavioral programming languages in bioinformatics and computational biology research. Sciences, University of Miami Languages of this family, like Common Lisp, Scheme, or Clojure, facilitate the Miller School of Medicine, 1120 NW 14th ST, Miami, FL, USA creation of powerful and flexible software models that are required for complex 33136 and rapidly evolving domains like biology. We will point out several important key Full list of author information is features that distinguish languages of the Lisp family from other programming available at the end of the article languages and we will explain how these features can aid researchers in becoming more productive and creating better code. We will also show how these features make these languages ideal tools for artificial intelligence and machine learning applications. We will specifically stress the advantages of domain-specific languages (DSL): languages which are specialized to a particular area and thus not only facilitate easier research problem formulation, but also aid in the establishment of standards and best programming practices as applied to the specific research field at hand. DSLs are particularly easy to build in Common Lisp, the most comprehensive Lisp dialect, which is commonly referred to as the “programmable programming language.” We are convinced that Lisp grants programmers unprecedented power to build increasingly sophisticated artificial intelligence systems that may ultimately transform machine learning and AI research in bioinformatics and computational biology.
    [Show full text]
  • Preview Fortran Tutorial (PDF Version)
    Fortran i Fortran About the Tutorial Fortran was originally developed by a team at IBM in 1957 for scientific calculations. Later developments made it into a high level programming language. In this tutorial, we will learn the basic concepts of Fortran and its programming code. Audience This tutorial is designed for the readers who wish to learn the basics of Fortran. Prerequisites This tutorial is designed for beginners. A general awareness of computer programming languages is the only prerequisite to make the most of this tutorial. Copyright & Disclaimer Copyright 2017 by Tutorials Point (I) Pvt. Ltd. All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute or republish any contents or a part of contents of this e-book in any manner without written consent of the publisher. We strive to update the contents of our website and tutorials as timely and as precisely as possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt. Ltd. provides no guarantee regarding the accuracy, timeliness or completeness of our website or its contents including this tutorial. If you discover any errors on our website or in this tutorial, please notify us at [email protected] i Fortran Table of Contents About the Tutorial ····································································································································i Audience ··················································································································································i
    [Show full text]
  • Php Tutorial
    PHP About the Tutorial The PHP Hypertext Preprocessor (PHP) is a programming language that allows web developers to create dynamic content that interacts with databases. PHP is basically used for developing web-based software applications. This tutorial will help you understand the basics of PHP and how to put it in practice. Audience This tutorial has been designed to meet the requirements of all those readers who are keen to learn the basics of PHP. Prerequisites Before proceeding with this tutorial, you should have a basic understanding of computer programming, Internet, Database, and MySQL. Copyright & Disclaimer © Copyright 2016 by Tutorials Point (I) Pvt. Ltd. All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute or republish any contents or a part of contents of this e-book in any manner without written consent of the publisher. We strive to update the contents of our website and tutorials as timely and as precisely as possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt. Ltd. provides no guarantee regarding the accuracy, timeliness or completeness of our website or its contents including this tutorial. If you discover any errors on our website or in this tutorial, please notify us at [email protected] i PHP Table of Contents About the Tutorial ...........................................................................................................................................
    [Show full text]
  • Virtual Wishlist
    Virtual Wishlist Figure 1: Welcome Page of the Virtual Wishlist Group project carried out by Josua Dietrich, Nils Braune and Tino Canziani created 2011 at D-ITET, ETH Zürich 21.12.2011 Contents 1 Introduction and Background 3 1.1 Idea . .3 1.2 Related Work . .3 1.3 Tools . .3 2 Concept 5 2.1 Core functions . .5 2.2 Website Layout . .5 2.3 Sessions & Proles . .7 3 Implementation 8 3.1 HTML/Login/Session (Welcome.html) . .8 3.2 MySQL server: creating a database . .9 3.3 setupConnection.php . 11 3.4 $.ajax(), getWishlists() .................. 12 3.5 Adding a prole picture . 14 4 Results and Future Steps 16 4.1 Results . 16 4.1.1 Welcome Page . 16 4.1.2 Prole Page . 16 4.1.3 my Wishes menu . 16 4.1.4 my Friends and Search Friends Menu . 16 4.1.5 Settings menu . 17 4.1.6 Friend Page . 17 4.1.7 Terms, Privacy, About, Help Page . 17 4.1.8 Process of fullling and getting wishes fullled . 17 4.1.9 Security . 17 4.2 Future steps . 18 A Server/PHP functions 20 B Screenshot of the prole page 21 C Setting up the Virtual Wishlist step by step 22 D Endnotes 23 1 Abstract In this group project we designed and implemented a virtual wish list as a social media service on the web. It enables its users to maintain a personal prole, create their own wish lists or opt to grant other friends their specic wishes. The use case of this virtual wish list will mostly tend to birthday and christmas events, social gatherings, leisure activities or work related events.
    [Show full text]
  • Teach Yourself Perl 5 in 21 Days
    Teach Yourself Perl 5 in 21 days David Till Table of Contents: Introduction ● Who Should Read This Book? ● Special Features of This Book ● Programming Examples ● End-of-Day Q& A and Workshop ● Conventions Used in This Book ● What You'll Learn in 21 Days Week 1 Week at a Glance ● Where You're Going Day 1 Getting Started ● What Is Perl? ● How Do I Find Perl? ❍ Where Do I Get Perl? ❍ Other Places to Get Perl ● A Sample Perl Program ● Running a Perl Program ❍ If Something Goes Wrong ● The First Line of Your Perl Program: How Comments Work ❍ Comments ● Line 2: Statements, Tokens, and <STDIN> ❍ Statements and Tokens ❍ Tokens and White Space ❍ What the Tokens Do: Reading from Standard Input ● Line 3: Writing to Standard Output ❍ Function Invocations and Arguments ● Error Messages ● Interpretive Languages Versus Compiled Languages ● Summary ● Q&A ● Workshop ❍ Quiz ❍ Exercises Day 2 Basic Operators and Control Flow ● Storing in Scalar Variables Assignment ❍ The Definition of a Scalar Variable ❍ Scalar Variable Syntax ❍ Assigning a Value to a Scalar Variable ● Performing Arithmetic ❍ Example of Miles-to-Kilometers Conversion ❍ The chop Library Function ● Expressions ❍ Assignments and Expressions ● Other Perl Operators ● Introduction to Conditional Statements ● The if Statement ❍ The Conditional Expression ❍ The Statement Block ❍ Testing for Equality Using == ❍ Other Comparison Operators ● Two-Way Branching Using if and else ● Multi-Way Branching Using elsif ● Writing Loops Using the while Statement ● Nesting Conditional Statements ● Looping Using
    [Show full text]
  • CSC 272 - Software II: Principles of Programming Languages
    CSC 272 - Software II: Principles of Programming Languages Lecture 1 - An Introduction What is a Programming Language? • A programming language is a notational system for describing computation in machine-readable and human-readable form. • Most of these forms are high-level languages , which is the subject of the course. • Assembly languages and other languages that are designed to more closely resemble the computer’s instruction set than anything that is human- readable are low-level languages . Why Study Programming Languages? • In 1969, Sammet listed 120 programming languages in common use – now there are many more! • Most programmers never use more than a few. – Some limit their career’s to just one or two. • The gain is in learning about their underlying design concepts and how this affects their implementation. The Six Primary Reasons • Increased ability to express ideas • Improved background for choosing appropriate languages • Increased ability to learn new languages • Better understanding of significance of implementation • Better use of languages that are already known • Overall advancement of computing Reason #1 - Increased ability to express ideas • The depth at which people can think is heavily influenced by the expressive power of their language. • It is difficult for people to conceptualize structures that they cannot describe, verbally or in writing. Expressing Ideas as Algorithms • This includes a programmer’s to develop effective algorithms • Many languages provide features that can waste computer time or lead programmers to logic errors if used improperly – E. g., recursion in Pascal, C, etc. – E. g., GoTos in FORTRAN, etc. Reason #2 - Improved background for choosing appropriate languages • Many professional programmers have a limited formal education in computer science, limited to a small number of programming languages.
    [Show full text]
  • System Requirements
    System Requirements This section outlines the requirements for installing the Ushahidi platform on your computer. The "AMP" (Apache, Mysql, PHP) Stack Before installing Ushahidi, following must be installed in the target system: PHP version 5.2.3 or greater PHP 5.4 support is added in Ushahidi 2.6 Prior to Ushahidi 2.6, you must version between PHP 5.2.3 - 5.3.x MySQL version 5.0 or greater An HTTP Server. Kohana, which Ushahidi is built on, is known to work with the following web servers: Apache 1.3+ Apache2.0+ lighttpd Microsoft Internet Information Server (MS IIS) Nginx Unicode support in the operating system Required PHP Extensions The following is a list of PHP extensions that must be installed on your server in order for Ushahidi to run properly: PCRE (http://php.net/pcre) must be compiled with --enable-utf8 and --enable-unicode-properties for UTF-8 functions to work properly. iconv (http://php.net/iconv) is required for UTF-8 transliteration. mcrypt (http://php.net/mcrypt) is required for encryption. SPL (http://php.net/spl) is required for several core libraries mbstring (http://php.net/mbstring) which speeds up Kohana's UTF-8 functions. cURL (http://php.net/curl) which is used to access remote sites. MySQL (http://php.net/mysql) is required for database access. GD (http://php.net/gd) is required for image manipulation. IMAP (http://php.net/imap) is required for handling e-mails. TIP: Need to figure out what extensions you already have installed on your server? Here are instructions to do just that http://jontangerine.com/silo/ php/phpinfo/ Optional Server Requirements To use Ushahidi's "Clean URLs" feature – meaning that your deployment's URLs will not include "index.php" – on an Apache Web Server, you will need the mod_rewrite module and the ability to use local .htaccess files.
    [Show full text]
  • Should C Replace FORTRAN As the Language of Scientific Programming?
    Should C Replace FORTRAN as the Language of Scientific Programming? Linda Wharton CSCI 5535 Fall 1995 Abstract Anti-FORTRAN sentiment has recently become more prevalent. Where does the attitude originate? The most probable source is academia, where C and C++ are the languages of choice. Is there a fact based justification for the attitude? FORTRAN and C are evaluated to determine whether C is a better language than FORTRAN for scientific programming. The features of FORTRAN 77, FORTRAN 90, C and C++ are compared, and evaluated as to how well they meet the requirements of the scientific programming domain. FORTRAN was designed specifically for numerical programming, and thus better meets the requirements. Three algorithms in the scientific domain are coded in both FORTRAN and C. They are evaluated on performance, readability of the code and optimization potential. In all cases the FORTRAN implementations proved superior. Is there evidence to mandate that all upgrades and new development should be done in C, rather than FORTRAN? A good computer programmer can solve any given problem in any language, however it is best to code in the language specifically designed for the problem domain. In the case of scientific programming, that language is FORTRAN. 1 Introduction In the computer arena related to scientific programming, a prevalent attitude seems to be that FORTRAN is obsolete, and C should be used as a replacement language. I am employed as a programmer that supports meteorological research. Most of the programming code I work with is written in FORTRAN. Within the course of my work, I continually encounter prejudice against FORTRAN.
    [Show full text]
  • PHP Programming.Pdf
    PHP Programming by ebookvala.blogspot.com INDEX What is PHP?.................................................................................................................3 Setup and Installation......................................................................................................4 Installation on Linux.................................................................................................... 4 Installation on Windows...............................................................................................5 Installation on Mac OS X.............................................................................................6 Beginning with "Hello World!" .........................................................................................8 Basics..............................................................................................................................12 Commenting and Style ...................................................................................................18 Arrays .............................................................................................................................20 Control structures ...........................................................................................................25 The if Structure ...............................................................................................................25 The switch Structure .......................................................................................................28
    [Show full text]
  • COBOL Programming Fundamental
    IBM Solution & Service Company (China) COBOLProgramming Fundamental ISSC SH Walker JIA Version 1.0 2004/11 ©2004IBM Corporation ISSC Shanghai, AMS, GCG Training Schedule Day 1 Day 2 Day 3 Day 4 Simple iteration Introduction to with the Introduction to COBOL Sequential Conditions Moring PERFORM Files verb COBOL Basics 1 Tables and the PERFORM . Processing Arithmetic and .. VARYING Sequential Edited Files Pictures Exercise 1 Exercise 2 Exercise 3 Exercise 3 After (Cont.) COBOL Basics 2 noon Designing Programs 2 COBOLProgramming Fundamental ©2004IBM Corporation ISSC Shanghai, AMS, GCG Table of contents Introduction to COBOL COBOL Basics 1 COBOL Basics 2 Introduction to Sequential Files Processing Sequential Files Simple iteration with the PERFORM verb Arithmetic and Edited Pictures Conditions Tables and the PERFORM ... VARYING Designing Programs 3 COBOLProgramming Fundamental ©2004IBM Corporation ISSC Shanghai, AMS, GCG Introduction to COBOL Overview § COBOL design goals. § Structure of COBOL programs. § The four divisions. § IDENTIFICATION DIVISION, DATA DIVISION, PROCEDURE DIVISION. § Sections, paragraphs, sentences and statements. § Example COBOL programs. 4 COBOLProgramming Fundamental ©2004IBM Corporation ISSC Shanghai, AMS, GCG Introduction to COBOL COBOL § COBOL is an acronym which stands for Common Business Oriented Language. § The name indicates the target area of COBOL applications. – COBOL is used for developing business, typically file-oriented, applications. – It is not designed for writing systems programs. You would not develop an operating system or a compiler using COBOL. § COBOL is one of the oldest computer languages in use (it was developed around the end of the 1950s). As a result it has some idiosyncracieswhich programmers may find irritating. 5 COBOLProgramming Fundamental ©2004IBM Corporation ISSC Shanghai, AMS, GCG Introduction to COBOL COBOLidiosyncracies § One of the design goals was to make the language as English- like as possible.
    [Show full text]