Hi, I'm using this Upload script and would simply like to re-direct the User, after he's Uploaded, to a different location. I don't know where/how to do it? Can you help me? Someone suggested: At the very bottom of this file, right after this line: return $message; Add this: header("Location: http://whereveryouwantthemtogo.com"); Which I did, but I wasn't redirected. Any thoughts/suggestions/assistance will be greatly appreciated. <? // Begin options $allow_file_deletion = true; // To allow visitors to delete files, leave this at true; otherwise, change it to false $file_extensions = array(".doc", ".rtf", ".htm", ".html", ".pdf", ".txt"); // Add or delete the file extensions you want to allow $file_extensions_list = "doc, rtf, htm, html, pdf, txt"; // Type the same as above, without the quotes separating them $max_length = 50; // The maximum character length for a file name $maximum_file_size = "2048000"; // In bytes $upload_log_file = "upload_log.txt"; // Change this to the log file you want to use // End options $folder_directory = "http://".$_SERVER["HTTP_HOST"].dirname($_SERVER["PHP_SELF"]); $message = ""; $set_chmod = 0; $site_uri = "http://".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"]; $upload_directory = "files/"; $upload_uri = $folder_directory."/files/"; if($allow_file_deletion == true) $status = "enabled"; else $status = "disabled"; if($_REQUEST["delete"] && $allow_file_deletion) { $resource = fopen($upload_log_file,"a"); fwrite($resource,date("F d, Y / h:i:sa")." - ".$_REQUEST["delete"]." deleted by ".$_SERVER["REMOTE_ADDR"]."\n"); fclose($resource); if(strpos($_REQUEST["delete"],"/.") > 0); elseif(strpos($_REQUEST["delete"],$upload_directory) === false); elseif(substr($_REQUEST["delete"],0,6) == $upload_directory) { unlink($_REQUEST["delete"]); $message = "File has been deleted."; header("Location: $site_uri?message=$message"); } } elseif($_FILES["userfile"]) { $resource = fopen($upload_log_file,"a"); fwrite($resource,date("F d, Y / h:i:sa")." - ".$_FILES["userfile"] ["name"]." ".$_FILES["userfile"]["type"]." (".$_FILES["userfile"]["size"]." bytes) uploaded by ".$_SERVER["REMOTE_ADDR"]."\n"); fclose($resource); $file_type = $_FILES["userfile"]["type"]; $file_name = $_FILES["userfile"]["name"]; $file_ext = strtolower(substr($file_name,strrpos($file_name,"."))); @chmod($upload_uri."".$file_name, 0755); if($_FILES["userfile"]["size"] > $maximum_file_size) { $message = "ERROR: File size cannot be over ".$maximum_file_size." bytes."; } elseif($file_name == "") $message = "ERROR: Please select a file to upload."; elseif(strlen($file_name > $max_length)) $message = "ERROR: The maximum length for a file name is ".$max_length." characters."; elseif(!preg_match("/^[A-Z0-9_.\- ]+$/i",$file_name)) $message = "ERROR: Your file name contains invalid characters."; elseif(!in_array($file_ext, $file_extensions)) $message = "ERROR: <ins>$file_ext</ins> is not an allowed file extension."; else $message = upload_file($upload_directory, $upload_uri); header("Location: $site_uri?message=$message"); } elseif(!$_FILES["userfile"]); else $message = "ERROR: Invalid file specified."; $open = opendir($upload_directory); $uploaded_files = ""; while($file = readdir($open)) { if(!is_dir($file) && !is_link($file)) { $uploaded_files .= " <tr> <td style=\" font-size:12px;color:#900;text-align: left; width: 70%\"> <a href=\"$upload_directory$file\" title=\"$file (".filesize($upload_directory."".$file)." bytes)\">".$file."</a> (".filesize($upload_directory."".$file)." bytes)</td>"; if($allow_file_deletion) $uploaded_files .= " <td style=\"background: #fff; font-size:12px;color:#6B6B6B; text-align: right; width: 30%\"><a href=\"?delete=$upload_directory".urlencode($file)."\" title=\"Delete File\">Delete File</a></td>"; else $uploaded_files .= " <td style=\"background: #fff; font-size:12px;color:#6B6B6B; text-align: right; width: 30%\"><del>Delete File</del></td>"; $uploaded_files .= " </tr> <tr> <td colspan=\"2\" style=\"background: #eee; font-size:12px;color:#6B6B6B; text-align: left; text-indent: 20px\"> Uploaded--" .date("F d, Y ", filemtime($upload_directory.$file))."</td>"; $uploaded_files .=" </tr> "; } } function upload_file($upload_directory, $upload_uri) {global $account; $file_name = $_FILES["userfile"]["name"]; $file_name = str_replace(" ","_",$file_name); $ext=pathinfo($file_name,PATHINFO_EXTENSION); $file_name = basename($file_name, '.' . $ext); $file_path = $upload_directory. $file_name.'~~'. $account->get_user_name().'.'.$ext; $temporary = $_FILES["userfile"]["tmp_name"]; $result = move_uploaded_file($temporary, $file_path); if(!chmod($file_path,0777)) $message = "ERROR: A folder to place the files was not found, or the files need to be CHMODed to 777."; else $message = ($result)?"File has been uploaded." : "An error has occurred."; return $message; header("Location: http://www.adifferentwebpage.com"); } ?> Code (markup):
you have return $message; header("Location: http://www.adifferentwebpage.com"); So your header function never runs as you return before it. You should move it before return or out of your function.
Thanks for your reply. I put the header function BEFORE the return message, it didn't re-direct. I removed the return message, added the header function, it didn't re-direct. I appreciate your suggestion, but no luck. Any other ideas would be appreciated.
i cant know the running order of the code without executing it. But i can suggest you to use die("something"); in several lines and see if the code executes until that line correctly. Because header should redirect if it has been executed. Also i put die(); after all redirection codes to guarantee that it wont execute below code. Hope those will work, see you...
thanks for your reply. I don't understand what you're suggesting I do with "die" Can you clarify/elaborate?
You can use html, javascript aswell for a redirect only reason a header will not work is if you have already outputted a response before it was requested. You can just echo out the html redirect which will work fine. <meta http-equiv='refresh' content='5; url=http://domain.com'> HTML: