PHP: syntax error, unexpected T_STRING
php, syntax-error
Solution
You have multiple spaces at the start and the end of your HEREDOC syntax variables; this leads to problems. Remove the spaces after
<<<__HTML_END
and after
__HTML_END;
and your code should be working.
See also this thread where I found the answer: http://board.phpbuilder.com/board/showthread.php?t=10333424
Problem
I am getting a syntax error for this PHP code ``` syntax error, unexpected T_STRING ``` It says line 2, which is the include line: ``` <?php include 'config.inc.php'; // initialization $photo_upload_fields = ''; $counter = 1; // If we want more fields, then use, preupload.php?number_of_fields=20 $number_of_fields = (isset($_GET['number_of_fields'])) ? (int)($_GET['number_of_fields']) : 5; // Firstly Lets build the Category List $result = mysql_query('SELECT category_id,category_name FROM gallery_category'); while($row = mysql_fetch_array($result)) { $photo_category_list .= <<<__HTML_END <option value="$row[0]">$row[1]</option>\n __HTML_END; } mysql_free_result( $result ); // Lets build the Image Uploading fields while($counter <= $number_of_fields) { $photo_upload_fields .= <<<__HTML_END <tr><td> Photo {$counter}: <input name="photo_filename[]" type="file" /> </td></tr> <tr><td> Caption: <textarea name="photo_caption[]" cols="30" rows="1"></textarea> </td></tr> __HTML_END; $counter++; } // Final Output echo <<<__HTML_END <html> <head> <title>Lets upload Photos</title> </head> <body> <form enctype="multipart/form-data" action="upload.php" method="post" name="upload_form"> <table width="90%" border="0" align="center" style="width: 90%;"> <tr><td> Select Category <select name="category"> $photo_category_list </select> </td></tr> <! - Insert the image fields here --> $photo_upload_fields <tr><td> <input type="submit" name="submit" value="Add Photos" /> </td></tr> </table> </form> </body> </html> __HTML_END; ?> ``` My include file looks like this: ``` <?php $mysql_link = mysql_connect("localhost","user","password"); mysql_select_db("db_name") or die("Could not select database"); $images_dir = "photos"; ?> ``` Solution: I had invisible unicode characters hidden in the code which caused the PHP parser to complain of the above syntax error.