Unexpected T_VARIABLE on File Upload

Problems with the Windows version of XAMPP, questions, comments, and anything related.

Unexpected T_VARIABLE on File Upload

Postby rich_web_dev » 02. September 2016 20:54

I installed xampp version 5.6.24 on my Windows 10 box today. I run the xampp control panel as admin and click on the red x's.
I just want to use the php code to upload photos. I copy and paste the examples given on the w3schools website at http://www.w3schools.com/php/php_file_upload.asp
The html file is as follows:

<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>

Then the upload.php is as follows:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}
// Check if file already exists
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?>

These two files are saved in C:\xampp\htdocs. I have created a folder in the same place called 'uploads'. When I click the upload button I get the following error:
Parse error: syntax error, unexpected '$check' (T_VARIABLE) in C:\xampp\htdocs\upload.php on line 8

I use sublime text 3 and have also tried with note pad making sure I save files with UTF-8 encoding.
I've looked in the apache error logs and keep getting the following:
 
[Fri Sep 02 18:30:30.650622 2016] [ssl:warn] : www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Fri Sep 02 18:30:30.688379 2016] [mpm_winnt:notice]: Child: Starting 150 worker threads.
[Fri Sep 02 18:30:58.097000 2016] [:error] [pid:tid ] [client ::] PHP Parse error:  syntax error, unexpected '$check' (T_VARIABLE) in C:\\xampp\\htdocs\\upload.php on line 8, referer: http://localhost/PicTest.html

It's so annoying. It used to just work but now it just wont let me do what I want. It works with just basic examples from the w3schools PHP tutorial like:
 
<?php
$txt1 = "Learn PHP";
$txt2 = "W3Schools.com";
$x = 5;
$y = 4;

echo "<h2>$txt1</h2>";
echo "Study PHP at $txt2<br>";
echo $x + $y;
?>
rich_web_dev
 
Posts: 2
Joined: 02. September 2016 20:38
XAMPP version: 5.6.24
Operating System: Windows 10 pro Anniversary

Re: Unexpected T_VARIABLE on File Upload

Postby JJ_Tagy » 02. September 2016 23:37

Not sure if this is your problem, but you should use single quotes (') in POST[]
JJ_Tagy
 
Posts: 788
Joined: 30. January 2012 13:44
XAMPP version: 5.5.15
Operating System: Windows 10 Pro x64

Re: Unexpected T_VARIABLE on File Upload

Postby rich_web_dev » 03. September 2016 10:32

Thanks. It's ok. I've got it working now. It was because I was copy and pasting the code. When I write the code out by hand it all works.

It's all working now!
rich_web_dev
 
Posts: 2
Joined: 02. September 2016 20:38
XAMPP version: 5.6.24
Operating System: Windows 10 pro Anniversary

Re: Unexpected T_VARIABLE on File Upload

Postby Nobbie » 03. September 2016 12:25

JJ_Tagy wrote:Not sure if this is your problem, but you should use single quotes (') in POST[]


Its not necessary to use single quotes, double quotes will work also.

The problem is the missing space between if-Clause and the following bracket:

if(isset($_POST["submit"])) {


Insert a space to fix it (but there are more invalid if-clauses later on):

if (isset($_POST["submit"])) {
Nobbie
 
Posts: 13171
Joined: 09. March 2008 13:04

Re: Unexpected T_VARIABLE on File Upload

Postby Altrea » 03. September 2016 13:24

The white space between if and the bracket is optional (like most of the whitespaces in front of brackets).
The php manual describe the statement including the whitespace.
And many php coding guidelines (if not all) are using the whitespace too.

But the code will work without this whitespace without throwing any notices.
It is just not so good to read.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Unexpected T_VARIABLE on File Upload

Postby Nobbie » 03. September 2016 16:08

Obviously this is *NOT* the code which leads to the syntax error. I just copied & pasted it and it runs without severe error. The missing space was my only concern, but Altrea is right, thats only optional. In future it would be helpfull to show us the REAL code and not a modified pseudo code.
Nobbie
 
Posts: 13171
Joined: 09. March 2008 13:04


Return to XAMPP for Windows

Who is online

Users browsing this forum: No registered users and 132 guests