form.php: <meta http-equiv="Content-Type" content="text/html;charset=GBK"> /** * 访问表单变量 * 在php脚本中,可以以php变量的形式访问每一个表单域,其中php变量名称必须与表单的名称一致。 * 3种方式访问表单数据: * $userName、不推荐使用 * $_POST["userName"]、推荐使用 * $HTTP_POST_VARS["userName"] 不推荐使用 */ <form action="form_post.php" method="post"> 姓名:<input type="text" name="userName" value="123"/> <input type="submit" value="提交" /> /** *字符串连接,使用.就可以 *请看form_post.php */ </form> form_post.php: <?php //简短风格,不提倡用,因为它会混淆和普通变量的关系 echo $userName; //如果表单的method采用GET方式,则取值需要用$_GET['userName'] echo $_POST['userName'];//将上一张表单中name的名称的value值提取出来 /** *字符串连接,使用.就可以 *请看form_post.php */ //可以将接收到的表单数据赋值给一个变量 echo "<br/>"; $userName = $_POST['userName']; echo "这个人的名字是:".$userName; ?> ***************************************************************************************************************************************** form1.php: <?php /** * 按收及验证表单数据 * GET与POST:处理表单时,必须指定输入到表单的信息以何种方式传输到目的地(method="").对此,web开发人员 * 可以采用get和post。使用get方式发送数据时,所有域都追加到浏览器的url后面,并且为数据随url地址发送。采用post * 方法时,值会作为标准值发送。 * php分别使用$_GET和$_POST超全局变量来处理GET和POST变量。通过使用这两个超全局变量,可以准确地指定信息应当来自哪里,并以你希望的方式处理数据 * 使用$_GET或$_POST来接收数据: * 1.$_GET['username'],发送的表单method必须是get * 2.$_POST['username'],发送的表单method必须是post * 3.采用isset()来验证$_GET['username']超级全局变量是否定义 * 4.使用htmlspecialchars()函数将HTML特殊字符进行过滤 * * 对数据有效性进行验证: * */ ?> <form method="post" action="form1_post.php"> 姓名:<input type="text" name="username" /><br> <input type="submit" value="提交"> </form> form1_post.php: <?php //第一步,接收前面表单中的值。username //接收$_POST['username'] echo '接收到表单输入的值为:'; echo $_POST['username']; echo '<br/>'; //使用isset()验证是否正常提交是很准确的。推荐使用它去判断。 /** * isset():理解为变量是否创建,而不关心变量为什么内容。如空字符串也是字符串。 * empty()与==功能基本相同,表示内容为空,未填写内容而已。但与isset()本质不一样。 */ if(isset($_POST['username'])){ echo '正常提交.'; $username = $_POST['username']; //在输出之前,为了页面的安全性, //对表单输入的值去左右空格 $username = trim($username); $username = htmlspecialchars($username);//保证输入的内容原本地进行取出 echo '表单提交的值为:'.$username; }else{ echo '非正常提交'; } //使用is_numeric()函数判断输入的值是否合为数字。对于验证手机号吗及QQ号。 ?> **************************************************************************************************************************************** form2.php: <?php ?> <form method="post" action="form2_post.php"> 用户名:<input type="text" name="username" /><br> 密 码:<input type="password" name="password" /><br> 验证码:<input type="text" name="code" size="5" />1234<br> 邮件:<input type="text" name="email" /><br> 介绍:<textarea rows="6" cols="25" name="content"></textarea><br> <input type="submit" value="提交" name="send"> </form> form2_post.php: <?php //1.设置页面编码。注意,并不是文件的编码 header('Context-Type:text/html;charset=gbk'); //2.先验证是否是form2.php提交过来的。只需要按扭提交过来,就说明了表单中的其它的值超全变量都提交过来了 if (!isset($_POST['send'])||$_POST['send']!='提交'){ //如果send是存在的,那么就说明是点击提交过来的,否则就跳回到form2.php页面 header('Location:form2.php'); exit; //跳回form2.php页面去了,就不需要再执行下面的了,直接退出 } //3.接收所有数据,并且进行过滤 $username = trim($_POST['username']); $password = $_POST['password']; $code = trim($_POST['code']); $email = trim($_POST['email']); $content = htmlspecialchars(trim($_POST['content'])); //对表单进行验证。用户名介于2位到10位之间、 if (strlen($username)<2 || strlen($username)>10){ //使用js来跳转,有提示的 echo "<script>alert('用户名不能小于2位或大于10位');history.back();</script>"; //header('Location:form2.php'); exit; } //密码不能少于6位 if (strlen($password<6)){ echo "<script>alert('密码不能少于6位');history.back();</script>"; exit; } //验证码必须是4位且为数字 if (strlen($code)!=4 || !is_numeric($code)){ echo "<script>alert('验证码必须为4位且全为数字');history.back();</script>"; exit; } //电子邮件验证 if (!preg_match('/([\w\.]{2,255})@([\w\_]{2,255}).([a-z]{2,4})/',$email)){ echo "<script>alert('电子邮件不合法');history.back();</script>"; exit; } //输出 echo '用户名:'.$username.'<br>'; echo 'Email:'.$email.'<br>'; echo '个人介绍:'.$content; ?> |
|