Jump to content

Problem passing variables to a class


mjahkoh

Recommended Posts

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

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--->

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

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.