Wie HTTP_ACCEPT_LANGUAGE mit cgicc auslesen?



  • Tach Leute,

    ich breche mir gerade einen Ast ab bei dem Versuch die HTTP_ACCEPT_LANGUAGE Variable mittels cgicc auszulesen.

    Bisher versuchte ich schön nach Anleitung:

    Cgicc cgi;
    const CgiEnvironment env = cgi.getEnvironment();
    
    cout << env.alleMethodenProbiert();
    

    Alle Methoden des Objekts "env" halfen nicht weiter. Wie finde ich welche Sprache der Browser wünscht?

    Besten Dank!



  • Oh shit! Das hätte nach "Webzeugs" gemusst... Sorry



  • Dieser Thread wurde von Moderator/in Phoemuex aus dem Forum C++ in das Forum Webzeugs verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hallo,

    der Thread ist zwar schon älter, aber ich bin über Google hierher gekommen weil ich das selbe Problem hatte. Daher möchte ich hier einen Workaround vorstellen, damit andere User das Problem umgehen können.

    Ich hab diesbezüglich jetzt auch einen Bug auf Savannah geöffnet, weil CGICC derzeit einige CGI-Umgebungsvariablen schlichtweg nicht unterstützt. Das kann man schön an der Implementierung in CgiEnvironment.cpp sehen:

    cgicc::CgiEnvironment::readEnvironmentVariables(CgiInput *input)
    

    Nun zum Workaround. Du kannst über die Standardfunktion getenv() aus der stdlib.h bzw. cstdlib nach der Umgebungsvariable suchen, weil jedes CGI-Programm direkten Zugriff auf diese Variablen hat:

    char *value = getenv( "HTTP_ACCEPT_LANGUAGE" );
    

    Den Tipp zum Workaround habe ich übrigens hier gefunden:
    http://www.myext.cn/cpp/25612.html


Anmelden zum Antworten