Использование PDO с php - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь использовать PDO впервые, я исследовал пару дней, пытаясь настроить пару вещей с ним.Я не получаю никаких ошибок, но при использовании тестовых сообщений я не получаю сообщение Test1.

if($_SERVER["REQUEST_METHOD"]=="POST"){
        if(isset($_POST["submit"])){
            if(isset($_POST["firstname"]) && isset($_POST["lastname"]) && isset($_POST["username"]) && isset($_POST["email"])
                    && isset($_POST["password"]) && isset($_POST["confirm"])){
                $firstname = $_POST["firstname"];
                $lastname = $_POST["lastname"];
                $username = $_POST["username"];
                $email = $_POST["email"];
                $password = $_POST["password"];
                $confirm = $_POST["confirm"];
                $hash = md5(rand(0,1000));

                $stmt = $db->prepare('SELECT username FROM users WHERE username = :username');
                $stmt->bindParam(':username', $username);
                $stmt->execute();
                if($stmt->rowCount() > 0){
                    $error_msg = "Username is taken!";
                }else{
                    $stmt = $db->prepare('SELECT email FROM users WHERE email = :email');
                    $stmt->bindParam(':email', $email);
                    $stmt->execute();
                    if($stmt->rowCount() > 0){
                        $error_msg = "Email is taken!";
                    }else{
                        if($password==$confirm){
                            echo "Test";
                            $encryptpass = md5($password);
                            //insert user data into database
                            echo "Test3";
                            $stmt = $db->prepare('INSERT INTO users(firstname, lastname, username, email, password, hash) 
                                    VALUES (?, ?, ?, ?, ?, ?)');
                            $stmt->bindParam("ssssss", $firstname, $lastname, $username, $email, $password, $hash);
                            $stmt->execute();
                            echo "Test1";
                            $success_msg = "Thank you for registering with CrystalDev! \nPlease activate your account by
                                            clicking the link in your email!";

                            $to = $email;
                            $subject = 'Signup | Verification';
                            $message = 'Thanks for signing up!
                                            Your account has been created!
                                            Please click this link to activate your account:
                                            http://www.crystaldev.net/verify.php?email='.$email.'&hash='.$hash.'
                                                    ';
                            $headers = 'From:noreply@crystaldev.net' . "\r\n"; // Set from headers
                            mail($to, $subject, $message, $headers); // Send our email
                        }else{
                            $error_msg = "Passwords do not match!";
                        }
                    }
                }
            }
        }
    }

РЕШЕНИЕ (ИЗМЕНЕНО): я обнаружил свою проблему .. Я использовал имя столбца, который нене существует в базе данных, которую я использовал.

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