guarda, ho quasi risolto.. ho messo:
vedendo questo link:Codice PHP:if(preg_match("/[A-Za-z0-9]/", strtolower($url)))
http://stackoverflow.com/questions/4...z0-9-and-space
vedi la risposta dove c'è la v in verde
che cosa volgono dire i due / uno all'inizio e uno alla fine..
poi perché se scrivo l'url in questo modo : pages.php?url=../start/index
mi carica la index nel mio motore degli include?
come posso evitare?
grazie mille e scusatemi molto ..
C'è scritto anche nel link che ti ho segnalato io, è la documentazione ufficiale di PHP, ci mancherebbe che non ci fosse scritto.
Come puoi vedere sempre dal link che ti ho proposto, sono dei delimitatori per l'espressione regolare.che cosa volgono dire i due / uno all'inizio e uno alla fine..
Non sapendo come usi $_GET['url'] nel tuo script, non sono in grado di risponderti.poi perché se scrivo l'url in questo modo : pages.php?url=../start/index
mi carica la index nel mio motore degli include?
come posso evitare?
grazie mille e scusatemi molto ..
ok, ti rispondo con piccolo codice che poi sarebbe tutto il motore..
se uno digita nella barra degli indirizzi questa maniere ../start/indexCodice PHP:$url = (isset($_GET["url"])) ? trim ((string)$_GET["url"]): '';
layout_header($title);
include("pages/".strtolower($url).".php");
layout_footer();
conoscendo le cartelle mi va includere la pagina che è dentro il motore pages.php che il codice sarebbe
quello che ti ho scritto ora ..
il layout_header, layout_footer , sono solamente delle funzioni che includono la template html e css.
idea come fare per evitare l'auto inclusione di altre pagine che non sono richiamate da pages.php?
ti ringrazio molto, io speravo che con la regolare espressione risolvevo il problema , invece lo fa alcuni casi tipo / \ è '0 èlà etc..
ti ringrazio di nuovo.
Ti viene generata una url del tipo
pages/../start/index
chiaramente quei .. lì sono sbagliati.
Non capisco il tuo problema a mostrare il codice, non mi pare che tu abbia inventato una cosa rivoluzionaria che potrebbero rubarti, anzi, stai facendo un pastrocchio.
ciao, ecco ti il codice completo..
per l'url se uno richiama in quella maniera ( ../start/index.php ) si include la index dentro alla pages.php.
ora vi posto il codice che tanto sono solo include e array.
niente non riesco ad inserirlo nei tag php del forum essendo sia unix e ansi. booo.codice:<?phpinclude('inc.php'); include('template/'.$theme.'/template.php'); $url = (isset($_GET["url"])) ? trim ((string)$_GET["url"]): ''; if(preg_match("/[A-Za-z0-9]/", strtolower($url))) { if(file_exists(strtolower("pages/".strtolower($url).".php"))) { if (array_key_exists(''.$url.'', $arrPages)) { $title = $arrPages[''.strtolower($url).'']; }else { $title = ""; } layout_header($title); include("pages/".strtolower($url).".php"); layout_footer(); }else { $title = "404 not found"; layout_header($title); include("pages_error/error_404.php"); layout_footer(); } }else { $title = "Accesso non consentito"; layout_header($title); include("pages_error/error_403.php"); layout_footer(); } ?>
vi ringrazio molto.
ho provato tutte le codifiche ma nulla... per caso devo impostare qualcosa nel forum?
No scusa, questo
$_GET['url'] = '../start/index';
$url = (isset($_GET["url"])) ? trim ((string)$_GET["url"]): '';
include("pages/".strtolower($url).".php");
non vuol dire "includi la index dentro a pages.php", ma vuol dire "includi pages.php/../start/index" che è un'URL sbagliata.
Prova ad andare nel menu "Converti" e seleziona "UTF8 senza BOM", poi salva.
per evitare quello cosa devo fare?
grazie mille e per quello che avevo pensato ad una regolare espressione .. ma non so come mai prende sempre ../start/index che noi
gli abbiamo detto solo numeri e lettere e senza .. e / come mai?
grazie mille e scusa del codice incasinato.
ora provo come mi hai detto tu..per notepad++ caso mai lo reinstallo.
ciao a stasera ora devo andare via.