dominod Posted August 5, 2010 Share Posted August 5, 2010 Hi I am having troubles using a string in a cookie.. This doesnt work: setcookie("background", "$image_name", $expire, "/", ".gedoo.com"); Neither does this: setcookie("background", "" . $image_name . "", $expire, "/", ".gedoo.com"); If I write something before $image_name like: setcookie("background", "hello" . $image_name . "", $expire, "/", ".gedoo.com"); It will save "hello" in the cookie.. So in other words, $image_name doesnt look like it is defined.. But the funny thing is that this works on the same page: echo "File Uploaded Successfully!<br><img src='images/$image_name'>"; Anyone have any idea on what I am doing wrong? Quote Link to comment Share on other sites More sharing options...
JasonLewis Posted August 5, 2010 Share Posted August 5, 2010 Only thing I can assume is that the variable isn't being set properly. I'd do it like, and it should be working: setcookie("cookie_name", $image_name, $expire, "/", ".gedoo.com"); Make sure that both $image_name and $expire are set prior to the setcookie function. Quote Link to comment Share on other sites More sharing options...
dominod Posted August 5, 2010 Author Share Posted August 5, 2010 Still nothing... Posting the code: <?php //define a maxim size for the uploaded images in Kb define ("MAX_SIZE","1000"); //This function reads the extension of the file. It is used to determine if the file is an image by checking the extension. function getExtension($str) { $i = strrpos($str,"."); if (!$i) { return ""; } $l = strlen($str) - $i; $ext = substr($str,$i+1,$l); return $ext; } //This variable is used as a flag. The value is initialized with 0 (meaning no error found) //and it will be changed to 1 if an errro occures. //If the error occures the file will not be uploaded. $errors=0; //checks if the form has been submitted if(isset($_POST['Submit'])) { //reads the name of the file the user submitted for uploading $image=$_FILES['image']['name']; //if it is not empty if ($image) { //get the original name of the file from the clients machine $filename = stripslashes($_FILES['image']['name']); //get the extension of the file in a lower case format $extension = getExtension($filename); $extension = strtolower($extension); //if it is not a known extension, we will suppose it is an error and will not upload the file, //otherwise we will do more tests if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) { //print error message echo '<h1>Unknown extension!</h1>'; $errors=1; } else { //get the size of the image in bytes //$_FILES['image']['tmp_name'] is the temporary filename of the file //in which the uploaded file was stored on the server $size=filesize($_FILES['image']['tmp_name']); //compare the size with the maxim size we defined and print error if bigger if ($size > MAX_SIZE*1024) { echo '<h1>You have exceeded the size limit!</h1>'; $errors=1; } //we will give an unique name, for example the time in unix time format $image_name=time().'.'.$extension; //the new name will be containing the full path where will be stored (images folder) $newname="images/".$image_name; //we verify if the image has been uploaded, and print error instead $copied = copy($_FILES['image']['tmp_name'], $newname); if (!$copied) { echo 'Copy unsuccessfull! Please try again.'; $errors=1; }}}} //If no errors registred, print the success message if(isset($_POST['Submit']) && !$errors) { echo "File Uploaded Successfully!<br><img src='images/$image_name'>"; } $expire=time()+60*60*24*3000; setcookie("cookie_name", $image_name, $expire, "/", ".gedoo.com"); include("../cookie.php"); ?> <html> Quote Link to comment Share on other sites More sharing options...
JasonLewis Posted August 5, 2010 Share Posted August 5, 2010 Your sending output then calling setcookie. Set cookie must be called before any output. Similar to any header calls. Quote Link to comment Share on other sites More sharing options...
dominod Posted August 5, 2010 Author Share Posted August 5, 2010 Thanks alot! That was it Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.