注册部分可以工作。注册按钮和登录按钮会将其带到我想要的页面,然而,它并不是将他们记录到他们所访问的页面,而是将他们带到常规页面,因此他们无法保存个人资料数据。它甚至没有在index.php页面上显示注册时的错误。
connection.php
<?php
$link = mysqli_connect("localhost", "root", "", "test");
if (mysqli_connect_error()) {
echo "Could not connect to database";
}
?>
login.php
<?php
session_start();
include("connection.php");
if ($_POST['submit']=="Sign Up") {
if (!$_POST['email']) $error.="<br />Please enter your email";
else if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) $error.="<br />Please enter a valid email address";
if (!$_POST['password']) $error.="<br />Please enter your password";
else {
if (strlen($_POST['password'])<8) $error.="<br />Please enter a password with at least 8 characters";
if (!preg_match('`[A-Z]`', $_POST['password'])) $error.="<br />Please enter at least 1 capital letter";
}
if ($error) $error = "There were error(s) in your signup details:".$error;
else {
$query = "SELECT * FROM `users` WHERE email='".mysqli_real_escape_string($link, $_POST['email'])."'";
$result = mysqli_query($link, $query);
$results = mysqli_num_rows($result);
if ($results) $error = "That email address is already registered";
else {
$query="INSERT INTO `users` (`email`, `password`) VALUES('".mysqli_real_escape_string($link, $_POST['email'])."', '".md5(md5($_POST['email']).$_POST['password'])."')";
mysqli_query($link, $query);
$error = "You've been signed up!";
$_SESSION['id']=mysqli_insert_id($link);
header("Location:profile.php");
}
}
}
if ($_POST['submit']=="Log In") {
$query="SELECT * FROM `users` WHERE email='".mysqli_real_escape_string($link, $_POST['loginemail'])."' AND password='".md5(md5($_POST['loginemail']).$_POST['loginpassword'])."' LIMIT 1";
$result = mysqli_query($link, $query);
$row = mysqli_fetch_array($result);
if ($row) {
$_SESSION['id']=$row['id'];
header("Location:dashboard.php");
} else {
$error = "We could not find a user with that email and password. Please try again.";
}
}
?>
index.php
<section data-scroll-reveal="enter bottom, move 20px, over 2s, wait 0.3s" class="mainslider">
<div class="contentContainer" id="firstContainer">
<div class="container-fluid">
<div class="row" class="center">
<br /><br />
<h3 class="companyMotto navChange">A Debt Accelerator Company</h3>
<div style="background:transparent !important" class="jumbotron jumbotronHome">
<h1 class="quotes"><strong>We’re serious about <br /> getting you results</strong></h1>
<h3><font color="#d24837">Get Started! It's FREE!</font></h3>
</div>
<?php
if ($error) {
echo '<div class="alert alert danger">'.addslashes($error).'</div>';
}
if ($message) {
echo '<div class="alert alert success">'.addslashes($message).'</div>';
}
?>
<div class="col-md-4 col-md-offset-4">
<form method="post" action="login.php">
<div class="form-group">
<input type="email" name="email" id="email" class="form-control" placeholder="Enter Your Email Address" value="<?php echo addslashes ($_POST['email']); ?>" />
</div>
<div class="form-group">
<input type="password" name="password" class="form-control" placeholder="Create a Password" value="<?php echo addslashes ($_POST['password']); ?>" />
</div>
<div class="text-center">
<input type="submit" name="submit" class="btn btn-kani btn-lg" value="Sign Up"/>
</div>
</form>
</div>
</div>
</div>
</div>
</section>
在文件login.php的第7行,您应该只使用if ($_POST['submit']) {
我遇到了同样的问题,通过更改修复了它
if ($_POST['submit']=="Sign Up")
链接到:
<input type="submit" name="submit" id="submit" value="Sign Up" />
和
if ($_POST['submit']=="Log In")
哪个链接到:
<input type="submit" name="submit" id="submit" value="Log in" />
更改为:
if ($_POST['signup'])
<input type="submit" name="signup" value="Sign Up" />
和
if ($_POST['login'])
<input type="submit" name="login" value="Log in" />
现在它工作了,我想知道它是否与我的服务器上的PHP版本有关,它是5.5。希望这能帮助到其他有同样困难的人。