Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 20 su 20
  1. #11

    Re: Re: Re: Re: Re: Re: Re: Re: Re: Sicurezza sull'inclusione file dipendente da GET

    Originariamente inviato da ciro78
    non mi pare che si interviene sulla logica dell'applicativo. si tratta semplicemente di aggiungere una opzione così come accade nel caso di un array
    La principale "logica" della tua soluzione è proprio lo switch. La soluzione basata su un array permette una facilità di estensione ed un disaccoppiamento di tutt'altro livello.

    Originariamente inviato da ciro78
    ma aggiungere un case:(valore) non mi sembra così mostruosamente diverso da aggiungere ad un array una chiave e un valore
    Il fatto che non ti sembri non significa che non lo sia.

    Originariamente inviato da ciro78
    si tratta di aggiunegre un case + una assegnazione di variabile
    Ovvero di modificare la logica applicativa. Il che rende la soluzione non scalabile a differenza dell'utilizzo di un array e/o altro metodo di archiviazione centralizzata dell'informazione che accoppia un'azione ad un file.

    Originariamente inviato da ciro78
    inoltre al momento il tuo script non permette di diversificare le pagine. mi spiego.
    se voglio utilizzare un determinato javascript o richiedere l'inclusione di altro codice in base al tipo di pagina, a me basta settare una variabile in più nella condizione. tu che fai?
    La variabile globale $action è accessibile in qualsiasi file incluso. Basta quella per permettere una qualsiasi esecuzione di codice condizionale in qualsiasi elemento incluso (es. top, header, footer, etc.). In codice sarebbe:

    Codice PHP:
    <?php if ($action == 'forum') :?>
    <title>Benvenuto nel forum</title>
    <?php else: ?>
    <title>Benvenuto nel nostro sito</title>
    <?php endif; ?>
    Non mi sembra molto più complesso o impossibile rispetto a qualsiasi soluzione alternativa tu possa proporre.

  2. #12
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514

    Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Sicurezza sull'inclusione file dipendente da GET

    Originariamente inviato da filippo.toso
    La principale "logica" della tua soluzione è proprio lo switch. La soluzione basata su un array permette una facilità di estensione ed un disaccoppiamento di tutt'altro livello.
    non concordo nella maniera più assoluta. ricordiamoci che lo scopo del tutto è stabilire cosa visualizzare a video. Io effettuo il controllo su una variabile mediante swicth e a seconda dei casi setto poi la pagina e altre opzioni, tu fai un controllo analogo sull'array


    Il fatto che non ti sembri non significa che non lo sia.
    beh certo. la cosa è soggettiva. per te è più semplice inserire in un array la chiave e relativo valore. per me fare un copia incolla

    Ovvero di modificare la logica applicativa. Il che rende la soluzione non scalabile a differenza dell'utilizzo di un array e/o altro metodo di archiviazione centralizzata dell'informazione che accoppia un'azione ad un file.
    come sopra non concordo minimamente. con quella stessa logica io riesco a caricare pagina, fogli di stile e script javascript. se questa non è scalabilità.

    La variabile globale $action è accessibile in qualsiasi file incluso. Basta quella per permettere una qualsiasi esecuzione di codice condizionale in qualsiasi elemento incluso (es. top, header, footer, etc.). In codice sarebbe:

    Codice PHP:
    <?php if ($action == 'forum') :?>
    <title>Benvenuto nel forum</title>
    <?php else: ?>
    <title>Benvenuto nel nostro sito</title>
    <?php endif; ?>
    Non mi sembra molto più complesso o impossibile rispetto a qualsiasi soluzione alternativa tu possa proporre.
    che la variabile era globale ci arrivavo anche io ma mentre nel mio caso effettuo un solo controllo , tu sei ricostretto a ricontrollare la stessa variabile per settare altre opzioni.

    Ovviamente non è molto più complesso. Scrivere un if non è la fine del mondo. Solo che la mia soluzione non ne ha bisogno

    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #13

    Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Sicurezza sull'inclusione file dipendente da GET

    Originariamente inviato da ciro78
    non concordo nella maniera più assoluta
    Questo NON significa che la tua soluzione sia scalabile. Di fatto NON lo è.

    Originariamente inviato da ciro78
    beh certo. la cosa è soggettiva. per te è più semplice inserire in un array la chiave e relativo valore. per me fare un copia incolla
    Guarda che non è una cosa soggittiva. E' una delle basi dell'ingegneria del software.

    Giusto per fare un esempio, scala il tuo sistema con 1000 pagine e poi ne riparliamo.

    Originariamente inviato da ciro78
    come sopra non concordo minimamente. con quella stessa logica io riesco a caricare pagina, fogli di stile e script javascript. se questa non è scalabilità.
    Forse è il caso che rivedi il significato di scalabilità ...

    Originariamente inviato da ciro78
    che la variabile era globale ci arrivavo anche io ma mentre nel mio caso effettuo un solo controllo , tu sei ricostretto a ricontrollare la stessa variabile per settare altre opzioni.
    E' evidente che NON hai capito di cosa sto parlando ne del fatto che la tua soluzione è equivalente dal punto di vista funzionale a quella proposta MA NON è scalabile allo stesso livello.

    Originariamente inviato da ciro78
    Ovviamente non è molto più complesso. Scrivere un if non è la fine del mondo. Solo che la mia soluzione non ne ha bisogno
    Certo.

    Per favore, indica quante righe ci vogliono per scalare la tua soluzione con 1000 pagine e poi calcola quante ce ne vogliono per scalare la soluzione basata su array con lo stesso numero di pagine.

  4. #14
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514

    Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Sicurezza sull'inclusione file dipendente da GET

    Originariamente inviato da filippo.toso
    Questo NON significa che la tua soluzione sia scalabile. Di fatto NON lo è.

    Guarda che non è una cosa soggittiva. E' una delle basi dell'ingegneria del software.

    Giusto per fare un esempio, scala il tuo sistema con 1000 pagine e poi ne riparliamo.

    Forse è il caso che rivedi il significato di scalabilità ...
    prendo spunto da wikipedia e leggo
    codice:
    Nelle telecomunicazioni, nell'ingegneria del software e in altre discipline, il termine scalabilità si riferisce, in termini generali, alla capacità di un sistema di "crescere" o "decrescere" (aumentare o diminuire di scala) in funzione delle necessità e delle disponibilità. Un sistema che gode di questa proprietà viene detto scalabile.
    ora mi pare che il mio sistema rispecchi la definizione

    Per favore, indica quante righe ci vogliono per scalare la tua soluzione con 1000 pagine e poi calcola quante ce ne vogliono per scalare la soluzione basata su array con lo stesso numero di pagine.
    ogni pagina aggiunta prevede qualche carattere in più rispetto alla tua soluzione. la tua però richiede un ulteriore controllo sulla variabile iniziale per stabilire ulteriori particolari per la pagina. quindi come vedi ci sono pro e contro.

    con questo ti saluto e interrompo. ho notato che inizi ad usare il maiuscolo e metterla sul personale. per me il forum è un punto per migliorarsi la dove ci siano le condizioni per farlo
    non essendoci più tali condizioni la discussione è divenuta sterile
    ciao
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  5. #15

    Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Sicurezza sull'inclusione file dipendente da GET

    Originariamente inviato da ciro78
    prendo spunto da wikipedia e leggo
    codice:
    Nelle telecomunicazioni, nell'ingegneria del software e in altre discipline, il termine scalabilità si riferisce, in termini generali, alla capacità di un sistema di "crescere" o "decrescere" (aumentare o diminuire di scala) in funzione delle necessità e delle disponibilità. Un sistema che gode di questa proprietà viene detto scalabile.
    ora mi pare che il mio sistema rispecchi la definizione
    La capacità della tua soluzione di "crescere" in funzione del numero di pagine è nullo. Di fatto è necessario modificarne il codice di volta in volta per permettergli di "crescere". La soluzione basata su array (e/o su un sistema di archiviazione quale database, etc.) scala in modo lineare, infatti la dimensione del codice rimane pressochè invariata.

    Originariamente inviato da ciro78
    ogni pagina aggiunta prevede qualche carattere in più rispetto alla tua soluzione.
    "Qualche carattere in più"? Stai cominciando ad arrampicarti su degli specchi...

    Originariamente inviato da ciro78
    la tua però richiede un ulteriore controllo sulla variabile iniziale per stabilire ulteriori particolari per la pagina. quindi come vedi ci sono pro e contro.
    Potresti postare il codice relativo alla tua soluzione che implementa la personalizzazione del title suggerito prededentemente?

    Giusto per confrontarne il livello di complessità a cui ti riferisci con il termine "contro".

  6. #16
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    nel mio caso una nuova pagina la aggiungo con

    Codice PHP:
    case "valore":
    $pag="pagina";


    tu

    'valore' => 'pagina.php' 
    hai perfettamente ragione scrivo miliardi di righe di codice....mamma mia
    se io mi arrampico sugli specchi tu lo fai aggiungendo sapone :d

    per il titolo

    mi basta inserire $tilte='valore' nel case....

    te if.....etc etc



    ciao filippo alla prossima
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  7. #17
    Originariamente inviato da ciro78
    nel mio caso una nuova pagina la aggiungo con

    Codice PHP:
    case "valore":
    $pag="pagina";

    tu

    'valore' => 'pagina.php' 
    hai perfettamente ragione scrivo miliardi di righe di codice....mamma mia
    se io mi arrampico sugli specchi tu lo fai aggiungendo sapone
    Convinto tu. Ne riparleremo quando dovrai fare un sito con più delle solite 5 pagine a cui sembri abituato.

    In ogni caso, se tanto ti da fastidio la soluzione stile WordPress/CakePHP suggerita in precedenza e vuoi rimanere legato ad echo $title, eccoti una soluzione scalabile:

    Codice PHP:
    <?php

    $valid_actions 
    = array('Dashboard' => array('file' => 'dashboard.php'
                                                
    'vars' => array('title' => 'Dashboard Page')),
                           
    'Forum' => array('file' => 'phpbb.php'
                                            
    'vars' => array('title' => 'Forum')),
                           
    'Login' => array('file' => 'login.php'
                                            
    'vars' => array('title' => 'Please Login')),
                           
    'Store' => array('file' => 'ecommerce.php'
                                            
    'vars' => array('title' => 'eCommerce'))
                          );
                          
    $default_action 'Dashboard';

    function 
    execute($___file$___vars) {
        foreach (
    $___vars as $___key => $__value) {
            $
    $___key $__value;
        }
        include(
    $___file);
    }

    $action = isset($_GET['action']) && isset($valid_actions[$_GET['action']]) ? $_GET['action'] : $default_action;
    $path dirname(__FILE__) . '/Actions/' $valid_actions[$action]['file'];
    if (!
    is_readable($path)) {
        die(
    'Error');
    }

    execute($path$valid_actions[$action]['vars']);

    ?>
    Come puoi vedere, supporta infinite pagine ed infinte variabili personalizzabili per ogni pagina SENZA dover richiedere ALCUN intervento alla logica applicativa.

    Hai scritto con questo ti saluto e interrompo ma ...

  8. #18
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    eh beh se mi si attacca con delle boiate.....rispondo

    se tu sei convinto che la mia soluzione vada bene solo pe run sitarello di 5 pagine amen non vorrei turbare il sonno del sommo filippo


    infine...alla fine hai rimodellato tutto l'array...io aggiungo solo una variabile

    ora finisco la 5 pagina del sito
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  9. #19
    Originariamente inviato da ciro78
    infine...alla fine hai rimodellato tutto l'array...io aggiungo solo una variabile
    Si, certo, aggiungi una variabile ed un case OGNI volta che aggiungi una pagina. Un sito con 100 o 1000 pagine lo gestisce veramente bene la tua soluzione, proprio scalabile, non c'è che dire.

    L'array può essere sostituito con un database o qualsiasi altro repository di informazioni centralizzato. Anche incrementando il numero di pagine/variabili, NON si deve cambiare una sola riga di codice.

    Se poi sei certo che questa sia una soluzione illogica, inutile ed inutilizzata e ritieni sia preferibile modificare la logica applicativa ogni volta che devi aggiungere una nuova pagina, apri google e studiati il pattern MVC.

  10. #20
    Scusate se mi intrometto...ma secondo me non vi state capendo a vicenda.

    ciro78 io credo che hai ragione a dire che tra la tua soluzione e quella proposta, nonchè sostenuta da filippo.toso, non ci sia in fin dei conti tutto questo codice da aggiungere.

    Però filippo.toso sta parlando di un aspetto un po più particolare. Il codice proposto:
    codice:
    <?php
    
    $valid_actions = array(...);
    $default_action = 'Dashboard';
    
    function execute($___file, $___vars) {
        foreach ($___vars as $___key => $__value) {
            $$___key = $__value;
        }
        include($___file);
    }
    
    $action = isset($_GET['action']) && isset($valid_actions[$_GET['action']]) ? $_GET['action'] : $default_action;
    $path = dirname(__FILE__) . '/Actions/' . $valid_actions[$action]['file'];
    if (!is_readable($path)) {
        die('Error');
    }
    
    execute($path, $valid_actions[$action]['vars']);
    
    ?>
    è strutturalmente (e concettualmente) diviso in due parti:
    1) un contenitore di informazioni (l'array)
    2) il codice per gestire la richiesta

    questo forma la logica applicativa di questo codice.

    Ora questo significa che se il tuo "contenitore di informazioni" cresce/decresce tu non devi modificare il tuo codice (al massimo la funzione "execute()" per fargli leggere altre variabili) per farlo funzionare al meglio; mentre nel tuo codice le due parti sono fuse.
    Il codice di gestione della richiesta e l'informazione stessa sono mischiate...se tu avessi 1000 pagine e decidessi un giorno di dover introdurre una nuova variabile potrebbe esser necessario aggiungere questa variabile in tutti i "case" dello switch mentre nell'altro modo al massimo modifichi la funzione "execute".

    Detto questo si può affermare che il tuo codice non è facilmente scalabile quanto lo è l'altra soluzione.
    Administrator of NAMDesign.Net

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 © 2026 vBulletin Solutions, Inc. All rights reserved.