Htaccess

Creating A .htaccess File

Creating a .htaccess file may cause you a few problems. Writing the file is easy, you just need enter the appropriate code into a text editor (like notepad). You may run into problems with saving the file. Because .htaccess is a strange file name (the file actually has no name but a 8 letter file extension) it may not be accepted on certain systems (e.g. Windows 3.1). With most operating systems, though, all you need to do is to save the file by entering the name as:

".htaccess"

(including the quotes). If this doesn't work, you will need to name it something else (e.g. htaccess.txt) and then upload it to the server. Once you have uploaded the file you can then rename it using an FTP program.

Start like this:

You can use custom error pages for any error as long as you know its number (like 404 for page not found) by adding the following to your .htaccess file:

ErrorDocument errornumber /file.html /*optional
RewriteEngine On .....this is line should be
there in all htaccess file.

eg:

ErrorDocument errornumber /file.html

RewriteEngine On
RewriteRule ^article/([0-9]+)/? article.php&article=$1
[R]

.htaccess file to stop the directory list from being shown:

Options -indexes

You can block an IP address by using:

deny from 000.000.000.000

To allow :

allow from 000.000.000.000
To denyl all :
deny from all

Ajax

I find a lot of this AJAX stuff a bit of a hype.
Lots of people have been using similar things long
before it became "AJAX".
And it really isn't as
complicated as a lot of people make it out to be.

Here is a simple example from one of my apps.
First the Javascript:
 function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}
 var http = createRequestObject();
 function sndReq(action) {
    http.open('get', 'rpc.php?action='+action);
    http.onreadystatechange = handleResponse;
    http.send(null);
}
 function handleResponse() {
    if(http.readyState == 4){
        var response = http.responseText;
        var update = new Array();
 
        if(response.indexOf('|' != -1)) {
            update = response.split('|');
    document.getElementById(update[0]).innerHTML = update[1];
        }
    }
}
This creates a request object along with a send request and handleresponse function.
So to actually use it, you could include
this js in your page.
Then to make one of these backend requests
you would tie it to something.
Like an onclick event or a straight
href like this:
   [foo]
 That means that when someone clicks on that link what actually
happens is that a backend request to rpc.php?action=foo will be
sent. In rpc.php you might have something like this:
   switch($_REQUEST['action']) {
    case 'foo':
      / do something /
      echo "foo|foo done";
      break;
    ...
  }
Now, look at handleResponse.  It parses the "foo|foo done" string
and splits it on the '|' and uses whatever is before the '|' as the
dom element id in your page and the part after as the new innerHTML
of that element.
That means if you have a div tag like this in
your page:
Once you click on that link, that will dynamically be changed to:   
  foo done
That's all there is to it.
Everything else is just building on
top of this.
Replacing my simple response "id|text" syntax with
a richer XML format and makine the request much more complicated
as well.
Before you blindly install large "AJAX" libraries, have a
go at rolling your own functionality so you know exactly how it
works and you only make it as complicated as you need.

Often you don't need much more than what I have shown here.
Expanding this approach a bit to send multiple parameters in the
request, for example, would be really simple.  Something like:
   function sndReqArg(action,arg) {
    http.open('get', 'rpc.php?action='+action+'&arg='+arg);
    http.onreadystatechange = handleResponse;
    http.send(null);
  }
 And your handleResponse can easily be expanded to do much more
interesting things than just replacing the contents of a div.

PHP 5 (New function list)

In PHP 5 there are some new functions. Here is the list of them:

Arrays:

  • array_combine() - Creates an array by using one array for keys and another for its values

  • array_diff_uassoc() - Computes the difference of arrays with additional index check which is performed by a user supplied callback function

  • array_udiff() - Computes the difference of arrays by using a callback function for data comparison

  • array_udiff_assoc() - Computes the difference of arrays with additional index check. The data is compared by using a callback function

  • array_udiff_uassoc() - Computes the difference of arrays with additional index check. The data is compared by using a callback function. The index check is done by a callback function also

  • array_walk_recursive() - Apply a user function recursively to every member of an array

  • array_uintersect_assoc() - Computes the intersection of arrays with additional index check. The data is compared by using a callback function

  • array_uintersect_uassoc() - Computes the intersection of arrays with additional index check. Both the data and the indexes are compared by using a callback functions

  • array_uintersect() - Computes the intersection of arrays. The data is compared by using a callback function