我正在创建这个处理登录和注册请求的简单页面,但出于某种原因,我的表单没有提交我的一个帖子值。
PHP
session_start();
$ip = $_SERVER['REMOTE_ADDR'];
if(isset($_SESSION["sid"])) {
$sid = $_SESSION["sid"];
} else {
if(isset($_GET['login'])){
$code = MySQLConnection::login($_POST['email'], $_POST['password'], $ip);
/**
* Login Error codes
* ______________________________________________
* | 0 | EVERY THING IS OK |
* |--------+-----------------------------------|
* | 1 | No Such User |
* |--------+-----------------------------------|
* | 2 | Incorrect Pass |
* |--------+-----------------------------------|
* | 3 | Error Signing in |
* |--------------------------------------------|
*/
switch($code) {
case 0:
header("Location: ControlCenter.php");
break;
case 1:
case 2:
header("Location: index.html?error=1");
break;
case 3:
header("Location: index.html?error=2");
break;
}
} else if(isset($_GET['register'])){
if(isset($_POST['email'])) {
MySQLConnection::register($_POST['email']);
echo("success");
} else {
echo("Email not submitted");
}
}
}
HTML
<form method="post" action="authenticator3000.php?register">
<input type="text" name="email" class="email" placeholder="email" required="required"/>
<input type="submit" value="register" />
</form>
错误发生在注册功能之前,因为在运行时,&#34;电子邮件未提交&#34;是回声&#d; d。
没有if语句检查POST是否设置我得到:
Notice: Undefined index: email
我不确定我的问题在哪里,因为电子邮件的价值将通过method =&#34; get&#34;提交。我在页面中有另一个用于登录用户的表单,一切都在那里提交。
用于登录的HTML:
<form action="authenticator3000.php?login" method="post">
<input type="text" name="email" class="email" placeholder="email" required="required"/>
<input type="password" name="password" class="password" placeholder="password" required="required"/>
<input type="submit" value="login" />
</form>
每个值都会提交并正常运行。我甚至重新复制并粘贴了我的代码,从登录到注册区域,并将?login更改为?注册。
据我所知,没有语法错误。
我刚刚在登录部分测试了var_dump,发现$ _POST也是空的。
答案 0 :(得分:0)
我的服务器配置错误。我不确定为什么,但我使用了不同的服务器,一切正常。谢谢你的帮助