Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    come reindirizzare piu cartelle

    salve sto imparando il php , è un po complicato ma ce la posso fa !

    ho finito di leggere un libro della hoepli e ora vorrei modificare il sito che ho costruito seguendo il libro .
    lo sto gia rileggendolo per memorizzare meglio e contemporaneamente sto modificando il sito ( seguendo l'ordine dei capitoli ) ora mi ritrovo ad affrontare un problema che non so come risolvere , per chi non conoscesse il libro ad un certo punto ( 7 capitolo ) ti viene spiegato come redirigere e sanitizare le pagine di una cartella per ottenere un indirizzo tipo index.php?content=about ora io ho creato 2 cartelle una è admin e l'altra e utenti , devo far si che lo script validi e utilizzi anche per loro un indirizzo tipo index.php?admin=xxx o ?utenti=xxx , una volta capito come funziona posso comprendere come funziona
    questo è lo script che gestisce le pagine del 7 capitolo
    Codice PHP:
    <?php 
                $content 
    '';
                
    // Get the content from the url
                
    if (isset($_GET['content'])) :
                  
    $content $_GET['content'];
                  
    // Sanitize it for security reasons
                  
    $content filter_var($contentFILTER_SANITIZE_STRING);
                endif;
                  
    // Set up the home page as the default
                
    $content = (empty($content)) ? "home" $content;
                
    // Include the chosen page
                
    include 'content/' $content '.php';
            
    ?>
    io devo modificarlo perche accetti come valide anche altre cartelle , come mi suggerite di modificarlo ?
    Marlin

    ps tra i tanti tentativi che ho fatto ho provato a duplicarlo o ad aggiungere altre $ ma non va nulla , quindi c'e qualcosa che mi sfugge o non mi è stato spiegato bene .

  2. #2
    su base wordpress mi pare...
    Metti l'url del test, per capire cosa devi fare.
    Interactive Html/CSS/JS Playground | @webbeloz ( cip..cip! )
    Mechanics & Expert Tuning Fix Z3 Roadster Community

  3. #3
    Originariamente inviato da webbeloz
    su base wordpress mi pare...
    Metti l'url del test, per capire cosa devi fare.
    non è un wordpress , nasce come un sito in (x)html ( statico ) e poi nel corso delle lezioni diventa un sito dinamico , in questo momento l'unica pagina in funzione è l'user , le altre se non riesco a capire cosa manca ( quello che ho postato prima è lo script del settimo capitolo che è la base per la succesisva funzione , che serve per far si che content/about.php sia visto come ?content=about ma se abilito content non funzione piu profiile ) , non vanno !

    link

    grazie mille

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2012
    residenza
    Lima, Perù
    Messaggi
    212
    Forse non ho capito bene il problema ma...

    Codice PHP:
    $pagina 'index.php';
    if(!empty(
    $_GET['admin'])){ //index.php?admin=xxx
        
    $pagina 'admin/'$_GET['admin'] .'.php';
    } elseif(!empty(
    $_GET['utenti'])){ //index.php?utenti=xxx
        
    $pagina 'utenti/'$_GET['utenti'] .'.php';
    }
    include 
    $pagina
    Jamie Ynonan - Web Developer / Desarrollador Web - HTML5 - CSS3 - Javascript/jQuery - PHP/CodeIgniter/Laravel - SQL/MySQL - Wordpress
    Telelavoro / Teleworking - jamiea31[at]gmail.com - Lima - Perù - GMT -5

  5. #5
    Originariamente inviato da minos88
    Forse non ho capito bene il problema ma...

    Codice PHP:
    $pagina 'index.php';
    if(!empty(
    $_GET['admin'])){ //index.php?admin=xxx
        
    $pagina 'admin/'$_GET['admin'] .'.php';
    } elseif(!empty(
    $_GET['utenti'])){ //index.php?utenti=xxx
        
    $pagina 'utenti/'$_GET['utenti'] .'.php';
    }
    include 
    $pagina
    grazie per il tuo codice , ora vedo se riesco ad adattarlo !
    comunque provo , se ci riesco , a spiegare la situazione , quello script che ho postato ( è possibile vederlo in azione al link che ho scritto sopra ) serve come una sorta di smistamento del traffico solo che in questo caso , lo script è basato su una sola direzione , non prevede che ci siano altre direzioni valide e qualora non fosse specificata nessuna pagina va in home ( che non è l'home page, ma una pagina chiamata home.php ), io sto cercando di capire ( visto che sto imparando ancora ) come fare per far si che lui accetti valide per anche altre direzioni , non stavolgendo lo script piu di tanto (che è la base della futura funzione, e non vorrei complicarmi ulteriormente la vita ) .
    grazie mille

  6. #6
    scusami ma solo ora ho avuto 10 minuti di tempo da dedicarci .... ho provato lo script che mi hai dato e funziona , anche se l'ho dovuto accroccarlo per farlo somigliare , ora ho un problema ( banale ? ) .. devo far si che lui qualora scrivesse invvertitamente una pagina inesistente fosse rediretto verso una pagina x in una cartella specifica tramite la stringa
    in origine era

    Codice PHP:
    $content = (empty(($content)) ? "home" $content
    ora visto che content è stato trasformato in pagina , la nuova stringa per in questo caso dovrebbe essere
    Codice PHP:
    $pagina = (empty($pagina)) ? "error" 
    mi manca come far capire al sistema che error sta nella cartella errori e che in caso qualcuno sbagli a digitare deve puntare li.
    devo creare un $content per farlo puntare li tipo $error = 'errori/errore.php'; e poi aggingere la stringa oppure esiste un altro modo ?

  7. #7
    nessuna risposta un po preoccupante !!
    non so se la considerate una cosa troppo semplice ( per me è complicatissima ) o è realmente complicata da affrontare !
    mah detto questo aggiungiamo un altro elemento cosi per complicare un po la mia vita .

    nel codice postatomi da minos88 mancano 2 cose e c'e un problema .
    mancava la sanitizazione della stringa ( che ho aggiunto senza problema )
    e manca la reindirizzazione in caso di manomissione o di default verso una cartella precisa ( o verso diverse cartelle ) e di un file preciso ( un domani potrebbe essere una pagina di errore da dove arriva mi arriva una mail in caso di manomissione ad esempio), e manca l'includere una pagina precisa , perche come postata da minos88 rederige all'index che non è altro che è un contenitore vuoto e quindi non apparirebbe nulla .

    ho provato qualche soluzione ma non riesco a far digerire ad esempio un $content che punta alla cartella content e alla pagina home.php ( si blocca tutto ) , ho provato ad inserire come parametro dopo i 2 punti 'content/home.php' ad esempio ma non funziona
    in fine una domanda banale : nelll'originale la stringa finale era include 'content/' .$content. '.php'; dove includeva qualsiasi cosa fosse proveniente dalla cartella content ... ora se io volessi far si che venissero inclusi non solo le pagine provenienti da content , ma anche da quelle provenienti da altre cartelle come debbo fare ? include cosa ?

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2012
    residenza
    Lima, Perù
    Messaggi
    212
    se ho capito bene il tuo sistema e' questo (semplificato):

    Codice PHP:
    require('header.php');
    $pagina 'index.php'//ciò che ho chiamato index, può essere home.php, e' solo la pagina di deafult
    if(!empty($_GET['admin'])){ //index.php?admin=xxx
        
    $pagina 'admin/'$_GET['admin'] .'.php';
    } elseif(!empty(
    $_GET['utenti'])){ //index.php?utenti=xxx
        
    $pagina 'utenti/'$_GET['utenti'] .'.php';
    }
    include 
    $pagina;
    require(
    'footer.php'
    se e' questo il tuo sistema, il problema e' che sempre cercherà di caricare la pagina (home.php-utenti/profilo.php-admin/form.php), e se non trova nessuna pagina non avrai (se non sbaglio) nessun error 404, perché in realtà la pagina esiste, ciò' che manca e' il contenuto richiamato con il include.

    per assicurarti che il contenuto (quindi home.php-utenti/profilo.php-form.php) esista mi viene in mente 3 modi:
    avere i nomi dei contenuti salvati in un DB (home.php-utenti/profilo.php),
    se non usi un DB "puoi" (meglio se non lo fai ) fare un array con cui confrontare i nomi (invece di avere i dati nel DB si "salvano" nell'array),
    un'altro modo che mi viene in mente e' controllare con la funzione php file_exists


    se il tuo sistema non e' quello descritto precedentemente, fai prima a postare tutto il codice, perché non ho capito cosa stai facendo e come vuoi farlo, e guardando il codice sarebbe più semplice da capire...
    Jamie Ynonan - Web Developer / Desarrollador Web - HTML5 - CSS3 - Javascript/jQuery - PHP/CodeIgniter/Laravel - SQL/MySQL - Wordpress
    Telelavoro / Teleworking - jamiea31[at]gmail.com - Lima - Perù - GMT -5

  9. #9
    grazie minos per la risposta , io parto dallo script postato all'inizio della discussione e provo a modificare quello .

    facciamo cosi posto index originale cosi spero sia comprensibile

    Codice PHP:
    !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Smithside Auctions</title>
    <link href="css/main.css" rel="stylesheet" type="text/css" />
    </head>

    <body>
    <div id="container">

        <div id="header">
            <a href="index.php">
                [img]images/banner.jpg[/img]
            </a> 
        </div>
        
        <div id="navigation">
            <h3 class="element-invisible">Menu</h3>
            <ul class="mainnav">
                [*][url="index.php?content=categories"]Lot Categories[/url]
                [*][url="index.php?content=about"]About Us[/url]
                [*][url="index.php?content=home"]Home[/url] 
    // qui ho aggiunto le 2 pagine index.php?admin=index e index.php?utenti=id
            [/list]
            <div class="clearfloat"></div>
        </div>

        <div class="message">
        </div>    
        
        <div class="sidebar">
        
        </div>
        
        <div class="content">
    <?php 
                $content 
    ''//da qui ho modificato come suggeriva minos88 con $pagina
                // Get the content from the url
                
    if (isset($_GET['content'])) :
                  
    $content $_GET['content'];//fino a qui
                  // Sanitize it for security reasons 
                  
    $content filter_var($contentFILTER_SANITIZE_STRING); // questa l'ho modificata io 
                
    endif; // eliminato
                  // Set up the home page as the default
                
    $content = (empty($content)) ? "home" $content// primo problema deve reindirizzare verso una pagina nella cartella xxx 
                // Include the chosen page // e deve includerla 
                
    include 'content/' $content '.php'// secondo problema 
            
    ?>  
        </div>
        
        <div class="clearfloat"></div>
        
        <div id="footer">
            

    &copy; <?php echo date('Y'); ?>  Smithside Auctions</p>
        </div>

    </div>
    </body>
    </html>
    spero sia un po piu chiaro !

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2012
    residenza
    Lima, Perù
    Messaggi
    212
    ok, adesso ho capito come lo stai facendo, ma non riesco a capire fino in fondo qual e' il problema, cosa non riesci a fare, o cosa vuoi fare?

    index.php?admin=index => questo significa che hai una variabile admin ($_GET) di valore index
    index.php?utenti=id => qui hai una variabile utente con valore id

    con il codice che ti ho inviato riesci a capire che variabile hai (admin oppure utenti)
    Codice PHP:
    $pagina 'home.php'//default
    if(!empty($_GET['admin'])){ //index.php?admin=xxx //admin
        
    $pagina 'admin/'$_GET['admin'] .'.php';
    } elseif(!empty(
    $_GET['utenti'])){ //index.php?utenti=xxx //utenti
        
    $pagina 'utenti/'$_GET['utenti'] .'.php';
    } elseif(!empty(
    $_GET['content'])){ //index.php?content=xxx //content
        
    $pagina 'content/'$_GET['content'] .'.php';

    adesso se vuoi controllare se esiste oppure no il file che stai richiamando devi usare la funzione che prima ti indicato file_exists

    al posto di index.php?admin=index, forse e' meglio admin/ (admin/index.php)
    Jamie Ynonan - Web Developer / Desarrollador Web - HTML5 - CSS3 - Javascript/jQuery - PHP/CodeIgniter/Laravel - SQL/MySQL - Wordpress
    Telelavoro / Teleworking - jamiea31[at]gmail.com - Lima - Perù - GMT -5

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.