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

Link to comment
Share on other sites

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
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

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.   Restore formatting

  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.

×
×
  • 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.