Значения не обновляются в базе данных для страницы регистрации в php - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь создать страницу регистрации, используя 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 голосов
/ 13 марта 2019

Необходимы некоторые модификации:

1) Вы не установили никакой метод для <form>, поэтому по умолчанию используется метод GET, и вы пытаетесь получить доступ к переменным с помощью $_POST,Поэтому, пожалуйста, сделайте <form method="post">

Объяснение:

Случай GET метод:

<form method="get">

Это метод по умолчанию.

Если метод не указан, это метод.

Но, не является предпочтительным (особенно при регистрации / входе в систему), поскольку все данные, представленные в форме, отображаются в URL..

Переменные, представленные в форме, будут доступны через:

$var = $_GET['variableName'];

Case POST метод:

<form method="post">

Переменные, представленные в форме, будут доступны через:

$var = $_POST['variableName'];

post метод безопасный и переменные отправленыв этом методе не отображаются по URL.

Этот предпочтительный метод.

Теперь вы можете точно выбрать, какой метод вы предпочитаете .-

2) Также переменные PHPчувствительны к регистру.Вы используете

if(isset($_POST['submit'])){

И имени элемента формы там нет.Сделай это name="submit"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...