【自学php】第二天 - php快速入门

  打算看《php和mysql web开发》来学习php,所以也算是这本书的学习笔记吧,也按照书里的例子来练习,但是也有些取舍。第一章是一个订单表单的例子,php用于处理提交的表单。

  1.先创建订单表单orderform.html:

   

  代码如下:

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   
</head>
<body>
    <form action="processorder.php" method="post">
        <table>
            <tr style="background-color:#ccc">
                <td width="100">种类</td>
                <td>数量</td>
            </tr>
            <tr>
                <td>轮胎</td>
                <td><input type="text" name="tireqty" size="3"></td>
            </tr>
            <tr>
                <td>汽油</td>
                <td><input type="text" name="oilqty" size="3"></td>
            </tr>
            <tr>
                <td>火花塞</td>
                <td><input type="text" name="sparkqty" size="3"></td>
            </tr>
            <tr>
                <td colspan="2" align="center">
                    <input type="submit" value="submit order">
                </td>
            </tr>
        </table>
    </form>
</body>
</html>
View Code

  2.再创建procssorder.php来处理表单。 

  1)添加一点动态内容,显示表单的处理时间:

    php的注释有多行注释/*... */,单行注释//或#。

    php有4种风格的标记:
     XML风格   <?php code ?>
      简短风格    <? code ?>
      script风格  <script language="php">code</script>
      asp风格     <% code %>
      推荐使用xml风格,简短风格和asp风格需要在配置文件中启用相应的选项。

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>订单处理页</title>
</head>
<body>
    <h1>汽车配件网店</h1>
    <h2>订单</h2>
    <?php 
        echo "<p>订单处理时间:".date("H:i, jS F Y")."</p>";  //php用“.”连接字符串
    ?>    
</body>
</html>
View Code

  2)访问表单变量。

  在php中可以通过如下三种方式访问tireqty域的值:

  $tireqty                                 //简短风格

   $_POST['tireqty']                    //中等风格

   $HTTP_POST_VARS['tireqty']   //冗长风格   

  简短风格需要将register_gloabals配置选项设置为on,这可能会导致安全性问题的错误,所以不建议用这种方式。冗长风格已经被弃用,通过register_long_arrays配置禁用它可以改进性能。所以中等风格是如今所推荐的。

  中等风格包括从$_POST, $_GET或$_REQUEST数组中检索变量。$_GET或$_POST保存相应的表单提交方式的数据,$_REQUEST保存了所有提交方式的表单数据。

<?php
    //php每一行要用;结尾
    $tireqty = $_POST['tireqty'];
    $oilqty = $_POST['oilqty'];
    $sparkqty = $_POST['sparkqty'];
?>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>订单处理页</title>
</head>
<body>
    <h1>汽车配件网店</h1>
    <h2>订单</h2>
    <?php 
        echo "<p>订单处理时间:".date("H:i, jS F Y")."</p>";  //php用“.”连接字符串
        echo "<p>您的订单如下:</p>";
        echo $tireqty." 个轮胎<br>";
        echo $oilqty." 桶汽油<br>";
        echo "$sparkqty 个火花塞"; //简单类型的变量可以直接写在双引号中,php会用变量的内容插入到字符串中,单引号没有这个特性。
    ?>    
</body>
</html>
View Code

  3)计算购买的数量和总价。

  php变量不需要提前声明,变量名前面必须加$。

  常量用define函数定义,并且引用常量的时候前面没有$符号。

  define('TIREPRICE', 100);

   echo TIREPRICE;

<?php
    //php每一行要用;结尾
    $tireqty = $_POST['tireqty'];
    $oilqty = $_POST['oilqty'];
    $sparkqty = $_POST['sparkqty'];
    $totalqty = 0;
    $totalamount = 0.00;

    define('TIREPRICE', 100);
    define('OILPRICE', 10);
    define('SPARKPRICE', 4);

    $totalqty = $tireqty + $oilqty + $sparkqty;
    $totalamount = $tireqty * TIREPRICE + $oilqty * OILPRICE + $sparkqty * SPARKPRICE;
?>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>订单处理页</title>
</head>
<body>
    <h1>汽车配件网店</h1>
    <h2>订单</h2>
    <?php 
        echo "<p>订单处理时间:".date("H:i, jS F Y")."</p>";  //php用“.”连接字符串
        echo "购买总数:$totalqty <br>";
        echo "购买总额:¥$totalamount<br>";
    ?>    
</body>
</html>
View Code

  4)加上简单的服务器端验证。

  可以用exit结束整个php脚本的执行。

  empty()可以检查变量是否为空或0,is_numeric()可以检查变量是否为数字或数字字符串。

<?php
    //php每一行要用;结尾
    $tireqty = $_POST['tireqty'];
    $oilqty = $_POST['oilqty'];
    $sparkqty = $_POST['sparkqty'];
    $totalqty = 0;
    $totalamount = 0.00;

    define('TIREPRICE', 100);
    define('OILPRICE', 10);
    define('SPARKPRICE', 4);

?>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>订单处理页</title>
</head>
<body>
    <h1>汽车配件网店</h1>
    <h2>订单</h2>
    <?php 
        if(empty($tireqty) && empty($oilqty) && empty($sparkqty)){
            echo "<p style='color:red'>您没有选购商品</p>";
            exit;
        }
        if(is_numeric($tireqty) && is_numeric($oilqty) && is_numeric($sparkqty)){

            $totalqty = $tireqty + $oilqty + $sparkqty;
            $totalamount = $tireqty * TIREPRICE + $oilqty * OILPRICE + $sparkqty * SPARKPRICE;

            echo "<p>订单处理时间:".date("H:i, jS F Y")."</p>";  //php用“.”连接字符串
            echo "购买总数:$totalqty <br>";
            echo "购买总额:¥$totalamount<br>";
        }else{
            echo "<p style='color:red'>参数必须为数字</p>";
            exit;
        }    
    ?>    
</body>
</html>
View Code

  3.大功告成:

    

  

  

  

posted @ 2014-05-19 22:46  lily white  阅读(258)  评论(0编辑  收藏  举报