Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Cấu trúc
cover.pdf
page_c1.pdf
page_r01.pdf
page_r02.pdf
page_r03.pdf
page_r04.pdf
page_r05.pdf
page_r06.pdf
page_r07.pdf
page_r08.pdf
page_r09.pdf
page_r10.pdf
page_r11.pdf
page_r12.pdf
page_r13.pdf
page_r14.pdf
page_r15.pdf
page_r16.pdf
page_r17.pdf
page_r18.pdf
page_r19.pdf
page_r20.pdf
page_r21.pdf
page_r22.pdf
page_r23.pdf
page_r24.pdf
page_r25.pdf
page_r26.pdf
page_r27.pdf
page_r28.pdf
page_z0001.pdf
page_z0002.pdf
page_z0003.pdf
page_z0004.pdf
page_z0005.pdf
page_z0006.pdf
page_z0007.pdf
page_z0008.pdf
page_z0009.pdf
page_z0010.pdf
page_z0011.pdf
page_z0012.pdf
page_z0013.pdf
page_z0014.pdf
page_z0015.pdf
page_z0016.pdf
page_z0017.pdf
page_z0018.pdf
page_z0019.pdf
page_z0020.pdf
page_z0021.pdf
page_z0022.pdf
page_z0023.pdf
page_z0024.pdf
page_z0025.pdf
page_z0026.pdf
page_z0027.pdf
page_z0028.pdf
page_z0029.pdf
page_z0030.pdf
page_z0031.pdf
page_z0032.pdf
page_z0033.pdf
page_z0034.pdf
page_z0035.pdf
page_z0036.pdf
page_z0037.pdf
page_z0038.pdf
page_z0039.pdf
page_z0040.pdf
page_z0041.pdf
page_z0042.pdf
page_z0043.pdf
page_z0044.pdf
page_z0045.pdf
page_z0046.pdf
page_z0047.pdf
page_z0048.pdf
page_z0049.pdf
page_z0050.pdf
page_z0051.pdf
page_z0052.pdf
page_z0053.pdf
page_z0054.pdf
page_z0055.pdf
page_z0056.pdf
page_z0057.pdf
page_z0058.pdf
page_z0059.pdf
page_z0060.pdf
page_z0061.pdf
page_z0062.pdf
page_z0063.pdf
page_z0064.pdf
page_z0065.pdf
page_z0066.pdf
page_z0067.pdf
page_z0068.pdf
page_z0069.pdf
page_z0070.pdf
page_z0071.pdf
page_z0072.pdf
page_z0073.pdf
page_z0074.pdf
page_z0075.pdf
page_z0076.pdf
page_z0077.pdf
page_z0078.pdf
page_z0079.pdf
page_z0080.pdf
page_z0081.pdf
page_z0082.pdf
page_z0083.pdf
page_z0084.pdf
page_z0085.pdf
page_z0086.pdf
page_z0087.pdf
page_z0088.pdf
page_z0089.pdf
page_z0090.pdf
page_z0091.pdf
page_z0092.pdf
page_z0093.pdf
page_z0094.pdf
page_z0095.pdf
page_z0096.pdf
page_z0097.pdf
page_z0098.pdf
page_z0099.pdf
page_z0100.pdf
page_z0101.pdf
page_z0102.pdf
page_z0103.pdf
page_z0104.pdf
page_z0105.pdf
page_z0106.pdf
page_z0107.pdf
page_z0108.pdf
page_z0109.pdf
page_z0110.pdf
page_z0111.pdf
page_z0112.pdf
page_z0113.pdf
page_z0114.pdf
page_z0115.pdf
page_z0116.pdf
page_z0117.pdf
page_z0118.pdf
page_z0119.pdf
page_z0120.pdf
page_z0121.pdf
page_z0122.pdf
page_z0123.pdf
page_z0124.pdf
page_z0125.pdf
page_z0126.pdf
page_z0127.pdf
page_z0128.pdf
page_z0129.pdf
page_z0130.pdf
page_z0131.pdf
page_z0132.pdf
page_z0133.pdf
page_z0134.pdf
page_z0135.pdf
page_z0136.pdf
page_z0137.pdf
page_z0138.pdf
page_z0139.pdf
page_z0140.pdf
page_z0141.pdf
page_z0142.pdf
page_z0143.pdf
page_z0144.pdf
page_z0145.pdf
page_z0146.pdf
page_z0147.pdf
page_z0148.pdf
page_z0149.pdf
page_z0150.pdf
page_z0151.pdf
page_z0152.pdf
page_z0153.pdf
page_z0154.pdf
page_z0155.pdf
page_z0156.pdf
page_z0157.pdf
page_z0158.pdf
page_z0159.pdf
page_z0160.pdf
page_z0161.pdf
page_z0162.pdf
page_z0163.pdf
page_z0164.pdf
page_z0165.pdf
page_z0166.pdf
page_z0167.pdf
page_z0168.pdf
page_z0169.pdf
page_z0170.pdf
page_z0171.pdf
page_z0172.pdf
page_z0173.pdf
page_z0174.pdf
page_z0175.pdf
page_z0176.pdf
page_z0177.pdf
page_z0178.pdf
page_z0179.pdf
page_z0180.pdf
page_z0181.pdf
page_z0182.pdf
page_z0183.pdf
page_z0184.pdf
page_z0185.pdf
page_z0186.pdf
page_z0187.pdf
page_z0188.pdf
page_z0189.pdf
page_z0190.pdf
page_z0191.pdf
page_z0192.pdf
page_z0193.pdf
page_z0194.pdf
page_z0195.pdf
page_z0196.pdf
page_z0197.pdf
page_z0198.pdf
page_z0199.pdf
page_z0200.pdf
page_z0201.pdf
page_z0202.pdf
page_z0203.pdf
page_z0204.pdf
page_z0205.pdf
page_z0206.pdf
page_z0207.pdf
page_z0208.pdf
page_z0209.pdf
page_z0210.pdf
page_z0211.pdf
page_z0212.pdf
page_z0213.pdf
page_z0214.pdf
page_z0215.pdf
page_z0216.pdf
page_z0217.pdf
page_z0218.pdf
page_z0219.pdf
page_z0220.pdf
page_z0221.pdf
page_z0222.pdf
page_z0223.pdf
page_z0224.pdf
page_z0225.pdf
page_z0226.pdf
page_z0227.pdf
page_z0228.pdf
page_z0229.pdf
page_z0230.pdf
page_z0231.pdf
page_z0232.pdf
page_z0233.pdf
page_z0234.pdf
page_z0235.pdf
page_z0236.pdf
page_z0237.pdf
page_z0238.pdf
page_z0239.pdf
page_z0240.pdf
page_z0241.pdf
page_z0242.pdf
page_z0243.pdf
page_z0244.pdf
page_z0245.pdf
page_z0246.pdf
page_z0247.pdf
page_z0248.pdf
page_z0249.pdf
page_z0250.pdf
page_z0251.pdf
page_z0252.pdf
page_z0253.pdf
page_z0254.pdf
page_z0255.pdf
page_z0256.pdf
page_z0257.pdf
page_z0258.pdf
page_z0259.pdf
page_z0260.pdf
page_z0261.pdf
page_z0262.pdf
page_z0263.pdf
page_z0264.pdf
page_z0265.pdf
page_z0266.pdf
page_z0267.pdf
page_z0268.pdf
page_z0269.pdf
page_z0270.pdf
page_z0271.pdf
page_z0272.pdf
page_z0273.pdf
page_z0274.pdf
page_z0275.pdf
page_z0276.pdf
page_z0277.pdf
page_z0278.pdf
page_z0279.pdf
page_z0280.pdf
page_z0281.pdf
page_z0282.pdf
page_z0283.pdf
page_z0284.pdf
page_z0285.pdf
page_z0286.pdf
page_z0287.pdf
page_z0288.pdf
page_z0289.pdf
page_z0290.pdf
page_z0291.pdf
page_z0292.pdf
page_z0293.pdf
page_z0294.pdf
page_z0295.pdf
page_z0296.pdf
page_z0297.pdf
page_z0298.pdf
page_z0299.pdf
page_z0300.pdf
page_z0301.pdf
page_z0302.pdf
page_z0303.pdf
page_z0304.pdf
page_z0305.pdf
page_z0306.pdf
page_z0307.pdf
page_z0308.pdf
page_z0309.pdf
page_z0310.pdf
page_z0311.pdf
page_z0312.pdf
page_z0313.pdf
page_z0314.pdf
page_z0315.pdf
page_z0316.pdf
page_z0317.pdf
page_z0318.pdf
page_z0319.pdf
page_z0320.pdf
page_z0321.pdf
page_z0322.pdf
page_z0323.pdf
page_z0324.pdf
page_z0325.pdf
page_z0326.pdf
page_z0327.pdf
page_z0328.pdf
page_z0329.pdf
page_z0330.pdf
page_z0331.pdf
page_z0332.pdf
page_z0333.pdf
page_z0334.pdf
page_z0335.pdf
page_z0336.pdf
page_z0337.pdf
page_z0338.pdf
page_z0339.pdf
page_z0340.pdf
page_z0341.pdf
page_z0342.pdf
page_z0343.pdf
page_z0344.pdf
page_z0345.pdf
page_z0346.pdf
page_z0347.pdf
page_z0348.pdf
page_z0349.pdf
page_z0350.pdf
page_z0351.pdf
page_z0352.pdf
page_z0353.pdf
page_z0354.pdf
page_z0355.pdf
page_z0356.pdf
page_z0357.pdf
page_z0358.pdf
page_z0359.pdf
page_z0360.pdf
page_z0361.pdf
page_z0362.pdf
page_z0363.pdf
page_z0364.pdf
page_z0365.pdf
page_z0366.pdf
page_z0367.pdf
page_z0368.pdf
page_z0369.pdf
page_z0370.pdf
page_z0371.pdf
page_z0372.pdf
page_z0373.pdf
page_z0374.pdf
page_z0375.pdf
page_z0376.pdf
page_z0377.pdf
page_z0378.pdf
page_z0379.pdf
page_z0380.pdf
page_z0381.pdf
page_z0382.pdf
page_z0383.pdf
page_z0384.pdf
page_z0385.pdf
page_z0386.pdf
page_z0387.pdf
page_z0388.pdf
page_z0389.pdf
page_z0390.pdf
page_z0391.pdf
page_z0392.pdf
page_z0393.pdf
page_z0394.pdf
page_z0395.pdf
page_z0396.pdf
page_z0397.pdf
page_z0398.pdf
page_z0399.pdf
page_z0400.pdf
page_z0401.pdf
page_z0402.pdf
page_z0403.pdf
page_z0404.pdf
page_z0405.pdf
page_z0406.pdf
page_z0407.pdf
page_z0408.pdf
page_z0409.pdf
page_z0410.pdf
page_z0411.pdf
page_z0412.pdf
page_z0413.pdf
page_z0414.pdf
page_z0415.pdf
page_z0416.pdf
page_z0417.pdf
page_z0418.pdf
page_z0419.pdf
page_z0420.pdf
page_z0421.pdf
page_z0422.pdf
page_z0423.pdf
page_z0424.pdf
page_z0425.pdf
page_z0426.pdf
page_z0427.pdf
page_z0428.pdf
page_z0429.pdf
page_z0430.pdf
page_z0431.pdf
page_z0432.pdf
page_z0433.pdf
page_z0434.pdf
page_z0435.pdf
page_z0436.pdf
page_z0437.pdf
page_z0438.pdf
page_z0439.pdf
page_z0440.pdf
page_z0441.pdf
page_z0442.pdf
page_z0443.pdf
page_z0444.pdf
page_z0445.pdf
page_z0446.pdf
page_z0447.pdf
page_z0448.pdf
page_z0449.pdf
page_z0450.pdf
page_z0451.pdf
page_z0452.pdf
page_z0453.pdf
page_z0454.pdf
page_z0455.pdf
page_z0456.pdf
page_z0457.pdf
page_z0458.pdf
page_z0459.pdf
page_z0460.pdf
page_z0461.pdf
page_z0462.pdf
page_z0463.pdf
page_z0464.pdf
page_z0465.pdf
page_z0466.pdf
page_z0467.pdf
page_z0468.pdf
page_z0469.pdf
page_z0470.pdf
page_z0471.pdf
page_z0472.pdf
page_z0473.pdf
page_z0474.pdf
page_z0475.pdf
page_z0476.pdf
page_z0477.pdf
page_z0478.pdf
page_z0479.pdf
page_z0480.pdf
page_z0481.pdf
page_z0482.pdf
page_z0483.pdf
page_z0484.pdf
page_z0485.pdf
page_z0486.pdf
page_z0487.pdf
page_z0488.pdf
page_z0489.pdf
page_z0490.pdf
page_z0491.pdf
page_z0492.pdf
page_z0493.pdf
page_z0494.pdf
page_z0495.pdf
page_z0496.pdf
page_z0497.pdf
page_z0498.pdf
page_z0499.pdf
page_z0500.pdf
page_z0501.pdf
page_z0502.pdf
page_z0503.pdf
page_z0504.pdf
page_z0505.pdf
page_z0506.pdf
page_z0507.pdf
page_z0508.pdf
page_z0509.pdf
page_z0510.pdf
page_z0511.pdf
page_z0512.pdf
page_z0513.pdf
page_z0514.pdf
page_z0515.pdf
page_z0516.pdf
page_z0517.pdf
page_z0518.pdf
page_z0519.pdf
page_z0520.pdf
page_z0521.pdf
page_z0522.pdf
page_z0523.pdf
page_z0524.pdf
page_z0525.pdf
page_z0526.pdf
page_z0527.pdf
page_z0528.pdf
page_z0529.pdf
page_z0530.pdf
page_z0531.pdf
page_z0532.pdf
page_z0533.pdf
page_z0534.pdf
page_z0535.pdf
page_z0536.pdf
page_z0537.pdf
page_z0538.pdf
page_z0539.pdf
page_z0540.pdf
page_z0541.pdf
page_z0542.pdf
page_z0543.pdf
page_z0544.pdf
page_z0545.pdf
page_z0546.pdf
page_z0547.pdf
page_z0548.pdf
page_z0549.pdf
page_z0550.pdf
page_z0551.pdf
page_z0552.pdf
page_z0553.pdf
page_z0554.pdf
page_z0555.pdf
page_z0556.pdf
page_z0557.pdf
page_z0558.pdf
page_z0559.pdf
page_z0560.pdf
page_z0561.pdf
page_z0562.pdf
page_z0563.pdf
page_z0564.pdf
page_z0565.pdf
page_z0566.pdf
page_z0567.pdf
page_z0568.pdf
page_z0569.pdf
page_z0570.pdf
page_z0571.pdf
page_z0572.pdf
page_z0573.pdf
page_z0574.pdf
page_z0575.pdf
page_z0576.pdf
page_z0577.pdf
page_z0578.pdf
page_z0579.pdf
page_z0580.pdf
page_z0581.pdf
page_z0582.pdf
page_z0583.pdf
page_z0584.pdf
page_z0585.pdf
page_z0586.pdf
page_z0587.pdf
page_z0588.pdf
page_z0589.pdf
page_z0590.pdf
page_z0591.pdf
page_z0592.pdf
page_z0593.pdf
page_z0594.pdf
page_z0595.pdf
page_z0596.pdf
page_z0597.pdf
page_z0598.pdf
page_z0599.pdf
page_z0600.pdf
page_z0601.pdf
page_z0602.pdf
page_z0603.pdf
page_z0604.pdf
page_z0605.pdf
page_z0606.pdf
page_z0607.pdf
page_z0608.pdf
page_z0609.pdf
page_z0610.pdf
page_z0611.pdf
page_z0612.pdf
page_z0613.pdf
page_z0614.pdf
page_z0615.pdf
page_z0616.pdf
page_z0617.pdf
page_z0618.pdf
page_z0619.pdf
page_z0620.pdf
page_z0621.pdf
page_z0622.pdf
page_z0623.pdf
page_z0624.pdf
page_z0625.pdf
page_z0626.pdf
page_z0627.pdf
page_z0628.pdf
page_z0629.pdf
page_z0630.pdf
page_z0631.pdf
page_z0632.pdf
page_z0633.pdf
page_z0634.pdf
page_z0635.pdf
page_z0636.pdf
page_z0637.pdf
page_z0638.pdf
page_z0639.pdf
page_z0640.pdf
page_z0641.pdf
page_z0642.pdf
page_z0643.pdf
page_z0644.pdf
page_z0645.pdf
page_z0646.pdf
page_z0647.pdf
page_z0648.pdf
page_z0649.pdf
page_z0650.pdf
page_z0651.pdf
page_z0652.pdf
page_z0653.pdf
page_z0654.pdf
page_z0655.pdf
page_z0656.pdf
page_z0657.pdf
page_z0658.pdf
page_z0659.pdf
page_z0660.pdf
page_z0661.pdf
page_z0662.pdf
page_z0663.pdf
page_z0664.pdf
page_z0665.pdf
page_z0666.pdf
page_z0667.pdf
page_z0668.pdf
page_z0669.pdf
page_z0670.pdf
page_z0671.pdf
page_z0672.pdf
page_z0673.pdf
page_z0674.pdf
page_z0675.pdf
page_z0676.pdf
page_z0677.pdf
page_z0678.pdf
page_z0679.pdf
page_z0680.pdf
page_z0681.pdf
page_z0682.pdf
page_z0683.pdf
page_z0684.pdf
page_z0685.pdf
page_z0686.pdf
page_z0687.pdf
page_z0688.pdf
page_z0689.pdf
page_z0690.pdf
page_z0691.pdf
page_z0692.pdf
page_z0693.pdf
page_z0694.pdf
page_z0695.pdf
page_z0696.pdf
page_z0697.pdf
page_z0698.pdf
page_z0699.pdf
page_z0700.pdf
page_z0701.pdf
page_z0702.pdf
page_z0703.pdf
page_z0704.pdf
page_z0705.pdf
page_z0706.pdf
page_z0707.pdf
page_z0708.pdf
page_z0709.pdf
page_z0710.pdf
page_z0711.pdf
page_z0712.pdf
page_z0713.pdf
page_z0714.pdf
page_z0715.pdf
page_z0716.pdf
page_z0717.pdf
page_z0718.pdf
page_z0719.pdf
page_z0720.pdf
page_z0721.pdf
page_z0722.pdf
page_z0723.pdf
page_z0724.pdf
page_z0725.pdf
page_z0726.pdf
page_z0727.pdf
page_z0728.pdf
page_z0729.pdf
page_z0730.pdf
page_z0731.pdf
page_z0732.pdf
page_z0733.pdf
page_z0734.pdf
page_z0735.pdf
page_z0736.pdf
page_z0737.pdf
page_z0738.pdf
page_z0739.pdf
page_z0740.pdf
page_z0741.pdf
page_z0742.pdf
page_z0743.pdf
page_z0744.pdf
page_z0745.pdf
page_z0746.pdf
page_z0747.pdf
page_z0748.pdf
page_z0749.pdf
page_z0750.pdf
page_z0751.pdf
page_z0752.pdf
page_z0753.pdf
page_z0754.pdf
page_z0755.pdf
page_z0756.pdf
page_z0757.pdf
page_z0758.pdf
page_z0759.pdf
page_z0760.pdf
page_z0761.pdf
page_z0762.pdf
page_z0763.pdf
page_z0764.pdf
page_z0765.pdf
page_z0766.pdf
page_z0767.pdf
page_z0768.pdf
page_z0769.pdf
page_z0770.pdf
page_z0771.pdf
page_z0772.pdf
page_z0773.pdf
page_z0774.pdf
page_z0775.pdf
page_z0776.pdf
page_z0777.pdf
page_z0778.pdf
page_z0779.pdf
page_z0780.pdf
page_z0781.pdf
page_z0782.pdf
page_z0783.pdf
page_z0784.pdf
page_z0785.pdf
page_z0786.pdf
page_z0787.pdf
page_z0788.pdf
page_z0789.pdf
page_z0790.pdf
page_z0791.pdf
page_z0792.pdf
page_z0793.pdf
page_z0794.pdf
page_z0795.pdf
page_z0796.pdf
page_z0797.pdf
page_z0798.pdf
page_z0799.pdf
page_z0800.pdf
page_z0801.pdf
page_z0802.pdf
page_z0803.pdf
page_z0804.pdf
page_z0805.pdf
page_z0806.pdf
page_z0807.pdf
page_z0808.pdf
Nội dung
Chapter 2: Creating PHP Pages Using PHP6 31 How It Works By defining the constant known as FAVMOVIE , you have set the value as “ The Life of Brian, ” which can be recalled and displayed later on. Although this constant can ’ t be changed or reset throughout your script, it is available for use by any part of your script. Overview of Variables Unlike constants, variables are obviously meant to be variable — they are meant to change or be changed at some point in your program. Variables do not need to be defined or declared and can simply be assigned when needed. They act as a container that stores information for later use in your scripts, and the contents of them can be changed. Variables are denoted with a dollar sign ( $ ) and are case - sensitive (in other words, $dateEntered and $DateEntered are treated as different variables). The first letter of the variable name must be an underscore or letter, and cannot be a number. Try It Out Using Variables In this exercise, you ’ ll add variables to your existing script. 1. Open your text editor, and make the following changes to your moviesite.php file (noted in highlighted lines): < html > < head > < title > My Movie Site < /title > < /head > < body > < ?php define(‘FAVMOVIE’, ‘The Life of Brian’); echo ‘My favorite movie is ‘; echo FAVMOVIE; echo ‘ < br/ > ’; $movierate = 5; echo ‘My movie rating for this movie is: ‘; echo $movierate; ? > < /body > < /html > 2. Save the changes, and access the file in your browser. Your screen should now look like the one in Figure 2 - 5 . c02.indd 31c02.indd 31 12/10/08 5:46:36 PM12/10/08 5:46:36 PM 32 Part I: Movie Review Web Site How It Works The value 5 is assigned to the variable movierate . Numbers do not need to be quoted as strings do. In fact, the following would cause PHP to see the value of movierate as a string containing the character 5: $movierate = ‘5’; Keeping this value as an integer makes it much easier to perform mathematical calculations on it later on, such as giving the viewer the average movie rate. For example: < ?php $bobsmovierate = 5; $joesmovierate = 7; $grahamsmovierate = 2; $zabbysmovierate = 1; $avgmovierate = (($bobsmovierate + $joesmovierate + $grahamsmovierate + $zabbysmovierate) / 4); echo ‘The average movie rating for this movie is: ‘; echo $avgmovierate; ? > Figure 2-5 c02.indd 32c02.indd 32 12/10/08 5:46:36 PM12/10/08 5:46:36 PM Chapter 2: Creating PHP Pages Using PHP6 33 PHP also has numerous built - in mathematical functions that you can use on variables that contain numbers, such as: rand([$min, $max]) : Returns a random number. ceil($value) : Returns the next highest integer by rounding the value upwards. floor($value) : Returns the next lowest integer by rounding the value downwards. number_format($number[,$decimal_places[,$decimal_point, $thousands_sep]]) : Formats the number based on the chosen number of decimal places, using the designated decimal point and thousands separator if they are provided. By default, PHP uses a period for the decimal point and a comma for the thousands separator, so if that ’ s acceptable for you, you can leave off the optional parameters, as noted by the brackets above. If you would like to take out the comma, for example, you could type the following code: $price = 12345.67; number_format($price); //returns 12,345.67 number_format($price, 2, ‘.’, ‘’); //returns 12345.67 max($value1[, $value2[, $ ]]) : Returns the largest value found in the set of supplied arguments. min($value1[, $value2[, $ ]]) : Returns the smallest value found in the set of supplied arguments. For a listing of more useful functions that are available to you in PHP, please refer to Appendix C . Passing Variables between Pages Suppose your web site allows viewers to enter their name on the front page. You ’ d like to be able to greet the user by name on each page in your web site, but to do so you need some way to pass the value of the name variable from page to page. There are basically four ways to accomplish this task: pass the variables in the URL, through a session, via a cookie, or with an HTML form. The method you choose is based on the situation and what best fits your needs at the time. Passing Variables through a URL The first method of passing variables between pages is through the page ’ s URL. You ’ ve undoubtedly seen URLs such as this: http://www.mydomain.com/news/articles/showart.php?id=12345 This is an example of passing variable values through the URL. It requests that the article with the ID number of “ 12345 ” be chosen for the showart.php program. The text after the URL is called the query string . ❑ ❑ ❑ ❑ ❑ ❑ c02.indd 33c02.indd 33 12/10/08 5:46:37 PM12/10/08 5:46:37 PM 34 Part I: Movie Review Web Site You can also combine variables in a URL by using an ampersand ( & ), as in this example: http://www.mydomain.com/news/articles/showart.php?id=12345 & lang=en This asks to retrieve the file with an ID of “ 12345 ” and the language presumably equal to “ en, ” for English. There are a few disadvantages to passing variables through a URL: Everyone can see the values of the variables, so passing sensitive information isn ’ t really very secure using this method. The user can arbitrarily change the variable value in the URL and try different combinations, leaving your web site potentially open to showing something you ’ d rather not show. A user might also pull up inaccurate or old information using a saved URL with older variables embedded in it (from a bookmark, for example). Variables that you pass around in this way are accessible in your PHP code through the special $_GET array. The variable name that appears in the URL is used as a key, so to retrieve the value of id you would reference $_GET[‘id’] , or to retrieve the value of lang you would reference $_GET[‘lang’] . Try It Out Using URL Variables In this exercise, you ’ ll modify your program to show the URL variables in action. 1. Modify your moviesite.php file as follows (changes are highlighted): < html > < head > < title > My Movie Site - < ?php echo $_GET[‘favmovie’]; ? > < /title > < /head > < body > < ?php //delete this line: define(‘FAVMOVIE’, ‘The Life of Brian’); echo ‘My favorite movie is ‘; echo $_GET[‘favmovie’]; echo ‘ < br/ > ’; $movierate = 5; echo ‘My movie rating for this movie is: ‘; echo $movierate; ? > < /body > < /html > 2. Save your moviesite.php file, and start a new document in your text editor. ❑ ❑ ❑ c02.indd 34c02.indd 34 12/10/08 5:46:37 PM12/10/08 5:46:37 PM Chapter 2: Creating PHP Pages Using PHP6 35 3. Type the following code: < html > < head > < title > Find my Favorite Movie! < /title > < /head > < body > < ?php echo ‘ < a href=”moviesite.php?favmovie=Stripes” > ’; echo ‘Click here to see information about my favorite movie!’; echo ‘ < /a > ’; ? > < /body > < /html > 4. Save this file as movie1.php , and open it in your browser. Your screen should look like the one in Figure 2 - 6 . Figure 2-6 5. Now click the link and see what you get (see Figure 2 - 7 ). c02.indd 35c02.indd 35 12/10/08 5:46:37 PM12/10/08 5:46:37 PM 36 Part I: Movie Review Web Site You see the value for $favmovie as “ Stripes ” in the URL, as shown in Figure 2 - 7 , but it is also made available in the rest of the script by $_GET[‘favmovie’] and shows in the page ’ s title and body text. How It Works Here are a few points to note about your program: As you can see from the “ Title ” section of your program, PHP code can be inserted in a straight line in the midst of your HTML code. This is helpful when you just need to insert one tidbit of information grabbed from PHP. You can also insert PHP information anywhere in your HTML program, including the title. If you do not reference the favmovie value using $_GET , but instead just use $favmovie , there is nothing shown for the value. If you have E_ALL turned on in your php.ini file, you will see the “ undefined variable ” error message. You did not need to do this when you referenced $movierate , though, as the value is kept within moviesite.php ; you did not get the information from another page or source. Special Characters in URL s Passing variables through a URL poses an interesting problem if there are spaces, ampersands, or other special characters in the value of your variable. Luckily, substitutes exist for special characters that maintain the integrity of the variables ’ values. There is a special function called urlencode() to use when passing these values through a URL. If you wanted to change your favorite movie from “ Stripes ” ❑ ❑ ❑ Figure 2-7 c02.indd 36c02.indd 36 12/10/08 5:46:38 PM12/10/08 5:46:38 PM Chapter 2: Creating PHP Pages Using PHP6 37 to “ Life of Brian, ” you would use urlencode() to encode the value and insert the proper HTML special characters. To try this out, perform these steps: 1. Make the following highlighted changes to your movie1.php file: < html > < head > < title > Find my Favorite Movie! < /title > < /head > < body > < ?php //add this line: $myfavmovie = urlencode(‘Life of Brian’); //change this line: echo “ < a href=\”moviesite.php?favmovie=$myfavmovie\” > ”; echo ‘Click here to see information about my favorite movie!’; echo ‘ < /a > ’; ? > < /body > < /html > 2. Save the file, and open it again in your browser. Clicking the link now displays the page shown in Figure 2 - 8 . Figure 2-8 c02.indd 37c02.indd 37 12/10/08 5:46:38 PM12/10/08 5:46:38 PM 38 Part I: Movie Review Web Site Passing Variables with Sessions As we mentioned before, passing a value through a URL is fine if the information is not of a particularly sensitive nature, or if it is relatively static and there is no danger of a user pulling up old information from a previously saved page. If you are transmitting information such as usernames or passwords, however, or personal information such as addresses and phone numbers, better methods exist for passing the information while keeping it private, such as using cookies. You ’ ll learn more about cookies in Chapter 12 . A session is basically a temporary set of variables that exists only until the browser has shut down. Examples of session information include a session ID and whether or not an authorized person has logged in to the site. This information is stored temporarily for your PHP programs to refer back to whenever needed. Every session is assigned a unique session ID, which keeps all the current information together. Your session ID can either be passed through the URL or through the use of cookies. Although it is preferable for security reasons to pass the session ID through a cookie so that it is hidden from the human eye, if cookies are not enabled then the backup method is through the URL. This setting is determined in your php.ini file. If you would like to force the user to pass variables through cookies (instead of allowing a backup plan), you would set the following line: session.use_only_cookies = 1 Also, make sure before using sessions that your php.ini file has been modified to show a valid path for session.save_path , as described in Chapter 1 . Then all you need to do to begin a session in PHP is call the function session_start() . But first, you need to decide what information will be stored in your session. Anything that has been stored in a database can be retrieved and stored temporarily along with your session information. Usually, it is information such as username and login information, but it can also be preferences that have been set at some point by the user. A session identifier will also be stored in the session array of variables. Try It Out Passing the Visitor ’ s Username Suppose you want to pass your visitor ’ s username, and whether or not he or she has authentically logged in to the site between the first page and the second page. This functionality will be discussed more in Chapter 12 , but for now we ’ ll whip together a quick sample to highlight passing the visitor ’ s username in a session variable. Follow these steps: 1. Change your movie1.php file to include the following highlighted lines. < ?php session_start(); $_SESSION[‘username’] = ‘Joe12345’; $_SESSION[‘authuser’] = 1; ? > < html > c02.indd 38c02.indd 38 12/10/08 5:46:38 PM12/10/08 5:46:38 PM Chapter 2: Creating PHP Pages Using PHP6 39 < head > < title > Find my Favorite Movie! < /title > < /head > < body > < ?php $myfavmovie = urlencode(‘Life of Brian’); echo “ < a href=\”moviesite.php?favmovie=$myfavmovie\” > ”; echo ‘Click here to see information about my favorite movie!’; echo ‘ < /a > ’; ? > < /body > < /html > 2. Now save your movie1.php file. 3. Open moviesite.php to make the following highlighted changes: < ?php session_start(); //check to see if user has logged in with a valid password if ($_SESSION[‘authuser’] != 1) { echo ‘Sorry, but you don\’t have permission to view this page!’; exit(); } ? > < html > < head > < title > My Movie Site - < ?php echo $_GET[‘favmovie’]; ? > < /title > < /head > < body > < ?php echo ‘Welcome to our site, ‘; echo $_SESSION[‘username’]; echo ‘! < br/ > ’; echo ‘My favorite movie is ‘; echo $_GET[‘favmovie’]; echo ‘ < br/ > ’; $movierate = 5; echo ‘My movie rating for this movie is: ‘; echo $movierate; ? > < /body > < /html > 4. Click the link in movie1.php , and you should see the text for moviesite.php shown in Figure 2 - 9 . c02.indd 39c02.indd 39 12/10/08 5:46:39 PM12/10/08 5:46:39 PM 40 Part I: Movie Review Web Site How It Works Here are a few important things to note about this procedure: All PHP session information is at the top of the page, before any HTML code is used. This is very important! If there is even a leading space before the PHP code at the top of the page, you will receive an error such as: Warning: session_start(): Cannot send session cache limiter - headers already sent(output started at C:\Program Files\Apache Software Foundation\Apache2.2\ htdocs\moviesite.php:1) in C:\Program Files\Apache Software Foundation\ Apache2.2\htdocs\moviesite.php on line 2 Some other situations also will give you the “ headers already sent ” error, which we discuss in Chapter 18 . Refer to the session variables using syntax $_SESSION[‘varname’] . If you don ’ t, then the variables will contain empty values, and you may receive a warning message. You must use the function session_start() before you send any output to the browser and before you use any session variables. It ’ s best to place session_start() at the beginning of your script. ❑ ❑ ❑ ❑ Figure 2-9 c02.indd 40c02.indd 40 12/10/08 5:46:39 PM12/10/08 5:46:39 PM [...]... your web site visitors, it might get a little labor-intensive on your part What do you say to letting your users supply you with information for a change? If you’ve never filled out a form online, then you have probably been living in a cave somewhere with no Internet access Forms are the great Venus flytraps, just lying in wait to gobble up useful information from web site visitors Forms allow your web. .. 41 c02.indd 41 12/10/08 5:46:39 PM Part I: Movie Review Web Site You make each of these settings as follows: setcookie($name[, $value[, $expire[, $path[, $domain[, $secure]]]]]) As you can probably guess by now, those values will be referenced in the script as $_COOKIE[‘cookiename’] Try It Out Setting a Cookie In this exercise, you’ll have the web site set a cookie on Joe’s machine so that he (theoretically)... potential security risks (however minute), you are encouraged to visit the W3 Security FAQ web site at www.w3.org/Security/faq/wwwsf2.html#CLT-Q10 Because your visitors may either have cookies turned off or may physically delete cookies from their computers, relying on cookie information probably isn’t the best idea from a web development standpoint So why do developers use cookies, anyway? The advantage of... this file in the three existing movie web site files, add the following line, immediately after the tag, to login.php, movie1.php, and moviesite.php: 4 Save your files 5 Take a look at the files again If you open login.php, you should see the screen shown in Figure 2-13 53 c02.indd 53 12/10/08 5:46:43 PM Part I: Movie Review Web Site Figure 2-13 You will see the... previous example lingering about) Then open the movie1.php file Click the link, and your screen should look like the one in Figure 2-10 Figure 2-10 43 c02.indd 43 12/10/08 5:46:40 PM Part I: Movie Review Web Site How It Works If you didn’t notice, you changed the username from Joe12345 when you were using sessions, to Joe when you were using cookies This was to double-check that the information was coming...Chapter 2: Creating PHP Pages Using PHP6 Passing Variables with Cookies Cookies are tiny bits of information stored on your web site visitor ’s computer There appears to be some sort of paranoia about using cookies In theory, cookies can be intercepted to gain information such as a person’s IP address and operating system,... let’s move on Try It Out Using Forms to Get Information Because your program is slowly increasing in size, for this exercise, we suggest you switch to a text editor that will add line numbers to your document If you are using a text editor that inserts these line numbers already, you do not need to worry about adding these in Otherwise, you may want to add periodic line numbers as comments to help... ($_SESSION[‘userpass’] == ‘12345’)) { $_SESSION[‘authuser’] = 1; } else { echo ‘Sorry, but you don\’t have permission to view this page!’; exit(); } ?> 45 c02.indd 45 12/10/08 5:46:41 PM Part I: Movie Review Web Site Find my Favorite Movie! . between Pages Suppose your web site allows viewers to enter their name on the front page. You ’ d like to be able to greet the user by name on each page in your web site, but to do so you need. C:Program FilesApache Software FoundationApache2.2 htdocsmoviesite.php:1) in C:Program FilesApache Software Foundation Apache2.2htdocsmoviesite.php on line 2 Some other situations also. great Venus flytraps, just lying in wait to gobble up useful information from web site visitors. Forms allow your web site to be truly interactive; they take data from the user and send it off