Errore path inspiegabile

Marco_88

Utente Attivo
4 Dic 2014
150
0
0
Roma
batwebit.blogspot.it
Ciao a tutti.
Dal log del server hanno riscontrato questo errore e non so proprio a cosa è dovuto visto che se provo a cambiare il path si interrompe lo script e la pagina diventa bianca.


/usr/bin/php5 /home/siti/www.sito.it/sito.it/htdocs/cms/modules/products/cron_import.php

PHP Warning: require_once(../cms/libraries/PHPExcel.php): failed to open stream: No such file or directory in /home/siti/www.sito.it/sito.it/htdocs/cms/includes/classes.php on line 3
[Exit 255]

E questo è il file incriminato (classes.php)

PHP:
<?php
$prefix = "../cms/";
   require($prefix . "libraries/PHPExcel.php");
	require($prefix . "libraries/PHPExcel/IOFactory.php");
	require($prefix . "libraries/PHPExcel/Writer/Excel5.php");
   
   require($prefix . "classes/class.cmsusers.php");
   require($prefix . "classes/class.media.php");
   require($prefix . "classes/class.media.groups.php");
   //require($prefix . "classes/class.hotspots.php");
   require($prefix . "classes/class.news.php");
   //require($prefix . "classes/class.events.php");
   //require($prefix . "classes/class.press.php");
   //require($prefix . "classes/class.promotions.php");
   require($prefix . "classes/class.products.php");
   require($prefix . "classes/class.fallimenti.php");
   require($prefix . "classes/class.clienti.php");
   require($prefix . "classes/class.aste.php");
   require($prefix . "classes/class.utenti.php");
   require($prefix . "classes/class.conferme.php");
   require($prefix . "classes/class.richieste.informazioni.php");
   require($prefix . "classes/class.duplications.php");
   //require($prefix . "classes/class.contacts.php");
   //require($prefix . "classes/class.stores.php");
   //require($prefix . "classes/class.reserved.php");
   require($prefix . "classes/class.newsletter.php");
   //require($prefix . "classes/class.box.php");
   require($prefix . "classes/class.home.php");
   require($prefix . "classes/class.importxls.php");
   require($prefix . "classes/class.import.products.php");
 
a me da il seguente errore
require(): Failed opening required '../cms/libraries/PHPExcel.php'
la differenza sta nel "require" rispetto a "require_once"
ovvero stai trattando lo script giusto ?
ciao
Marino
 
Ciao marino, si scusami ma lo avevo cambiato per prova, in realtà è con il require_once.
Quelli del server mi dicono che l'errore è dovuto alla mancanza del path assoluto nonostante abbia fatto questa maniera:

PHP:
<?php

$path = getcwd();
echo "Absolute path" . $path . "<br/>";
$prefix = $_SERVER['DOCUMENT_ROOT'].'cms/';
echo $prefix;

require_once($prefix . "libraries/PHPExcel.php");
require_once($prefix . "libraries/PHPExcel/IOFactory.php");
require_once($prefix . "libraries/PHPExcel/Writer/Excel5.php");
require_once($prefix . "classes/class.cmsusers.php");
require_once($prefix . "classes/class.media.php");
require_once($prefix . "classes/class.media.groups.php");
//require_once($prefix . "classes/class.hotspots.php");
require_once($prefix . "classes/class.news.php");
//require_once($prefix . "classes/class.events.php");
//require_once($prefix . "classes/class.press.php");
//require_once($prefix . "classes/class.promotions.php");
require_once($prefix . "classes/class.products.php");
require_once($prefix . "classes/class.fallimenti.php");
require_once($prefix . "classes/class.clienti.php");
require_once($prefix . "classes/class.aste.php");
require_once($prefix . "classes/class.utenti.php");
require_once($prefix . "classes/class.conferme.php");
require_once($prefix . "classes/class.richieste.informazioni.php");
require_once($prefix . "classes/class.duplications.php");
//require_once($prefix . "classes/class.contacts.php");
//require_once($prefix . "classes/class.stores.php");
//require_once($prefix . "classes/class.reserved.php");
require_once($prefix . "classes/class.newsletter.php");
//require_once($prefix . "classes/class.box.php");
require_once($prefix . "classes/class.home.php");
require_once($prefix . "classes/class.importxls.php");
require_once($prefix . "classes/class.import.products.php");
 
il file zz.php si trova in C:\Web_Sites\__Test\PHP\TEST

PHP:
<?php 
  $path = getcwd();
  var_dump($path);
?>

il file index.php si trova in C:\Web_Sites\__Test\PHP\SolarPower

PHP:
<?php
  require_once 'C:/Web_Sites/__Test/PHP/TEST/zz.php';
?>

risultato dell'operazione

PHP:
string(34) "C:\Web_Sites\__Test\PHP\SolarPower"

quindi attenzione al posizionamento di chi richama lo script
il path relativo "../xyz/" è da riferire al path dello script chiamante

in prima battuta scrivi per esteso il path, senza recuperarlo
ciao
Marino
 

Discussioni simili