注册表单发布操作期间出现PHP错误

注册表单发布操作期间出现PHP错误,php,registration,Php,Registration,我一直在试图编写一个注册表单,但遇到了一些问题。 我得到的错误是404错误,表示引用链接已过时或不正确 我不明白为什么,因为我知道该文件存在于同一个目录中,并且我已经这样调用了它 请看下面的内容。如果这还不够的话,我已经把整个项目联系起来了 据我所知,错误似乎来自我的check-registration.php中的引用链接,这是我的表单帖子指向的操作: 检查注册php: <?PHP session_start(); include "../../functions/registratio

我一直在试图编写一个注册表单,但遇到了一些问题。 我得到的错误是404错误,表示引用链接已过时或不正确

我不明白为什么,因为我知道该文件存在于同一个目录中,并且我已经这样调用了它

请看下面的内容。如果这还不够的话,我已经把整个项目联系起来了

据我所知,错误似乎来自我的check-registration.php中的引用链接,这是我的表单帖子指向的操作:

检查注册php:

<?PHP session_start();

include "../../functions/registration.php";
check_form("Register", "username", $_POST['username']);
check_form("Register", "email", $_POST['email']);
check_form("Register", "password1", $_POST['password1']);
check_form("Register", "password2", $_POST['password2']);

if ($_SESSION['registration-username'] == "OK")
{
    $username = htmlentities($_POST['username']);
    check_exists_username($username);

}

if ($_SESSION['registration-mail'] == "OK")
{
    $email = htmlentities($_POST['email']);
    check_regex_mail($email);
    $return = check_exists_mail($email);
    $_SESSION['flag-email-exists'] = ($return > 0) ? "KO" : "OK";
}

if ($_SESSION['registration-password1'] == "OK")
{
    $password1 = $_POST['password1'];
    check_regex_password($password1, "flag-regex-password");
}

if ($_SESSION['registration-password2'] == "OK")
{
    $password2 = $_POST['password2'];
}
if ($_SESSION['registration-password1'] == "OK" && $_SESSION['registration-password2'] == "OK")
{
    check_same_password($password1, $password2, "same-password");
}

if ($_SESSION['registration-username'] == "OK" && $_SESSION['registration-email'] == "OK"
&& $_SESSION['registration-password1'] == "OK" && $_SESSION['registration-password2'] == "OK"
&& $_SESSION['flag-regex-password'] == "OK" && $_SESSION['flag-regex-mail'] == "OK"
&& $_SESSION['flag-user-exists'] == "OK" && $_SESSION['flag-email-exists'] == "OK"
&& $_SESSION['same-password'] == "OK")
{
    echo $username;

$_SESSION['flag-registration'] = "OK";
try{
    include '../../config/database.php';
    $bdd = new PDO($DB_DSN, $DB_USER, $DB_PASSWORD);
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $bdd->query("USE camagru");
    $password = hash('sha512', $password1);
    $requete = $bdd->prepare("INSERT INTO `utilisateurs` (`login`, `email`, `groupe`, `mdp`)
    VALUES(:username, :email, :user, :password)");
    $requete->bindParam(':username', $username);
    $requete->bindParam(':email', $email);
    $requete->bindValue(':user', 'user');
    $requete->bindParam(':password', $password);
    $requete->execute();

    send_confirmation_mail($username, $email, $_POST['submit']);
}
catch (PDOException $e) {
    print "Error : ".$e->getMessage()."<br/>";
    die();
}
echo "<meta http-equiv='refresh' content='0,url=registration.php'>";

}
else {
    echo "<meta http-equiv='refresh' content='0,url=registration.php'>";
    exit();
}
?>
修复您的链接:

echo "<meta http-equiv='refresh' content='0,url=registration.php'>";

form action=“checking register.php”
在注册页面的同一文件夹中是否有名为
checking register.php
的文件?是的。整个项目都可以在链接中找到解决所有问题的方法之一是使用绝对路径。不要再使用
。/../
,请使用绝对路径。谢谢。我想我需要的只是一双新眼睛。我完全忽略了这一点,因为我认为错误在实际的表单post函数中反复出现
echo "<meta http-equiv='refresh' content='0,url=registration.php'>";
echo "<meta http-equiv='refresh' content='0,url=register.php'>";
header('Location: register.php');