Andreas: php nach asp umstellen

Hallo,
ich habe folgende php-Datei (Webstatistik von R. Hoven):
 $ret = time ();
 $ip = getenv ("REMOTE_ADDR");
 $ip_name = gethostbyaddr ($ip);
 $year = strftime("%Y", $ret);
 $month = strftime("%m", $ret);
 $montharr = array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
 $month = (substr($month,0,1)== "0") ? substr($month,1,1) : $month;
 $aktdatum = $montharr[$month-1]."-".$year;
 $filename1 = $aktdatum.".dta";
 $database = "stat/log/".$filename1;
 $accessdb = fopen($database , "a+");
 fwrite ($accessdb , $ret."*".$ip."*".$ip_name."*".$_SERVER['HTTP_USER_AGENT']."*".$site."*".$_SERVER['HTTP_REFERER']."*\n");
 fclose ($accessdb);

diese soll jetzt in einer ASP-Datei aufgerufen werden, was unter php so ging:
$site = "Seitenname";
include ("stat/pixel.php");

Muss obiger Code komplett nach ASP transferiert werden oder wie könnte man das sonst machen? Hab von ASP leider keine Ahnung.

Gruß Andreas

  1. Muss obiger Code komplett nach ASP transferiert werden oder wie könnte man das sonst machen? Hab von ASP leider keine Ahnung.

    Das ist leider die schlechtmöglichste Ausgangslage.

    Drei Ratschläge:

    • Prüfe, ob die Umstellung tatsächlich erforderlich ist oder ob "ein bisschen PHP" weiterlaufen darf
    • Versuche die PHP-Logik zu verstehen und in ASP umzusetzen
    • Call someone else   ;)
    1. Hallo,
      klar kann php auf dem Server laufen, aber wenn ich innerhalb von asp ein include auf eine php Datei mache gibts chaos.
      Den php Code versteh ich aber wenn ich nicht weiss wie ich das in asp realisiere nützt mir das in dem Moment nichts.

      Gruß Andreas

  2. Hallo !

    fwrite ($accessdb , $ret."*".$ip."*".$ip_name."*".$_SERVER['HTTP_USER_AGENT']."*".$site."*".$_SERVER['HTTP_REFERER']."*\n");

    Wenn ich das richtig gelesen habe sind das die beiden einzigen Variablen die aus der Kommunikation mit dem Browser interessant sind.
    Die kannst Du Dir auch unter ASP vom Request-Objekt holen; Doku siehe unten

    Bring am besten PHP im IIS zum Laufen.

    Du koenntest dann in ASP-JavaScript

    <script language="javascript" runat="server">
    //z.B. i.d. global.asa; die sollte im Stammverzeichnis der Anwendung liegen

    function Session_OnStart()
    {
        //debugger; // riefe den MS Script Debugger auf
        var http_user_agent = null; // Hier nicht null, sondern die Werte im Request-Objekt;
        var http_referrer = null; // Hier nicht null, sondern wieder die Werte im Request-Objekt;
        var xmldoc = new ActiveXObject("Msxml2.DOMDocument");

    var xmlhttp = Server.CreateObject("Msxml2.XMLHTTP");
        xmlhttp.Open("GET", "http://localhost/stat/pixel.php?HTTP_USERAGENT=" + http_user_agent + "&HTTP_REFERER=" + http_referrer, false);
    // Weiss nicht ob die Syntax o.k. ist; so aehnlich geht's aber
        xmlhttp.Send(xmldoc);
    // Koennte sein dass das ungueltige xmldoc Probelme macht - das musste wohl noch etwas patchen
    }
    </script>

    Im PHP Script verarbeitest Du dann die uebergebenen Variavblen weiter

    3 Anmerkungen

    1. ASP geht auch mit VB-Script, aber davon hab ich keine Ahnung
    2. "Msxml2.XMLHTTP" gibt's im Microsoft XML SDK ( musste selbst googlen - Der URL ist imho dynamsich ) Da gibt's auch Doku zu dem XMLHttp Objekt.
    3. Microsoft Script Debugger ist hilfreich; Download dito.

    Muss obiger Code komplett nach ASP transferiert werden oder wie könnte man das sonst machen? Hab von ASP leider keine Ahnung.

    Du meinst doch auch wirklich ASP (IIS) und nicht ASPX (.NET) ?

    Du muesstest unter der URL

    http://localhost/IISHELP

    Doku zum IIS und ASP finden. Rufs mam besten mit dem IE auf; der IIS hat eigene NT-Authentifizierungsmechanismen. ( Sicherheitsluecken beachten ! )

    Hab das jetzt nicht getestet, aber so in etwa muesste es klappen.

    Gruesse

    Holger

    Gruß Andreas

    1. Streiche

      var xmldoc = new ActiveXObject("Msxml2.DOMDocument");

      Setze

      var xmldoc = Server.CreateObject("Msxml2.DOMDocument");