4

In my PHP code I have a variable $message which includes the message to be sent to me which has post variables in it. It is supposed to have a semicolon at the end...but it gives me an error saying it is unexpected but I know I need it because it wont work without it. I am at a complete loss. Hopefully someone here can help me.

Error Message:

PHP Parse error:  syntax error, unexpected ';'

PHP Code

if(!empty($_POST["name"]) && !empty($_POST["address"]) && !empty($_POST["city"]) && !empty($_POST["phone"]) && !empty($_POST["email"]) && !empty($_POST["type"]))
{
$message = "Name:" . $_POST["name"] . 
"Address:" . $_POST["address"] . 
"City:" . $_POST["city"] . 
"State:" . $_POST["state"] . 
"Zip Code:" . $_POST["zip"] . 
"Phone:" . $_POST["phone"] . 
"Email:" . $_POST["email"] . 
"Current Roof Type:" . $_POST["type"] . 
"Roof Age:" . $_POST["age"] .
"Is it leaking?:" . $_POST["leak"] . 
"Does it have hail damage?:" . $_POST["hail"] . 
"Insurance:" . $_POST["insurance"] . 
"Additional Comments:" . $_POST["extra"] . 
;                                          <---------------####Unexpected semicolon
$to = "emailasdasdasdasd";
$subject = "Free Estimate";
$from = "Guarantee Roofing";
$headers = "From:" . $_POST["name"];
mail($to,$subject,$message,$headers);
}
Peter O.
  • 32,158
  • 14
  • 82
  • 96
Spencer May
  • 4,266
  • 9
  • 28
  • 48

5 Answers5

5
"Additional Comments:" . $_POST["extra"] .  
                                         ^

Unnecessary concatenation operator -----------------here.

PHP is expecting a string/variable next to the concatenation operator and finds semicolon, which is reported unexpected.

Anirudh Ramanathan
  • 46,179
  • 22
  • 132
  • 191
2
"Additional Comments:" . $_POST["extra"] . 
                                         ^---- dangling concatenation
;  

you're telling PHP to concatenate a couple strings, and then terminate the statement without providing the second string.

Marc B
  • 356,200
  • 43
  • 426
  • 500
2

here is the problem

 "Additional Comments:" . $_POST["extra"] . 
 ;

should be

  "Additional Comments:" . $_POST["extra"]   ;
NullPoiиteя
  • 56,591
  • 22
  • 125
  • 143
1

There's an extra dot at the end of the string, if you delete the line breaks, you'd end up with

 ... . "Additional Comments:" . $_POST["extra"] . ;
Hamcha
  • 73
  • 1
  • 6
0

You don't need that extra . after the last line which is implying concatenation.

Remove the . after this line:

"Additional Comments:" . $_POST["extra"] .
sbeliv01
  • 11,550
  • 2
  • 23
  • 24