• Home
  • Forum
  • Fare Web
  • PHP

Problema con ciclo If..

  • Creatore Discussione Creatore Discussione Winter_Soldier
  • Data di inizio Data di inizio 21 Ott 2010
  • 1
  • 2
Succ.
1 di 2 Succ. Ultimo
W

Winter_Soldier

Nuovo Utente
27 Set 2010
14
0
0
  • 21 Ott 2010
  • #1
Salve a tutti, sto lavorando ad un sito in PHP e per gestire al meglio i contenuti ho deciso di realizzare tutti i link delle pagine sfruttando il ciclo if e linkando tutte le varie pagine. Ora il problema è questo: si tratta di un sacco di pagine davvero, almeno una quarantina, cinquantina di pagine, che andranno a crescere.. Per evitare di appesantire incredibilmente la homepage nella quale vi è l'include a cui fa riferimento il ciclo if, come posso fare?
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
  • 22 Ott 2010
  • #2
ciao, if non è un ciclo ma un'istruzione basata su condizioni, posta il codice che hai creato e vediamo cosa si può fare
 
W

Winter_Soldier

Nuovo Utente
27 Set 2010
14
0
0
  • 22 Ott 2010
  • #3
Eliox ha scritto:
ciao, if non è un ciclo ma un'istruzione basata su condizioni, posta il codice che hai creato e vediamo cosa si può fare
Clicca per allargare...

Allora nella pagina principale "main.php" ho inserito un include con questo codice

Codice:
if (trim($id) == "homepage") 
include("homepage.html"); 
else
if (trim($id) == "appuntamenti") 
include("appuntamenti.html"); 
else
if (trim($id) == "articoli") 
include("articoli.html");  
else
if (trim($id) == "foto") 
include("foto.html");
else
if (trim($id) == "video") 
include("video.html");  
else
if (trim($id) == "eventi") 
include("eventi.html");
else
if (trim($id) == "palestra") 
include("palestra.html");
else
if (trim($id) == "maestri") 
include("maestri.html");
else
if (trim($id) == "discipline") 
include("discipline.html");          
else
if (trim($id) == "wadoryu") 
include("wadoryu.html");          
else
if (trim($id) == "wushu") 
include("wushu.html");          
else
include ("homepage.html");

Ed i link sono del tipo
Codice:
main.php?id=articoli

In modo che le pagine (più leggere) si inseriscano all'interno del layout principale che a questo punto, una volta modificato nella prima pagina mantiene anche le modifiche nelle altre (e questo mi tornerà utile). Volevo evitare di inserire altri "if trim include else" per non appesantire la pagina...
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
  • 22 Ott 2010
  • #4
hai la possibilità di utilizzare un database?
 
W

Winter_Soldier

Nuovo Utente
27 Set 2010
14
0
0
  • 22 Ott 2010
  • #5
Eliox ha scritto:
hai la possibilità di utilizzare un database?
Clicca per allargare...

Ho già scartato questa ipotesi in quanto il sito non è il mio... Lo gestisco soltanto e preferirei non aggiungere una spesa per un MySQL che probabilmente non basterà a lungo per i contenuti che devo mettere... E quindi poi si dovrebbe fare un ulteriore spesa...
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
  • 22 Ott 2010
  • #6
Allora fai così, ti crei un array con tutti i nomi delle pagine senza estensione, se $id è in array fai l'inclusione.
Non è molto elegante ma dovrebbe funzionare e dovrebbe farti risparmiare un pò di codice.
 
W

Winter_Soldier

Nuovo Utente
27 Set 2010
14
0
0
  • 22 Ott 2010
  • #7
Eliox ha scritto:
Allora fai così, ti crei un array con tutti i nomi delle pagine senza estensione, se $id è in array fai l'inclusione.
Non è molto elegante ma dovrebbe funzionare e dovrebbe farti risparmiare un pò di codice.
Clicca per allargare...

Faccio il Grafico e di programmazione web ne so davvero poco... Mi spiegheresti in soldoni e con esempi pratici? =)
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
  • 22 Ott 2010
  • #8
PHP:
$pagine = array("homepage", "appuntamenti", "articoli", "etc.");
if (in_array(trim($id), $pagine)) {
    include $id.".html";
}
 
Ultima modifica: 22 Ott 2010

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 22 Ott 2010
  • #9
Ma che funzione sarebbe tim? Forse intendevi trim?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 22 Ott 2010
  • #10
ciao
per non stare a scrivere tutto l'array perche non usi glob?
$file=glob("cartella/*.html");
nell'array file ti ritrovi tutti i file con estensione html

@alex forse intendeva vodaphon
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 22 Ott 2010
  • #11
ciao
scusa, ma mi era rimasto nella penna

PHP:
$pagine = glob("$cartella/*.html");//se nella root togli $cartella/ per cui =glob(*.html")
$pagine =str_replace(".html","",$pagine);
//e come detto da elio a parte il tim
if (in_array(trim($id), $pagine)) { 
    include $id.".html"; 
}
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
  • 22 Ott 2010
  • #12
alessandro1997 ha scritto:
Ma che funzione sarebbe tim? Forse intendevi trim?
Clicca per allargare...

Correzione effettuata con successo.
Qualcuno con troppi post è pericolosamente vicino ad essere bannato
 
W

Winter_Soldier

Nuovo Utente
27 Set 2010
14
0
0
  • 22 Ott 2010
  • #13
borgo italia ha scritto:
ciao
scusa, ma mi era rimasto nella penna

PHP:
$pagine = glob("$cartella/*.html");//se nella root togli $cartella/ per cui =glob(*.html")
$pagine =str_replace(".html","",$pagine);
//e come detto da elio a parte il tim
if (in_array(trim($id), $pagine)) { 
    include $id.".html"; 
}
Clicca per allargare...

Quindi praticamente dovrei mettere questo codice:

PHP:
$pagine = glob("$subfolder/*.html");
$pagine =str_replace(".html","",$pagine);
if (in_array(trim($id), $pagine)) { 
    include $id.".html"; 
}

Dovrei aggiungere questo dopo tutto l'if e inserire le pagine "extra" nella cartella "subfolder"? Poi dovrei linkare dando al posto dell'id il nome della pagina .html?
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
  • 22 Ott 2010
  • #14
non dopo l'if, il codice di Borgo sostituisce completamente quello che hai scritto tu
 
W

Winter_Soldier

Nuovo Utente
27 Set 2010
14
0
0
  • 22 Ott 2010
  • #15
Questo significa che devo spostare tutte le pagine all'interno della cartella "subfolder"? Ma l'id che devo dare ai link che fanno riferimento all'include è lo stesso nome del file senza .html o con l'estensione?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 22 Ott 2010
  • #16
ciao
no non devi spostare nulla, basta che la pag in cui usi il glob, mi sembra che tu la chiami main.php, sia nella stessa cartella degli html che vuoi includere.
nell'id devi mettere solo il nome, non l'estensione, infatti (es.) glob legge pinco.html
la str_replace "rimpiazza" .html con uno spazio vuoto quindi diventa pinco.
in pratica nell'array $pagine ti ritroverai tutti i nomi sensa estensione
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 22 Ott 2010
  • #17
scusa dimenticavo una cosa
forse al posto di tim, pardon trim, come diceva eliox metterei htmlspecialchars($id) dato facendo l'inclusione col get il semplice trim mi sembra un po' pericoloso
 
W

Winter_Soldier

Nuovo Utente
27 Set 2010
14
0
0
  • 22 Ott 2010
  • #18
PHP:
<? $pagine = glob("$main/*.html"); 
$pagine =str_replace(".html","",$pagine); 
if (in_array(trim($id), $pagine)) {  
    include $id.".html";  
}         
else
include ("homepage.html"); ?>

PHP:
main.php?id=appuntamenti

Ho messo link di questo tipo ma non funziona e immagino che il problema sia nella prima riga del codice in alto... Scusate la mia ignoranza ma potreste darmi ancora qualche dritta?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 23 Ott 2010
  • #19
ciao
se il file main.php si trova nella stessa cartella degli altri file non devi dare il percorso
$pagine = glob("*.html");
se invece il file main.php si trova nella cartella principale e gli altri file nella cartella "pinco"
$percorso="pinco";
$pagine = glob("$percorso/*.html");

se il file main si trova nella cartella "pallino" e gli altri nella "pinco"
$percorso=".../pinco";
$pagine = glob("$percorso/*.html");

ecc.. non si tratta altro che dare il percorso per trovarei file

p.s.
!ahaa! se molti wm avessero conoscituo il vecchio (e rimpianto) DOS i problemi coi percorsi sarebbero cose da ridere
 
W

Winter_Soldier

Nuovo Utente
27 Set 2010
14
0
0
  • 23 Ott 2010
  • #20
borgo italia ha scritto:
ciao
se il file main.php si trova nella stessa cartella degli altri file non devi dare il percorso
$pagine = glob("*.html");
se invece il file main.php si trova nella cartella principale e gli altri file nella cartella "pinco"
$percorso="pinco";
$pagine = glob("$percorso/*.html");

se il file main si trova nella cartella "pallino" e gli altri nella "pinco"
$percorso=".../pinco";
$pagine = glob("$percorso/*.html");

ecc.. non si tratta altro che dare il percorso per trovarei file

p.s.
!ahaa! se molti wm avessero conoscituo il vecchio (e rimpianto) DOS i problemi coi percorsi sarebbero cose da ridere
Clicca per allargare...

Contando che qualche cosa minima di DOS la facevo e che usavo anche il Commodore con tutte le sue istruzioni allora è un problema?
 
  • 1
  • 2
Succ.
1 di 2 Succ. Ultimo
Devi accedere o registrarti per poter rispondere.

Discussioni simili

Problema con un ciclo for.
  • Monital
  • 11 Dic 2015
  • PHP
Risposte
1
Visite
1K
PHP 15 Dic 2015
criric
M
Problema con ciclo foreach per chiusura apertura div in base al numero di record in database
  • migo80
  • 21 Nov 2015
  • PHP
Risposte
1
Visite
2K
PHP 22 Nov 2015
migo80
M
K
Problema con update di un database in un ciclo
  • Kosimo
  • 3 Set 2015
  • Classic ASP
Risposte
1
Visite
1K
Classic ASP 4 Set 2015
Paolo69
O
Problema con ciclo FOR
  • Oliver79
  • 20 Mar 2014
  • PHP
Risposte
1
Visite
2K
PHP 20 Mar 2014
Oliver79
O
M
problema con ciclo foreach per estrarre dati da un database
  • mediasteno
  • 13 Mar 2013
  • PHP
  • 2
Risposte
22
Visite
9K
PHP 29 Mar 2013
mediasteno
M
M
Problema con ciclo for e while
  • Mary Azzurro
  • 8 Feb 2013
  • PHP
Risposte
2
Visite
1K
PHP 9 Feb 2013
Mary Azzurro
M
PHP: problema con ciclo for
  • neo996sps
  • 15 Ott 2012
  • PHP
Risposte
1
Visite
2K
PHP 15 Ott 2012
criric
M
Problema ciclo while con mysql_fetch_assoc
  • Mirko3
  • 22 Dic 2011
  • PHP
Risposte
6
Visite
2K
PHP 27 Dic 2011
borgo italia
D
problema con ciclo if else query
  • donadioema
  • 2 Set 2010
  • PHP
Risposte
3
Visite
2K
PHP 3 Set 2010
borgo italia
P
Problema con ciclo for
  • Provy
  • 30 Giu 2010
  • PHP
Risposte
3
Visite
2K
PHP 30 Giu 2010
borgo italia
D
problema con il ciclo while
  • DewolfCH
  • 28 Ago 2008
  • PHP
Risposte
2
Visite
2K
PHP 28 Ago 2008
Eliox
M
Problema con join e ciclo while
  • mycamo80
  • 23 Mag 2007
  • PHP
Risposte
0
Visite
1K
PHP 23 Mag 2007
mycamo80
M
P
Problema Con Il Ciclo Di Un Menu'
  • pasqualegangemi
  • 22 Gen 2007
  • Flash
Risposte
6
Visite
2K
Flash 26 Feb 2007
lupin3m
B
[HELP] Problema con ciclo if
  • buluca
  • 24 Mar 2005
  • PHP
Risposte
1
Visite
1K
PHP 24 Mar 2005
mptech
Problema in Shopify con Pixel Facebook
  • voldemort
  • 27 Mag 2024
  • E-Commerce
Risposte
1
Visite
2K
E-Commerce 27 Mag 2024
m.pittini
M
O
problema con dvr dahua xvr5116
  • oky74
  • 11 Mar 2023
  • IP Cam e Videosorveglianza
Risposte
0
Visite
2K
IP Cam e Videosorveglianza 11 Mar 2023
oky74
O
G
Problema con Xampp
  • GreatOtaku
  • 5 Mar 2023
  • Web Server
Risposte
1
Visite
1K
Web Server 6 Mar 2023
GreatOtaku
G
Problema con miniature comandi
  • andrea barletta
  • 27 Feb 2023
  • Photoshop
Risposte
0
Visite
1K
Photoshop 27 Feb 2023
andrea barletta
I
problema con alice
  • ilprincipiante
  • 10 Feb 2023
  • Posta Elettronica
Risposte
0
Visite
1K
Posta Elettronica 10 Feb 2023
ilprincipiante
I
N
Problema con position absolute e overflow
  • Nocciolina
  • 23 Gen 2023
  • HTML e CSS
Risposte
4
Visite
1K
HTML e CSS 31 Gen 2023
Nocciolina
N
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?