Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak przerobić skrypt z PHP4 na PHP5
Forum PHP.pl > Forum > PHP
slaweks
Witam wszystkich

mam taki problem że gdy dodaje plik do serwisu który jest na serwerze php5 wywala mi komunikat:

Warning: copy(/pliki_dostawcy/readme.txt) [function.copy]: failed to open stream: No such file or directory in /public_html/admin/dostawcy.php on line 519

serwis stał wcześniej na serwerze php 4.7 i działał bez problemu

czy ktoś wie jak przerobić kod tak aby dodawanie plików działało:

CODE
$sciezka=dirname($PATH_TRANSLATED);
if(!empty($plik_name))
{
if (file_exists($sciezka."/pliki_dostawcy/".$plik_name))
{
unlink($sciezka."/pliki_dostawcy/".$plik_name);
$plik_name=strtr($plik_name," ","_");
$nowyplik=$sciezka."/pliki_dostawcy/".$plik_name;
copy($plik,$nowyplik);
?>Plik dodano }
else
{
$plik_name=strtr($plik_name," ","_");
$nowyplik="/pliki_dostawcy/".$plik_name;
copy($plik,$nowyplik);
?>
Plik dodano.
//$data=date('d-m-Y G:i:s', mktime());
$query="INSERT INTO sbs_dostawcyatesty (nazwa, id_dostawcy)";
$query.=" VALUES ('$plik_name', '$wybrany')";
$wykonaj=mysql_query($query);
nospor
wyraźnie masz napisane ze /pliki_dostawcy/readme.txt nie istnieje.
Patrzac na twoj kod wcięlo ci $sciezka. Mogles sie domyslic i tam szukac bledu.

$sciezka to: $sciezka=dirname($PATH_TRANSLATED);
pewnie nie ma wiec $PATH_TRANSLATED. Nie ma, bo korzystasz z register_globals, ktore w php5 sa domyslnie wylaczone.
POwinno byc zamiast $PATH_TRANSLATED : $_SERVER['PATH_TRANSLATED']
Pod warunkiem ze $_SERVER zawiera ten index. Przykladowo umnie nie zawiera smile.gif
slaweks
zrobiłem tak jak powiedziałeś ale nic się nie zmieniło cały czas jest ten sam worning

CODE
$sciezka=dirname($_SERVER['PATH_TRANSLATED']);
if(!empty($plik_name))
{
if (file_exists($sciezka."/pliki_dostawcy/".$plik_name))
{
unlink($sciezka."/pliki_dostawcy/".$plik_name);
$plik_name=strtr($plik_name," ","_");
$nowyplik=$sciezka."/pliki_dostawcy/".$plik_name;
copy($plik,$nowyplik);
?>Plik dodano }
else
{
$plik_name=strtr($plik_name," ","_");
$nowyplik=$sciezka."/pliki_dostawcy/".$plik_name;
copy($plik,$nowyplik);
?>
Plik dodano.
//$data=date('d-m-Y G:i:s', mktime());
$query="INSERT INTO sbs_dostawcyatesty (nazwa, id_dostawcy)";
$query.=" VALUES ('$plik_name', '$wybrany')";
$wykonaj=mysql_query($query);
}
}


teoretycznie wszystko powinno śmigać
nospor
Mowilem ci: twoj $_SERVER moze nie miec PATH_TRANSLATED
ZRob:
  1. <?php
  2. print_r($_SERVER);
  3. ?>

I sprawdz czy masz taki index. Jak nie masz to wybierz inny winksmiley.jpg
slaweks
Działa już wszystko:) dzięki za pomoc:)
i wpisałem

CODE
$sciezka=dirname($_SERVER);
nospor
wlasnie pojawil mi sie usmiech na twarzy smile.gif
zrob sobie
echo 'sciezka: '.$sciezka;
i powiedz co wyswietlilo
mike
Równie dobrze mogłeś wpisać:
  1. <?php
  2.  
  3. $sciezka = dirname('dupa jasio pierdzi stasio');
  4.  
  5. ?>


Poczytaj sobie w dokumentacji co właśnie zrobiłeś w przeciwnym wypadku moderator przeniesie ten wątek na Humor.
slaweks
chyba nie znam się na waszych żartach, ale faktycznie to co zrobiłem jest bezsensu ale działa
nospor
Cytat
chyba nie znam się na waszych żartach,
Czemu mowisz w liczbie mnogiej? To mike zartowal, ja mowilem calkiem powaznie smile.gif

Cytat
jest bezsensu ale działa
Jak tak dalej bedziesz podchodzil do tematu to wkrotce znowu bedziesz mial problemy. Jak cos jest bez sensu to nie mozna tego tak zostawic, tylko poprawic. To ze dziala ci akurat teraz to fart i tyle smile.gif
slaweks
zrobiłem tak

$_SERVER['HTTP_HOST']

i teraz jest ok - mam przynajmniej taką nadzieje
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.