• 【自学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.大功告成:

        

      

      

      

  • 相关阅读:
    springboot + mybatis-pagehelper 参数查询不分页的bug。。。
    不错位的java .class 反编译工具推荐
    git 生成ssh keys
    Spring boot 通用配置文件模板
    Shiro系列(3)
    Shiro系列(2)
    Shiro系列(1)
    updating
    前端速查手册——Note
    Java进阶知识与技术
  • 原文地址:https://www.cnblogs.com/pandabunny/p/3737883.html
Copyright © 2020-2023  润新知