运行两种服务后:Apache和MySQL, 当我尝试注册一些数据时,它实际上没有被推入我选择的数据库中。我的意思是MySQL数据库不接收index.php表单元素的输入。
数据库详细信息:
hostname:localhost; database:registration_db;用户名:root;密码:''; 表名:用户
我正在创建一个基本项目,通过PHP和MySQL实现注册和登录功能。 我使用Xampp Server与PHP版本7.2.4和Apache 2.4.33。
我的项目文件位于以下目录中:C / Xampp / htdocs / CORE
db_connect.php
<?php
$con = @mysqli_connect("localhost", "root", "", "registration_db") or die ("error connecting to db");
?>
的index.php
<?php
require'db_connect.php';
$username = "";
$email = "";
$errors = array();
if (isset($_POST['username1']) && isset($_POST['pass1'])){
$username = mysqli_real_escape_string($con, $_POST['username1']);
$password_1 = mysqli_real_escape_string($con, $_POST['pass1']);
$password_2 = mysqli_real_escape_string($con, $_POST['pass2']);
// form validation: ensure that the form is correctly filled ...
// by adding (array_push()) corresponding error unto $errors array
if (empty($username)) { array_push($errors, "Username is required"); }
if (empty($email)) { array_push($errors, "Email is required"); }
if (empty($password_1)) { array_push($errors, "Password is required"); }
if ($password_1 != $password_2) {
array_push($errors, "The two passwords do not match");
}
// first check the database to make sure
// a user does not already exist with the same username and/or email
$user_check_query = "SELECT * FROM users WHERE username='$username' OR email='$email' LIMIT 1";
$result = mysqli_query($con, $user_check_query);
$user = mysqli_fetch_assoc($result);
if ($user) { // if user exists
if ($user['username'] === $username) {
array_push($errors, "Username already exists");
}
if ($user['email'] === $email) {
array_push($errors, "email already exists");
}
}
// Finally, register user if there are no errors in the form
if (count($errors) == 0) {
$password = md5($password_1);//encrypt the password before saving in the database
$sql = "INSERT INTO users (id, username, email, password)
VALUES('$id', $username', '$email', '$password1')";
mysqli_query($con, $query);
$_SESSION['username'] = $username;
$_SESSION['success'] = "You are now logged in";
header('location: index.php');
}
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>CSR Nexus — CSR nexus is a dynamic organization focused solely on social responsibilities.</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="CSR Nexus" />
<meta name="keywords" content="CSR Nexus, CSR, Nexus" />
<meta name="author" content="CSR Nexus Team" />
<!-- Facebook and Twitter integration -->
<meta property="og:title" content=""/>
<meta property="og:image" content=""/>
<meta property="og:url" content=""/>
<meta property="og:site_name" content=""/>
<meta property="og:description" content=""/>
<meta name="twitter:title" content="" />
<meta name="twitter:image" content="" />
<meta name="twitter:url" content="" />
<meta name="twitter:card" content="" />
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,700" rel="stylesheet">
<!-- Animate.css -->
<link rel="stylesheet" href="css/animate.css">
<!-- Icomoon Icon Fonts-->
<link rel="stylesheet" href="css/icomoon.css">
<!-- Themify Icons-->
<link rel="stylesheet" href="css/themify-icons.css">
<!-- Bootstrap -->
<link rel="stylesheet" href="css/bootstrap.css">
<!-- Magnific Popup -->
<link rel="stylesheet" href="css/magnific-popup.css">
<!-- Owl Carousel -->
<link rel="stylesheet" href="css/owl.carousel.min.css">
<link rel="stylesheet" href="css/owl.theme.default.min.css">
<!-- Theme style -->
<link rel="stylesheet" href="css/style.css">
<!-- Modernizr JS -->
<script src="js/modernizr-2.6.2.min.js"></script>
<!-- FOR IE9 below -->
<!--[if lt IE 9]>
<script src="js/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="gtco-loader"></div>
<div id="page">
<div class="page-inner">
<nav class="gtco-nav" role="navigation">
<div class="gtco-container">
<div class="row">
<div class="col-sm-4 col-xs-12">
<div id="gtco-logo"><a href="index.html">CSR Nexus </a></div>
</div>
<div class="col-xs-8 text-right menu-1">
<ul>
<li class="has-dropdown">
<a href="#">Organization</a>
<ul class="dropdown">
<li><a href="registration/index.html">Register</a></li>
<li><a href="organization login/index.html">Login</a></li>
</ul>
</li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
</div>
</div>
</nav>
<header id="gtco-header" class="gtco-cover" role="banner" style="background-image: url(images/img_4.jpg)">
<div class="overlay"></div>
<div class="gtco-container">
<div class="row">
<div class="col-md-12 col-md-offset-0 text-left">
<div class="row row-mt-15em">
<div class="col-md-7 mt-text animate-box" data-animate-effect="fadeInUp">
<span class="intro-text-small">Welcome to CSR Nexus</span>
<h1>CSR nexus is a dynamic organization focused solely on social responsibilities.</h1>
</div>
<div class="col-md-4 col-md-push-1 animate-box" data-animate-effect="fadeInRight">
<div class="form-wrap">
<div class="tab">
<ul class="tab-menu">
<li class="active gtco-first"><a href="#" data-tab="signup">Sign up</a></li>
<li class="gtco-second"><a href="#" data-tab="login">Login</a></li>
</ul>
<div class="tab-content">
<div class="tab-content-inner active" data-content="signup">
<form id="registration" method="POST">
<?php include('errors.php'); ?>
<?php if(isset($smsg)){ ?><div class="alert alert-success" role="alert"> <?php echo $smsg; ?> </div><?php } ?>
<?php if(isset($fmsg)){ ?><div class="alert alert-danger" role="alert"> <?php echo $fmsg; ?> </div><?php } ?>
<div class="row form-group">
<div class="col-md-12">
<label for="username">Username or Email</label>
<input type="text" class="form-control" id="username1" >
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<label for="password">Password</label>
<input type="password" class="form-control" id="pass1" >
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<label for="password2">Repeat Password</label>
<input type="password" class="form-control" id="pass2">
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<input type="submit" name="submit" class="btn btn-primary" value="Sign up">
</div>
</div>
</form>
</div>
<div class="tab-content-inner" data-content="login">
<form id="login" method="post" action="login.php">
<?php include('errors.php'); ?>
<div class="row form-group">
<div class="col-md-12">
<label for="username">Username or Email</label>
<input type="text" class="form-control" id="username">
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<label for="password">Password</label>
<input type="password" class="form-control" id="password">
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<input type="submit" class="btn btn-primary" value="Login">
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</header>
<!-- jQuery -->
<script src="js/jquery.min.js"></script>
<!-- jQuery Easing -->
<script src="js/jquery.easing.1.3.js"></script>
<!-- Bootstrap -->
<script src="js/bootstrap.min.js"></script>
<!-- Waypoints -->
<script src="js/jquery.waypoints.min.js"></script>
<!-- Carousel -->
<script src="js/owl.carousel.min.js"></script>
<!-- countTo -->
<script src="js/jquery.countTo.js"></script>
<!-- Magnific Popup -->
<script src="js/jquery.magnific-popup.min.js"></script>
<script src="js/magnific-popup-options.js"></script>
<!-- Main -->
<script src="js/main.js"></script>
</body>
</html>
答案 0 :(得分:1)
你的html中缺少name
属性。
更改
<input type="text" class="form-control" id="username1" >
使用
<input type="text" class="form-control" id="username1" name="username1">
你在表格中缺少action
属性。你的注册来自
<form id="registration" method="POST" action="action.php">
<?php include('errors.php'); ?>
<?php if(isset($smsg)){ ?><div class="alert alert-success" role="alert"> <?php echo $smsg; ?> </div><?php } ?>
<?php if(isset($fmsg)){ ?><div class="alert alert-danger" role="alert"> <?php echo $fmsg; ?> </div><?php } ?>
<div class="row form-group">
<div class="col-md-12">
<label for="username">Username or Email</label>
<input type="text" class="form-control" id="username1" name="username1">
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<label for="password">Password</label>
<input type="password" class="form-control" id="pass1" name="pass1">
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<label for="password2">Repeat Password</label>
<input type="password" class="form-control" id="pass2" name="pass2">
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<input type="submit" name="submit" class="btn btn-primary" value="Sign up">
</div>
</div>
</form>
答案 1 :(得分:0)
您错过了'
$username
单引号
$sql = "INSERT INTO users (id, username, email, password)
VALUES('$id', $username', '$email', '$password1')";
<强> Correted 强>
$sql = "INSERT INTO users (id, username, email, password)
VALUES('$id', '$username', '$email', '$password1')";
您还缺少表单中所有输入字段的名称,如下所示:
<input type="text" class="form-control" id="username1" name="username1">
<input type="password" class="form-control" id="pass1" name="pass1">
<input type="password" class="form-control" id="pass2" name="pass2">
此外,还没有为email
添加提交电子邮件的输入:
<input type="email" class="form-control" id="email" name="email">