问题
I have been searching on SO for over an hour but couldn't get my issue resolved. For some reason there is error on page as Parse Error: syntax error unexpected } in line 262. It is closing brackets for the else condition.
I removed else condition, the code ran smoothly. Then I reverted back and removed everything inside else condition but still the error is same, I am confused why the closing bracket is unexpected.
Here is the code
if(isset($_POST['sendEmailNotification'])){
$keyword = $_POST['sendEmailNotification'];
$sql = "SELECT * FROM team where keyword = '$keyword'" ;
$sql_result = mysqli_query($conn,$sql) or die (mysqli_error($conn));
while ($row = mysqli_fetch_assoc($sql_result)){
$abcd = $row;
}
$htmlContent = file_get_contents ("email_template_header.php");
$registerURL = $siteURL.'/register/';
if ($abcd['claimed'] == 1) {
$htmlContent .= "<p>Hey,</p>";
$htmlContent .= "<p>Hope you're doing well!!!</p>";
$htmlContent .= "<p>Someone has submitted an image related to your business on www.trustedbusiness.reviews. He/She might be your customer or may be your employee/ex-employee.</p>";
$htmlContent .= "<p>You can approve the image just by following these simple steps:</p>";
$htmlContent .= "<ol>";
$htmlContent .= "<li>View Business Center</li>";
$htmlContent .= "<li>Click on Business Name</li>";
$htmlContent .= "<li>Select 'Image' option from sidebar</li>";
$htmlContent .= "<li>Approve the 'Image' & you're done</li>";
$htmlContent .= "</ol>";
$htmlContent .= "<p>If you need any help or have any suggestions to make the User Experience better. Please feel free to contact Trusted Business Reviews team.</p>";
$htmlContent .= "<p>Thanks</p>";
}
else {
$htmlContent .= "<p>Hey,</p>";
$htmlContent .= "<p>Hope you're doing well!!!</p>";
$htmlContent .= "<p>Someone has submitted an image related to your business on www.trustedbusiness.reviews. He/She might be your customer or maybe your employee/ex-employee.</p>";
$htmlContent .= "<p>Uh-oh!</p>";
$htmlContent .= "<p>You haven't claimed your business on Trusted Business Reviews? No problem!</p>";
$htmlContent .= "<p>You can claim this by following these simple & super easy steps:</p>";
$htmlContent .= "<ol>";
$htmlContent .= "<li>Register here</li>";
$htmlContent .= "<li>Open your Business Listing Page</li>";
$htmlContent .= "<li>Click on 'Claim This Business'</li>";
$htmlContent .= "<li>Enter your domain email address</li>";
$htmlContent .= "<li>Enter Verification Code</li>";
$htmlContent .= "<li>You're Done</li>";
$htmlContent .= "</ol>";
$htmlContent .= "<p>You can make the desired changes in the information (if needed) after 'claim this business' process.</p>";
$htmlContent .= "<p>Later, You can approve the image just by following these simple steps:</p>";
$htmlContent .= "<ol>";
$htmlContent .= "<li>View Business Center</li>";
$htmlContent .= "<li>Click on Business Name</li>";
$htmlContent .= "<li>Select 'Image' option from sidebar</li>";
$htmlContent .= "<li>Approve the 'Image' & you're done</li>";
$htmlContent .= "</ol>";
$htmlContent .= "<p>If you need any help or have any suggestions to make the User Experience better. Please feel free to contact Trusted Business Reviews team.</p>";
$htmlContent .= "<p>Thanks</p>";
}
$htmlContent .= file_get_contents ("email_template_footer.php");
$to = $abcd['b_email'];
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'localhost';
$mail->SMTPAuth = false;
$mail->SMTPSecure = 'tls';
$mail->Port = 25;
$mail->setFrom('abc@mail.com', 'ABC');
$mail->addAddress($to);
$mail->isHTML(true);
$mail->Subject = 'New Image Uploaded';
$mail->Body = $htmlContent;
$mail->send();
$mail->clearAddresses();
}
回答1:
Insufficient points to comment so done as a possible answer:
I had a spate of mystery "parse errors" when my code (like yours) was fine.
In my case it was caused by spurious hidden characters somehow inserted by my PC (OS/browser?) during the copy and paste of example code from web pages.
e.g. else {
If the "space" between "else" and "{" is not actually a "space" then it may cause the subsequent {
to be ignored. Result: early termination of the else statement
i.e. else $htmlContent .= "<p>Hey,</p>";
the remainder of your conacatenations will be treated as statements outside the else block, and the closing "}" as invalid.
Try deleting your else clause and retype it manually.
If that does not work open up your code in an editor set to show hidden characters. In HTML kit (I think) view->editor->hidden characters will display such characters as solid black as opposed to solid white of space.
来源:https://stackoverflow.com/questions/46600453/parse-error-unexpected-in-if-else-block