49 votes

Paramètres GET dans l'URL avec CodeIgniter

Je sais que codeIgniter désactive les paramètres GET par défaut.

Mais si tout est fait en POST, n'êtes-vous pas ennuyé par les demandes de renvoi de données si vous appuyez sur la touche retour après la soumission d'un formulaire ?

Cela m'ennuie, mais je ne suis pas sûr de vouloir autoriser GET uniquement pour cette raison.

Est-ce un problème de sécurité si important que d'autoriser également les paramètres GET ?

0 votes

À partir de CodeIgniter 2.x, les paramètres GET sont désormais les suivants activé par défaut.

59voto

Jelani Harris Points 594

Lorsque j'ai commencé à travailler avec CodeIgniter, le fait de ne pas utiliser GET m'a également déconcerté. Mais j'ai ensuite réalisé que vous pouvez simuler des paramÃ?tres GET en manipulant l'URI à l'aide de la fonction intégrée Classe URI . C'est fantastique et cela améliore l'apparence de vos URL.

Ou si vous avez vraiment besoin que les GETs fonctionnent, vous pouvez mettre ceci dans votre contrôleur :

parse_str($_SERVER['QUERY_STRING'], $_GET); 

Ce qui remettra les variables dans le tableau GET.

1 votes

Oui - avec la façon dont CodeIgniter gère les URL par défaut, les segments supplémentaires dans l'URI agissent comme des paramètres pour les méthodes de votre contrôleur.

11 votes

Cette méthode fonctionne si vous passez à $config['uri_protocol'] = 'PATH_INFO'] ; sinon ?foo=bar&baz=meh se transformera en /foo/baz.

1 votes

Je suis en train de créer une application Facebook et je prévois de m'abonner aux mises à jour de Facebook prises en charge par l'API graphique. Cela nécessite le paramètre GET. développeurs.facebook.com/docs/reference/api/realtime

12voto

Roberto Gerola Points 101

Cela a marché pour moi :

<?php
$url = parse_url($_SERVER['REQUEST_URI']);
parse_str($url['query'], $params);
?>

$params Le tableau contient les paramètres passés après le caractère ?

10voto

almix Points 150

Maintenant, cela fonctionne bien depuis CodeIgniter 2.1.0.

    //By default CodeIgniter enables access to the $_GET array.  If for some
    //reason you would like to disable it, set 'allow_get_array' to FALSE.

$config['allow_get_array']      = TRUE;

8voto

Sumit Points 41

Vous devez simplement l'activer dans le fichier config.php et vous pouvez utiliser $this->input->get('param_name'); pour obtenir des paramètres.

7voto

Benjamin Sussman Points 508

parse_str($_SERVER['QUERY_STRING'],$_GET); Cela n'a fonctionné pour moi qu'après avoir ajouté la ligne suivante à applications/config/config.php :

$config['uri_protocol'] = "PATH_INFO";

J'ai trouvé que les paramètres $_GET n'étaient pas vraiment nécessaires en CI, mais Facebook et d'autres sites jettent des paramètres GET à la fin des liens, ce qui aurait 404 pour mon site CI ! En ajoutant la ligne ci-dessus dans config.php, ces pages fonctionnent. J'espère que cela aidera les gens !

(de https://web.archive.org/web/20101227060818/http://www.maheshchari.com/work-to-get-method-on-codeigniter/ )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X