Thursday, September 4, 2008

Monday, July 16, 2007

21 Things You Must Know About CakePHP

Easily creating static pages

I needed to create several pages that didn't use any models and contained static data inside the default layout. My first thought was to create a controller for these pages and define an action for each static page I needed. However, this solution seemed tedious and would make it difficult to quickly add new pages. Enter the pages controller - simply create a view inside the views/pages/ folder and it'll automatically be rendered in /pages. For example, if I created /views/pages/matt.thtml it would be accessible via http://www.example.com/pages/matt

Static pages - Adjusting the page title

If you're using the pages controller and you need to change the page title, add the following to your view:
<? $this->pageTitle = 'Title of your page.'; ?>

Static pages - Adjusting other data sent to the layout

If you need to send data to the layout (such as a variable indicating what section to highlight on the nav bar), add this to your view:

<? $this->_viewVars['somedata'] = array('some','data'); ?>

That array should then be accessible as $somedata inside your layout.

Creating a simple admin center

If you need to create an administrative back-end for your CakePHP site and would like all the actions with administrative capabilities to exist under a specific folder, open up config/core.php and uncomment:
define('CAKE_ADMIN', 'admin');
This will then make all actions that are prefixed with "admin_" to be accessible via:
/admin/yourcontroller/youraction. For instance, if I created an action in my posts controller called "admin_add," I would access this via: www.example.com/admin/posts/add
From there I could simply password the admin folder to prohibit unwanted users from adding posts.

Viewing the SQL queries that are running behind the scenes

You can easily see the SQL queries that CakePHP is running by adjusting the DEBUG constant in config/core.php. 0 is production, 1 is development, 2 is full debug with SQL, and 3 is full debug with SQL and dump of the current object. I typically have debug set at 2, which renders a table at the bottom of the page that contains SQL debug information.
If rendering a table at the bottom of your site is constantly breaking your layout during development (especially if you're making AJAX calls and you're getting SQL inside your pages, not just the bottom), you can easily style this table to be hidden by adding this to your CSS:
.cakeSqlLog { display: none; }
This will allow you to view debug information in the HTML source code without your layout getting mangled, just don't forget to set debug back to 0 when your site goes live.

Multiple sources of documentation

Don't just rely on the manual. The wiki and the API are invaluable sources of information. The tutorials in the wiki are especially useful, and the API may be daunting at first, but you'll quickly find the information in there is crucial to building a site with CakePHP.

Using bake.php

Bake is a command line PHP script that will automagically generate a model, controller, and views based on the design of your database. I highly recommend using scaffolding to get a prototype going of a table that may change a lot in the beginning. If you're fairly certain the data is not subject to any drastic change, I recommend using bake instead. With bake all the files are generated and written to disk and you can make modifications from there. It saves a lot of time doing the repetitive tasks such as creating associations, views, and the basic CRUD controller operations.
Using bake is really easy. Once you have a table(s) in your database created, change directories to the /cake/scripts/ folder and run:
php bake.php
If you choose to bake interactively it'll walk you through the steps required to create your model, controller, and views. Once everything has been baked I usually go through all the generated code and make custom modifications as needed.

Mind permissions when moving cake around

When I changed from the development server to the live server I tarred up my entire cake directory and scp'd it to the new server. Immediately I started having an issue where any time the debug level was set to 0 (production mode), data would not be returned for certain database calls. This was a bit of a catch 22 since I needed to view debug information to troubleshoot the problem.
Someone in #cakephp kindly pointed out that permissions on the /app/tmp folder need to be writeable by apache. I changed the permissions to 777 and the issue went away.

Complex model validation

I needed to validate beyond just checking to make sure a field wasn't empty or it matched a regular expression. In particular, I needed a way to verify that the email address users registered with was unique. In the wiki I found this gem: this advanced validation tutorial, which covers some advanced methods of validation that were very useful.

Logging errors

$this->log('Something broke');
This will log your error to /tmp/logs/ (I initially made the mistake of thinking it would log it to the apache error log)

Creating a controller that uses other models

Suppose you have a controller that needs data from a bunch of different models, simply add this to the top of your controller:
class yourController extends AppController
{
var $uses = array('Post','User');
}

This controller would then have access to both the Post and the User model.

Creating a model for a table that doesn't actually exist in the database

I needed a way to create a model and controller without actually having an associated table in the database. I particularly wanted to make use of the $validate array so I could easily validate my fields and keep the validation logic in the model. CakePHP will throw an error if you create a model for a table that doesn't exist. Adding this to the model fixed the problem:
var $useTable = false;
You can use this to change tables names as well.
var $useTable = 'some_table';

Call exit() after redirecting

This should be no surprise to anyone who has done any serious web development in the past, but make sure you call exit() after running $this->redirect() if there's code afterward that you don't want to run. I've always done this in the past, but I made the assumption that $this->redirect() would make an exit call for me (which it didn't).

Advanced model functions

Unless you delve in to the API, there are some very useful model functions at your disposal you might not know exist. I highly recommend reading over the Model Class Reference at least once. Here's a few key functions I wasn't aware of that I found to be very useful:

  • generateList() - I use this function primarily to populate select boxes with data from associated tables
  • findBySql() - Sometimes you just need to write your own SQL
  • findCount() - Returns number of rows matching given SQL condition
  • hasAny() - Returns true if a record that meets the given conditions exists.

Again, I highly recommend reading over the entire model class reference, you'll be surprised at what you learn.

Inserting multiple rows in succession

I had a situation where I needed to iterate through a list of items and insert new rows for each. I quickly discovered that if you insert an item and then immediately insert another, the item that is inserted next doesn't insert at all. Instead the previously inserted row was being updated. For example:
$items = array('Item 1','Item 2','Item 3');
foreach ($items as $item) {
  $this->Post->save(array('Post' => array('title' => $item)));
}

This code will result in a single entry in the posts table: "item 3." CakePHP inserted "item 1", but then updates it to become "item 2," then "item 3" because $this->Post->id gets the value of the last inserted ID. Normally this functionality is very useful, but in this particular instance it was not. I found was to setting $this->Post->id = false after each insert solved the problem.

Inserting logic before or after controller functions

Suppose you needed an array of colors to be available to every view rendered by your controller but you don't want to have to define this data in every action. Using the beforeRender() callback will allow you to do this:
function beforeRender() {
  $this->set('colors',array('red','blue','green');
}

This would make $colors accessible in every view rendered by that controller. beforeRender() is called after the controller logic and just before a view is rendered.
There's also beforeFilter() and afterFilter(), which are called before and after every controller action. For more information, read up on callbacks in the models section of the manual.

Adding a WYSIWYG editor to CakePHP

I found this great tutorial on getting TinyMCE set up with CakePHP. Basically you just link the tiny_mce .js file to your page and then add a small bit of init code to every page that you want textareas to be converted into TinyMCE editors.

Writing your own SQL for HABTM relationships

I had an issue with trying to create a HABTM (has-and-belongs-to-many) relationship where I needed to specify my own SQL statement. According to the docs (at the time of this writing) you should set finderSql in your model, but according to the cakePHP source you should set finderQuery instead. It's just a foul-up in the docs, but I figured it'd be worth noting to save others from having to figure it out for themselves. Trac ticket here: https://trac.cakephp.org/ticket/1217

Sending email

I found two tutorials in the wiki: Sending email and Sending email with PHPMailer
I highly recommend the latter of the two, sending emails with PHPMailer is more secure and there's less of a headache because you don't have to deal with constructing the mail headers yourself.

Customizing HTML generated by the Helper

I needed to change the default <option> generated when I called $html->selectTag() to say something like "Please Select" rather than an empty space (default). I also wanted radio buttons to have labels so the user doesn't have to click exactly on the radio button itself but can instead click anywhere on the text associated with it.
Create the file /app/config/tags.ini.php and add the following:
; Tag template for a input type='radio' tag.
radio = "<input type="radio" name="data[%s][%s]" id="%s" %s /><label for="%3$s">%s</label>"
; Tag template for an empty select option tag.
selectempty = "<option value="" %s>-- Please Select --</option>"

You can get a full list of available tags in /cake/config/tags.ini.php. I wouldn't recommend modifying that file, however, because you could lose your changes when you upgrade CakePHP.

Creating a custom 404 error page

If you need to change the page that users see when a document is not found, create:
/app/views/errors/error404.thtml

Wednesday, June 20, 2007

Create Word Document Using PHP


//1. create the MS Word Object.s
$word = new COM("word.application") or die("Unable to instantiate Word");

//2. specify the MS Word template document (with Bookmark {firstname} inside)

$template_file = "template1.dot";

//3. open the template document

$word->Documents->Open($template_file);

//4. get the username from database.

$user_name = "Jignesh";

//5. get the bookmark and create a new MS Word Range (to enable text substitution)

$bookmarkname = "firstname";

$objBookmark = $word->ActiveDocument->Bookmarks($bookmarkname);

$range = $objBookmark->Range;

//6. now substitute the bookmark with actual value

$range->Text = $user_name;

//7. Write Image to word file.

$word->ActiveDocument->Shapes->AddPicture("logo.gif",TRUE,TRUE,100,100);

//8. save the template as a new document (c:/reminder_new.doc)

$new_file = "name2.doc";

$word->Documents[1]->SaveAs($new_file);

//9. free the object

$word->Quit();

$word = null;

echo "File Successfully Created.";


/* Check Bookmark available or not in the document.

if($word->ActiveDocument->Bookmarks->Exists($bookmarkname))
{
//then create a Range and perform the substitution

$objBookmark = $word->ActiveDocument->Bookmarks($bookmarkname);
$range = $objBookmark->Range;
//now substitute the bookmark with actual value
$range->Text = $current_date;

}
*/


?>

Monday, June 18, 2007

Generate PDFs with PHP

In order to use PHP's PDF manipulation capabilities, you need to have the PDFLib library installed on your system. If you're working on Linux, you can download a copy from http://www.pdflib.com/pdflib/index.html and compile it for your box. If you're running Windows, your job is even simpler - a pre-built PDF library is bundled with your distribution, and all you need to do is activate it by uncommenting the appropriate lines in your PHP configuration file.

Additionally, you'll need a copy of the (free!) Adobe Acrobat PDF reader, so that you can view the documents created via the PDFLib library. You can download a copy of this reader from http://www.adobe.com/

Once you've got everything in place, it's time to create a simple PDF file. Here goes:

// create handle for new PDF document
$pdf = pdf_new();

// open a file
pdf_open_file($pdf, "philosophy.pdf");

// start a new page (A4)
pdf_begin_page($pdf, 595, 842);

// get and use a font object
$arial = pdf_findfont($pdf, "Arial", "host", 1); pdf_setfont($pdf, $arial, 10);

// print text
pdf_show_xy($pdf, "There are more things in heaven and earth, Horatio,", 50, 750); pdf_show_xy($pdf, "than are dreamt of in your philosophy", 50, 730);

// end page
pdf_end_page($pdf);

// close and save file
pdf_close($pdf);
?>

Save this file, and then browse to it through your Web browser. PHP will execute the script, and a new PDF file will be created and stored in the location specified at the top of the script. Here's what you'll see when you open the file:

1225_1 (click to view image)

Anatomy Lesson

Let's take a closer look at the code used in the example above.

Creating a PDF file in PHP involves four basic steps: creating a handle for the document; registering fonts and colours for the document; writing or drawing to the handle with various pre-defined functions; and saving the final document.

Let's take the first step - creating a handle for the PDF document.

// create handle for new PDF document
$pdf = pdf_new();

This is accomplished via the pdf_new() function, which returns a handle to the document. This handle is then used in all subsequent operations involving the PDF document.

Next up, you need to give the PDF file a name - this is accomplished via the pdf_open_file() function, which requires the handle returned in the previous operation, together with a user-defined file name.

// open a file
pdf_open_file($pdf, "philosophy.pdf");

Once a document has been created, you can insert new pages in it with the
pdf_begin_page() function,

// start a new page (A4)
pdf_begin_page($pdf, 595, 842);

and end pages with the - you guessed it! - pdf_end_page() function.

// end page
pdf_end_page($pdf);

Note that the pdf_begin_page() function requires two additional parameters, which represent the width and height of the page to be created in points (a point is 1/72 of an inch). In case math isn't your strong suit, the PHP manual provides width and height measurements for most standard page sizes, including A4, the one used in the example above.

In between the calls to pdf_begin_page() and pdf_end_page() comes the code that actually writes something to the PDF document, be it text, images or geometric shapes. In this case, all I'm doing is writing a line of text to the document - so all I need to do is pick a font, and then use that font to write the text string I need to the document.

Selecting and registering a font is accomplished via the pdf_findfont() and pdf_setfont() functions. The pdf_findfont() function prepares a font for use within the document, and requires the name of the font, the encoding to be used, and a Boolean value indicating whether or not the font should be embedded in the PDF file; it returns a font object, which may be used via a call to pdf_setfont().

$arial = pdf_findfont($pdf, "Arial", "host", 1); pdf_setfont($pdf, $arial, 10);

Once the font has been set, the pdf_show_xy() function can be used to write a text string to a particular position on the page.

// print text
pdf_show_xy($pdf, "There are more things in heaven and earth, Horatio,", 50, 750); pdf_show_xy($pdf, "than are dreamt of in your philosophy", 50, 730);

As you can see, this function requires a handle to the PDF document, a reference to the font object to be used, the text string to be written (obviously!), and the X and Y coordinates of the position at which to begin writing the text. These coordinates are specified with respect to the origin (0,0), which is located at the bottom left corner of the document.

Once the text has been written, the page is closed via a call to pdf_end_page(). You can then add one or more extra pages, or - as I've done here - simply close the document via pdf_close(). This will save the document contents to the file specified in the initial call to pdf_open_file(), and destroy the document handle created.

Saturday, June 16, 2007

PHP books collection

Note:

links are tested only on mozila firefox. so please first download

mozila firefox brower to view full link. you can get it from right top

corner of this site. Internet explorer may cut some part of links.



Copy and paste the links in address bar and change 'hxxp' to 'http' and press enter:



index of parent directory

O'Reilly - Essential PHP.Security (October 2005).chm 369k Compiled HTML eBook

O'Reilly - PHP Cookbook.chm 1.2M Compiled HTML eBook

O'Reilly - PHP in a Nutshell (October 2005).chm 1.1M Compiled HTML eBook

O'Reilly - Programming PHP.chm 1.5M Compiled HTML eBook

hxxp://www.discordiaphile.com/books/PHP/

index of parent directory

(EN) Sams Teach Yourself PHP, MySQL and Apache All in One.chm 01-Jun-2005 15:06 4.2M

(eBook) - Professional PHP Programming.pdf 01-Jun-2005 15:08 18M

(ebook) Building PHP Applications With Macromedia Dreamweaver MX.pdf 01-Jun-2005 15:01 371K

(ebook) O'Reilly - PHP Cookbook.PDF 01-Jun-2005 15:03 2.6M

MySQL-PHP.pdf 01-Jun-2005 15:10 3.5M

PHP and MySQL - MySQL Bible.pdf 01-Jun-2005 15:15 6.3M

PHP and MySQL Web Dev.pdf 01-Jun-2005 15:15 7.1M

Sams.Teach.Yourself.PHP.MySQL.And.Apache.In.24Hours.eBook-LiB.chm 01-Jun-2005 15:17 3.3M

Wiley,.PHP.5.for.Dummies.(2004).DDU;.BM.OCR.6.0.ShareConnector.pdf 01-Jun-2005 15:18 5.9M

building a database-driven website using php and mysql.pdf 01-Jun-2005 15:06 342K

eBook_Web_Application_Development_With_PHP_4.0_ShareReactor.pdf 01-Jun-2005 15:10 6.3M

hxxp://www.csxix.com/ebook/PHP eBook/

index of parent directory

(ebook - pdf) - web application design with php4.pdf 19-Oct-2006 07:35 6.3M

(ebook-pdf) oreilly - programming php.pdf 19-Oct-2006 07:38 6.8M

sams teach yourself php 4 in 24 hours.pdf 19-Oct-2006 07:32 2.5M

hxxp://phattymatty.net/media/software/PHP/

John.Wiley.and.Sons.PHP.and.MySQL.for.Dummies.Second.Edition.Mar.2004.eBook-DDU.pdf 11-Mar-2005 17:04 9.5M

hxxp://www.astral.ro/~cata/carte/

index of parent direcotry

(ebook - CHM) Sams - Teach Yourself PHP MySQL and Apache in 24 Hours - 2003.chm 2 3.3 MB 2006-Aug-14

(ebook pdf) MySQL-PHP.pdf 11 3.5 MB 2006-Aug-14

Beginning PHP, Apache, MySQL Web Development.pdf 0 12.4 MB 2006-Aug-14

Dynamic Site with PHP_MySQL.pdf 7 611.9 KB 2006-Aug-14

mysql-php database applications.pdf 3 3.5 MB 2006-Aug-14

PHP & MySQL For Dummies®, 2nd Edition.pdf 5 9.5 MB 2006-Aug-14

php-mysql tutorial.pdf 0 196.7 KB 2006-Aug-14

PHP - SAMS - PHP and MySQL Web Development.pdf 0 7.0 MB 2006-Aug-14

PHP 5 and MySQL Bible.pdf 5 16.0 MB 2006-Aug-14

PHP and MySQL for Dummies - Second Edition.pdf 5 9.5 MB 2006-Aug-14

PHP and MySQL Web Dev.pdf 4 7.1 MB 2006-Aug-14

php_mysql_tutorial.pdf 0 1.1 MB 2006-Aug-14

Teach.Yourself.PHP.In.24hours.chm 12 2.2 MB 2006-Aug-14

Teach Yourself PHP, MySQL® and Apache All in One, Second Edition.chm 1 9.0 MB 2006-Aug-14

Teach Yourself PHP, MySQL and Apache - All-in-One 2003.chm 1 4.2 MB 2006-Aug-14

Web Database Applications with PHP & MySQL 2002.pdf 0 6.3 MB 2006-Aug-14

Web Database Application with PHP and MySQL, 2nd Edition.chm 1 2.6 MB 2006-Aug-14

Wiley - MySQL and PHP Database Applications, 2nd Ed - 2004.pdf 0 3.9 MB 2006-Aug-14

hxxp://haus-inc.org/DLSectional/index.php?dir=eBooks/PHP-n-MySQL/

PHP & MySQL For Dummies, 2nd Edition.pdf 19-Oct-2006 20:13 9.5M

PHP 5 and MySQL Bible.pdf 19-Oct-2006 19:56 16.0M

PHP.pdf 16-Oct-2006 18:04 18.0M

hxxp://users.telenet.be/1DR8/

hxxp://rapidshare.com/files/5953743/Spring_into_PHP_5_-_Addison_Wesley.chm

hxxp://rapidshare.com/files/5953019/SamPMA24.chm

hxxp://rapidshare.com/files/5952934/Prentice.Hall.PTR.PHP.5.Power.Programming.Oct.2004.eBook-LiB.chm



hxxp://rapidshare.com/files/5952503/Premier_Press_-_PHP_Professional_Projects__868_pages__-_2002.chm

hxxp://rapidshare.com/files/5951950/PHP_5_Recipes_A_Problem_Solution_Approach_-_APress.pdf

hxxp://rapidshare.com/files/5951778/PHP_5_for_Dummies_-_Wiley_2004.pdf

hxxp://rapidshare.com/files/5951553/PHP_5_Fast___Easy_Web_Development.chm

hxxp://rapidshare.com/files/5951222/OReilly.PHP.in.a.Nutshell.Oct.2005.chm

hxxp://rapidshare.com/files/5951171/OReilly.Essential.PHP.Security.Oct.2005.chm

hxxp://rapidshare.com/files/5951155/New_Riders_-_Php_Functions_Essential_Reference.chm

hxxp://rapidshare.com/files/5950946/McGraw-Hill.How.to.Do.Everything.with.PHP.and.MySQL.2005.LinG.pdf

hxxp://rapidshare.com/files/5950639/Advanced_Php_For_Web_Professionals_-_Prentice_Hall.chm



Download Page





php|architect's Guide to PHP Security









php|architect's Guide to PHP Security|

By Ilia Alshanetsky



* Publisher: Marco Tabini & Associates, Inc.

* Number Of Pages: 200

* Publication Date: 2005-09-05

* Sales Rank: 28027

* ISBN / ASIN: 0973862106

* EAN: 9780973862102

* Binding: Paperback

* Manufacturer: Marco Tabini & Associates, Inc.

* Studio: Marco Tabini & Associates, Inc. More...Book Description:

With
the number of security flaws and exploits discovered and released every
day constantly on the rise, knowing how to write secure and reliable
applications is become more and more important every day. Written by
Ilia Alshanetsky, one of the foremost experts on PHP security in the
world, php|architect's Guide to PHP Security focuses on providing you
with all the tools and knowledge you need to both secure your existing
applications and writing new systems with security in mind. This book
gives you a step-by-step guide to each security-related topic,
providing you with real-world examples of proper coding practices and
their implementation in PHP in an accurate, concise and complete way.
Provides techniques applicable to any version of PHP, including 4.x and
5.x Includes a step-by-step guide to securing your applications
Includes a comprehensive coverage of security design Teaches you how to
defend yourself from hackers Shows you how to distract hackers with a
"tar pit" to help you fend off potential attacks

Download

Download Page







SkillSoft Press, Integrating PHP and XML







SkillSoft Press, Integrating PHP and XML

SkillSoft Press | ISBN: N/A | 2004 Year | CHM | 5,8 Mb | Pages: N/A




PHP
is a server-side scripting language used to create Web applications.
XML is a markup language used to exchange data among Web applications.
PHP can be integrated with XML to create Web applications. This book
describes how to use SAX, XSLT, and XPath to manipulate XML documents.
It also describes use of XML-RPC protocol for accessing procedures on a
remote computer. In addition, the book covers WDDX, a technology used
for information exchange between different programming languages.More...



This
book describes how to create an online shopping cart application that
allows an end user to search for a specific book in a database, place
an order for the book, and purchase the book online.



About the Authors

Amrita
Dubey holds a Bachelor's degree in Electronics and Communication
Engineering. She has worked on various development projects, such as
UNIX shell programming and designing function generator using IC
XR-2206. She is proficient in 8085 microprocessor programming. She also
has knowledge of CNCs, PLCs, circuit designing on PCBs, Software
Quality Testing, RDBMS, SQL Server, and Database Design Studio
Professional 2.21.1. As a technical writer, Amrita has co-authored
books on Digital Electronics, Integrating Java with Oracle9i, PIC
Microcontrollers, Robotics, and Integrating PHP and XML.



Poonam
Sharma holds a Bachelor's degree in Commerce and a DNIIT diploma. In
addition, she is pursuing Master's degree in Computer Applications. She
is proficient in technologies such as Java, C++, VB, ASP, Servlets,
JSP, HTML, UNIX, Linux, and SQL Server 2000. Poonam has worked on
projects such as Online Banking using VB and SQL and Creating Chat
Application in Java. As a technical writer, she has co-authored books
on Working with Korn Shell, Administering Red Hat Linux 9, Basic
Programming in C++, Unix Operating System, and Integrating PHP and XML.



Sreeparna
Dasgupta holds a Master's degree in Computer Science and has earned 'A'
Level certificate from DOEACC. She has worked and trained people on
several technologies, such as Java, C, C++, Visual Basic, Macromedia
Flash MX, Photoshop, Macromedia Director MX, Oracle, SQL Server, Perl,
ASP, and JSP. In addition, Sreeparna has developed online Web
applications using technologies such as ASP.



Vishi Gupta holds a
degree in Electrical Engineering. She is proficient in C, C++, Linux
and PHP. As a technical writer, she has co-authored several books and
articles on varying technologies including PHP, XML, SOAP, Linux, Core
Java, PHPLens, C and C++.



Lalit Kapoor holds a Bachelor's degree
in Computer Engineering. He has completed DNIIT course from NIIT. As a
technical writer, he has authored articles on Java, Oracle, SQL Server,
and PHP.

6084 KB



RAR'd CHM

Download

Download Page





PHP 5 Advanced: Visual QuickPro Guide









PHP 5 Advanced: Visual QuickPro Guide

By Larry Ullman



* Publisher: Peachpit Press

* Number Of Pages: 608

* Publication Date: 2007-03-05

* Sales Rank: 126794

* ISBN / ASIN: 0321376013

* EAN: 9780321376015

* Binding: Paperback

* Manufacturer: Peachpit Press

* Studio: Peachpit Press More...Book Description:

PHP
is currently one of the most popular server-side, HTML-embedded
scripting language on the Web. It's specifically designed for Web site
creation and is frequently being used to replace the functionality
created by Perl to write CGI scripts. PHP's popularity and
easier-to-learn appeal has spawned a new breed of programmer, those who
are only familiar with and only use PHP.



Sharpen your PHP skills with the fully revised and updated, PHP 5 Advanced for the World Wide Web: Visual QuickPro Guide! Filled with fifteen chapters of step-by-step content and written by best-selling author and PHP programmer, Larry Ullman,
this guide teaches specific topics in direct, focused segments, shows
how PHP is used in real-world applications, features popular and
most-asked-about scripts, and details those technologies that will be
more important in the future. You'll learn about object-oriented
programming, PHP interactions with a server, XML, RSS, Networking with
PHP, image and PDF generation, and more.

Download

Download Page





Advanced PHP for Web Professionals









Advanced PHP for Web Professionals

By Christopher Cosentino,&nbspChris Cosentino,



* Publisher: Prentice Hall PTR

* Number Of Pages: 368

* Publication Date: 2002-10-29

* Sales Rank: 589696

* ISBN / ASIN: 0130085391

* EAN: 0076092016236

* Binding: Paperback

* Manufacturer: Prentice Hall PTR

* Studio: Prentice Hall PTR More...Summary:

From the Back Cover



* Build complex, PHP-driven Web sites—fast!

* Discover powerful new PHP techniques, hands on!

* Learn all-new techniques based on PHP-GTK and PEAR::DB

* Master XML parsing, user authentication, forms processing, data mining, and much more



Take your PHP programming skills to the next level!



In
this concise, hands-on tutorial, PHP expert Christopher Cosentino
delivers dozens of powerful new techniques for building serious Web
applications. Through professional-quality examples drawn from his six
years as a PHP developer, Cosentino walks you through building
friendlier, more usable sites; improving user authentication;
generating dynamic graphics; parsing XML documents; building
database-independent Web applications; and much more!



Take PHP to the limit... and beyond!



* Manage sessions more effectively

* Interact with multiple databases via PEAR::DB

* Improve your form processing scripts

* Parse large files and perform data mining

* Authenticate users by IP address, database query, or HTTP authentication

* Create custom error handlers

* Dump database contents into XML files

* Use PHP-GTK to build client-side cross-platform GUI applications

* And more...



Download

Download Page





Web Application Development with PHP 4.0









Sams
ISBN: 0735709971 July 15, 2000 384 pages PDFPHP is an open-source Web
scripting language that's gaining steam in the development community,
especially in the Apache Web server realm. With a syntax that draws
heavily on C, PHP appeals to advanced programmers who are moving to the
Web from traditional software development.Web Application Development
with PHP 4.0 isn't your run-of-the-mill language tutorial. Authors
Ratschiller and Gerken purposely designed its content to appeal to
coders who already are proficient in PHP, but in need of advanced
programming techniques and high-level application-development skills.
Assuming a strong programming foundation, this book can be considered a
next-level PHP tutorial.


Download Page







PHPUnit Pocket Guide











Publisher: O'Reilly Media, Inc.

Number Of Pages: 88

Publication Date: 2005-09-29

Sales Rank: 118776

ISBN / ASIN: 0596101031

EAN: 9780596101039

Binding: Paperback

Manufacturer: O'Reilly Media, Inc.

Studio: O'Reilly Media, Inc. Book Description:

Smart
web developers will tell you that the sooner you detect your code
mistakes, the quicker you can fix them, and the less the project will
cost in the long run. Well, the most efficient way to detect your
mistakes in PHP is with PHPUnit, an open source framework that
automates unit testing by running a battery of tests as you go. The
benefits of PHPUnit are significant:

a reduction in the effort required to frequently test code

fewer overall defects

added confidence in your code

improved relations with your open source teammates

The
only problem with this popular testing tool was its lack of
documentation-until now, that is. For this, O'Reilly went right to the
source, as Sebastian Bergmann, the author of PHPUnit Pocket Guide, also
happens to be PHPUnit's creator. This little book brings together
hard-to-remember information, syntax, and rules for working with
PHPUnit. It also delivers the insight and sage advice that can only
come from the technology's creator. Coverage of testing under agile
methodologies and Extreme Programming (XP) is also included.

The
latest in O'Reilly's series of handy Pocket Guides, this
quick-reference book puts all the answers are right at your fingertips.
It's an invaluable companion for anyone interested in testing the PHP
code they write for web applications.

Download
Download Page





PHP by Example











Publisher: Que

Number Of Pages: 450

Publication Date: 2001-11-07

Sales Rank: 1031854

ISBN / ASIN: 0789725681

EAN: 0029236725686

Binding: Paperback

Manufacturer: Que

Book Description:

PHP
By Example will provide web-publishing oriented individuals the
opportunity to learn a new, flexible Internet scripting language, PHP.
This book will take the reader through step-by-step examples that will
help them gain an understanding of PHP. PHP By Example will:

Explain concepts in simple, understandable tasks with multiple approaches to concepts that need clarification.

Encourage and train the reader to break problems down into logical steps

Download
Download Page





PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide









ISBN: 0321186486


Author: Larry Ullman


Publisher: Peachpit Press


URL:


Summary:When
static HTML pages no longer cut it, you need to step up to dynamic,
database-driven sites that represent the future of the Web. In PHP and
MySQL for Dynamic Web Sites: Visual QuickPro Guide, the author of
best-selling guides to both the database program (MySQL) and the
scripting language (PHP) returns to cover the winning pair in
tandem—the way users work with them today to build dynamic sites using
Open Source tools. Using step-by-step instructions, clearly written
scripts, and expert tips to ease the way, author Larry Ullman
/http://www.amazon.com/exec/obidos/redirect?tag=songstech-20&path=ASIN%2F0321186486
discusses PHP and MySQL separately before going on to cover security,
sessions and cookies, and using additional Web tools, with several
sections devoted to creating sample applications. A companion Web site
includes source code and demonstrations of techniques used in the
volume. If you're already at home with HTML, you'll find this volume
the perfect launching pad to creating dynamic sites with PHP and MySQL.




mirror :




Download Page









PHP books collection

Note:
links are tested only on mozila firefox. so please first download
mozila firefox brower to view full link. you can get it from right top
corner of this site. Internet explorer may cut some part of links.



Copy and paste the links in address bar and change 'hxxp' to 'http' and press enter:



index of parent directory

O'Reilly - Essential PHP.Security (October 2005).chm 369k Compiled HTML eBook

O'Reilly - PHP Cookbook.chm 1.2M Compiled HTML eBook

O'Reilly - PHP in a Nutshell (October 2005).chm 1.1M Compiled HTML eBook

O'Reilly - Programming PHP.chm 1.5M Compiled HTML eBook

hxxp://www.discordiaphile.com/books/PHP/

index of parent directory

(EN) Sams Teach Yourself PHP, MySQL and Apache All in One.chm 01-Jun-2005 15:06 4.2M

(eBook) - Professional PHP Programming.pdf 01-Jun-2005 15:08 18M

(ebook) Building PHP Applications With Macromedia Dreamweaver MX.pdf 01-Jun-2005 15:01 371K

(ebook) O'Reilly - PHP Cookbook.PDF 01-Jun-2005 15:03 2.6M

MySQL-PHP.pdf 01-Jun-2005 15:10 3.5M

PHP and MySQL - MySQL Bible.pdf 01-Jun-2005 15:15 6.3M

PHP and MySQL Web Dev.pdf 01-Jun-2005 15:15 7.1M

Sams.Teach.Yourself.PHP.MySQL.And.Apache.In.24Hours.eBook-LiB.chm 01-Jun-2005 15:17 3.3M

Wiley,.PHP.5.for.Dummies.(2004).DDU;.BM.OCR.6.0.ShareConnector.pdf 01-Jun-2005 15:18 5.9M

building a database-driven website using php and mysql.pdf 01-Jun-2005 15:06 342K

eBook_Web_Application_Development_With_PHP_4.0_ShareReactor.pdf 01-Jun-2005 15:10 6.3M

hxxp://www.csxix.com/ebook/PHP eBook/

index of parent directory

(ebook - pdf) - web application design with php4.pdf 19-Oct-2006 07:35 6.3M

(ebook-pdf) oreilly - programming php.pdf 19-Oct-2006 07:38 6.8M

sams teach yourself php 4 in 24 hours.pdf 19-Oct-2006 07:32 2.5M

hxxp://phattymatty.net/media/software/PHP/

John.Wiley.and.Sons.PHP.and.MySQL.for.Dummies.Second.Edition.Mar.2004.eBook-DDU.pdf 11-Mar-2005 17:04 9.5M

hxxp://www.astral.ro/~cata/carte/

index of parent direcotry

(ebook - CHM) Sams - Teach Yourself PHP MySQL and Apache in 24 Hours - 2003.chm 2 3.3 MB 2006-Aug-14

(ebook pdf) MySQL-PHP.pdf 11 3.5 MB 2006-Aug-14

Beginning PHP, Apache, MySQL Web Development.pdf 0 12.4 MB 2006-Aug-14

Dynamic Site with PHP_MySQL.pdf 7 611.9 KB 2006-Aug-14

mysql-php database applications.pdf 3 3.5 MB 2006-Aug-14

PHP & MySQL For Dummies®, 2nd Edition.pdf 5 9.5 MB 2006-Aug-14

php-mysql tutorial.pdf 0 196.7 KB 2006-Aug-14

PHP - SAMS - PHP and MySQL Web Development.pdf 0 7.0 MB 2006-Aug-14

PHP 5 and MySQL Bible.pdf 5 16.0 MB 2006-Aug-14

PHP and MySQL for Dummies - Second Edition.pdf 5 9.5 MB 2006-Aug-14

PHP and MySQL Web Dev.pdf 4 7.1 MB 2006-Aug-14

php_mysql_tutorial.pdf 0 1.1 MB 2006-Aug-14

Teach.Yourself.PHP.In.24hours.chm 12 2.2 MB 2006-Aug-14

Teach Yourself PHP, MySQL® and Apache All in One, Second Edition.chm 1 9.0 MB 2006-Aug-14

Teach Yourself PHP, MySQL and Apache - All-in-One 2003.chm 1 4.2 MB 2006-Aug-14

Web Database Applications with PHP & MySQL 2002.pdf 0 6.3 MB 2006-Aug-14

Web Database Application with PHP and MySQL, 2nd Edition.chm 1 2.6 MB 2006-Aug-14

Wiley - MySQL and PHP Database Applications, 2nd Ed - 2004.pdf 0 3.9 MB 2006-Aug-14

hxxp://haus-inc.org/DLSectional/index.php?dir=eBooks/PHP-n-MySQL/

PHP & MySQL For Dummies, 2nd Edition.pdf 19-Oct-2006 20:13 9.5M

PHP 5 and MySQL Bible.pdf 19-Oct-2006 19:56 16.0M

PHP.pdf 16-Oct-2006 18:04 18.0M

hxxp://users.telenet.be/1DR8/

hxxp://rapidshare.com/files/5953743/Spring_into_PHP_5_-_Addison_Wesley.chm

hxxp://rapidshare.com/files/5953019/SamPMA24.chm

hxxp://rapidshare.com/files/5952934/Prentice.Hall.PTR.PHP.5.Power.Programming.Oct.2004.eBook-LiB.chm



hxxp://rapidshare.com/files/5952503/Premier_Press_-_PHP_Professional_Projects__868_pages__-_2002.chm

hxxp://rapidshare.com/files/5951950/PHP_5_Recipes_A_Problem_Solution_Approach_-_APress.pdf

hxxp://rapidshare.com/files/5951778/PHP_5_for_Dummies_-_Wiley_2004.pdf

hxxp://rapidshare.com/files/5951553/PHP_5_Fast___Easy_Web_Development.chm

hxxp://rapidshare.com/files/5951222/OReilly.PHP.in.a.Nutshell.Oct.2005.chm

hxxp://rapidshare.com/files/5951171/OReilly.Essential.PHP.Security.Oct.2005.chm

hxxp://rapidshare.com/files/5951155/New_Riders_-_Php_Functions_Essential_Reference.chm

hxxp://rapidshare.com/files/5950946/McGraw-Hill.How.to.Do.Everything.with.PHP.and.MySQL.2005.LinG.pdf

hxxp://rapidshare.com/files/5950639/Advanced_Php_For_Web_Professionals_-_Prentice_Hall.chm



Download Page &gt;&gt;&gt;&gt;&gt;

Friday, June 15, 2007

Safari Browser for Windows





Google renders weird on Win Safari...





Apple today announced that their Mac Safari browser is now also available on Windows. Apple calls this “the world’s best browser,” though Ionut Alex. Chitu in the Steve Jobs keynote thread disagrees, warning that “Safari/Windows uses a lot of RAM and it’s extremely slow. It also crashes every 3 minutes.”





What’s interesting is that the Windows version has the look &

feel of the Mac version even when it comes to elements which are

traditionally left to the operating system (less interface surprises =

better usability). For instance, when I maximize the browser window on

Win XP, then move my mouse towards the far top right to click (this is

usually the position of the close button “x”), the program currently behind

Safari will be closed (apparently because there’s a tiny pixel not

covered by the maximization; surprise!). As another example: I always

set my Windows task bar to auto-collapse to the left-hand side; with

Safari open, it won’t expand anymore, a barrier to switch between

different program windows... another surprise.





Maybe this is all to be excused as the program is still in Beta.

Then again, thanks to Google and others the word “Beta” pretty much

lost its meaning these days...

Source