Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql > Scripting e Risorse utili
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 17-03-05, 21:56   #1 (permalink)
 
L'avatar di KING_Hack
 
Data di registrazione: Mar 2005
Ubicazione: Aquileia
Messaggi: 1,711
Invia un messaggio tramite MSN a KING_Hack Invia un messaggio tramite Skype a KING_Hack
[PILLOLA] Inclusione ricorsiva di pagine in una Directory

Volevo sottoporre questa mini guida per l'inclusione di pagine attraverso uno scriptino in php a mio parere molto pratico.
Nella parte iniziale si tratta di settare le directory da cui si vuole attingere per prelevare le pagine da includere, si setta la pagina da includere di default (in questo caso home.php) e poi si puo' creare la pagina d'errore in caso quella da includere non esiste o non viene trovata.
Il passo sucessivo e' l'inserimento per ogni directori da trattare del rispettivo prefisso da inserire nei vari link: in questo caso avremo che le pagine da includere dalla dir images avranno il prefisso img e quindi il link sara' del tipo 'http://www.dominio.com/index.php?img=index_della_dir_images (senza il suffisso php)

Questo script viene salvato in un file per es scriptino.php e bastera' includerlo nell' index del nostro sito.

Si possono cmq includere quante dir volete anche se in questo esempio ne trattiamao solo 2.

Viene da se che bisognera' adottare il rewrite del link per farsi amici Google

Spero possa tornar utile a qualcuno questo mini-howto

Quote:
<?
/************************************************** **********************/
/* KHKServer */
/* ============================================ */
/* */
/* Copyright (c) 2005-2006 by Davide Tommasin - KHKServer */
/* http://www.khkserver.com - info@khkserver.com */
/* */
/* This program is free software. You can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 2 of the License. */
/************************************************** **********************/

// CONFIGURATION
$dir1 = "images"; /* questa e' la prima dir dove si andranno a prelevare le pagine da includere */
$dir2 = "public"; /* questa e' la seconda dir dove si andranno a prelevare le pagine da includere */

$mainpage = "home.php"; /* la pagina di default e' indicata qui */
$fileext = ".php"; /* l'estensione di default delle pagine web da includere */
$error404 = "<h2>Error 404</h2>

Could not find the requested page</p>"; /* Messaggio di errore per pagine non trovate */

/* qui si puo' editare la stringa prima del '=' che comparira' nel link
$cat1 = $_GET['img']; /* Esempio: http://www.dominio.com/index.php?img=myphoto */
$cat2 = $_GET['pub']; /* Esempio: http://www.dominio.com/index.php?pub=mydoc */
// END OF CONFIGURATION

// Se $cat1 (...img=...) e' nel link allora verra' usato questo ciclo:
if (isset($cat1)) {
$cat1 = stripslashes(strip_tags($cat1));
$forbidden1 = ereg("\.\./", $cat1);
$forbidden2 = ereg("/", $cat1);
$includepath= $dir1 . "/" . $cat1 . $fileext;

if ($forbidden1 || $forbidden2) {
echo "<h2>Error</h2>";
echo "

Could not include page. Only local files may be included</p>";
}
else {
if (@fopen("$includepath", "r")) {
include ("$includepath");
}
else {
if (!(@fopen("$includepath", "r"))) {
echo "$error404";
}
}
}
return;}

// Se $cat2 (...pub=...) e' nel link allora verra' usato questo ciclo:
if (isset($cat2)) {
$cat2 = stripslashes(strip_tags($cat2));
$forbidden1 = ereg("\.\./", $cat2);
$forbidden2 = ereg("/", $cat2);
$includepath= $dir2 . "/" . $cat2 . $fileext;

if ($forbidden1 || $forbidden2) {
echo "<h2>Error</h2>";
echo "

Could not include page. Only local files may be included</p>";
}
else {
if (@fopen("$includepath", "r")) {
include ("$includepath");
}
else {
if (!(@fopen("$includepath", "r"))) {
echo "$error404";
}
}
}
return;}

// If no category is defined in the URL:
else {
include ("$mainpage");
}
?>
__________________
KING_Hack non in linea   Rispondi citando
Vecchio 18-03-05, 19:43   #2 (permalink)
User Attivo
 
Data di registrazione: Nov 2004
Ubicazione: Catania
Messaggi: 1,142
Invia un messaggio tramite MSN a PaTeR
Mmm... Mi sembra una buona guida, anche per chi ne sa anche un pò di php...
L'unica cosa che non capisco è qui:

Codice:
 if (@fopen("$includepath", "r")) {
include ("$includepath");
}
else {
if (!(@fopen("$includepath", "r"))) {
 echo "$error404";
}
}
1) Per controllare se un file esiste, non c'è bisogno di aprire uno stream, puoi usare la funzione file_exists()
2) Dopo l'else, non c'è bisogno di fare un'altro if, mi sembra alquanto inutile...
3) Perchè usare ' "$includepath" ' anzichè ' $includepath ' senza doppi apici?

Aggiunta nel thread in rilievo :8
PaTeR non in linea   Rispondi citando
Vecchio 18-03-05, 22:07   #3 (permalink)
 
L'avatar di KING_Hack
 
Data di registrazione: Mar 2005
Ubicazione: Aquileia
Messaggi: 1,711
Invia un messaggio tramite MSN a KING_Hack Invia un messaggio tramite Skype a KING_Hack
Quote:
PaTeR
Mmm... Mi sembra una buona guida, anche per chi ne sa anche un pò di php...
L'unica cosa che non capisco è qui:
Sorry... prometto che non mi mettero mai piu alle 4 di mattina a scrivere codice

Quote:
Aggiunta nel thread in rilievo :8
Grazie
__________________
KING_Hack non in linea   Rispondi citando
Vecchio 18-03-05, 22:42   #4 (permalink)
 
L'avatar di Giorgiotave
 
Data di registrazione: Oct 2004
Ubicazione: Monasterace
Messaggi: 34,891
Invia un messaggio tramite Skype a Giorgiotave
KING_Hack grazie per aver scritto la pillola
Giorgiotave ora è in linea   Rispondi citando
Vecchio 19-03-05, 14:53   #5 (permalink)
 
L'avatar di KING_Hack
 
Data di registrazione: Mar 2005
Ubicazione: Aquileia
Messaggi: 1,711
Invia un messaggio tramite MSN a KING_Hack Invia un messaggio tramite Skype a KING_Hack
Quote:
giorgiotave
KING_Hack grazie per aver scritto la pillola
E' stato un piacere... visto che di solito alle 4 di mattina (vedi post precedente) non so mai cosa fare
__________________
KING_Hack non in linea   Rispondi citando
Rispondi
Tags: , , , ,



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 20:19.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.