if (!@include ("./file.php")) include ("../file.php"); è corretto?

a funzionare funziona ma non mi sembra una scrittura elegante... si potrebbe usare anche if (file_exist (...))

il problema nasce quando il file che contiene l'include è chiamato da un file che si trova in una posizione diversa... eppure ../ dovrebbe essere la posizione assoluta (come a dire a partire dalla root del sito)...

inviato 10 anni fa
arjuna
X 0 X

../ non è un path assoluto ma significa semplicemente la directory di livello superiore a quella corrente.

Sicuramente è meglio usare file_exist ma nel tuo caso forse è meglio usare dei percorsi assoluti.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

il percorso assoluto dovrebbe essere: "www.nomesito.com/" ma quando lavoro in locale non è così...

come fare?

risposto 10 anni fa
arjuna
X 0 X

Quello è un URL, non un path!!!

Un percorso assoluto è ad esempio c:\programmi\test sotto windows o \home\gianni\www sotto linux

Per il problema della "mobilità" dello script puoi usare $_SERVER['DOCUMENT_ROOT']:

include $_SERVER['DOCUMENT_ROOT'] . '\file.php';

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

in locale dopo www c'è la dir del sito:

www/nomesito.com/file.php

mentre in remoto la situazione è diversa, qualcosa come:

www/html/file.php

se uso $_SERVER['DOCUMENT_ROOT'] mi si ferma a www/

e poi come ci si deve comportare con le slash di win e di linux?  ( questa / o questa \?)

risposto 10 anni fa
arjuna
X 0 X

Ma in remoto restituisce il percorso corretto della cartella principale del sito?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

non ho ancora provato ma per quanto ricordi dovrebbe essere così, il punto però è che dovrei cercare di trovare un sistema indipendente da quale sia la root!

risposto 10 anni fa
arjuna
X 0 X

Potresti usare dirname(__FILE__) e da quì costruire il percorso del file:

file nella stessa cartella

include dirname(__FILE__) . '/file.php';

file in cartella annidata

include dirname(__FILE__) . '/cartella/file.php';

file in cartella di livello superiore

include dirname(__FILE__) . '/../file.php';

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Eheheh,

a distanza di tanto tempo vedo che le mie esigenze in fatto di programmazione php non sono cambiate... molto divertente.

In questo tempo ho lasciato da parte il php per concentrarmi su altre cose, ma ora torna l'esigenza di sviluppare piccole cosucce.

Ecco cosa ha partorito la mia mente perversa per il solito problema...: determinare la root path

$path = substr($_SERVER['SCRIPT_FILENAME'], 0, -strlen($_SERVER['SCRIPT_NAME'])+1);

macchinoso?

il problema è che lo devo inserire in ogni file che chiama le inclusioni

risposto 9 anni fa
arjuna
X 0 X

nella tua applicazione c'è un file che viene richiamatao per primo, tipo index.php, e che puoi include gli altri file?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

ho risolto in un modo diverso ma che non mi gusta gran che.

Precedentemente avevo strutturato il sito secondo uno schema di sottocartelle ognuna delle quali conteneva un file index.php che permetteva di scrivere un url di questo tipo:

nomesito.com/noleggi/palchi

(una struttura identica la potete vedere per ora sul mio sito: www.lucianoamodio.it)

in questo modo l'url era molto carino anche se sul mio sito sono finito a fare una marea di sottocartelle.

Ogni file index.php che inserivo in una sottocartella aveva una variabile che indicava il livello di profondità, questa variabile poi aggiungeva tanti '../' quanti ne servivano per raggiungere le risorse necessarie.

Lo so, è bestiale, ma in poco tempo questo mi era venuto in mente.

Al di la della macchinosità di questo processo (cmq temporaneo), avevo problemi su server locali, così ho provato ad usare il codice che ho postato nell'ultimo replay ma peggio che andar di notte.

Ora ho cambiato approccio.

Ho solo la index che funziona così:

index.php?p=noleggi&c=palchi&img=palco_01

La index mi smista tramite uno switch alle diverse pagine ('p'), se le pagine hanno delle sottocategorie a loro volta tramite uno switch mi mostrano i relativi dati dal database ('c'), e se ci sono altri parametri entrano in gioco le atre funzioni ('img' quando javascript è disabilitato e devo visualizzare lo stesso la gallery).

Potete vedere per ora un esempio su questo sito:

www.quintessenza.info

Ora le domande sono:

al di la della macchinosità della prima soluzione e dei relativi problemi di path, un url del tipo nomesito.com/pagina/sezione senza alcun indicazione a file.html, è sconsigliato (sto pensando ai motori di ricerca)?

ho cercato un pò in giro qualcosa sull'url rewrite ma non ho trovato nulla di esauriente.

Che mi consigliate?

risposto 9 anni fa
arjuna
X 0 X

Gli URL senza .html vanno benissimo, molto meglio di quelli con query string lunghe.

Per realizzare un sistema di URL amichevoli puoi partire da un file .htaccess del tipo:

[tt]RewriteEngine on 

RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php[/tt]

nell'index.php devi esplodere l'URL richiesto e dedurre la pagina da caricare.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

così semplice?

Mi sapresti indicare una risorsa online che spieghi la sintassi del linguaggio usato nei file .htaccess

risposto 9 anni fa
arjuna
modificato 9 anni fa
X 0 X
così semplice?

Si, se devi reindirizzare tutte le richieste a index.php

Per un po di documentazione leggi questi:

http://server.html.it/articoli/leggi/2033/riscrivere-gli-url-con-il-modulo-modrewrite-di-apa/

http://www.sitepoint.com/article/guide-url-rewriting

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda