mjahkoh Posted December 17, 2007 Share Posted December 17, 2007 i got an upload class which is givin me nightmares. when i pass the $temp_file_name and $file_name variables, the class gives an empty as their contents. How do i read them properly since they are not being "recieved". The class looks like <!--- start class section---> <?php class Upload_Files { var $temp_file_name; var $file_name; function validate_extension() { echo 'file name in class is '. $file_name.'<br>'; //this gives an empty //SECTION #1 $file_name = trim($this->file_name); <!--- end class section---> <!---Start the calling form ---> <?php if($_POST['Submit']){ include("class/upload.php"); $upload_class = new Upload_Files; $upload_class->temp_file_name = trim($_FILES['upload']['tmp_name']); echo ' file temp ' .trim($_FILES['upload']['tmp_name']) .'<br><br>' ; echo ' file name ' .trim($_FILES['upload']['name']) .'<br><br>' ; $upload_class->file_name = trim($_FILES['upload']['name']); $upload_class->upload_dir = "uploads/"; $upload_class->upload_log_dir = "uploads/upload_logs/"; $upload_class->max_file_size = 5242880; $upload_class->banned_array = array(""); $upload_class->ext_array = array(".zip",".rar",".ace",".tar",".jpg"); $valid_ext = $upload_class->validate_extension(); $valid_size = $upload_class->validate_size(); $valid_user = $upload_class->validate_user(); $max_size = $upload_class->get_max_size(); $file_size = $upload_class->get_file_size(); $file_exists = $upload_class->existing_file(); if (!$valid_ext) { $result = "The file extension is invalid, please try again!"; } elseif (!$valid_size) { $result = "The file size is invalid, please try again! The maximum file size is: $max_size and your file was: $file_size"; } elseif (!$valid_user) { $result = "You have been banned from uploading to this server."; } elseif ($file_exists) { $result = "This file already exists on the server, please try again."; } else { $upload_file = $upload_class->upload_file_with_validation(); if (!$upload_file) { $result = "Your file could not be uploaded!"; } else { $result = "Your file has been successfully uploaded to the server."; } } echo $result ; } ?> <!---end the calling form ---> Link to comment https://forums.phpfreaks.com/topic/82020-problem-passing-variables-to-a-class/ Share on other sites More sharing options...
Grego Posted December 17, 2007 Share Posted December 17, 2007 I assume you're aware that the following needs two }} closing tags? I figured you just hadn't copied them but if they aren't there, you should put them in... <?php class Upload_Files { var $temp_file_name; var $file_name; function validate_extension() { echo 'file name in class is '. $file_name.' '; //this gives an empty //SECTION #1 $file_name = trim($this->file_name); <!--- end class section---> Link to comment https://forums.phpfreaks.com/topic/82020-problem-passing-variables-to-a-class/#findComment-416778 Share on other sites More sharing options...
mjahkoh Posted December 17, 2007 Author Share Posted December 17, 2007 the class is fine, no syntax errors. i will paste it here in its entiry. //start class <?php class Upload_Files { var $temp_file_name; var $file_name; var $upload_dir; var $upload_log_dir; var $max_file_size; var $banned_array; var $ext_array; function validate_extension() { //SECTION #1 echo 'file name in class is '. $file_name.'<br>'; $file_name = trim($this->file_name); echo strlen($file_name); //toa $extension = strtolower(strrchr($file_name,".")); $ext_array = $this->ext_array; $ext_count = count($ext_array); //SECTION #2 if (!$file_name) { echo 'filename haiko sawa'; return false; } else { if (!$ext_array) { echo 'filename iko sawa'; return true; } else { foreach ($ext_array as $value) { $first_char = substr($value,0,1); if ($first_char <> ".") { $extensions[] = ".".strtolower($value); } else { $extensions[] = strtolower($value); } } //SECTION #3 foreach ($extensions as $value) { if ($value == $extension) { $valid_extension = "TRUE"; } } //SECTION #4 if ($valid_extension) { echo 'filename iko sawa'; return true; } else { echo 'filename haiko sawa'; return false; } } } } //end validate_extension function validate_size() { $temp_file_name = trim($this->temp_file_name); $max_file_size = trim($this->max_file_size); if (!$temp_file_name) { echo 'temp file iko sawa'; $size = filesize($temp_file_name); if ($size > $max_file_size) { return false; } else { return true; } } else { return false; } } //end validate_size function existing_file() { $file_name = trim($this->file_name); $upload_dir = $this->get_upload_directory(); if ($upload_dir == "ERROR") { return true; } else { $file = $upload_dir . $file_name; if (file_exists($file)) { return true; } else { return false; } } } //end existing_file function get_file_size() { //SECTION #1 $temp_file_name = trim($this->temp_file_name); $kb = 1024; $mb = 1024 * $kb; $gb = 1024 * $mb; $tb = 1024 * $gb; //SECTION #2 if ($temp_file_name) { $size = filesize($temp_file_name); if ($size < $kb) { $file_size = "$size Bytes"; } elseif ($size < $mb) { $final = round($size/$kb,2); $file_size = "$final KB"; } elseif ($size < $gb) { $final = round($size/$mb,2); $file_size = "$final MB"; } elseif($size < $tb) { $final = round($size/$gb,2); $file_size = "$final GB"; } else { $final = round($size/$tb,2); $file_size = "$final TB"; } } else { $file_size = "ERROR: NO FILE PASSED TO get_file_size()"; } return $file_size; } //end get_file_size function get_max_size() { $max_file_size = trim($this->max_file_size); $kb = 1024; $mb = 1024 * $kb; $gb = 1024 * $mb; $tb = 1024 * $gb; if ($max_file_size) { if ($max_file_size < $kb) { $max_file_size = "max_file_size Bytes"; } elseif ($max_file_size < $mb) { $final = round($max_file_size/$kb,2); $max_file_size = "$final KB"; } elseif ($max_file_size < $gb) { $final = round($max_file_size/$mb,2); $max_file_size = "$final MB"; } elseif($max_file_size < $tb) { $final = round($max_file_size/$gb,2); $max_file_size = "$final GB"; } else { $final = round($max_file_size/$tb,2); $max_file_size = "$final TB"; } } else { $max_file_size = "ERROR: NO SIZE PARAMETER PASSED TO get_max_size()"; } return $max_file_size; } //end get_max_size function validate_user() { //SECTION #1 $banned_array = $this->banned_array; $ip = trim($_SERVER['REMOTE_ADDR']); $cpu = gethostbyaddr($ip); $count = count($banned_array); //SECTION #2 if ($count < 1) { return true; } else { foreach($banned_array as $key => $value) { if ($value == $ip ."-". $cpu) { return false; } else { return true; } } } } //end validate_user function get_upload_directory() { //SECTION #1 $upload_dir = trim($this->upload_dir); //SECTION #2 if ($upload_dir) { $ud_len = strlen($upload_dir); $last_slash = substr($upload_dir,$ud_len-1,1); if ($last_slash <> "/") { $upload_dir = $upload_dir."/"; } else { $upload_dir = $upload_dir; } //SECTION #3 $handle = @opendir($upload_dir); if ($handle) { $upload_dir = $upload_dir; closedir($handle); } else { $upload_dir = "ERROR"; } } else { $upload_dir = "ERROR"; } return $upload_dir; } //end get_upload_directory function get_upload_log_directory() { $upload_log_dir = trim($this->upload_log_dir); if ($upload_log_dir) { $ud_len = strlen($upload_log_dir); $last_slash = substr($upload_log_dir,$ud_len-1,1); if ($last_slash <> "/") { $upload_log_dir = $upload_log_dir."/"; } else { $upload_log_dir = $upload_log_dir; } $handle = @opendir($upload_log_dir); if ($handle) { $upload_log_dir = $upload_log_dir; closedir($handle); } else { $upload_log_dir = "ERROR"; } } else { $upload_log_dir = "ERROR"; } return $upload_log_dir; } //end get_upload_log_directory function upload_file_no_validation() { //SECTION #1 $temp_file_name = trim($this->temp_file_name); $file_name = trim(strtolower($this->file_name)); $upload_dir = $this->get_upload_directory(); $upload_log_dir = $this->get_upload_log_directory(); $file_size = $this->get_file_size(); $ip = trim($_SERVER['REMOTE_ADDR']); $cpu = gethostbyaddr($ip); $m = date("m"); $d = date("d"); $y = date("Y"); $date = date("m/d/Y"); $time = date("h:i:s A"); //SECTION #2 if (($upload_dir == "ERROR") OR ($upload_log_dir == "ERROR")) { return false; } else { if (is_uploaded_file($temp_file_name)) { if (move_uploaded_file($temp_file_name,$upload_dir . $file_name)) { $log = $upload_log_dir.$y."_".$m."_".$d.".txt"; $fp = fopen($log,"a+"); fwrite($fp," $ip-$cpu | $file_name | $file_size | $date | $time"); fclose($fp); return true; } else { return false; } } else { return false; } } } //end upload_file_no_validation function upload_file_with_validation() { //SECTION #1 $temp_file_name = trim($this->temp_file_name); $file_name = trim(strtolower($this->file_name)); $upload_dir = $this->get_upload_directory(); $upload_log_dir = $this->get_upload_log_directory(); $file_size = $this->get_file_size(); $ip = trim($_SERVER['REMOTE_ADDR']); $cpu = gethostbyaddr($ip); $m = date("m"); $d = date("d"); $y = date("Y"); $date = date("m/d/Y"); $time = date("h:i:s A"); $existing_file = $this->existing_file(); //<-Add On $valid_user = $this->validate_user(); //<-Add On $valid_size = $this->validate_size(); //<-Add On $valid_ext = $this->validate_extension(); //<-Add On //SECTION #2 if (($upload_dir == "ERROR") OR ($upload_log_dir == "ERROR")) { return false; } elseif ((((!$valid_user) OR (!$valid_size) OR (!$valid_ext) OR ($existing_file)))) { return false; } else { if (is_uploaded_file($temp_file_name)) { if (move_uploaded_file($temp_file_name,$upload_dir . $file_name)) { $log = $upload_log_dir.$y."_".$m."_".$d.".txt"; $fp = fopen($log,"a+"); fwrite($fp," $ip-$cpu | $file_name | $file_size | $date | $time"); fclose($fp); return true; } else { return false; } } else { return false; } } } //end upload_file_with_validation } //end class ?> //end class this is how am calling it (ie the image form) //stART FORM <?php if($_POST['Submit']){ include("class/upload.php"); $upload_class = new Upload_Files; $upload_class->temp_file_name = trim($_FILES['upload']['tmp_name']); echo ' file temp ' .trim($_FILES['upload']['tmp_name']) .'<br><br>' ; echo ' file name ' .trim($_FILES['upload']['name']) .'<br><br>' ; $upload_class->file_name = trim($_FILES['upload']['name']); $upload_class->upload_dir = "uploads/"; $upload_class->upload_log_dir = "uploads/upload_logs/"; $upload_class->max_file_size = 5242880; $upload_class->banned_array = array(""); $upload_class->ext_array = array(".zip",".rar",".ace",".tar",".jpg"); $valid_ext = $upload_class->validate_extension(); $valid_size = $upload_class->validate_size(); $valid_user = $upload_class->validate_user(); $max_size = $upload_class->get_max_size(); $file_size = $upload_class->get_file_size(); $file_exists = $upload_class->existing_file(); if (!$valid_ext) { $result = "The file extension is invalid, please try again!"; } elseif (!$valid_size) { $result = "The file size is invalid, please try again! The maximum file size is: $max_size and your file was: $file_size"; } elseif (!$valid_user) { $result = "You have been banned from uploading to this server."; } elseif ($file_exists) { $result = "This file already exists on the server, please try again."; } else { $upload_file = $upload_class->upload_file_with_validation(); if (!$upload_file) { $result = "Your file could not be uploaded!"; } else { $result = "Your file has been successfully uploaded to the server."; } } echo $result ; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>uploading new</title> </head> <body> <form action="" method="post" enctype="multipart/form-data" name="form1" id="form1"> <input name="upload" type="file" id="upload" /> <input type="submit" name="Submit" value="Submit" /> </form> </body> </html> //END FORM Link to comment https://forums.phpfreaks.com/topic/82020-problem-passing-variables-to-a-class/#findComment-416785 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.