PHP表单

Posted LinBupt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP表单相关的知识,希望对你有一定的参考价值。

 

php获取下拉菜单的数据

PHP下拉菜单单选

<?php
//htmlspecialchars()函数把预定义的字符转换为HTML实体
$q = isset($_GET[\'q\'])? htmlspecialchars($_GET[\'q\']) : \'\';
if ($q) {
    if ($q == \'Python\') {
        echo \'Python是一门脚本语言<br>http://....org\';
    } else if ($q == \'Java\') {
        echo \'Java是一门强类型静态语言\';
    } else if ($q == \'Go\') {
        echo \'Go是一门高并发的新兴语言<br>http://....org\';
    }
} else {
?>

<form action="" method="get">
    <select name="q">
        <option value="">选择一个站点:</option>
        <option value="Python">Python:</option>
        <option value="Java">Java:</option>
        <option value="Go">Go:</option>
    </select>
    <input type="submit" value="提交">
</form>
<?php
}
?>

          

 

 

PHP下拉菜单多选

如果下拉菜单是多选的,可以通过将设置select name="q[]"以数组的方式获取

<?php
//isset()检测变量是否设置并且不是NULL
$q = isset($_POST[\'q\']) ? $_POST[\'q\'] : \'\';
if (is_array($q)) {
    $sites = array(
        \'Python\'=>\'Python是一门动态语言\',
        \'Java\'=>\'Java是一门静态语言\',
        \'Go\'=>\'Go是一门新兴语言\',
    );
    foreach ($q as $val) {
        //PHP_EOL为常量,用于换行
        echo $sites[$val] . PHP_EOL;
    }
} else {

?>
<form action="" method="post">
    <select multiple="multiple" name="q[]">
        <option value="">选择一个站点:</option>
        <option value="Python">Python</option>
        <option value="Java">Java</option>
        <option value="Go">Go</option>
    </select>
    <input type="submit" value="提交">
</form>

<?php
}
?>

 

 

单选按钮表单

<?php
$q = isset($_GET[\'q\']) ? htmlspecialchars($_GET[\'q\']) : \'\';
if ($q) {
    if ($q == \'Python\') {
        echo "Python---->haha";
    } else if ($q == \'Java\') {
        echo "Java---->haha";
    } else if ($q == \'Go\') {
        echo "Go---->haha";
    }
}else {
?>
<form action="" method="get">
    <input type="radio" name="q" value="Python" /> Python
    <input type="radio" name="q" value="Java" /> Java
    <input type="radio" name="q" value="Go" /> Go
    <input type="submit" value="提交">
</form>
<?php
}
?>

 

checkbox复选框

<?php
$q = isset($_POST[\'q\']) ? $_POST[\'q\'] : \'\';
if (is_array($q)) {
    $sites = array(
        \'Python\' => \'Python---->6666\',
        \'Java\' => \'Java---->6666\',
        \'Go\' => \'Go---->6666\',
    );
    foreach ($q as $val) {
        echo $sites[$val] . PHP_EOL;
    }
} else {
?>
<form action="" method="post">
    <input type="checkbox" name="q[]" value="Python"> Python<br>
    <input type="checkbox" name="q[]" value="Java"> Java<br>
    <input type="checkbox" name="q[]" value="Go"> Go<br>
    <input type="submit" value="提交">
</form> 
<?php
}

?>

 

 

PHP表单验证:验证客户端提交的表单数据

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>

<body>

<?php
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST")
{
    $name = test_input($_POST["name"]);
    $email = test_input($_POST["email"]);
    $website = test_input($_POST["website"]);
    $comment = test_input($_POST["comment"]);
    $gender = test_input($_POST["gender"]);
}

function test_input($data)
{
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}
?>


<h2>PHP 表单验证实例</h2>

<form  action=\'<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>\' method="post">
    名字: <input type="text" name="name">
    <br><br>
    E-mail: <input type="text" name="email">
    <br><br>
    网址: <input type="text" name="website">
    <br><br>
    备注: <textarea name="comment" rows="5" cols="40"></textarea>
    <br><br>
    性别:
    <input type="radio" name="gender" value="female"><input type="radio" name="gender" value="male"><br><br>
    <input type="submit" name="submit" value="Submit">
</form>

<?php
echo "<h2>您输入的内容是:</h2>";
echo $name;
echo \'<br>\';
echo $email;
echo \'<br>\';
echo $website;
echo \'<br>\';
echo $comment;
echo \'<br>\';
echo $gender;
?>
</body>
</html>

 

PHP表单-必需字段

<?php
//定义变量并默认设为空值
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (empty($_POST[\'name\'])) {
        $nameErr = \'名字是必需的。\';
    } else {
        $name = test_input($_POST[\'name\']);
    }

    if (empty($_POST[\'email\'])) {
        $emailErr = \'邮箱是必需的。\';
    } else {
        $email = test_input($_POST[\'email\']);
    }

    if (empty($_POST[\'website\'])) {
        $website = "";
    } else {
        $website = test_input($_POST[\'website\']);
    }

    if (empty($_POST[\'comment\'])) {
        $comment = \'\';
    } else {
        $comment = test_input($_POST["comment"]);
    }

    if (empty($_POST[\'gender\'])) {
        $genderErr = \'性别是必需的。\';
    } else {
        $gender = test_input($_POST["gender"]);
    }

}

function test_input($data)
{
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}
?>

<!--显示错误信息-->
<form method="post" action="<?php echo htmlspecialchars($_SERVER[\'PHP_SELF\']);?>">
    名字:<input type="text" name="name">
    <span class="error">* <?php echo $nameErr;?></span>
    <br><br>
    E-mail:<input type="text" name="email">
    <span class="error">*<?php echo $emailErr;?></span>
    <br><br>
    网址:<input type="text" name="website">
    <span class="error"><?php echo $websiteErr;?></span>
    <br><br>
    备注:<textarea name="comment" rows="5" cols="40"></textarea>
    <br><br>
    性别:
    <input type="radio" name="gender" value="female"><input type="radio" name="gender" value="male"><span class="error">*<?php echo $genderErr;?></span>
    <br><br>
    <input type="submit" name="submit" value="Submit">
</form>

 

验证邮件和URL

<?php
// 定义变量并默认设置为空值
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (empty($_POST["name"])) {
        $nameErr = "Name is required";
    } else {
        $name = test_input($_POST["name"]);
        // 检测名字是否只包含字母跟空格
        if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
            $nameErr = "只允许字母和空格";
        }
    }

    if (empty($_POST["email"])) {
        $emailErr = "Email is required";
    } else {
        $email = test_input($_POST["email"]);
        // 检测邮箱是否合法
        if (!preg_match("/([\\w\\-]+\\@[\\w\\-]+\\.[\\w\\-]+)/",$email)) {
            $emailErr = "非法邮箱格式";
        }
    }

    if (empty($_POST["website"])) {
        $website = "";
    } else {
        $website = test_input($_POST["website"]);
        // 检测 URL 地址是否合法
        if (!preg_match("/\\b(?:(?:https?|ftp):\\/\\/|www\\.)[-a-z0-9+&@#\\/%?=~_|!:,.;]*[-a-z0-9+&@#\\/%=~_|]/i",$website)) {
            $websiteErr = "非法的 URL 的地址";
        }
    }

    if (empty($_POST["comment"])) {
        $comment = "";
    } else {
        $comment = test_input($_POST["comment"]);
    }

    if (empty($_POST["gender"])) {
        $genderErr = "性别是必需的";
    } else {
        $gender = test_input($_POST["gender"]);
    }
}

function test_input($data)
{
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}
?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER[\'PHP_SELF\']);?>">
    名字:<input type="text" name="name">
    <span class="error">* <?php echo $nameErr;?></span>
    <br><br>
    E-mail:<input type="text" name="email">
    <span class="error">*<?php echo $emailErr;?></span>
    <br><br>
    网址:<input type="text" name="website">
    <span class="error"><?php echo $websiteErr;?></span>
    <br><br>
    备注:<textarea name="comment" rows="5" cols="40"></textarea>
    <br><br>
    性别:
    <input type="radio" name="gender" value="female"><input type="radio" name="gender" value="male"><span class="error">*<?php echo $genderErr;?></span>
    <br><br>
    <input type="submit" name="submit" value="Submit">
</form>

 

 

PHP超级全局变量

PHP中预定义了几个超级全局变量,这意味着它们在一个脚本的全部作用域中都可用。不需要特别说明,就可以在函数及类中使用

PHP超级全局变量:

$GLOBALS-->是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。是一个包含了全部变量的全局组合数组。变量的名字就是数组的键

 

$_SERVER-->是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。

        $_SERVER[\'PHP_SELF\']:当前执行脚本的文件名,与document root有关

$_REQUEST-->$_REQUEST用于收集HTML表单提交的数据,收集表单中的input字段数据。预定义的$_REQUEST变量包含了$_GET、$_POST和$_COOKIE的内容,$_REQUEST变量可用来收集通过GET和POST方法发送的表单数据

$_POST-->广泛应用于收集表单数据,收集表单中的input字段数据

$_GET-->收集表单中的input字段数据,预定义的$_GET变量用于收集来自method="get"的表单中的值

$_FILES

$_ENV

$_COOKIE

$_SESSION

 

以上是关于PHP表单的主要内容,如果未能解决你的问题,请参考以下文章

PHP必用代码片段

PHP 用户注册

PHP代码-psysh调试代码片段工具

超实用的php代码片段

比较有用的php代码片段

PHP注册与登录用户注册