Jump to content

php 5.x fatal error with variable issue, help needed.


APuppyDog

Recommended Posts

Hello,

 

i have php 5 installed locally, and php 4 on the server where i host a site. On the server (with php 4) the code below works, but when i try the code locally on php 5, i get the following error "Fatal error: Only variables can be passed by reference in C:\Abyss Web Server\htdocs\query.php on line 304"

 

if i take the code below out of the file query.php, everything works fine.. any idea how i can make this code compatible with both php4 and php5?

 

Any help is appreciated, thanks in advance!

 

		//***********************CODE FOR PICTURE UPLOAD************************************
	$mypath=realpath("listmycar.php");
	$mypath=str_replace("listmycar.php","",$mypath);
	$mypath=str_replace("\\","/",$mypath);
	$mypath=str_replace("admin","files",$mypath);
	$upload_folder=$mypath."Auction_pics/";

	for ($i = 1; $i < 11; $i++) {
		if (pdbfx("addfileX".$i)!='' && pdbfx("DELETEFILE".$i)!='1')
				$fileNameX[$i]=pdbfx("addfileX".$i);

			if (is_uploaded_file($_FILES['addfile'.$i]['tmp_name'])) 
			{ 
				//Get the Filename and the File Type 
				$fileName = $_FILES['addfile'.$i]['name']; 
				$fileType = $_FILES['addfile'.$i]['type']; 
				$fileName=strtolower($fileName);
				 if (!str_contains(str_replace(".jpeg","",str_replace(".jpg","",str_replace(".gif","",str_replace(".png","",$fileName))),".")))
				{
						if (str_contains($fileName,".jpg") || str_contains($fileName,".gif") || str_contains($fileName,".png")) 
							{
								$fileName=str_replace(".","@",strtolower($fileName));
								$fileext=split("@",$fileName);
								$fileext=$fileext[1];
								$fileName="AUCTION-".$auction_id."-".genpasswordalpha(2)."-".genpasswordnum(16).".".$fileext;
								$fileNameX[$i]=$fileName;
								move_uploaded_file($_FILES['addfile'.$i]['tmp_name'],$upload_folder.''.$fileName);

							if ($_FILES['addfile'.$i]['size'] > 250000){
									$size = GetImageSize($upload_folder.''.$fileName); 
									$width = $size[0] ;
									if ($width>470)
										$width=470;
										createmagic($fileName,$width);
								}
								if ($_FILES['addfile'.$i]['size'] > 40000000){
									$size = GetImageSize($upload_folder.''.$fileName); 
									$width = $size[0] ;
									$height = $size[1] ; 
									$newwidth=($width-($width/30));
									$newheight=($height-($height/30));
									createthumb('Auction_pics/'.$fileName,'Auction_pics/'.$fileName,$newwidth,$newheight);
								}	//createthumb('Auction_pics/'.$fileName,'Auction_pics_T/'.$fileName,80,60);
								//createthumb('Auction_pics/'.$fileName,'Auction_pics_B/'.$fileName,200,150);

								//createthumb('Auction_pics/'.$fileName,'Auction_pics_B/'.$fileName,470,353);

								//if($i==1) {												//createthumb('Auction_pics/'.$fileName,'Auction_pics_M/'.$fileName,200,150);
								//}


							}
					 }
			}


	} //***************END OF FOR LOOP FOR 10 PICTURES**********************************

Link to comment
Share on other sites

if it's 5.2.4  this might apply

Some users will notice that PHP applications malfunction when they upgrade to PHP 5.2.4 (included in Ubuntu 8.04 LTS) because realpath returns true for files that don't exist.

 

This is due to the inclusion of the Hardened-PHP Project's Suhosin Patch in many distributions by default. This patch replaces PHPs realpath function with the BSD implementation, which ignores the last path component.

 

The workaround is to use the file_exists function to verify that the file exists before using realpath to get its real path string.

Link to comment
Share on other sites

so my first line of code should be replaced by the following?

 

$Disfilename = realpath("listmycar.php");

if (file_exists($Disfilename)) {
    $mypath = $Disfilename;
}

 

sorry, i'm still learning php, i took over the code from someone else, so guidance is much appreciated!

Link to comment
Share on other sites

hi, i tried the above code, but it didn't seem to make a difference, i still get the same error.

 

Line 288 - //***********************CODE FOR PICTURE UPLOAD************************************

Line 304 - if (!str_contains(str_replace(".jpeg","",str_replace(".jpg","",str_replace(".gif","",str_replace(".png","",$fileName))),".")))

Link to comment
Share on other sites

also your code looks very out dated.

 

<?php

$fileName=".jpg";

   if (strstr($fileName,".jpg") || strstr($fileName,".gif") || strstr($fileName,".png"))
                        {
                        	
                 echo "correct";       	
                        	
                        }else{
                        	
                        	echo"not correct";
                        }
                
                         ?>

 

 

why you got this code here if your going to set it to nothink.

<?php 
if (!str_contains(str_replace(".jpeg","",str_replace(".jpg","",str_replace(".gif","",str_replace(".png","",$fileName))),".")))
               {
?>

 

Link to comment
Share on other sites

hey guys, thanks for your help.. its not code that i wrote, it was written by someone else and i'm trying to get it compatible with php5 so taking it as i go along.

 

taquito, are you saying the code you provided will not work at all? I'm not sure what you mean...

 

redarrow, thanks for pointing out the outdated code, but again i'm trying to get this resolved for php5, so i guess there are some codes i can write better, but i still need it to be backwards compatible with php4, as the server is still on php4.

Link to comment
Share on other sites

Dont mean to be rude, but we are entering php6, no server should be using php4, there no way you as a programmer can move forward using a host at php 4 level.

 

sorry it so true.

 

if it was in php5 format then it probably work with php4 as well.

 

a new host sounds good.

 

it not good code practice to continue programming in php4 code.

 

it nic to no but ot good programming seance to go backwards.

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.