我正在尝试为我的网站制作一份注册表。我正在使用下面的代码。所有错误处理程序都可以正常工作,因为它将用户添加到我的数据库中。我已经trid添加ob_start。我使用插件为崇高文本删除了所有空格。我试图使用javascript而不是php(top.window)。我也尝试使用完整的URL而不仅仅是目录。但是,当我点击提交时,它并没有将我重定向到我在位置后放置的地址。当我点击按钮它带我到这个PHP文件,但没有重定向回到注册页面,这是一个单独的文件(我知道有很多类似的问题已经被问到,但他们似乎不适合我的情况) 。 有谁知道如何解决这个问题?
if (isset($_POST['submit'])){
include_once 'db.php';
$uid = mysqli_real_escape_string($conn, $_POST['uid']);
$pwd = mysqli_real_escape_string($conn, $_POST['pwd']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
//error handlers
//Check for empty fields
if (empty($uid) || empty($pwd) || empty($email)) {
header("Location : /login/register.php?signup=empty");
exit();
} else{
//Check if input characters are valid
if (!preg_match("/^[a-zA-Z]*$/", $uid)) {
header('Location: /login/register.php?signup=invalid');
exit();
} else {
//Check if email is valid
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
header('Location : /login/register.php?signup=email');
exit();
} else {
$sql = "SELECT * FROM users WHERE user_uid='$uid'";
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
if ($resultCheck > 0) {
header('Location : /login/register.php?signup=usertaken');
exit();
} else {
//Hashing the password
$hashedPwd = password_hash($pwd, PASSWORD_DEFAULT);
//Insert the user into the databse
$sql = "INSERT INTO users (user_uid, user_pwd, user_email) VALUES ('$uid', '$hashedPwd', '$email');";
mysqli_query($conn, $sql);
header('Location : /login/register.php?signup=success');
exit();
}
}
}
}
} else {
header('Location : /login/register.php');
exit();
}
已解决 - 在Nigel Ren的“位置”回答后删除空格
答案 0 :(得分:0)
尝试使用绝对URI
<input type="radio" name="tabs" value="first" id="toggle-tab1" {% if strategy == 'l' %} checked="checked"{% endif %} />
<label for="toggle-tab1">Long</label>
<input type="radio" name="tabs" value="second" id="toggle-tab2" {% if strategy == 's' %} checked="checked" {% endif %} />
<label for="toggle-tab2">Short</label>
<div id="tab1" class="tab" >
<form action="{% url "backtest" %}" method='POST' role='form' id='form'>
{% csrf_token %}
<input type="hidden" name="tabs" value="first" id="toggle-tab1" checked="checked" />
答案 1 :(得分:0)
确保您在位置之后和之前没有空格:...
header('Location : /login/register.php');
应该是
header('Location: /login/register.php');
答案 2 :(得分:0)
将所有标题替换为location.assign
header('Location : /login/register.php');
替换为
echo "<script>location.assign('/login/register.php')</script>";
使用位置分配后,也许问题解决..