PHP Programming tips

From CSWiki
Jump to: navigation, search

The purpose of this page is to provide guidelines on php programming and in WEB-programming in general.

Using a good tool and knowing the capabilities of that tool will save you a lot of time and pain :). Most of the modern web-design tools can also provide you with common script language programming tools that can save you tons of time and frustration.
SO SPEND SOME TIME TO LEARN HOW TO USE the tool of your choice.

Sending email without a local smtp server installed

note: The Pear mail and Pear Net_smtp must be installed

 <?php
 include "Mail.php";
 
 $from = "Example sender <sender@example.com>";
 $to = "Recipient_name example <recipient@example2.com>";
 $subject = "Hi!";
 $body = "Hi,\n\nHow are you?"; 
 
 $host = "your.smtp.server.com";
 $username = "smtp_username"; //not needed if your smtp server does not need authentication
 $password = "smtp_password"; //not needed if your smtp server does not need authentication

 $headers = array ('From' => $from,
 'To' => $to,
 'Subject' => $subject);
 $smtp = Mail::factory('smtp',
 array ('host' => $host,
 'auth' => false,
 'username' => $username, //not needed if your smtp server does not need authentication
 'password' => $password //not needed if your smtp server does not need authentication
 ));

 $mail = $smtp->send($to, $headers, $body);
 
 if (PEAR::isError($mail)) {
    echo("<p>" . $mail->getMessage() . "</p>");
 } else {
    echo("<p>Message successfully sent!</p>");
 }
 ?>
 

Things you should have in mind.

Template Example
put logo here Include Top Menu file here
(Non editable region)


Include Left Menu file here

(Non editable region)



Editable region

This is where you can put everyrhitng that is different across pages
Put common non changing info here
  1. It is a very good idea to use templates.-- nsc
  2. When having menus or things that will change often in a template, put them in different files and include those files in the template. This way it is easier to update a menu and to have more control. One way of using a template is shown in the Template Example table (right)-- nsc
  3. Use configuration files. Preferably keep those configs in a directory by themselves. -- nsc
    • If one needs to make any changes to the site you are creating he/she should not have to change anything else in any other place except those files.-- nsc
  4. When there is a need for hostname usage, make sure there is no way to get the name automatically before hard coding it in. For example if you need the name of the hosting server, instead of typing it use the $_SERVER['HTTP_HOST'] variable.-- nsc
  5. ALWAYS use relative paths instead of absolute. IF you must use absolute then you should put the put the common part in a variable and use that on the rest of the paths. A good example is to use the $_SERVER['DOCUMENT_ROOT'] variable.-- nsc
  6. Use a Cascading Style Sheet (CSS) file for manipulating all the colors and the looks of your site. This way you can very easily change the look and the touch of your site very easily. -- nsc
  7. Reuse the code as much as possible. Instead of writing 5 times a JavaScript function that does similar things write it once in a file, and make it as generic as possible. Then include that file in all the pages you need it.-- nsc
  8. When creating connections to databases use localhost instead of the actual hostname unless the database is not on the same server with the application. -- nsc