您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

提交表格,mysql和php

提交表格,mysql和php

这里有些错误

您正在使用错误的@L_502_0@ 作为列中的 (并用引号引起来):

('id', 'username', 'password', 'email')

删除它们

(id, username, password, email)

或使用反引号

(`id`, `username`, `password`, `email`)

MysqL_error() 应该向您抛出一个错误,但这不是因为:

这两个不同的API不会相互混合。

MysqLi_专门使用并将您当前的查询更改为:

if($query = MysqLi_query($connect, "INSERT...

并更改MysqL_error()MysqLi_error($connect)

作为该块的重写:

if(isset($_POST["submit"])){
    if($query = MysqLi_query($connect,"INSERT INTO users ('id', 'username', 'password', 'email') VALUES('', '".$username."', '".$password."', '".$email."')")){
        echo "Success";
    }else{
        echo "Failure" . MysqLi_error($connect);
    }
}

按照我上面概述的方法进行更改,同时使列中的引号保持现在的样子。然后,您将看到My??sql将引发的错误。然后,您可以按照上面已经概述的方法进行操作,并删除列名周围的引号,或将其替换为反引号。

您看到的教程可能很好地使用了反引号,但可能没有足够的区别,让您不能说它们确实是反引号而不是单引号。

但是,您当前的代码可以进行 。使用 ,或 他们更安全

我注意到您可能以纯文本形式存储密码。如果是这种情况,强烈建议不要这样做。

我建议您使用 PHP 5.5的password_hash()函数。对于PHP <5.5,使用password_hash() compatibility pack

另外,不要这样做:

$connect = MysqLi_connect("localhost", "root", "") or die("Could not connect to server!");
MysqLi_select_db($connect, "PHP_forum") or die("Could not connect to database!");

就像手册中指出的那样,您应该检查错误

$link = MysqLi_connect("myhost","myuser","mypassw","mybd") 
or die("Error " . MysqLi_error($link));

因此,在您的情况下:

$connect = MysqLi_connect("localhost", "root", "","PHP_forum") 
or die("Error " . MysqLi_error($connect));

我更改action="register.PHP"为,action=""因为您正在同一页面中使用整个代码

<!DOCTYPE HTML>
<html>
    <head>
        <title>Register</title>
    </head>
    <body>
        <form action="" method="POST">
            Username: <input type="text" name="username">
            <br/>
            Password: <input type="password" name="password">
            <br/>
            Confirm Password: <input type="password" name="confirmPassword">
            <br/>
            Email: <input type="text" name="email">
            <br/>
            <input type="submit" name="submit" value="Register"> or <a href="login.PHP">Log in</a>
        </form>
    </body>
</html>
<?PHP
    require('connect.PHP');
    $username = $_POST['username'];
    $password = $_POST['password'];
    $confirmPassword = $_POST['confirmPassword'];
    $email = $_POST['email'];

    if(isset($_POST["submit"])){
        if($query = MysqLi_query($connect,"INSERT INTO users (`id`, `username`, `password`, `email`) VALUES ('', '".$username."', '".$password."', '".$email."')")){
            echo "Success";
        }else{
            echo "Failure" . MysqLi_error($connect);
        }
    }
?>
php 2022/1/1 18:49:29 有293人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶