Jump to content
RSA

error in w3shools php lessons( in_array)

Recommended Posts

what error is it showing?

Share this post


Link to post
Share on other sites

are you sure $extension and $allowedExts are what you expect them to be? please provide the code, and debugging you attempted, along with the actual error you are getting.

Share this post


Link to post
Share on other sites

The error Parse error: syntax error, unexpected T_BOOLEAN_AND in C:\AppServ\www\kids\upload_file.php on line 20

Share this post


Link to post
Share on other sites

Code<?php$allowedExts = array("jpg", "jpeg", "gif", "png");$extension = end(explode(".", $_FILES["file"]["name"]));if ((($_FILES["file"]["type"] == "image/gif")|| ($_FILES["file"]["type"] == "image/jpeg")|| ($_FILES["file"]["type"] == "image/pjpeg"))&& ($_FILES["file"]["size"] < 20000))&& in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Stored in: " . $_FILES["file"]["tmp_name"]; } }else { echo "Invalid file"; }?>

Share this post


Link to post
Share on other sites

The error is in these lines: if ((($_FILES["file"]["type"] == "image/gif")|| ($_FILES["file"]["type"] == "image/jpeg")|| ($_FILES["file"]["type"] == "image/pjpeg"))&& ($_FILES["file"]["size"] < 20000))&& in_array($extension, $allowedExts)) The extra paren at the end of the fourth line closes the if statement, so the next line is not seen as part of the if statement. The if statement has one set of parentheses surrounding all of the conditions, and parens can be used to group conditions. It would be easier to read like this:

if (  (    $_FILES["file"]["type"] == "image/gif"   || $_FILES["file"]["type"] == "image/jpeg"   || $_FILES["file"]["type"] == "image/pjpeg"  )  && $_FILES["file"]["size"] < 20000  && in_array($extension, $allowedExts))

I removed some of the parens, you don't need them around a single condition.

  • Like 1

Share this post


Link to post
Share on other sites

Thanks all and thanks justsomeguy It works now :) I just copied the code from the website and u see the extra parentheses I'm disappointed now how can I follow these tutorials now :( ------------------- The result is Strict Standards: Only variables should be passed by reference in C:\AppServ\www\kids\upload_file.php on line 13 Upload: goog.jpg Type: image/jpeg Size: 12.015625 Kb Stored in: C:\WINDOWS\Temp\php82.tmp Warning: move_uploaded_file(upload/goog.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\AppServ\www\kids\upload_file.php on line 41 Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\WINDOWS\Temp\php82.tmp' to 'upload/goog.jpg' in C:\AppServ\www\kids\upload_file.php on line 41 Stored in: upload/goog.jpg

Share this post


Link to post
Share on other sites

Some of the tutorials may contain errors, but we'll be here to help you out. The error for move_uploaded_file may mean that the upload directory that you're trying to move the file to doesn't exist. It won't create a directory that doesn't exist automatically. The warning about strict standards is because of this line: $extension = end(explode(".", $_FILES["file"]["name"])); This version will just hide that error message: $extension = @end(explode(".", $_FILES["file"]["name"])); and this will fix it: $chunks = explode(".", $_FILES["file"]["name"]);$extension = end($chunks); The error is because the end function requires an actual variable, not the return value from another function.

  • Like 1

Share this post


Link to post
Share on other sites

Now no errors thanks again u r marvelous :)The result isUpload: goog.jpgType: image/jpegSize: 12.015625 KbStored in: C:\WINDOWS\Temp\php8D.tmpStored in: upload/goog.jpg

Share this post


Link to post
Share on other sites

Just to let everyone know, I used the "Report error" link at the bottom of the page, linking to this page for the fix.If you encounter an error that you know how to fix, you can use that to notify the W3Schools staff about it. If you don't know how to fix it, we can do what we just did for this error.

Share this post


Link to post
Share on other sites

am getting error in this code plz help me error : Parse error: parse error in C:\wamp\www\upload\upload_file.php on line 45 code: <?php$allowedExts = array("jpg", "jpeg", "gif", "png");$chunks = explode(".", $_FILES["file"]["name"]);$extension = end($chunks);if (($_FILES["file"]["type"] == "image/gif"|| $_FILES["file"]["type"] == "image/jpeg"|| $_FILES["file"]["type"] == "image/pjpeg")&& $_FILES["file"]["size"] < 20000&& in_array($extension, $allowedExts))if ($_FILES["file"]["error"] > 0){echo "Return Code: " . $_FILES["file"]["error"] . "<br />";}else{echo "Upload: " . $_FILES["file"]["name"] . "<br />";echo "Type: " . $_FILES["file"]["type"] . "<br />";echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";}if (file_exists("upload/" . $_FILES["file"]["name"])){echo $_FILES["file"]["name"] . " already exists. ";}else{move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]);echo "Stored in: " . "upload/" . $_FILES["file"]["name"];}}}else{echo "Invalid file";}?>

Share this post


Link to post
Share on other sites

can you put your code in code tags and indent properly please? indicating which line in your code is line 45 would be appreciated as well.

Share this post


Link to post
Share on other sites

Share this post


Link to post
Share on other sites

this is the code____________<?php$allowedExts = array("jpg", "jpeg", "gif", "png");$chunks = explode(".", $_FILES["file"]["name"]);$extension = end($chunks);if (($_FILES["file"]["type"] == "image/gif"|| $_FILES["file"]["type"] == "image/jpeg"|| $_FILES["file"]["type"] == "image/pjpeg")&& $_FILES["file"]["size"] < 20000&& in_array($extension, $allowedExts))if ($_FILES["file"]["error"] > 0)(echo "Return Code: " . $_FILES["file"]["error"] . "<br />";)else(echo "Upload: " . $_FILES["file"]["name"] . "<br />";echo "Type: " . $_FILES["file"]["type"] . "<br />";echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";)if (file_exists("upload/" . $_FILES["file"]["name"]))(echo $_FILES["file"]["name"] . " already exists. ";)else(move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]);echo "Stored in: " . "upload/" . $_FILES["file"]["name"];)))else(echo "Invalid file";)?>

Share this post


Link to post
Share on other sites

How many times do we have to tell you? You're using "(" for the if/else bodies, when you should instead be using "{", and that is causing the error.Try this:

<?php$allowedExts = array("jpg", "jpeg", "gif", "png");$chunks = explode(".", $_FILES["file"]["name"]);$extension = end($chunks);if (        (        $_FILES["file"]["type"] == "image/gif"        || $_FILES["file"]["type"] == "image/jpeg"        || $_FILES["file"]["type"] == "image/pjpeg"        )        && $_FILES["file"]["size"] < 20000        && in_array($extension, $allowedExts)) {    if ($_FILES["file"]["error"] > 0) {        echo "Return Code: " . $_FILES["file"]["error"] . "<br />";    } else {        echo "Upload: " . $_FILES["file"]["name"] . "<br />";        echo "Type: " . $_FILES["file"]["type"] . "<br />";        echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";        echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";    }    if (file_exists("upload/" . $_FILES["file"]["name"])) {        echo $_FILES["file"]["name"] . " already exists. ";    } else {        move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);        echo "Stored in: " . "upload/" . $_FILES["file"]["name"];    }} else {    echo "Invalid file";}?>

Look closely at the stuff before and after "else", and see what you're using instead.

Share this post


Link to post
Share on other sites

oh now i got this ...but its still not giving the resultits generation this error___________________________________Upload: Chrysanthemum1.jpgType: image/jpegSize: 12.080078125 KbTemp file: C:\wamp\tmp\php5CAC.tmpWarning: move_uploaded_file(upload/Chrysanthemum1.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\wamp\www\forum\upload_file.php on line 36Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\wamp\tmp\php5CAC.tmp' to 'upload/Chrysanthemum1.jpg' in C:\wamp\www\forum\upload_file.php on line 36Stored in: upload/Chrysanthemum1.jpg

Share this post


Link to post
Share on other sites

oh thanks for help now its uploading the file to the server but if its not uploading a zip file how can i make the changes in the code so that i can upload a zip or rar file to server i have tried some changes but its not working. thanks

Share this post


Link to post
Share on other sites

This is the part that checks for file types and extensions:

$allowedExts = array("jpg", "jpeg", "gif", "png");$chunks = explode(".", $_FILES["file"]["name"]);$extension = end($chunks);if (($_FILES["file"]["type"] == "image/gif"|| $_FILES["file"]["type"] == "image/jpeg"|| $_FILES["file"]["type"] == "image/pjpeg")&& $_FILES["file"]["size"] < 20000&& in_array($extension, $allowedExts)) {

Personally, I would remove the mime type checks and only check the extension.

Share this post


Link to post
Share on other sites

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.   Paste as plain text instead

  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.

Loading...

×
×
  • Create New...