Esistenza di file e cartella comportamento script

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
All'esistenza o meno di una cartella e di un file lo script deve avere un determinato comportamento. Solo che non mi funziona!

Cioè la cartella e il file vengono rilevati ma non vengono gestiti correttamente. Vi posto il codice commentato per capire:

PHP:
<?php

	$cartella = 'install/';
	$filename = 'php/connessione.php'; 

	//se c'è sia la cartella di installazione che il file di configurazione
if (is_dir($cartella) || file_exists($filename)) {

		echo "elimina o rinomina"; //elimina o rinomina la cartella installazione
		
	}elseif (is_dir($cartella) || !file_exists($filename)) {//se c'è solo la cartella di intallazione ma non esiste il file di configurazione

		echo "Procedo installazione"; //procedi all'installazione
		
	} elseif (!is_dir($cartella) || file_exists($filename)){
	
		echo "reindirizzo al form"; //altrimenti se non c'è la cartella di installazione ma esiste il file di configurazione reindirizza all'index
		
	}

?>

Cosa sbaglio?
ho provato con tutti if ma non va (mi da più echo)
Ho provato con if, elseif e else ma nemmeno va... non riesco a gestirlo.
 
Sbagli l'operatore logico. Nel tuo caso non è OR ma AND:
PHP:
<?php
define('CARTELLA', __DIR__ . '/install');
define('FILE',     __DIR__ . '/php/connessione.php');

if (is_dir(CARTELLA) && is_file(FILE)) {
    // ...
} elseif (is_dir(CARTELLA) && !is_file(FILE)) {
    // ...
} elseif (!is_dir(CARTELLA) && is_file(FILE)) {
    // ...
}
?>
Inoltre non copri il caso in cui non esistano né la cartella, né il file di configurazione.
 
perfetto, errore davvero stupido, errore di logica xD

Coperto anche il caso in cui non esistano né la cartella, né il file di configurazione.

Un ultima cosa avrei da chiederti:

Se utilizzo la tua "dicitura":
PHP:
define('CARTELLA', __DIR__ . '/install'); 
define('FILE',     __DIR__ . '/php/connessione.php');

Cartelle e file non vengono trovati invece se faccio così si:

PHP:
    $cartella = 'install/'; 
    $filename = 'php/connessione.php';

Ha a che vedere con la versione del php oppure è imputabile al fatto che l'intero sito si trovi in una sottocartella?
 

Discussioni simili