Php 开关和窗体

Php 开关和窗体,php,html,forms,Php,Html,Forms,我已经盯着这个代码看了一个小时了,但我想不出这是为了救我的命。 也许我需要更多的咖啡 我正在创建一个交换机注册页面,但每次我提交表单时,它都会刷新默认页面,这里的代码会被大量缩减 include("../tools/config.php"); session_start(); switch($_GET['action']){ case "joinb": addmember($member); break; default: register($user); break; } func

我已经盯着这个代码看了一个小时了,但我想不出这是为了救我的命。 也许我需要更多的咖啡

我正在创建一个交换机注册页面,但每次我提交表单时,它都会刷新默认页面,这里的代码会被大量缩减

include("../tools/config.php");
session_start();

switch($_GET['action']){

case "joinb":
addmember($member);
break;

default:
register($user);
break;
}



function register($user){
echo "
<form method='post'>
data blah blah
<input type='hidden' name='action' value='joinb'>
<input type='submit' class='button' name='submit' value='Create Account'>
</form>
";
}

function addmember($member){
insert mysql function
}
include(“../tools/config.php”);
会话_start();
开关($\u GET['action'])){
“joinb”案:
增加成员($成员);
打破
违约:
注册($用户);
打破
}
函数寄存器($user){
回声“
数据废话
";
}
函数addmember($member){
插入mysql函数
}

您正在发布表单,因此不会填充
$\u GET['action']
。我会放下
开关
并使用

if (isset($_POST['action']) && $_POST['action'] === 'joinb') {
    addmember($member);
} else {
    register($user);
}

您的表单是通过
POST
方法提交的,因此您应该检查
$\u POST['action']
而不是
$\u GET['action']

这确实会重定向我,但不会携带数据谢谢我相信我现在遇到的问题都是我的问题谢谢!
$member
$user
来自哪里?另外,为什么
$user
甚至是
寄存器的参数?它从来没用过解决我的问题,而且一切都正常。我不知道我需要将值更改为$_POST[username]等等。再次感谢汉克斯,这也让我改变了方向,但我想我现在遇到的问题是我自己,谢谢!通过标准的Submit按钮提交HTML表单将始终为您重定向。如果您不想这样做,您必须学会这样做。@HeikkiU我认为它们是指实际的重定向(通过位置标题),它可能出现在
addmember
函数中。标准POST请求不是redirect@Phil你是对的,当然,这不是重定向,而是POST请求。但是,如果同一个脚本在屏幕上输出不同的内容,它可能看起来像重定向。毕竟,OP会说:“每次我提交表单时,它都会刷新默认页面”,然后说:“这也会重定向我”。我的数据不会继续存在有什么原因吗?通常情况下,我对表单没有任何问题,但这张表单让我明白了。