time = time(); $this->startSession(); } /** * startSession - Performs all the actions necessary to * initialize this session object. Tries to determine if the * the user has logged in already, and sets the variables * accordingly. Also takes advantage of this page load to * update the active visitors tables. */ function startSession(){ global $database; //The database connection session_start(); //Tell PHP to start the session /* Determine if user is logged in */ $this->logged_in = $this->checkLogin(); /** * Set guest value to users not logged in, and update * active guests table accordingly. */ if(!$this->logged_in){ $this->username = $_SESSION['username'] = GUEST_NAME; $this->userlevel = GUEST_LEVEL; $database->addActiveGuest($_SERVER['REMOTE_ADDR'], $this->time); } /* Update users last active timestamp */ else{ $database->addActiveUser($this->username, $this->time); } /* Remove inactive visitors from database */ $database->removeInactiveUsers(); $database->removeInactiveGuests(); /* Set referrer page */ if(isset($_SESSION['url'])){ $this->referrer = $_SESSION['url']; }else{ $this->referrer = "/"; } /* Set current url */ $this->url = $_SESSION['url'] = $_SERVER['PHP_SELF']; } /** * checkLogin - Checks if the user has already previously * logged in, and a session with the user has already been * established. Also checks to see if user has been remembered. * If so, the database is queried to make sure of the user's * authenticity. Returns true if the user has logged in. */ function checkLogin(){ global $database; //The database connection /* Check if user has been remembered */ if(isset($_COOKIE['cookname']) && isset($_COOKIE['cookid'])){ $this->username = $_SESSION['username'] = $_COOKIE['cookname']; $this->userid = $_SESSION['userid'] = $_COOKIE['cookid']; } /* Username and userid have been set and not guest */ if(isset($_SESSION['username']) && isset($_SESSION['userid']) && $_SESSION['username'] != GUEST_NAME){ /* Confirm that username and userid are valid */ if($database->confirmUserID($_SESSION['username'], $_SESSION['userid']) != 0){ /* Variables are incorrect, user not logged in */ unset($_SESSION['username']); unset($_SESSION['userid']); return false; } /* User is logged in, set class variables */ $this->userinfo = $database->getUserInfo($_SESSION['username']); $this->username = $this->userinfo['username']; $this->userid = $this->userinfo['userid']; $this->userlevel = $this->userinfo['userlevel']; return true; } /* User not logged in */ else{ return false; } } /** * login - The user has submitted his username and password * through the login form, this function checks the authenticity * of that information in the database and creates the session. * Effectively logging in the user if all goes well. */ function login($subuser, $subpass, $subremember){ global $database, $form; //The database and form object /* Username error checking */ $field = "user"; //Use field name for username if(!$subuser || strlen($subuser = trim($subuser)) == 0){ $form->setError($field, "* Username not entered"); } else{ /* Check if username is not alphanumeric */ if(!eregi("^([0-9a-z])*$", $subuser)){ $form->setError($field, "* only letters and numbers allowed and no spaces"); } } /* Password error checking */ $field = "pass"; //Use field name for password if(!$subpass){ $form->setError($field, "* Password not entered"); } /* Return if form errors exist */ if($form->num_errors > 0){ return false; } /* Checks that username is in database and password is correct */ $subuser = stripslashes($subuser); $result = $database->confirmUserPass($subuser, md5($subpass)); /* Check error codes */ if($result == 1){ $field = "user"; $form->setError($field, "* Username not found"); } else if($result == 2){ $field = "pass"; $form->setError($field, "* Invalid password"); } /* Return if form errors exist */ if($form->num_errors > 0){ return false; } /* Username and password correct, register session variables */ $this->userinfo = $database->getUserInfo($subuser); $this->username = $_SESSION['username'] = $this->userinfo['username']; $this->userid = $_SESSION['userid'] = $this->generateRandID(); $this->userlevel = $this->userinfo['userlevel']; /* Insert userid into database and update active users table */ $database->updateUserField($this->username, "userid", $this->userid); $database->addActiveUser($this->username, $this->time); $database->removeActiveGuest($_SERVER['REMOTE_ADDR']); /** * This is the cool part: the user has requested that we remember that * he's logged in, so we set two cookies. One to hold his username, * and one to hold his random value userid. It expires by the time * specified in constants.php. Now, next time he comes to our site, we will * log him in automatically, but only if he didn't log out before he left. */ if($subremember){ setcookie("cookname", $this->username, time()+COOKIE_EXPIRE, COOKIE_PATH); setcookie("cookid", $this->userid, time()+COOKIE_EXPIRE, COOKIE_PATH); } /* Login completed successfully */ return true; } /** * logout - Gets called when the user wants to be logged out of the * website. It deletes any cookies that were stored on the users * computer as a result of him wanting to be remembered, and also * unsets session variables and demotes his user level to guest. */ function logout(){ global $database; //The database connection /** * Delete cookies - the time must be in the past, * so just negate what you added when creating the * cookie. */ if(isset($_COOKIE['cookname']) && isset($_COOKIE['cookid'])){ setcookie("cookname", "", time()-COOKIE_EXPIRE, COOKIE_PATH); setcookie("cookid", "", time()-COOKIE_EXPIRE, COOKIE_PATH); } /* Unset PHP session variables */ unset($_SESSION['username']); unset($_SESSION['userid']); /* Reflect fact that user has logged out */ $this->logged_in = false; /** * Remove from active users table and add to * active guests tables. */ $database->removeActiveUser($this->username); $database->addActiveGuest($_SERVER['REMOTE_ADDR'], $this->time); /* Set user level to guest */ $this->username = GUEST_NAME; $this->userlevel = GUEST_LEVEL; } /** * register - Gets called when the user has just submitted the * registration form. Determines if there were any errors with * the entry fields, if so, it records the errors and returns * 1. If no errors were found, it registers the new user and * returns 0. Returns 2 if registration failed. */ function register($subuser, $subpass, $subemail){ global $database, $form, $mailer; //The database, form and mailer object /* Username error checking */ $field = "user"; //Use field name for username if(!$subuser || strlen($subuser = trim($subuser)) == 0){ $form->setError($field, "* Username not entered"); } else{ /* Spruce up username, check length */ $subuser = stripslashes($subuser); if(strlen($subuser) < 5){ $form->setError($field, "* Username below 5 characters"); } else if(strlen($subuser) > 30){ $form->setError($field, "* Username above 30 characters"); } /* Check if username is not alphanumeric */ else if(!eregi("^([0-9a-z])+$", $subuser)){ $form->setError($field, "* * only letters and numbers allowed and no spaces"); } /* Check if username is reserved */ else if(strcasecmp($subuser, GUEST_NAME) == 0){ $form->setError($field, "* Username reserved word"); } /* Check if username is already in use */ else if($database->usernameTaken($subuser)){ $form->setError($field, "* Username already in use"); } /* Check if username is banned */ else if($database->usernameBanned($subuser)){ $form->setError($field, "* Username banned"); } } /* Password error checking */ $field = "pass"; //Use field name for password if(!$subpass){ $form->setError($field, "* Password not entered"); } else{ /* Spruce up password and check length*/ $subpass = stripslashes($subpass); if(strlen($subpass) < 4){ $form->setError($field, "* Password too short"); } /* Check if password is not alphanumeric */ else if(!eregi("^([0-9a-z])+$", ($subpass = trim($subpass)))){ $form->setError($field, "* * only letters and numbers allowed and no spaces"); } /** * Note: I trimmed the password only after I checked the length * because if you fill the password field up with spaces * it looks like a lot more characters than 4, so it looks * kind of stupid to report "password too short". */ } /* Email error checking */ $field = "email"; //Use field name for email if(!$subemail || strlen($subemail = trim($subemail)) == 0){ $form->setError($field, "* Email not entered"); } else{ /* Check if valid email address */ $regex = "^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*" ."@[a-z0-9-]+(\.[a-z0-9-]{1,})*" ."\.([a-z]{2,}){1}$"; if(!eregi($regex,$subemail)){ $form->setError($field, "* Email invalid"); } $subemail = stripslashes($subemail); } /* Errors exist, have user correct them */ if($form->num_errors > 0){ return 1; //Errors with form } /* No errors, add the new account to the */ else{ if($database->addNewUser($subuser, md5($subpass), $subemail)){ if(EMAIL_WELCOME){ $mailer->sendWelcome($subuser,$subemail,$subpass); } return 0; //New user added succesfully }else{ return 2; //Registration attempt failed } } } /** * editAccount - Attempts to edit the user's account information * including the password, which it first makes sure is correct * if entered, if so and the new password is in the right * format, the change is made. All other fields are changed * automatically. */ function editAccount($subcurpass, $subnewpass, $subemail){ global $database, $form; //The database and form object /* New password entered */ if($subnewpass){ /* Current Password error checking */ $field = "curpass"; //Use field name for current password if(!$subcurpass){ $form->setError($field, "* Current Password not entered"); } else{ /* Check if password too short or is not alphanumeric */ $subcurpass = stripslashes($subcurpass); if(strlen($subcurpass) < 4 || !eregi("^([0-9a-z])+$", ($subcurpass = trim($subcurpass)))){ $form->setError($field, "* Current Password incorrect"); } /* Password entered is incorrect */ if($database->confirmUserPass($this->username,md5($subcurpass)) != 0){ $form->setError($field, "* Current Password incorrect"); } } /* New Password error checking */ $field = "newpass"; //Use field name for new password /* Spruce up password and check length*/ $subpass = stripslashes($subnewpass); if(strlen($subnewpass) < 4){ $form->setError($field, "* New Password too short"); } /* Check if password is not alphanumeric */ else if(!eregi("^([0-9a-z])+$", ($subnewpass = trim($subnewpass)))){ $form->setError($field, "* New Password not alphanumeric"); } } /* Change password attempted */ else if($subcurpass){ /* New Password error reporting */ $field = "newpass"; //Use field name for new password $form->setError($field, "* New Password not entered"); } /* Email error checking */ $field = "email"; //Use field name for email if($subemail && strlen($subemail = trim($subemail)) > 0){ /* Check if valid email address */ $regex = "^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*" ."@[a-z0-9-]+(\.[a-z0-9-]{1,})*" ."\.([a-z]{2,}){1}$"; if(!eregi($regex,$subemail)){ $form->setError($field, "* Email invalid"); } $subemail = stripslashes($subemail); } /* Errors exist, have user correct them */ if($form->num_errors > 0){ return false; //Errors with form } /* Update password since there were no errors */ if($subcurpass && $subnewpass){ $database->updateUserField($this->username,"password",md5($subnewpass)); } /* Change Email */ if($subemail){ $database->updateUserField($this->username,"email",$subemail); } /* Success! */ return true; } /** * isAdmin - Returns true if currently logged in user is * an administrator, false otherwise. */ function isAdmin(){ return ($this->userlevel == ADMIN_LEVEL || $this->username == ADMIN_NAME); } /** * generateRandID - Generates a string made up of randomized * letters (lower and upper case) and digits and returns * the md5 hash of it to be used as a userid. */ function generateRandID(){ return md5($this->generateRandStr(16)); } /** * generateRandStr - Generates a string made up of randomized * letters (lower and upper case) and digits, the length * is a specified parameter. */ function generateRandStr($length){ $randstr = ""; for($i=0; $i<$length; $i++){ $randnum = mt_rand(0,61); if($randnum < 10){ $randstr .= chr($randnum+48); }else if($randnum < 36){ $randstr .= chr($randnum+55); }else{ $randstr .= chr($randnum+61); } } return $randstr; } }; /** * Initialize session object - This must be initialized before * the form object because the form uses session variables, * which cannot be accessed unless the session has started. */ $session = new Session; /* Initialize form object */ $form = new Form; ?> Ricky Gervais... Obviously. " ."" .""; $forminput = "" ."" ."" . ""; if($session->logged_in){ $toptagline ="" ."" .""; $forminput = ""; } else{ /** * User not logged in, display the login form. * If user has already tried to login, but errors were * found, display the total number of errors. * If errors occurred, they will be displayed. */ if($form->num_errors > 0){ $errorline = ""; } } $membersline = "There are ".$database->getNumMembers()." members signed up to Ricky Gervais.Com - ". $database->num_active_users ." are signed in now and there are " . $database->num_active_guests. " people just visiting"; ?>

Above, Gervais with a Clunge Ambler, one of 56 Flanimals in his children's books. They are surreal characters ('Kids like gruesome stuff. They like gore,' he says) who lead cruel existences but, insists Gervais, 'everything's okay in the end'. The first book, Flanimals, has sold over 300,000 copies in the UK since it was published in October 2004. The next book, More Flanimals, is out next month

Picture this. You are Ricky Gervais. Not David Brent, the immortal boss he created in The Office, nor Andy; the unfulfilled actor he became for the BBC comedy series Extras. No, you are Gervais himself You are at the peak of your power. Hollywood stars give each other DVDs of your work as presents, and the world returns your call The public gawps as you buy your underpants, while the most powerful executives in fIlm, TV and publishing will agree to any project you desire. You have absolute freedom. What do you do with it?

How about putting your energy into some strange animal characters you dreamt up for your nephew when you were IS? Characters that have, as yet, no real world and little story; even though they have reached their second book? You wouldn't? Neither would L But then, we're not Ricky Gervais.

We are in a fIve-star hotel in London, in a suite that costs 4,000 per night. Gervais, who not so long ago was poor enough to make a pint of beer last all night, is full of wonder at the fIttings. The suite has been booked for photography; and a young woman is putting on costume to become a Clunge Ambler, one of 56 Aanimals in Gervais's new universe. We're in Beckett territory. The Clunge Ambler is "a sweaty little waddle-gimp" that shuffies around trying to cuddle things. It has a cruel existence. "He is weird and smells, so is constantly being beaten up and buried He never learns his lesson and always tries to fInd and cuddle the Flanimal that buried him. The Flanimal usually buries him again." On Gervais's website, a Clunge Ambler is pictured at London zoo, trying to cuddle a zoo keeper. The website says zoo staff have been trained not to beat up and bury Clunge Amblers, tempting though it may be, but to try to send them back to wherever it was they came from.

Which was a book - and on the next page, the Wobboid Mump (illustrated by a sad, life-battered eye) is "one of the most useless organisms in the universe. It is basically an eye in jelly. It spends most of its time looking around, trying to fInd reason in its existence. It never fInds it, as it is blind". With two Golden Globes and six Baftas, Gervais is our most garlanded comedian. His inner layers are a mystery. What do his children's books tell us about them? most garlanded comedian. His inner layers are a mystery. What do his children's books tell us about them?

Britain's Woody Allen has two modes for talking to interviewers. There are practised answers, which flow rapidly and work beautifully on the page, often using comic manipulations that are very funny. Or there are misunderstandings, opaque sentences and periods of silence, in which he confronts the unexpected with goodwill, but explains himself mainly through body language. This is what we want. The word trips have been heard before, so we must interrupt them. It is unpolished thought that opens a window into this increasingly private figure.

Do not underestimate Flanimals. Gervais says it is a labour oflove. The superrnodel Linda Evangelista once said she would not get out of bed for less than $10,000; Gervais gets out of bed to work, and turns down dazzlingly lucrative projects to make space for what matters. Right now, that's the second series of Extras, which explores similar themes of futility and misunderstanding. And Flanimals.

Why Flanimals? He would have you believe it is just a laugh. He feels joy to think that children will ask how to say a ridiculous nanle, and parents will have as little idea as the child. And joy at sending up science. The style is that of an educational book on wildlife, but the education is illogical. Take the Edgor, slowest of the Flanimals. At its slowest, it can actually move more slowly than some Flanimals that don't move at all "I love the idea of tllls being taken as a document, as a reference," says Gervais, picking up hisbook to read me description of the Dweezle Muzzgrub. "This screamy beedle," declares the voice of David Brent, "runs around wishing it could fly. Angry, tired and fed up with using its legs to get around, it sheds them so it can rest. Unfortunately, legs falling offis one of the most painful things ever and it screams itself to death in agony. Hardly a rest, is it? So be careful what you wish for." He cracks up. "That was just, like, the idea! That there's a moral!" Gervais is almost helpless with laughter.

He says he developed Flanirnals because "I like coming up with stupid stuff:. some things are intrinsically funny. But mainly fm laughing at the idea of it being imposed upon the world." Which is funny, if self-indulgent. But there's more to it than that. And Gervais is not self-indulgent. The first "fact" to know in the spotter's guide to Gervais is he thinks like a biologist. He approaches art as ifit were science. Your responses to his work are planned long in advance, using the logic and workings of an emotional mathematician. The second fact is that, for all the awards and acclaim. he is a humble creature. He is proud of The Office, but knows it gives him no licence. Each new joke must be justified - a cheap gag, he says, deserves no mirth. It would be like winning money instead of working for it. In fact, every project has to be justified. There will be a feature film ofFlanimals, but not yet that would be trading on celebrity. First there must be this book, More Flanimals. Then a talking book, lasting 'Just half an hour, so we don't want to do a big sell on it". Then merchandise and a short film. Only then is a feature film possible.

"I want to earn it," says Gervais of the eventUal film. "You know, it's not Spider-Man - it hasn't been around for ages." Over time this strategy will make a lot of money, but that is not the motive. Although he has been with the same girlfriend for 20 years, Gervais has no children, and he shows a single man's (more accurately, a single hypochondriac's) obsession with his legacy, He wants Flanimals to outlive him. This is not a tease: he's sincere. He has passed on his genes to the Clunge Ambler.

His subjects are our emotional landscape and the meaninglessness of existence, which he contemplates with pitiless logic. According to Gervais, there are only two reasons to turn these subjects into comedy. One is to have fun: there is a scene in The Office - in which Brent gives Tim an appraisal- that needed 74 takes, because the pair kept laughing. The other is to make a connection with the 4m people in Britain who are his audience. "I always do stuff because I want to make some sort of connection," he says. "There's nothing else in the world than a connection."

Recently, Gervais came to understand that there are 56m people in Britain he cannot reach and does not wish to. This was actually the insight of Stephen Merchant, his writing partner for The Office and Extras. Each TV series settled at 4m viewers. "I said to Steve, that's our limit. We could make 10m people sit down and 6m people would walk out, right? That's fine by me; that's great. But isn't it weird?"

Then the pair were in a hotel room during the Edinburgh Festival, watching Pop Idol Most viewers tune in because of the preliminary rounds, Gervais says, in which people who are bordering on mentally ill compete for a chance of fame. 'We were watching these people come on and do really strange things, and argue back and cry, and fight with the judges. Steve turned to me and said, 'I know why there's only 4rn, because we watch this and go, God, it's embarrassing. Most people watch this and go, I can do better than that. Most people who watch Pop Idol are like the people that enter Pop Idol That's why there are only 4m people left to like The Office.' AndExrras.lt's fascinating."

Gervais acknowledges that this is exaggerated: there will be people who don't watch Pop Idol and do understand The Office but simply don't like it. Even so, he does not want the other 56rn, because they mean compromise. That's why, when the BBC tried to put Extras on BBC1, he refused With The Office, some people - "producers and that" - pointed out things that would alienate viewers, and told him he cared too much for his craft. "I said, I'd rather this be a million people's favourite show than 10m people's 19th favourite. We stuck to our guns. In fact, we went further. We were slightly disappointed with the pilot, because we thought it looked too sitcommy, and went back to the pre-pilot: the bleakness, the gaps, the futility of existence, the honesty-the cracks oflife."

That's enough of his credentials. By now, either you know you are one of his 4rn, and are still reading, or you believe you should be on Pop Idol, in which case you have turned the page. Unless you think he is an arrogant snob, of course. And what 4m people want to know is: why is Flanimals so dark? Is Ricky Gervais a nutter? Potted history of a comic: conceived by accident, "a mistake". Three much older siblings. Father a French- Canadian labourer, a lapsed Catholic who "got up every day at 5.30am, made a pot of tea and got picked up by a bloke in a van". Mother C of E, a dinner lady. Happy childhood. . Thought everyone lived in a three-bedroom house on a 1950s council estate, with church, school and clinic in a line outside the front door: Unaware he was working class until university, where other students spoke like Prince Charles. At home,joking was a survival skill and sulking a sin. "The whole point of my family was taking the mickey out of the one sitting next to you," Gervais says. "That seemed to be the Reading way. Everything was fine as long as you never got the hump." Gervais loved his mother's wit, which he taped for a radio show. "She used to say stufflike, 'You're about as much use as a one-legged man in an arse-kicking contest.''' She died oflung cancer as The Office began.

Bullies are a theme in The Office, but Gervais was never a victim: "I didn't know any." He thrived at school, where he had friends and loved learning, "because I was good at it and people were proud of me". At Ashmead comprehensive in Reading he became one of six in his year to go to university. He chose biology, then changed to philosophy.

By the age of eight, he could read people. "I remember the day I became an atheist," says Gervais. "I was doing my homework. I'd been to Sunday school from the age of five to eight. I had gold stars and used to win Jason in the Lion's Den books, and everything was great. And, er, I f"ing loved Jesus, I thought he was brilliant. What a great man." Then his brother Bob, who was 19, came in and took an interest in the homework. He asked Ricky why he believed in God '1\nd my mum got nervous. My mum went, 'Bob' [in a warning voice] and I thought, something's up. Then he went, 'Well, what proofis there?' My mum said, 'Of course there's a God.' He went, 'No, I'mjust asking.' And I said something ludicrous: they've found evidence, they've found his blood in a bottle. I was just guessing. And Bob laughed. I could tell just by looking, that he was telling the truth and my mum was lying. I knew the truth in that instant. That's why I put such a value in body language."

You should write about what you know; and the creator of David Brent knows underachievement. For much of his twenties he stayed on at university as the student union's entertainment manager. True, at 21 he had been lead singer in a band called Seona Dancing, which reached the top 79 in the charts. And he was manager of another group, Suede, before anyone had heard of them. Bu t really these were the years of watching TV and witnessing bad comedy. He lived with Jane Fallon, his girlfriend - now a successful TV producer, then a reader of scripts for a literary agent - in bedsits, never had money and seemed destined to exist like a student for ever. "One flat had no heating," says Fallon, "and we'd go to the pub and buy a pint each to last all night, just to stay warm. Ricky and I were the most unambitious people ever." She broke out fIrst, as a script editor on EastEnders. Then Gervais lucked into ajob as "head of speech" at Xfin, the London radio station. He was 36.

Fate did the rest. First it delivered Stephen Merchant, the future co-author of The Office, as his assistant at Xfin. Gervais liked making his colleague laugh, and acted out an idea for a seedy boss. But he was, says Merchant, "the worst boss I've ever had. Because Ricky's not like a proper boss; he was officially my boss, but it was ludicrous. I went up to London thinking he was like a big media hotshot, and I turn up and he's wearing sweatpants and a vest, or something, and clearly didn't know what he was doing". Merchant, the more responsible of the two, stayed three months. Later, he had to make a film as part of a BBC training course, and asked Gervais to act the sleazy boss character. Gervais had no experience of writing, acting or directing, but this short film is what the BBC saw. Then Xfin made Gervais redundant, and he used the money to spend six months writing a script that became The Office.

So, is he a nutter? At Xfin, Merchant must have had his doubts. "The thing about Ricky is - I mean, I'm not just trying to slag him off-he's a nightmare to work with. Because he's like a child. You know, those sort of kids you see in those documentaries where they've put a secret camera in someone's house on a council estate somewhere, and they've given the kids something like Kia-Ora, and they're just so wild because they're not supposed to have E-numbers or tartrazine, and they're like frenzied, smashing the place up... That's what Ricky's like, constantly."

Time to come clean: it's not true. Ricky Gervais is one of the sanest men you could meet. He has been with the same girlfriend for 20 years. He has deeply sane attitudes to fame and money. At first he accepted corporate work, as it seemed obscene to refuse sums his dad had needed a year to earn. Then he stopped, out of self-respect. Recently he declined lm to do a television commercial. The advertiser doubled the offer to 2m, and still he refused. He knows what matters: between 9 and 4 it is meaningful work, and out of hours it's his friends, who are the same friends they have always been. Above all, he has integrity. His work is honest and so is he. If you are among the 4m, then really you knew that already. In fact, he's a bit of a vicar. In the past, he has been forced to defend his lifestyle, which seems a bit clean for a comedian. "I am a hedonist," he insists. "I just don't do crack. I like to eat and drink too much, and I like to be with my mates all the time, and I like to stay up late watching telly, and I like to get cabs everywhere - to me, that's decadence. It's just that I prefer to leave out the getting-pissed-in- Stringfellows-at - 2am-and-then-being-found-in-your- own-vomit-in-a-skip part of it." I ask him what, in his life, he is most ashamed o This is an unfair question. Many of us would not be prepared to answer: we would not want people to know. There is a long silence, and then he tells me a story with the tape off; about a practical joke that went wrong. His body language says he is being truthful: this is the worst thing he has done in his life. It wasn't that bad. "I never even used to steal sweets at Woolworths," Gervais says. "I remember thinking as a kid that in steal sweets and get caught, it's with me for ever. I suppose you'd call me a good little boy." We explore further. He's never really been dissatisfied. He only feels a blood-rush of anxiety on matters of health - twice, he has asked Merchant to go with him to the doctor because he was convinced he had cancer. Even in middle age, at 44, he frets about the meaning oflife "very rarely", although he does care deeply about his legacy. Somewhere, though, Gervais is very. controlled. If you think about it, he has to be: The Office and Extras show real compassion, and if you have that compassion, you cannot afford to contemplate what other people's lives actually entail. And it's true. If he reads a cruel story in the newspaper, or sees a touching sight in the street, he must fIght to get it out of his head.

''What can you do?" he asks. "[But] there's a great thing I remember when I was 14 or 15. It was in MASH. And Hawkeye was going, 'Look: we can't change the world, but we can change our corner of it.' And that's absolutely stayed with me_ What's that quote? 'Honour is a gift a man gives himself I love that. Because you can start now. You can just go, 'Right, I'm going to be honest and honourable.''' One of the most exciting moments in his life was to portray Brent crying at the end of episode six of the second series of The Office. The tears were always planned, but first he took the audience down a very long route where it felt acceptable to laugh at Brent, who seemed not to have feelings. This was untrue, of course: "He was living a lie too" Where does this leave the children's books? Flanimals is dark because life can be dark. Gervais is just the messenger. And we don't yet know the story. Says Gervais: "One of the most orgasmic themes in film and comedy is redemption." At the hotel, he studies the young woman who has volunteered to be the Clunge Ambler. A cruel idea enters his head, and he starts to chuckle. ''What I really want to do," he says, "is get an actor or actress who really wants to be playing Chekhov in the National, and then say to them, 'Come on! Come on! A Clunge Ambler wouldn't do that!" .

Sign up now and you'll have full access to the site and get the odd email from Ricky when he's got something to tell you.

" ."sign up | forgotten your password?

Already signed up? Sign in here...


Hello, " .$session->username .". You're signed in.

" ."username\">my details | " ."edit details"; if($session->isAdmin()){ $toptagline = $toptagline." | admin"; } $toptagline = $toptagline." | sign off
".$form->num_errors." error(s) found