8
votes

I keep getting the following error:

Parse error: syntax error, unexpected T_SL in /home/a4999406/public_html/willingLog.html on line 70

on the following code (first line is line 70):

        echo <<<END 
<form action = "willingLog.html" method="post"><pre>
    First       <input type="text" name="first" />
    Last        <input type="text" name="last" />
    Email       <input type="text" name="email" />
    Username    <input type="text" name="user_name" />
                <input type="submit" value="AD RECORD" />
</pre></form>
END;

heredoc just doesn't seem to work. i've tried other examples.

following is by doctype heading. is there something wrong there?

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
2
Are there any funky invisible characters in there, or any syntax problems before that? - deceze♦
no invisible characters. no syntax issue above that I'm aware of. - DBWeinstein
T_SL stands for the << bitwise operator... weird. - deceze♦
Not too weird; one common reason for this error is a coder only uses two "<" instead of the requisite 3 for the HEREDOC delimiter. Hard to spot, too ;-) - Kevin_Kinsey

2 Answers

21
votes

Looking at the copy-paste, it looks like you have a space character after the word "END" on the first line:

'echo <<<END '

Try getting rid of the space character. Answer found by Googling. Source (link now dead): http://www.alexxoid.com/blog/dev/php-dev/php-parse-error-unexpected-t_sl.html

0
votes

Try:

echo <<<'END'
<form action = "willingLog.html" method="post"><pre>
    First       <input type="text" name="first" />
    Last        <input type="text" name="last" />
    Email       <input type="text" name="email" />
    Username    <input type="text" name="user_name" />
                <input type="submit" value="AD RECORD" />
</pre></form>
END;