Avatar billede jps2mt Nybegynder
15. september 2005 - 21:26 Der er 7 kommentarer og
1 løsning

Problemer med PHP Upload

Hej,

Jeg er rendt ind i problemer med PHP Upload efter at mit site har skiftet server (samme udbyder)

Scriptet har før dette skift virket på 4 forskellige servere uden det mindste problem, men nu virker det bare ikke mere og hverken hostmaster eller jeg kan finde en logisk forklaring på det...

Kan nogle herinde se på denne http://www.tog-sim.dk/phpinfo.php en eller anden grund til at flg. simple script ikke virker:

<?
set_time_limit (0);

include("./modules/$ModName/common.php");
include("./modules/$ModName/config.php");
$sitename = pnConfigGetVar('sitename');
$pnuid = pnUserGetVar('uid');
$pnuname = pnUserGetVar('uname');
$pnemail = pnUserGetVar('email');

list($dbconn) = pnDBGetConn();
$pntable = pnDBGetTables();

include("modules/$ModName/pntables.php");

$sql = mysql_query("SELECT * FROM $prefix"._TSDL_categories." WHERE pn_cid = '$cid'") or die(mysql_error());
$row = mysql_fetch_array($sql) or die(mysql_error());

$cattitle = $row[pn_title];

page_headers('startupload',$cid,$cattitle,$cid);
if (is_uploaded_file($_FILES['TSDLfile']['tmp_name']) && !is_file($uploadDir."/".urlencode($TSDLfile_name))) {
  move_uploaded_file($TSDLfile, $uploadDir."/".urlencode($TSDLfile_name));
} else if (is_file($uploadDir."/".urlencode($TSDLfile_name))) {
  die("Filen $TSDLfile_name findes allerede");
} else {
  $err = "<br>File not uploaded!";
}
if (is_uploaded_file($TSDLsc)) {

  if ($TSDLsc_type == "image/jpeg" || strtolower(substr($TSDLsc_name,-3)) == "jpg") {
  $_ext = "jpg";
  } else if ($TSDLsc_type == "image/gif" || strtolower(substr($TSDLsc_name,-3)) == "gif") {
  $_ext = "gif";
  } else if ($TSDLsc_type == "image/png" || strtolower(substr($TSDLsc_name,-3)) == "png") {
  $_ext = "png";
  }

  if ($_ext != "") {
  $_picFile = substr(urlencode($TSDLfile_name),0,-3).$_ext;
  move_uploaded_file($TSDLsc, $scDir."/".$_picFile);
  } else {
  $err .= "<br>Pic not uploaded!";
  }
}
$TSDLdescription = str_replace("\n","<br>",$TSDLdescription);
mysql_query("INSERT INTO $prefix"._TSDL_downloads." (pn_cid,pn_title,pn_url,pn_description,pn_date,pn_name,pn_email,pn_submitter,pn_filesize,pn_version,pn_picture,pn_ip,pn_type) VALUES('".$cid."','".$TSDLtitle."','".urlencode($TSDLfile_name)."','".$TSDLdescription."','".mktime(date("H"),date("i"),date("s"),date("m"),date("d"),date("Y"))."','".$TSDLauthorname."','".$TSDLauthoremail."','".$pnuname."','".$TSDLfile_size."','".$TSDLversion."','".$_picFile."','".$_SERVER["REMOTE_ADDR"]."','".$TSDLfile_type."')") or die(mysql_error());
echo _TSDL_FileUploaded.$err;
page_footers('startupload',$cid,$cattitle,$cid);
?>
Avatar billede jakobdo Ekspert
15. september 2005 - 21:39 #1
Prøv at lav noget debug igennem koden!
Prøv at skriv nogle filnavne ud.
Prøv at test om funktionerne går godt, her kan jeg flere steder se du bruger: move_uploaded_file() men du tester ikke om den returnere false.
Avatar billede erikjacobsen Ekspert
15. september 2005 - 21:47 #2
Enig med jakobdo. Men forklar også venligst hvad det betyder når du siger "men nu virker det bare ikke mere"
Avatar billede jps2mt Nybegynder
16. september 2005 - 15:27 #3
Har prøvet diverse tests ned igenne, og move_uploaded_file returnerer false, men ikke nogle fejl :(

Mht. hvad jeg mener med "men nu virker det bare ikke mere" så ... ja :D Det virker bare ikke mere...Det HAR virket, indtil den gamle server den lå på gik ned med diskcrash, og udbyderen derfor flyttede mit site til en anden server...
Avatar billede jakobdo Ekspert
16. september 2005 - 15:40 #4
Prøv at smid denne i toppen af koden, og test igen: error_reporting(E_ALL);
Avatar billede jps2mt Nybegynder
16. september 2005 - 15:52 #5
[16-Sep-2005 15:49:01] PHP Warning:  move_uploaded_file(): open_basedir restriction in effect. File(/var/www/tog-sim.dk/download/Ny+FS.rar) is not within the allowed path(s): (/var/www/tog-sim.dk/public_html:/var/www/phpmyadmin/:/var/www/tog-sim.dk/tmp:/var/www/tog-sim.dk/download) in /mnt/raid/www/www/tog-sim.dk/public_html/modules/TSDL/upload.php on line 24
[16-Sep-2005 15:49:01] PHP Warning:  move_uploaded_file(): open_basedir restriction in effect. File(/var/www/tog-sim.dk/public_html/modules/TSDL/shots/Ny+FS.jpg) is not within the allowed path(s): (/var/www/tog-sim.dk/public_html:/var/www/phpmyadmin/:/var/www/tog-sim.dk/tmp:/var/www/tog-sim.dk/download) in /mnt/raid/www/www/tog-sim.dk/public_html/modules/TSDL/upload.php on line 48

Aha, javel ja...Det er jeg så ikke enig med serveren i, jvf. http://www.tog-sim.dk/phpinfo.php som siger flg.:

open_basedir    /var/www/tog-sim.dk/public_html:/var/www/phpmyadmin/:/var/www/tog-sim.dk/tmp:/var/www/tog-sim.dk/download
Avatar billede jakobdo Ekspert
16. september 2005 - 16:02 #6
Nice, den siger: /var/www/tog-sim.dk/download/Ny+FS.rar is not within the allowed path(s): /var/www/tog-sim.dk/download
det giver jo ikke mening. (ikke for mig ihf.)
Avatar billede jps2mt Nybegynder
16. september 2005 - 16:42 #7
Jeg ser heller ingen logik i det :( Har lige skrevet til min hostmaster...
Avatar billede jps2mt Nybegynder
03. november 2005 - 22:18 #8
Det kostede en ny udbyder, da den daværende ikke kunne hjælpe med hvorfor den gjorde som den gjorde...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester