因此,我尝试通过教程来构建登录系统,但效果很好。但是,一旦我开始更改代码中的某些内容,提交您的数据的按钮将使您返回index.html,甚至在整个相关代码中都没有提及它。
我有一个header.php:
<?php
session_start()
?>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="styles/main.css">
</head>
<body>
<header>
<div class="container">
<img class="logo" src="img/logo.png" alt="logo">
<input class="searchbar" type="text" placeholder="Wonach suchen sie...">
<?php
if (isset($_SESSION['userId'])) {
echo '
<form class="headerlogin" action="includes/logout.inc.php" method="post">
<button id="logoutButton" type="submit" name="logout-submit">Logout</button>
</form>
</div>
</header>
';
}
else {
echo '
<form class="headerlogin" action="includes/login.inc.php" method="post">
<input class="mailinput" type="text" name="mailuid" placeholder="Benutzername/E-mail...">
<input class="pwdinput" type="password" name="pwd" placeholder="Passwort...">
<button class="loginButton" type="submit" name="login-submit">Login</button
</form>
<a href="signup.php">Signup</a>
</div>
</header>
';
}
?>
</div>
</nav>
</header>
然后进入注册页面:
<?php require 'header.php'; ?>
<main>
<h1>Signup</h1>
<?php
if (isset($_GET['error'])) {
if($_GET['error'] == "emptyfields") {
echo '<p id="signuperror"> Füllen sie bitte alle Felder aus.</p>';
}
else if($_GET['error'] == "invalidmailuid") {
echo '<p id="signuperror"> Der Benutzername darf nur aus Buchstaben und Zahlen bestehen.</p>
<p id="signuperror"> Bitte geben sie eine echte E-mail Adresse an.</p>';
}
else if($_GET['error'] == "invalidmail") {
echo '<p id="signuperror"> Bitte geben sie eine echte E-mail Adresse an.</p>';
}
else if($_GET['error'] == "invaliduid") {
echo '<p id="signuperror"> Der Benutzername darf nur aus Buchstaben und Zeichen bestehen.</p>';
}
else if($_GET['error'] == "passwordcheck") {
echo '<p id="signuperror"> Die Passwörter sind nicht identisch.</p>';
}
else if($_GET['error'] == "usertaken") {
echo '<p id="signuperror"> Der Benutzername ist bereits vergeben.</p>';
}
}
else if (isset($_GET['signup'])) {
if ($_GET['signup'] == "success"){
echo '<p id="signupsuccess"> Glückwunsch! Sie haben sich erfolgreich registriert! </p>';
}
}
?>
<form action="includes/signup.inc.php" method="post">
<input type="text" name="uid" placeholder="Benutzername">
<input type="text" name="mail" placeholder="E-Mail Adresse">
<input type="password" name="pwd" placeholder="Passwort">
<input type="password" name="pwd-repeat" placeholder="Passwort wiederholen">
<button type="submit" name="signup-submit">Registrieren</button>
</form>
</main>
<?php require 'footer.php'; ?>
和footer.php
</body>
</html>
在signup.php中,提交提交按钮应将您的数据提交到signup.inc.php,但这只会带您回到index.html
答案 0 :(得分:0)
您的表单不会重定向到signup.php。您的表单请求方法是post,但是在signup.php文件中,您尝试获取$ _GET中的变量。将此更改为$ _POST。 更改header.php中的代码:
<?php
if (isset($_SESSION['userId'])) {
echo '
<form class="headerlogin" action="includes/logout.inc.php" method="post">
<button id="logoutButton" type="submit" name="logout-submit">Logout</button>
</form>
</div>
</header>
';
}
else {
echo '
<form class="headerlogin" action="includes/signup.php" method="post">
<input class="mailinput" type="text" name="mailuid" placeholder="Benutzername/E-mail...">
<input class="pwdinput" type="password" name="pwd" placeholder="Passwort...">
<button class="loginButton" type="submit" name="login-submit">Login</button
</form>
<button type="submit">Signup</button>
</div>
</header>
';
}
?>
和signup.php:
<?php
if (isset($_POST['error'])) {
if($_POST['error'] == "emptyfields") {
echo '<p id="signuperror"> Füllen sie bitte alle Felder aus.</p>';
}
else if($_POST['error'] == "invalidmailuid") {
echo '<p id="signuperror"> Der Benutzername darf nur aus Buchstaben und Zahlen bestehen.</p>
<p id="signuperror"> Bitte geben sie eine echte E-mail Adresse an.</p>';
}
else if($_POST['error'] == "invalidmail") {
echo '<p id="signuperror"> Bitte geben sie eine echte E-mail Adresse an.</p>';
}
else if($_POST['error'] == "invaliduid") {
echo '<p id="signuperror"> Der Benutzername darf nur aus Buchstaben und Zeichen bestehen.</p>';
}
else if($_POST['error'] == "passwordcheck") {
echo '<p id="signuperror"> Die Passwörter sind nicht identisch.</p>';
}
else if($_POST['error'] == "usertaken") {
echo '<p id="signuperror"> Der Benutzername ist bereits vergeben.</p>';
}
}
else if (isset($_POST['signup'])) {
if ($_POST['signup'] == "success"){
echo '<p id="signupsuccess"> Glückwunsch! Sie haben sich erfolgreich registriert! </p>';
}
}
?>