Navigate()



  • Hallo,

    kennt jemand folgendes Problem?
    Wenn man mit Navigate() php-Scripte aufruft, die einen link enthalten, der einen neue Seite ausserhalb der MFC-Anwendung öffnet sind die session-Variablen verschwunden.

    Vielleicht ganz normal, muss mich aber als php->C++ Um-und Einsteiger erstmal dran gewöhnen. session_start und das Registrieren von sessionvars im php-Script hilft jedenfalls nicht.
    Gibt es da einfache Abhilfe?
    Oder müssen alle Scripte im selben Fenster laufen.
    Ist gar eine MDI-Anwendung notwendig, damit auch neuen Browser-Fenster in derselben Anwendung geöffnet werden?
    Diese, sagen wir Hybrid-Umgebung von Scripting und Exe-Progis, ist für meine Zwecke einfach gnadenlos geil (sorry)

    Ach, wo ich schon mal hier bin: Glaubt ihr, es ist möglich, mit C++ irgendwie auf die Daten-Arrays einer php-Session (Intranet) zuzugreifen und diese zu setten und zu getten? Oder wäre das zuviel des Guten?

    Gruss
    koreson



  • Wenn Du mit CHtmlView o.ae. arbeitest, oeffnest Du eine Instanz des Internet Explorers pro CHtmlView o.ae. Objekt.

    Wenn Du Dir die IDispatch-Schnittstelle der in CHtmlView etc. verwendeten Browser-Komponente geben laesst, kommst Du an weitere Schnittstellen dran, die die Komponente unterstuetzt. Also z.B. IHtmlDocument2 usw., mit denen Du auf das Dokument zugreifen kannst.

    Parameter an PHP-Skripte kannst Du vom Browser aus nur ueber die URL bzw. POST-Variable uebergeben. Jede PHP-Skript-Anfrage (die Dir eine HTML-Seite zurueckliefert), stellt im Prinzip einen eigenen Programmaufruf dar. Manche Webserver unterstuetzen das Speichern von Sitzungsuebergreifenden Variablen. In jedem Fall aber kannst Du mit PHP Dateien oder Datenbanken schreiben und auslesen, um persistente Variable zu haben, die Du von mehreren Browsern aus benutzen kannst.

    Weiterhin kannst Du z.B. JavaScript einsetzen, um weitere Funktionalitaeten in Deiner Browser-Komponente hinzubekommen.

    Noch komfortabler wird es, wenn Du Browser, PHP, JavaScript und Java sinnvoll miteinander kombinierst.

    Oder Du nimmst JScript, ASP .NET und .NET.

    Die Moeglichkeiten sind schier endlos, jedoch wird es erst richtig flexibel, wenn Java oder .NET ins Spiel kommen.

    Es gibt auch noch die Moeglichkeit, eigene Browser- oder Webserver-Plugins zu schreiben, um noch mehr machen zu koennen.

    🙂



  • Hallo,

    Danke für die Ausführungen.
    Die IDispatch-Schnittstelle ist interessant.
    Ja, der eigene Browser ist es, der mich interessiert.
    hab auch schon einen geschrieben, allerdings kam dann das Problem mit den verlorenen session_vars auf neuen Seiten.
    Unsere Firma arbeitet im Intranet nur mit PHP-Scripten (derzeit ca. 400), die alles machen, vom Controlling, über die komplette Buchhaltung bis zu DATEV-Übertragung, Info-Management etc.
    Das ganze soll jetzt nicht mehr im IE ablaufen, sondern in einem eigenen Browser.

    Dann werd ich mal anfangen zu lesen ...

    Gruss und vielen Dank

    koreson



  • Denk daran, dass das Verwenden von CHtmlView etc. keinen eigenen Browser darstellt. Damit wird indirekt die Internet-Explorer-Komponente verwendet. Falls es darum geht, Sicherheitsluecken zu schliessen, ist das mit Sicherheit der falsche Weg.

    Auch kannst Du dann nicht MSHTML verwenden (eine der beiden DLLs, die zum Internet Explorer gehoeren, und die z.B. benutzt werden, wenn Du IHtmlDocument2 usw. verwendest).

    Falls Du wirkliche einen eigenen Web-Browser schreiben willst, solltest Du einen Blick auf die Webseites des W3-Konsortiums werfen: http://www.w3.org

    Dort findest Du die Spezifikationen fuer den HTTP-Standard, den HTML- und XHTML-Standard, sowie CSS und DOM, die Du womoeglich fuer einen eigenen Browser brauchen wirst.

    Mit CHtmlView usw. kannst Du lediglich den Internet Explorer in ein eigenes Programm packen, es stellt aber keinen neuen Browser dar.

    Dasselbe gilt, wenn Du z.B. die Gecko-Engine verwendest (bekannt von Netscape, Mozilla und Firefox).

    Notfalls sollte man, falls es um Sicherheit geht, SSL zur Verschluessung der Verbindung zum Server vewenden, statt einen eigenen Browser zu entwickeln.


Anmelden zum Antworten