zoukankan      html  css  js  c++  java
  • 表单和用户输入

    记住:php代码嵌入到html文件中,文件只有保存为php格式才能在服务端正常运行。如果在客户端运行,浏览器只能识别html代码,不能识别php代码。再简单一点来说,服务器端能执行php文件中的html代码,不能执行html文件中的php代码。客户端只会执行html代码,无论文件保存为什么格式。

    <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
    action将数据提交到一个php文件处理。
    $_SERVER["PHP_SELF"]  返回当前正在执行脚本的文件名。
    htmlspecialchars()方法?  把一些预定义的字符转换成实体。  
    避免$_SERVER["PHP_SELF"] 被黑客利用。  
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
        <title>表单验证</title>
    </head>
    <body>
    <?php 
         $name=$email=$address="";
         $nameErr=$emailErr=$addressErr="";
         if ($_SERVER["REQUEST_METHOD"]=="POST") {
            if (empty($_POST["name"])) {//注意empty()函数的运用。
                    $nameErr="名字是必须的";
            }else{
                $name = test_input($_POST["name"]);
                if (!preg_match("/^[a-zA-Z ]*$/",$name)) {//这里使用preg_match();
                    $nameErr = "只允许字母和空格";
                }
            }
    
            if (empty($_POST["email"])) {
                $emailErr="邮箱是必须的";
            } else {
                $email = test_input($_POST["email"]);
                if (!preg_match("/([w-]+@[w-]+.[w-]+)/",$email))
            {
                $emailErr = "非法邮箱格式"; 
            }
            }
            if (empty($_POST["address"])) {
                $addressErr = "";
            }else{
    
            $address = test_input($_POST["address"]);
            if (!preg_match("/(?:(?:https?|ftp)://|www.)[-a-z0-9+&@#/%?=~_|!:,.;]*[-a-z0-9+&@#/%=~_|]/i",$address)) {
                $addressErr = "网址格式不匹配";
                 }
            }
    
         }
        function test_input($data)//该函数主要用来检测数据,避免黑客攻击。
    {
        $data = trim($data);//trim()函数用于去除用户输入 数据不必要的字符如空格、tab、换行。  
        $data = stripslashes($data);//去除用户数据中的反斜杠。
        $data = htmlspecialchars($data);
        return $data;
    }
    
     ?>
        <form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]) ?>">
        <h2>表单验证实例</h2>
        <p style="color: red">*必须字段。</p>
        名字:<input type="text" name="name" value="<?php echo $name;?>">
        <span class="error">* <?php echo $nameErr;?></span>
        <br><br>
        Email:<input type="text" name="email" value="<?php echo $email?>">
        <span>*<?php echo  $emailErr?></span>
        <br><br>
        网址:<input type="text" name="address">
        <span><?php echo $addressErr; ?></span><br><br>            
        备注:<input type="textarea" style=" 300px;height: 50px" name="textarea"><br><br>
        性别:<input type="radio" name="gender">女
              <input type="radio" name="gender">男
              <br><br>
        <input type="submit" name="submit">
    
        </form>
        <?php 
        echo "<h2>您输入的内容是:</h2>";
        echo $name;
        echo "<br>.<br>";
        echo $email;
        echo "<br>.<br>";
        echo $addressErr;
    
         ?>
    
    </body>
    </html>
    

    二、GET_POST

    在 HTML 表单中使用 method=”get” 时,所有的变量名和值都会显示在 URL 中。所以在发送密码或其他敏感信息时,不应该使用这个方法!
    预定义的 $_POST 变量用于收集来自 method=”post” 的表单中的值。

    从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。
    注释:然而,默认情况下,POST 方法的发送信息的量最大值为 8 MB(可通过设置 php.ini 文件中的 post_max_size 进行更改)

    三、PHP $_REQUEST 变量

    SERVER[REQUESTMETHOD]==POSTPOST._REQUEST 变量包含了 GET_POST 和 $_COOKIE 的内容,可用来收集通过 GET 和 POST 方法发送的表单数据。.

    欢迎 <?php echo $_REQUEST["fname"]; ?>!<br>//直接获取信息,无论是通过 $_GET还是$_POST传递的讯息。
    你的年龄是 <?php echo $_REQUEST["age"]; ?> 岁。
  • 相关阅读:
    axios全局配置
    014 Javascript(148
    013 Javascript(134
    axios的基本使用
    axios简介
    012 Javascript(126
    016 HTML+CSS(Class198
    015 HTML+CSS(Class184
    014 HTML+CSS(Class165
    LCA题目选讲2
  • 原文地址:https://www.cnblogs.com/jiandanshishu/p/12953353.html
Copyright © 2011-2022 走看看