Url php con ?

di il
7 risposte

Url php con ?

Ciao a tutti, sto cercando un metodo da usare su xamp (quindi in locale) una pagina php con il ?

Esempio: localhost/TEST/test?azione=2.php. Pagina non trovata.
Questo funziona: localhost/TEST/test%3Fazione=2.php ma mi restituisce sempre con il %3F. io ho necessita di avere l'output in url con il ?. ho provato urlencode, strreplace. nessun successo.
il php si deve chiamare cosi (test%3Fazione=2.php) perchè' è l'eseguibile che lo richiama. Spero si fattibile grazie..

7 Risposte

  • Re: Url php con ?

    Ciao,
    da come intuisco... Vuoi fare un passaggio parametri via url o get!?

    Giusto?

    Ho capito bene....

    Ciao
  • Re: Url php con ?

    In realtà lesegubile usa il metodo post, ma per me va bene avere una risposta con il php tinominato cosi. Quindi quando il server punta su http://localhost va direttamente qui: /TEST/test?azione=2
  • Re: Url php con ?

    Syam ha scritto:


    Ciao a tutti, sto cercando un metodo da usare su xamp (quindi in locale) una pagina php con il ?
    [...]
    Non è chiaro cosa stai cercando di ottenere.

    Il carattere "?" negli URL viene utilizzato per separare l'indirizzo della pagina dall'elenco dei parametri che vengono passati alla pagina stessa.

    Se invece lo si vuole intendere come carattere letterale che fa parte dell'indirizzo della pagina stessa o del suo nome, e quindi non impiegarlo come carattere di separazione, allora esso dovrà essere espresso nella forma con il carattere "%" seguito dal codice del carattere.

    Se la tua pagina quindi si chiama letteralmente "test?azione=2.php", allora l'indirizzo (URL) da richiamare dovrà essere scritto come "test%3Fazione=2.php" (il "%3F" rappresenta il carattere "?"). Se invece si vuole usare il carattere "?" nell'URL, non potrai senz'altro avere una pagina che si chiama "test?azione=2.php" o comunque non potrai sperare di invocarla usando "?" nell'indirizzo senza decodificarlo come mostrato appena sopra.

    In linea generale, credo sarebbe più indicato che l'URL sia scritto qualcosa del tipo "test.php?azione=2", quindi usare "test.php" per indicare il nome della pagina nell'indirizzo, seguito dal carattere "?" che delimita l'elenco dei parametri seguito dal parametro "azione" con valore 2, che sarà possibile catturare direttamente nel codice della stessa pagina PHP come parametro per fornire le informazioni richieste o eseguire le operazioni previste per quel valore specifico del parametro "azione". Altre soluzioni sono da considerare accrocchi o più in generale non viabili perché fuori standard.

    Ciao!
  • Re: Url php con ?

    Grazie per la risposta, comunque io cerco di ottenere quel url con il ?
    perche' l'eseguibile non é mio e lui punta su questo /TEST/test?azione=2

    Ho provato a creare queste azioni per non avere questo problema ma mi risulta complicato, ho iniziato da poco con il php.
    Esempio, questo eseguibile punta a: /TEST/test quindi ?azione=2 come potrei crearlo?
    grazie.. ho cercato qui nel forumun ma non sapendo la terminologia corretta non trovo nulla al riguardo.
  • Re: Url php con ?

    Tipo questo:
    index.php

    <?php
    // include the base controller
    include 'Controller.php';

    // split the request URI into parts
    $request = explode('/', $_SERVER['REQUEST_URI']);

    $controller = $request[0] ?: 'home'; // home is default
    $action = $request[1] ?: 'index'; // index is default action
    $otherAction = $request[2] ?: null; // whatever you want

    // build the controller we need to instantiate
    $controller_name = ucfirst($controller) . 'PageController';

    // check it exists
    if (file_exists($controllerName)) {
    include_once $controllerName . '.php';
    } else {
    // some pretty 404 page
    die('404');
    }

    // instantiate the controller
    $controller = new $controller();

    // execute the action
    $controller->doAction($action, $otherAction);


    Controller.php

    <?php

    class Controller
    {
    public function doAction($action, $otherAction)
    {
    if (method_exists($this, $action)) {
    return $this->{$action}($otherAction);
    }

    die('404 - Page Not Found');
    }
    }
    HomePageController.php

    <?php
    class HomePageController extends Controller
    {
    public function index()
    {
    echo 'Hello World';
    exit;
    }
    }

    Quindi andando in http://localhos non mi esce hello world ma altri errori.
    qualcuno puo aiutarmi? se si puo creare un action? grazie
  • Re: Url php con ?

    Ciao,
    per prima cosa devi capire cosa restituisce $_SERVER['REQUEST_URI'].

    Esempio:
    Abbaimo un url così composto http://www.pippo.it/cartella/paperino.php?a=1&b=

    Con $_SERVER['REQUEST_URI'] ti restituirà /cartella/paperino.php?a=1&b=2

    Fai un debug del codice e vedi cosa succede. Scrivi codice e ok... Però se non vedi passo passo cosa succede, i valori delle variabili durante il debug ti sarà difficile capire soprattutto se hai appena iniziato.

    Comunque se fai un passaggio tramite get o post è molto più comodo.

    Se ci spieghi meglio cosa devi fare... Con un esempio pratico. È meglio...

    Ciao
  • Re: Url php con ?

    Syam ha scritto:


    l'eseguibile non é mio e lui punta su questo /TEST/test?azione=2
    Perfetto, quindi ciò significa che il tuo codice PHP che dovrai scrivere dovrà rispondere all'indirizzo TEST/test, punto e basta.

    Ciò si può configurare configurando nel modo corretto il server Web e utilizzando un framework che ipoteticamente lavora con il pattern MVC, o comunque mappando la richiesta sull'esecuzione di una pagina PHP che possa rispondere a quell'indirizzo tramite configurazione dello stesso server o dell'interprete PHP.

    La parte che comprende il carattere "?" e quello che segue è parametrica, quindi non va considerata in termini di mappatura dell'URL o di determinazione della pagina da eseguire: quella parte contiene i parametri della richiesta, quindi qualsiasi framework venga usato nella pagina PHP che gestisce tale richiesta sarà in grado di recuperare quell'informazione facendo il parsing del contenuto, identificando quindi i parametri e i relativi valori fornendoli contestualmente allo sviluppatore per utilizzarli come meglio crede.

    Syam ha scritto:


    Ho provato a creare queste azioni per non avere questo problema ma mi risulta complicato, ho iniziato da poco con il php.
    Non sono un esperto di pacchetti MVC basati su PHP, poiché non uso abitualmente questo linguaggio, ma se hai iniziato da poco non ti resta che documentarti in merito, approfondendo l'uso del framework che hai deciso di adottare, facendo delle prove e studiando come è possibile fare il "routing" dell'indirizzo nel formato che hai indicato (carattere "?" e parametri esclusi) per eseguire la tua pagina, e come gestire i parametri della richiesta.

    Ciao!
Devi accedere o registrarti per scrivere nel forum
7 risposte