disoriented guy Posted August 9, 2006 Share Posted August 9, 2006 Sorry to bother you all, but this one has me stumped...I'm starting to set up a basic registration script (obviously half finished). When i runthe following code, i get this error:[b]Parse error: parse error, unexpected T_CATCH in c:\program files\apache group\Apache\htdocs\newaccount.php on line 83[/b]Line 83 is the line near the bottom that starts [b]catch (Exception $e)[/b]. Could you explain to me where i've gone wrong?[code]<?php $name=(string)$_POST['name'];$mail=(string)$_POST['email1'];$password=(string)$_POST['password1'];$mailcheck=(string)$_POST['email2'];$passcheck=(string)$_POST['password2'];function valid_email($address){ if(ereg('^[a-zA-Z0-9 \._\-]+@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+ [a-zA-Z]+$', $address)) return true; else return false;}function filled_out($form_vars){ //test that each variable has a value foreach ($form_vars as $key => $value) { if (!isset($key) || ($value == '')) return false; } return true;}try{ if (!filled_out($_POST)) { throw new Exception('You have not filled out all the required fields - please try again.'); } if (!valid_email($mail)) { throw new Exception('This email address ius not valid - it must be, as this is used to send an activation email.'); } if ($password != $passcheck) { throw new Exception('The passwords you entered do not match.'); } if (strlen($password)<8) { throw new Exception('Your password must be greater than seven characters.'); } echo 'Your registration was successful';}catch (Exception $e){ echo 'Problems with your attempted registration:<br/>'; echo $e->getMessage(); exit;}?>[/code]I'm running php5.1.4 and there is a form that sources this code... and the variables do match up.Thanks Quote Link to comment Share on other sites More sharing options...
shocker-z Posted August 9, 2006 Share Posted August 9, 2006 can't see any line in bold and only 60 lines of code so not sure what line it is with the error.. Quote Link to comment Share on other sites More sharing options...
Corona4456 Posted August 9, 2006 Share Posted August 9, 2006 Well if this is an exact copy of the code. You aren't closing the if statement:[code]if ($password != $passcheck) { throw new Exception('The passwords you entered do not match.');[/code] Quote Link to comment Share on other sites More sharing options...
disoriented guy Posted August 9, 2006 Author Share Posted August 9, 2006 only 60 lines because the html is not included - ive modified the post to show you the line that has the error.... sorry 'bout that Quote Link to comment Share on other sites More sharing options...
disoriented guy Posted August 9, 2006 Author Share Posted August 9, 2006 oooohthanks for that - stupid mistake, but bound to happen... must have missed it when i checked through :) Quote Link to comment Share on other sites More sharing options...
Corona4456 Posted August 9, 2006 Share Posted August 9, 2006 Heh... no problem I do that kind of thing all the time... so when I look at other's code that's the first thing I look at to make sure that isn't the root of the problem. Quote Link to comment Share on other sites More sharing options...
bltesar Posted August 9, 2006 Share Posted August 9, 2006 your missing a '}' here -[code] if ($password != $passcheck) { throw new Exception('The passwords you entered do not match.');[/code] Quote Link to comment Share on other sites More sharing options...
disoriented guy Posted August 10, 2006 Author Share Posted August 10, 2006 ..... and also, just to clarify, i have another question to ask regarding this code.At the moment, only one error message at a time can be displayed - how can I make it display all the needed error messages without stopping after the first? Quote Link to comment Share on other sites More sharing options...
bltesar Posted August 10, 2006 Share Posted August 10, 2006 try this:[code]try{ $error=''; if (!filled_out($_POST)) { $error.='You have not filled out all the required fields - please try again.<br>'; } if (!valid_email($mail)) { $error.='This email address ius not valid - it must be, as this is used to send an activation email.<br>'; } if ($password != $passcheck) { $error.='The passwords you entered do not match.<br>'; } if (strlen($password)<8) { $error.='Your password must be greater than seven characters.<br>'; } if($error) { throw new Exception($error); } echo 'Your registration was successful';}[/code] Quote Link to comment Share on other sites More sharing options...
disoriented guy Posted August 10, 2006 Author Share Posted August 10, 2006 Thanks very much for that - worked beautifully :) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.