调试:我不知道在哪里修复我的PHP代码,没有错误,它不起作用



所以我一直在一个社交媒体网站上工作,现在我正在制作网站的注册部分,这就是我目前所拥有的。 这将非常有帮助,因为我刚刚开始学习 PHP,我不知道从这里开始,因为它不会导致错误。

if(isset($_POST['create-account'])){
    $username = $_POST['username'];
    $password = $_POST['password'];
    $email = $_POST['email'];
    DB::query('INSERT INTO users VALUES ('',:username,: password, :email)'. array(':username'=>$username, ':password'=>$password,':email'=>$email));
    echo 'succsessfull';
}
?>
<h1>Register</h1>
<form action="create-account.php" method='post'>
    <input type='text' name='username' value='' placeholder="Username..."><p />
    <input type='password' name='password' value='' placeholder="Password..."><p />
    <input type='email' name='email' value='' placeholder="Email..."><p />
    <input type='submit' name='createaccount' value='submit'>
</form>

还有一个名为DB(数据库)的文件及其代码,感谢您帮助我解决问题:

    <?php
class DB{
    private static function connect(){
        $pdo = new PDO('mysql:host=127.0.0.1;dbname=mysocial;charset=utf8;', 'root', '');
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDo::ERRMODE_EXCEPTION);
        return $pdo;
    }
    public static function query($query, $params = array()){
        $statement = self::connect()->prepare($query);
        $statement->execute($params);
        //$data = $statement->fetchAll();
        //return $data;
    }
}
?>

我不知道对我的问题还有什么要说的,除了希望我能完成这个项目

所以基本上我是个哑巴,当它说

if(isset($_POST[create-account])){

我应该放创建帐户而不是创建帐户

快速修复

<?php
// createaccount and not create-account
if(isset($_POST['createaccount'])){
    $username = $_POST['username'];
    $password = $_POST['password'];
    $email = $_POST['email'];
    
    $query = "INSERT INTO users VALUES (null,:username,:password, :email)";
    $params =  array(
                ':username'=>$username, 
                ':password'=>$password,
                ':email'=>$email 
    );
    
    // you had extra parenthesis at the end here. Keep your code clean, make it easier to read
   // DB::query()'. array(':username'=>$username, ':password'=>$password,':email'=>$email));
   
    if( DB::query( $query, $params ) )
    {
        echo 'succsessfull';
    }
    else {
        echo 'Failed';
    }
}
?>
<h1>Register</h1>
<form action="create-account.php" method='post'>
    <input type='text' name='username' value='' placeholder="Username..."><p />
    <input type='password' name='password' value='' placeholder="Password..."><p />
    <input type='email' name='email' value='' placeholder="Email..."><p />
    <input type='submit' name='createaccount' value='submit'>
</form>

最新更新