值未在PHP中的注册页面的数据库中更新

时间:2019-03-13 03:35:58

标签: php html mysql macos

我正在尝试使用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

1 个答案:

答案 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"