一个复杂的PHP表单处理方案

作者&投稿:戎若 (若有异议请与网页底部的电邮联系)
如何在一个php页面中处理多个表单~

不同表单使用ajax提交到不同的地址进行处理

使用PHP进行Web开发,表单(Form)的使用随处可见,利用其属性Action和Method可以指定表单的内容要发送处理的URL以及如何将表单数据发送到服务器。
在大部分情况下我们指定另外一个来处理表单内容的URL地址给Action属性,但也有部分情况是需要将表单数据提交给自己的。这时候我们应该如何指定Action属性值呢?
<?php
if (isset($_POST['action']) && $_POST['action'] == 'submitted') {
print '';
print_r($_POST);
print 'Please try again';
print '';
} else {
?>
" method="POST">
Name:
Email:
Beer:

Warthog
Guinness




<?php
}
?>
更多问题到后盾网论坛问题求助专区http://bbs.houdunwang.com/

JS 实现BASE64_ENCODE 和 BASE64_DECODE

<script language='javascript'>
/* utf.js - UTF-8 <=> UTF-16 convertion
*
* Copyright (C) 1999 Masanao Izumo <iz@onicos.co.jp>
* Version: 1.0
* LastModified: Dec 25 1999
* This library is free. You can redistribute it and/or modify it.
*/

/*
* Interfaces:
* utf8 = utf16to8(utf16);
* utf16 = utf16to8(utf8);
*/

function utf16to8(str) {
var out, i, len, c;

out = "";
len = str.length;
for(i = 0; i < len; i++) {
c = str.charCodeAt(i);
if ((c >= 0x0001) && (c <= 0x007F)) {
out += str.charAt(i);
} else if (c > 0x07FF) {
out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
} else {
out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
}
}
return out;
}

function utf8to16(str) {
var out, i, len, c;
var char2, char3;

out = "";
len = str.length;
i = 0;
while(i < len) {
c = str.charCodeAt(i++);
switch(c >> 4)
{
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
// 0xxxxxxx
out += str.charAt(i-1);
break;
case 12: case 13:
// 110x xxxx 10xx xxxx
char2 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
break;
case 14:
// 1110 xxxx 10xx xxxx 10xx xxxx
char2 = str.charCodeAt(i++);
char3 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x0F) << 12) |
((char2 & 0x3F) << 6) |
((char3 & 0x3F) << 0));
break;
}
}

return out;
}

/* Copyright (C) 1999 Masanao Izumo <iz@onicos.co.jp>
* Version: 1.0
* LastModified: Dec 25 1999
* This library is free. You can redistribute it and/or modify it.
*/

/*
* Interfaces:
* b64 = base64encode(data);
* data = base64decode(b64);
*/

var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64DecodeChars = new Array(
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
-1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);

function base64encode(str) {
var out, i, len;
var c1, c2, c3;

len = str.length;
i = 0;
out = "";
while(i < len) {
c1 = str.charCodeAt(i++) & 0xff;
if(i == len)
{
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt((c1 & 0x3) << 4);
out += "==";
break;
}
c2 = str.charCodeAt(i++);
if(i == len)
{
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
out += base64EncodeChars.charAt((c2 & 0xF) << 2);
out += "=";
break;
}
c3 = str.charCodeAt(i++);
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6));
out += base64EncodeChars.charAt(c3 & 0x3F);
}
return out;
}

function base64decode(str) {
var c1, c2, c3, c4;
var i, len, out;

len = str.length;
i = 0;
out = "";
while(i < len) {
/* c1 */
do {
c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
} while(i < len && c1 == -1);
if(c1 == -1)
break;

/* c2 */
do {
c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
} while(i < len && c2 == -1);
if(c2 == -1)
break;

out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));

/* c3 */
do {
c3 = str.charCodeAt(i++) & 0xff;
if(c3 == 61)
return out;
c3 = base64DecodeChars[c3];
} while(i < len && c3 == -1);
if(c3 == -1)
break;

out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));

/* c4 */
do {
c4 = str.charCodeAt(i++) & 0xff;
if(c4 == 61)
return out;
c4 = base64DecodeChars[c4];
} while(i < len && c4 == -1);
if(c4 == -1)
break;
out += String.fromCharCode(((c3 & 0x03) << 6) | c4);
}
return out;
}
//input base64 encode
function strdecode(str){
return utf8to16(base64decode(str));
}
document.write(strdecode('5L2g5aW9Iee+juWlsyE='));
</script>

首先直接做成一页,中间步骤的数据处理用JS,然后就可以正常提交,交给原系统的注册处理页面


用PHP做了一个主页的表单登陆框,外部引用了discuz论坛,当登陆成功时...
调用 方法 showformheader($action, $extra = '', $name = 'cpform') ,替换前三行 用户登录 用户名 UID

新手想做一个PHP的表单提交发送到指定邮箱,请高手指教?
新手想做一个PHP的表单提交发送到指定邮箱,请高手指教? 10 我之前做了好几个网站,但都是静态的HTML的,没做过动态带数据库的。但是现在要做一个网站,大部分都可以是静态的,但是其中有一个页面想用PHP做一个提交表到发送到指定的邮箱里,服务... 我之前做了好几个网站,但都是静态的HTML的,没做过动态带...

用PHP做的表单中,怎样提交表单中单选按钮的值到数据库?
在PHP表单中 单选按钮 如果选中了提交后,就是这个单选按钮的值,如果没有选中,提交是空值。比如 在提交后 如果是选中打钩的,在PHP 获取到的值就是 echo _POST['a']\/\/输出 1 如果没有选中,在PHP 获取到的值就是 echo _POST['a']\/\/输出 if (empty($_POST['a'])){ a=0;}else{ a...

php一个页面中有多个表单,怎么区分?
第一个问题:你同一页面多个表单? 他们有必要同时提交么?如果同时提交,空间的name不一样不会产生冲突啊 第二个问题:这个可能是你的表单里面没有指定 method造成的,应该这样写:... 至于你的标签风格问题,那是在php.ini里面控制的,有个 short_open_tag选项,默认是Off的 ...

PHP如何实现一次性上传多个文件的表单和PHP怎样接收多个上传的文件的代...
html5 input标签中加了一个 multiple=true,就可以选多个文件上传了,多文件跟单文件也是一样处理,你把$_FILES打印出来就知道了,就是一个个把上传的临时文件保存到你要保存的地方就行

PHP怎么获取表单中的多条数据
在生成的表单元素以及之前的元素的名字加上中括号即可实现 比如: name="contents" => name="contents[]",最后提交获取到的数据是一个数组形式的。代码如下: 1. 2. 3. <?php if($_GET['action'] == 'ok'){ contents = $_POST['contents'];print_r($contents);} ?> 得到的数据是...

建立表单提交页面(check.php)和表单验证页面(checked.php)两个php文件...
check.php 姓名:张三 学号:12345 分数: checked.php <?php msg = '没有成绩';if(isset($_POST['score']) && $_POST['score']!='') { score = $_POST['score'];if($score >= 90) { msg = '优秀';}elseif($score >= 80 && $score < 90) { msg = '良好';}elsei...

PHP页面实现动态显示表格 并具备编辑 删除 添加 查询功能
实现方式很多,面向对象的做法涉及到模板引擎不同会有所不同。告诉你面向过程的做法吧:首先所有数据都在数据库中,利用sql语句的limit条件进行数据分页。编辑,删除,查看均利用每条数据的id号进行操作,且每个操作都有独立对应的php程序。至于前面的全选、反选等多选框,是由js完成的,jquery会更简单。

php 表单传输到另一个页面处理完信息,怎么在表彰的页面显示内容_百度...
优点:没什么技术含量,制作容易,缺点:代码较乱,验证代码及显示提示位置可能会有矛盾,逻辑有点乱。第二种方法:使用标签,先将 form 的 action及target属性改为 action=login.php target="irame名"然后在网页上放一个iframe标签,并隐藏,然后可以在login.php用js向父页面的特定位置写入要提示的信息...

php表单提交到一个页面作为部分内容后如何再提交给下一个页面
在这里size是用来设置文本框的大小的 接受页面form2.php为 <?php username = $_POST['username'];?> <input type="text" name="username" size="20" value="<?php echo $username; ?>"> 而且这些文件要在php环境下运行,不能用浏览器直接打开,我估计你直接点击html用浏览器打开了吧 ...

疏勒县18296719129: 一个复杂的PHP表单处理方案 -
锺纪复方: JS 实现BASE64_ENCODE 和 BASE64_DECODE<script language='javascript'>/* utf.js - UTF-8 <=> UTF-16 convertion** Copyright (C) 1999 Masanao Izumo <iz@onicos.co.jp>* Version: 1.0* LastModified: Dec 25 1999* This library is free. You ...

疏勒县18296719129: 高分求php高手写一处理下面表单的代码 -
锺纪复方: 表单问题,单选的多个选项应该用同一个name 你原来的 <tr> <td width="43%"height="25">取车方式:</td> <td width="57%"height="25"><input name="mendianziqu"type="radio"value="radiobutton"chec ked/> 门店自取 <label...

疏勒县18296719129: 用php处理表单数据
锺纪复方: 你是直接把name定义成了数组 你可以先打印出来你的hobby[]这个数组 看看就明白了 你的hobby本身就是一个函数你可以在php开始的时候用extract($_POST);一下 然后用print_r($hobby);你看看你的数组就知道了

疏勒县18296719129: PHP如何处理当前页表单? -
锺纪复方: 1, 如果表单中用到了图片选择框input type=file,那么你的form中要写上multi标签;2, 一般用form的类型是post,这样点提交后,在action的页面会接收到$_POST['xxxx']的变量,然后...

疏勒县18296719129: PHP 表单处理 -
锺纪复方: 比如这样安排:数据操作的PHP文件名为:insertdata.php 内容为:include("conn.php"); if($_POST['submit']) {$sql = "insert into test(id,user_name) values('','$_POST[user_name]')"; mysql_query($sql); }?> 表单form的PHP文件名为:adddata.php 内容为:include("insertdata.php"); echo '';?> 然后用户只要访问 adddata.php 文件即可.

疏勒县18296719129: 用PHP处理表单 -
锺纪复方: 根据你的说明 我判断出现在输出页面. echo $_POST[name]; 改为单引号包着name .echo $_POST['name'];

疏勒县18296719129: php处理表单的问题~~~急!! -
锺纪复方: 从程序角度讲你的程序没有任何错误,但请你再测试几遍,因为我开始没看出问题,然后就把它拷到我的机子下试了一次,也没问题.如果你试了还不行,可能就是php配置的问题了.建议你在php端用$_REQUEST来获得参数,即$name=$_REQUEST["username"]; 给个建议,在<form>表单提交时建议使用POST方法,就是<form action="9-6.php" method="POST"> 在php端用$name=$_POST["username"]或用$name=$_REQUEST["username"]; 都可以.

疏勒县18296719129: 如何将一个表单同时提交到两个地方处理(以 PHP 为例)?
锺纪复方: <script language=javascript> function dosubmit() {window.open('first.php?var1='+window.form1.var1.value+'&var2='+window.form1.var2.value); window.open('second.php?var1='+window.form1.var1.value+'&var2='+window.form1.var2.value); return ...

疏勒县18296719129: php中怎样提交一个form表单?不涉及到js代码,纯php的怎么做?请高人指点! -
锺纪复方: 一点:form表单属于html php只是用来将form表单提交上来的数据进行处理,插入数据库等操作 新建一个html的form表单,然后提交到php页面进行处理 html页面,不过问价名后缀可以改成php<form method="post" action="chuli.php"><input ...

疏勒县18296719129: php处理分页表单提交:在a.php中,一个表单中有多条记录需要处理,采用分页显示,怎么保存页面的处理结果 -
锺纪复方: 用js把已经处理完的隐藏,点下一步或者下一页显示下一个表单区,隐藏上一个.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网