/wp/ex4/index.lsp



   1   
<?lsp 2 -- Create two persistent variables in the LSP page object. 3 -- non page variables terminate at end of the request. 4 page.fridgeTemp = page.fridgeTemp or 5 -- Initialize to 5 degrees 5 page.freezerTemp = page.freezerTemp or -30 -- Initialize to -30 degrees 6 7 local isValid; -- If POST and temperatures are valid 8 local d; -- Table returned from request:data() 9 10 -- Make sure only POST requests are allowed to change the value. 11 -- We discussed the reason for this in the HTTP section. 12 if request:method() == "POST" then 13 d = request:data() -- Get table with URL encoded data sent from client 14 local newFridgeTemp = tonumber(d.setFridgeTemp) 15 local newFreezerTemp = tonumber(d.setFreezerTemp) 16 if newFridgeTemp and newFreezerTemp then 17 -- Are the new values within the tolerated limits ? 18 if(newFridgeTemp < 1 or newFridgeTemp > 7 or 19 newFreezerTemp < -35 or newFreezerTemp > -18) then 20 isValid = false; 21 else 22 -- Set the new temperatures 23 isValid=true; 24 page.fridgeTemp = newFridgeTemp; 25 page.freezerTemp = newFreezerTemp; 26 end 27 end 28 end 29 ?>
30 <html> 31 <head> 32 <link href="../style.css" rel="stylesheet" type="text/css"/> 33 </head> 34 <body> 35 <p style="float:right"><br/><a href="./">Refresh page</a></p> 36 <h1>My refrigerator</h1> 37 <form method="post"> 38 <table> 39 <tr> 40 <td>Refrigerator Temperature:</td> 41 <td><input type="text" name="setFridgeTemp" value="
<?lsp=page.fridgeTemp?>
"/></td> 42 </tr> 43 <tr> 44 <td>Freezer Temperature:</td> 45 <td><input type="text" name="setFreezerTemp" value="
<?lsp=page.freezerTemp?>
"/></td> 46 </tr> 47 <tr> 48 <td colspan="2"><input type="submit" value="Set temperature"/></td> 49 </tr> 50 </table> 51 </form> 52
<?lsp 53 if request:method() == "POST" then 54 if isValid then 55 ?>
56 <p>The refrigerator and freezer temperatures have been changed.</p> 57
<?lsp 58 else 59 ?>
60 <p>The provided temperature for the refrigerator (
<?lsp=d.setFridgeTemp?>
) 61 or the freezer (
<?lsp=d.setFreezerTemp?>
) are not within the tolerable limits. 62 </p> 63
<?lsp 64 end 65 else 66 response:write("<p> HTTP "..request:method().."</p>"); 67 end 68 ?>
69 </body> 70 </html> 71