ruben0123 Posted June 15, 2015 Share Posted June 15, 2015 Hi all, I hope someone can pinpoint hte problem for me because I have stared myself blind and can't find it. I get the following error: Parse error: syntax error, unexpected 'isset' (T_ISSET), expecting '(' in /public/sites/www.studiovsf.nl/contact.php on line 20 So I know that somewhere around linw 20 < if (!$errors) { > there is a '(' missing in the code. but how much I try I cant find where it needs to go. The code is listed under here. Any help would be greatly appreciated. <?php //Retrieve form data. //GET - user submitted data using AJAX //POST - in case user does not support javascript, well use POST instead $name = ($_GET['name']) ? $_GET['name'] : $_POST['name']; $email = ($_GET['email']) ?$_GET['email'] : $_POST['email']; $comment = ($_GET['comment']) ?$_GET['comment'] : $_POST['comment']; //flag to indicate which method it uses. If POST set it to 1 if ($_POST) $post=1; //Simple server side validation for POST data, of course, you should validate the email if (!$name) $errors[count($errors)] = 'Please enter your name.'; if (!$email) $errors[count($errors)] = 'Please enter your email.'; if (!$comment) $errors[count($errors)] = 'Please enter your comment.'; //if the errors array is empty, send the mail if (!$errors) { //recipient - replace your email here $to = 'info@studiovsf.nl'; //sender - from the form $from = $name . ' <' . $email . '>'; //subject and the html message $subject = 'Message from ' . $name; $message = 'Name: ' . $name . '<br/><br/> Email: ' . $email . '<br/><br/> Message: ' . nl2br($comment) . '<br/>'; //send the mail $result = sendmail($to, $subject, $message, $from); //if POST was used, display the message straight away if ($_POST) { if ($result) echo 'Dank u wel! We hebben uw bericht ontvangen.'; else echo 'Sorry, er ging iets fout. Probeer het later nog eens.'; //else if GET was used, return the boolean value so that //ajax script can react accordingly //1 means success, 0 means failed } else { echo $result; } //if the errors array has values } else { //display the errors message for ($i=0; $i<count($errors); $i++) echo $errors[$i] . '<br/>'; echo '<a href="contact.html">Back</a>'; exit; } //Simple mail function with HTML header function sendmail($to, $subject, $message, $from) { $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n"; $headers .= 'From: ' . $from . "\r\n"; $result = mail($to,$subject,$message,$headers); if ($result) return 1; else return 0; } ?> Quote Link to comment Share on other sites More sharing options...
dalecosp Posted June 15, 2015 Share Posted June 15, 2015 Well, either you posted the wrong code, or you are reading the wrong error_log | screen ouput, or you need to get some sleep... There's no call to isset() in your snippet, and no include and no require, so ... (Furthermore, your code, as posted, parses without issue...) Quote Link to comment Share on other sites More sharing options...
ruben0123 Posted June 15, 2015 Author Share Posted June 15, 2015 Thanks dale, you are right, there was a descrepancy between local and remote code. Remote code had the line if isset(!$errors) { in it on line 20 because I was trying to get rid of an other error message being: Notice: Undefined variable: errors in /public/sites/www.studiovsf.nl/contact.php on line 20 And as far as I understood that should be fixed by using the isset(xxxxx) method. For the record, I'm a software programmer, but I'm not really into PHP, that's just for my hobby website. :-) Any thoughts on the above issue? Thank in advance. Ruben Quote Link to comment Share on other sites More sharing options...
Solution ruben0123 Posted June 15, 2015 Author Solution Share Posted June 15, 2015 I found it, after the hint from Dale, I replaced the code with: if (!(isset($errors))) { and now it workls like a charm. Topic can be closed. 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.