Jump to content

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING


mark103

Recommended Posts

Hello guys,

 

I have a problem with the php, I have got an parse error, the error is: Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/myuser/public_html/mysite.com/email.php on line 69

 

<?php
session_start();
    define('DB_HOST', 'localhost');
    define('DB_USER', 'user');
    define('DB_PASSWORD', 'pass');
    define('DB_DATABASE', 'mydbname');
       
$errmsg_arr = array();
    $errflag = false;

    $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
    if(!$link) {

die('Failed to connect to server: ' . mysql_error());
    }

    $db = mysql_select_db(DB_DATABASE);
    if(!$db) {

die("Unable to select database");
    }

   function clean($var){

return mysql_real_escape_string(strip_tags($var));
    }
    $name = clean($_GET['name']);
    $email = clean($_GET['email']);
    $comments = clean($_GET['comments']);
    $rate = clean($_GET['rate']);
    if($name == '') {
  $errmsg_arr[] = 'name or member ID missing';
  $errflag = true;
    }
   else {
    }

    if($errflag) {
  $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
  echo implode('<br />',$errmsg_arr);
   }
   else {
$insert = array();
if(isset($_GET['name'])) {
    $insert[] = 'member_or_from = \'' . clean($_GET['name']) .'\'';
   // echo "tested";    
}
if(isset($_GET['email'])) {
    $insert[] = 'email_address = \'' . clean($_GET['email']) . '\'';
}
if(isset($_GET['comments'])) {
    $insert[] = 'comments = \'' . clean($_GET['comments']) . '\'';
}
if(isset($_GET['rate'])) {
    $insert[] = 'rate = \'' . clean($_GET['rate']) . '\'';
}
if (count($insert)>0) {
   $names = implode(',',$insert);

if(isset($name)) {
   $to = "myemail@myemail.com";
   $subject = $type';
   $message = '$comments', '$rate';
   $headers = 'From: $name '@myemail.com''
   mail($to, $subject, $message, $headers);
   }
   else {
   $to = "myemail@myemail.com";
   $subject = $type';
   $message = '$comments', '$rate';
   $headers = 'From: $email'
   mail($to, $subject, $message, $headers);

if (!mysql_query($sql,$link))
  {
  die('Error: ' . mysql_error());
  }
echo "Thank you for sent us the feedback";
  }
}
}
?>

 

 

I don't know where it went wrong in line 69.

 

Please could any of you help me to correct the problem I am getting??

 

Any advise would be much appreciate.

Link to comment
Share on other sites

In this chunk of code, you have 3 syntax errors, which I have indicated with comments in your script:

<?php
	if(isset($name)) {
		$to = "myemail@myemail.com";
		$subject = $type';    // <------ extra single quote -- remove it
		$message = '$comments', '$rate';
		$headers = 'From: $name '@myemail.com''
		mail($to, $subject, $message, $headers);
		}
		else {
		$to = "myemail@myemail.com";
		$subject = $type';   // <------ extra single quote -- remove it
		$message = '$comments', '$rate';
		$headers = 'From: $email'   // <----------- no terminating semi-colon
		mail($to, $subject, $message, $headers);

		if (!mysql_query($sql,$link))
		{
			die('Error: ' . mysql_error());
		}
		echo "Thank you for sent us the feedback";
	}
?>

 

Ken

Link to comment
Share on other sites

Thanks ken, I have fixed all of the problems which I have removed the extra single quote in some lines.

 

However, could you please help me with this:

 

if(isset($name)) {
   $to = "myemail@myemail.com";
   $subject = $type;
   $message = $comments & $rate;
   $headers = "tester@myemail.com";
   mail($to, $subject, $message, $headers);
echo "Thank you for sent us your feedback";
   }
   else {
if(isset($email)) {
   $to = "myemail@email.com";
   $subject = $type;
   $message = $comments && $rate;
   $headers = $email;
   mail($to, $subject, $message, $headers);
  }

 

 

I have problem with some of the methods included the $headers and $message. How can I get the headers to included with the email where it have came from, e.g: tester@myemail.com. I have only get myname@infinity.nameserver.com. how can i included something are like "tester@myemail.com"  and how can I included the $comments and $rate into the email body?

Link to comment
Share on other sites

The $headers variable contains header lines for smtp email, so to get an email message to be "from" an email address, you have to include the keyword "From:"

 

So, use something like:

 

<?php
if(isset($name)) {
   $to = "myemail@myemail.com";
   $subject = $type;
   $message = $comments & $rate;
   $headers = "From: tester@myemail.com";
   mail($to, $subject, $message, $headers);
echo "Thank you for sent us your feedback";
   }
   else {
if(isset($email)) {
   $to = "myemail@email.com";
   $subject = $type;
   $message = $comments && $rate;
   $headers = 'From: ' . $email;
   mail($to, $subject, $message, $headers);
  }
?>

 

BTW, what are you trying to do with these lines:

<?php
$message = $comments & $rate;
?>

<?php
$message = $comments && $rate;
?>

 

Ken

Link to comment
Share on other sites

Thanks Ken, so three things that I need to make some changes on here:

 

$headers = "From: tester@myemail.com";

 

how do I extract the value from the $name method to input them into the $headers?

 

Something is like this:

 

$headers = "From: ($_GET['name']) & ""@myemail.com"";

 

As for this line, I am trying to extract the values from $rate and $comments into $message method. How I could do that??

 

$message = $comments && $rate;

 

 

As well, how can I modify the mailed-by header?

 

I want to change the mailed-by header from 'myservername.com' to 'myownservername.com'

Link to comment
Share on other sites

Why are you using the "&" for string concatenation? The "." is the concatenation operator.

 

<?php
$headers = "From: {$_GET['name']}@myemail.com";
?>

This assumes that $_GET['name'] holds the first part of an email address

 

<?php
$message = $comments . ' ' . $rate;
?>

or

<?php
$message = "$comments $rate";
?>

 

I suggest you read up on the PHP syntax and operators either in the PHP Manual or at W3schools.com

 

Ken

Link to comment
Share on other sites

Thanks Ken, and the last thing I need is how can I modify the mailed-by header?

 

I get something is like: myservername.com

 

I want to change the mailed-by header from 'myservername.com' to 'myownservername.com'

 

How I can could modify for mailed-by header?

Link to comment
Share on other sites

Not that one I mean, I said that how I can change the Mailed-by hostname to my own hostname? Don't you know what mailed-by header suppose to mean?

 

if you are not sure, check it here:

 

http://bbpress.org/forums/topic/php-mail...e-hostname

 

And this:

 

http://discussion.dreamhost.com/thread-100033.html

 

If you get this, then do you know how I can change the hostname to my own mailed-by hostname?

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.