First off, all three of these server-side languages have one simularity. They can operate embedded within HTML, also the author can jump between HTML and ASP/PHP/Cold Fusion along with a database to create dynamically generated web sites.
-- ASP -- (Active Server Pages)
ASP is the Microsoft version of server-side scripting. Usually, pages with .asp extension have some dynamically generated areas within their content, or backend. ASP pages utilize ActiveX scripting, or VB script, inorder to function.
When a browser requests an ASP page, the Web server generates a page with HTML code and sends it back to the browser. So ASP pages are similar to CGI scripts, but they enable Visual Basic programmers to work with familiar tools.
-- PHP -- (PHP: Hypertext Preprocessor)
Most scriptors will tell you that PHP is the UNIX euivalent of ASP. PHP is more widely used, because it supported by multiple platforms, and MANY databases. Also, unlike Microsoft's ASP, PHP is completely free, and MUCH easier to use, in my opinion. (To use ASP, you have to BUY it, plus it only works on Windoze servers.)
In more detail, PHP script (similar syntax to that of Perl or C ) is enclosed within special PHP tags. PHP can talk across networks using IMAP, SNMP, NNTP, POP3, or HTTP.
-- ColdFusion -- (ColdFusion MX)
ColdFusion was originally developed by Allaire Corporation (now merged with Macromedia) that includes a server and a development language designed to integrate databases and Web pages. This is about all I know.
I'm not sure what the advantage is by using ColdFusion over PHP, but perhaps someone else does?