Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [php]gestione $_GET

  1. #1

    [php]gestione $_GET

    Qualcuno mi spiega (a parole) un buon sistema x gestire parametri $_GET???

    io parto dalla root che è sempre la index.php e mi serve un sistema di "smistamento" dei valori di $_GET.. qualcuno conosce qualche tutorial o magari sà cosa bisogna cercare x questo???

    oppure mi spiega come partire.. io ho cominciato cosi:
    Codice PHP:
    $url_array explode("/"$_SERVER['PHP_SELF']); 
    Xò non sò come continuare.. Ho valori certi e valori che cambiano..
    tipo:
    ?action=valore

    Io sò x certo ke avrò action ma in base al valore lo devo appunto "smistare" nelle varie classi, funzioni ect ect

    Mariii mi perdo.. Qualcuno ha capito qualcosa???
    Questa volta, più che un voto.. è favoreggiamento.

  2. #2
    non ho capito molto bene...tu vuoi prendere il valore delle variabili che hai in GET?


    se sì, basta che fai
    Codice PHP:
    $action=$_GET["action"]; 

    magari con un po' di controllo sui dati per sicurezza ( vedi su php.net funzioni come htmlentities, mysql_real_escape_string, trim, stri_tags e chi più ne ha più ne metta )





    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  3. #3
    Ciao grazie x la risposta..

    Allora si, infatti a pensarci bene sulla index posso solamente controllare che i valori che passano siano veramente i valori che mi aspetto.. infatti avrò sempre un url composto da:

    http://www.sito.it/index.php?action=...&option=valore

    ieri sono andato un pò avanti..
    Codice PHP:
    $url_array explode("/"$_SERVER['PHP_SELF']);

    $valori_validi_action = array("index""articoli""guide""forum""download""upload""commenta""cerca""statistiche""voto""messaggi""nolog""log");

    $x = array();
    foreach (
    $url_array AS $k=>$v) {
        
    $x[] = explode("="$v);
    }

    $valore_action $x[1][1];

    if (isset(
    $x[1]) && $x[1] != "" && in_array($valore_action$valori_validi_action)) {
        
    $_LINK['action'] = $valore_action;
        } else {
        
    header("HTTP/1.0 404 Not Found");
        exit;

    adesso devo pensare a come aggiungere anche il valore di option se è settato, cosi poi mi costruisco una stringa che posso passare ad una classe, poi sarà quest'ultima a decidere cosa fare in base ai valori..

    Può andare come ragionamento??? :master:
    Questa volta, più che un voto.. è favoreggiamento.

  4. #4
    no, ti strai complicando la vita per nulla.

    quegli explode e foreach non servono a niente!

    i valori che hai in querystring ( si chiama così la parte che nell'url segue il ? ) li recuperi tranquillamente dall'array globale $_GET.

    quindi se hai index.php?action=pippo&send=pluto&dest=paperino

    devi semplicemente fare:

    codice:
    $action=$_GET["action"]; // conterrà pippo
    $send=$_GET["send"]; // conterrà pluto
    $dest=$_GET["dest"]; // conterrà paperino

    stop!


    poi con quelle variabili puoi farci quello che vuoi, ma per recuperarle basta fare così.








    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    Tutta na macchinazione x niente..

    Allora spett ke mi riprendo con la mente.. ke problema avevo??

    Ah si.. io devo gestire la querystring xke come vedi solo x action= ho una sfilza di valori.. forse xò hai ragione te.. è abbastanza inutile quel che faccio io...

    $_LINK['action'] conterra sempre il valore in base alla querystring.. ($_LINK xke ho riscritto l'url)

    xò mi rompe dover fare magari:
    Codice PHP:
    swith($_LINK['action']) case.. {} case.. {} 
    Cazz non mi capisco piu..
    Questa volta, più che un voto.. è favoreggiamento.

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da Al_katraz984
    $_LINK['action'] conterra sempre il valore in base alla querystring.. ($_LINK xke ho riscritto l'url)
    eh!?!?!?!??

  7. #7
    Codice PHP:
    $_LINK = array(); //Da ora in poi $_GET[] diventerà $_LINK[]

    if (isset($_SERVER["PATH_INFO"])) {
        
    $separators = array("/","=");
        
    $collection $_SERVER["PATH_INFO"];

        
    $collection substr($collection,1);

        if (
    substr($collection,-1) == $separators[0]) {
            
    $collection=substr($collection,0,-1) ;
        }

        
    $collection strip_tags($collection);
        
    $collection escapeshellcmd($collection);
        
    $collection str_replace($separators[1], $separators[0], $collection);

        
    $collection explode($separators[0],$collection);

        foreach (
    $collection as $key=>$value) {
            if (!(
    $key%2)) {
                
    $_LINK[$value] = $collection[$key+1];
            }
        }

    Il mio $_GET si chiama $_LINK.. www.sito.it/index.php/action=valore

    $_LINK['action'] sarà uguale a valore non $_GET['action'] ma non è questo il problema..

    Devo gestire in modo ottimale la query string
    Questa volta, più che un voto.. è favoreggiamento.

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