Mischen von Query-Strings und URL-Segmenten

Jul 21, 2009 by Benjamin    No Comments    Posted under: Coding

CodeIgniter ist auf saubere URLs ausgelegt. Das heißt, dass Daten entweder per post durch Formulare oder per URL-Segment übergeben werden. Ein Zugriff auf das $_GET-Array ist in der Standardkonfiguration nicht vorgesehen. Dennoch kann es nötig sein eben dieses $_GET-Array zu nutzen. Eine Suchfunktion kann zum Beispiel ein Grund dafür sein. Zwar könnte der Suchstring auch mit post aus dem Formular übergeben werden, jedoch gäbe es keine Ergebnis-URLs, die z.B. vom Benutzer kopiert werden könnten. Entweder man kodiert den Suchstring mit base64 und nutzt diesen dann als URL Segment, so dass eindeutige URLs entstehen für alle Suchanfragen, allerdings ist diese URL dann natürlich nicht mehr lesbar. Will man lesbare URLs, muss man zwangsläufig auf die Get-Methode zurückgreifen.

Dazu setzt man in system/application/config/config.php den Wert von uri_protocol von AUTO auf PATH_INFO.

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

In den Controllern, in denen nun das $_GET-Array genutzt werden soll muss folgende Zeile in den Konstruktor:

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

Damit kann dann in diesen Controllern ganz normal auf $_GET zugegriffen werden. Dennoch bleiben auch die URL-Segmente aktiviert und können weiter genutzt werden.

Got anything to say? Go ahead and leave a comment!

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Mein Skillset

  • OOP
  • Java
  • Android
  • Facebook Entwicklung: FBML & Co.
  • PHP mit CodeIgniter, Zend Framework
  • Javascript / AJAX mit jQuery
  • MySQL
  • (X)HTML, CSS, XML, JSON etc.
  • SVN zum source code management (SCM)
  • Kontakt

    Mail: mail {at} benjaminmock.de
    Mobil: 0176 32077839

    Your Name(required) / Ihr Name (Pflichtfeld)

    Your Email (required) / Ihre Email (Pflichtfeld)

    Your message / Ihre Nachricht

  • Kategorien

    Benjamin Mock