I have a problem with registration using PHP. All were ok, but when I want to create security for my website then registration doesn't work... I really don't understand why my code doesn't work.
Here is connection:
 <?php
    session_start();
    include 'config.php';
    $db = new PDO(
        "mysql:host=" .dbserver. ";dbname=" .dbname,dbuser,dbpass,
        array(
            PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
            PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET utf8"
        )
    );
        $ip = $_SERVER['REMOTE_ADDR'];
?>
    <form action='' method='post'>
    <table>
        <tr><td>Jméno: </td><td><input type='text' name='username' required/></td></tr>
        <tr><td>Heslo: </td><td><input type='password' name='password' required/></td></tr>
        <tr><td>Heslo znovu: </td><td><input type='password' name='passwordrepeat' required/></td></tr>
        <tr><td>Email: </td><td><input type='email' name='email' required/></td></tr>
        <tr><td><input type='submit' name='registrovat' value='Registrovat' required/></td><td></td></tr>
    </table>
</form>
    <?php
    if (isset($_POST['registrovat']))
    {
        $username = $_POST['username'];
        $password = $_POST['password'];
        $passwordre = $_POST['passwordrepeat'];
        $email = $_POST['email'];
        if ($password == $passwordre)
        {
            if ($username && $email)
            {
                $select = $db->prepare("SELECT * FROM `users` WHERE username=':username'");
                $result->execute(array(":username" => $username));
                $result = $select->fetchAll();
                foreach ($result as $data) 
                {       
                    if ($data['username'] == $username)
                    {
                        echo "<p style='color: red;'>Uživatel již existuje!</p>";
                        break;
                    } else {
                        $password = md5(sha1($password));
                        $register = "INSERT INTO users (id, username, password, ip, email, color, isadmin) VALUES ('', ':username', ':password', '$ip', ':email', '#000000', '0')";
                        $re = $db->prepare($register);
                        $re->execute(array(':username' => $username, ':password' => $password, ':email' => $email));
                        echo "Registrace proběhla úspěšně.";
                        $_SESSION['username'] = $username;
                        header('Location: JakubStanek.php');
                    }
                }
            }   
        } else {
            echo "Hesla se neshodují!";
        }
    }
?>
error
Notice: Undefined variable: result in /var/www/html/staneja14/db/index.php on line 40 Fatal error: Call to a member function execute() on a non-object in /var/www/html/staneja14/db/index.php on line 40
 
    