我正在尝试使用PHP创建注册页面,但是表中的值未更新,并且未显示任何错误。我为此使用Mac。我已经设置了XAMPP服务器,在Lab
文件夹中有一个名为htdocs
的文件夹。在Lab
文件夹中,有一个名为register.php
-
<?php
$db=mysqli_connect("localhost","root","","User Registration");
if(isset($_POST['submit'])){
session_start();
$name=mysqli_real_escape_string($db,$_POST['name']);
$email=mysqli_real_escape_string($db,$_POST['email']);
$password=mysqli_real_escape_string($db,$_POST['password']);
$password=md5($password);
$sql="INSERT INTO User(Name,Email,Password) VALUES('$name','$email','$password')";
mysqli_query($db,$sql);
$_SESSION['message']="You are now logged in";
}
?>
<html>
<head>
<meta charset="utf-8">
<base>
<link href="register.css" rel="stylesheet">
<link href='https://fonts.googleapis.com/css?family=Montserrat' rel='stylesheet'>
<link rel="shortcut icon" type="image/png" href="blogger.ico"/>
<title>Blog</title>
</head>
<body background="background.png">
<div class="topnav">
<a class="active" href="index.html">Home</a>
<a href="#about">About</a>
<a href="login.html">Log In</a>
<a href="register.html">Register</a>
</div>
<div id="login">
<form action="">
<h3>Register</h3>
<label for="name"><b>Name</b></label>
<br>
<input type="name" placeholder="Name" name="name" id = "name" required>
<br>
<br>
<label for="email"><b>Email</b></label>
<br>
<input type="email" placeholder="Email" name="email" id = "email" required>
<br>
<br>
<label for="email"><b>Password</b></label>
<br>
<input type="password" placeholder="Password" name="password" id="password" required>
<br>
<br>
<label for="password"><b>Re-enter Password</b></label>
<br>
<input type="password" placeholder="Password" name="password" required>
<br>
<p>
<input type="submit" value="Submit" id="submit">
</form>
</div>
</body>
这是我的数据库结构- Databse
答案 0 :(得分:0)
一些必要的修改:
1)您尚未为<form>
设置任何方法,因此默认方法为GET
,并且您尝试使用$_POST
访问变量。因此,请设置<form method="post">
说明:
Case GET方法:
<form method="get">
这是默认方法。
如果未指定方法,则为方法。
但是,不是首选方法(尤其是在注册/登录中),因为所有表单提交的数据都显示在url上。
可以通过以下方式访问表单中提交的变量:
$var = $_GET['variableName'];
案例POST方法:
<form method="post">
可以通过以下方式访问表单中提交的变量:
$var = $_POST['variableName'];
post
方法是安全的,使用此方法提交的变量不会显示在url上。
这种更好的方法。
现在,您可以精确选择喜欢的方法。-
2)另外,PHP变量区分大小写。您正在使用
if(isset($_POST['submit'])){
并且表单元素的名称不存在。使其name="submit"