Avatar billede tanzaweb Nybegynder
23. maj 2005 - 12:00 Der er 4 kommentarer og
1 løsning

Include, og $_GET mellem mapper

Hej Dennis

Hvordan går det hos dig?

Kan du hjælpe mig med et spørgsmål?

Jeg har nogle sider jeg vil lave noget statistik på og jeg har brugt følgende kode i bunden af de sider jeg ville se statistik fra:

<?php
define ("kundenr", "46927491");
define ("pageName", "Hjælp");
//define ("count", "statInsert.php");
include_once ("statInsert.php");
?>

Her indeholdt statInsert.php så:

<?PHP
include_once("cfig.php");

function WriteLog(){

if (isset($_GET['width']) AND isset($_GET['height'])) {
  // output the geometry variables
  $Display = $_GET['width'] ." x ". $_GET['height'];
} else {
  // pass the geometry variables
  // (preserve the original query string
  //  -- post variables will need to handled differently)

  echo "<script language='javascript'>\n";
  echo "  location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"
          . "&width=\" + screen.width + \"&height=\" + screen.height;\n";
  echo "</script>\n";
  exit();
}


    $kundeNr = kundenr;
    $pageName= pageName;
    $host = $_SERVER["HTTP_HOST"];    //outputs sitename.com etc
    $remoteIP=$_SERVER["REMOTE_ADDR"];
    $agent = $_SERVER["HTTP_USER_AGENT"];
    $query="INSERT INTO Data SET Dato_ind=now(), Kundenr=\"$kundeNr\", Host=\"$host\", Display=\"$Display\", Side_vist=\"$pageName\", Browser=\"$agent\", Dato_ud=now(), Ip=\"$remoteIP\" ";
    $results=mysql_query($query);
}
WriteLog();
$db->close;

?>

Dette satte alt men reloaded siden, og hvis filerne ikke var i samme mappe ville de også bare være tomme.

Så prøvede jeg i stedet med følgende:

<?php
$kundenr="46927491";
$pageName="Besøgenes Display";
include_once ("statInsert.php");
?>

<?PHP
include_once("cfig.php");

function WriteLog(){
if (!empty($_GET)) {
extract($_GET);
} else if (!empty($HTTP_GET_VARS)) {
extract($HTTP_GET_VARS);
}
if (isset($_SERVER['HTTP_REFERER']))
        $referer    = $_SERVER['HTTP_REFERER'];
    else
        $referer    = "-";
if (isset($_SERVER['HTTP_USER_AGENT']))
        $agent    = $_SERVER['HTTP_USER_AGENT'];
    else
        $agent    = "-";
if (isset($_REQUEST['pageName']))
        $pageName    = $_REQUEST['pageName'];
    else
        $pageName    = "-";
if (isset($_REQUEST['kundenr']))
        $kundenr    = $_REQUEST['kundenr'];
    else
        $kundenr    = "-";
if (isset($_REQUEST['users_resolution']))
        $users_resolution    = $_REQUEST['users_resolution'];
    else
        $users_resolution    = "-";       
       

    $host = $_SERVER["HTTP_HOST"];    //outputs sitename.com etc
    $remoteIP=$_SERVER["REMOTE_ADDR"];   
    $query="INSERT INTO Data SET Dato_ind=now(), Kundenr=\"$kundenr\", Host=\"$host\", Display=\"$users_resolution\", Refference=\"$referer\", Side_vist=\"$pageName\", Browser=\"$agent\", Dato_ud=now(), Ip=\"$remoteIP\" ";
    $results=mysql_query($query);
}
WriteLog();
$db->close;

?>

Det er så forløbig uden skærm opløsning, men med de andre variabler. Dog tager det ikke $pageName, og $kundeNr med over.
Samtidig tager den ikke $_SERVER['HTTP_REFERER']; med ind hvis den fil hvor <?php
$kundenr="46927491";
$pageName="Besøgenes Display";
include_once ("statInsert.php");
?>
Ligger er i en anden mappe.

Har i en ide til hvorfor den ikke tager det med over?


Mads Jensen
Avatar billede coderdk Praktikant
24. maj 2005 - 20:22 #1
function WriteLog(){
  global $kundenr; 
  global $pageName;
  /// resten af din funktion

Hvis $_SERVER['HTTP_REFERER'] er sat får du den med - Hvis du f.eks. går direkte ind på en side er den jo ikke sat - Du kan heller aldrig regne med at den er sat - Nogle antivirusprogrammer etc fjerner den header.
Avatar billede tanzaweb Nybegynder
24. maj 2005 - 21:10 #2
Men hvad kan man så gøre hvis denne $_SERVER['HTTP_REFERER'] ligger på et andet domæne på samme server og den bliver inkluderet på den side? hvordan får jeg den så med over?
Avatar billede coderdk Praktikant
24. maj 2005 - 21:44 #3
Den forstod jeg ikke, kan du forklare nærmere?
Avatar billede tanzaweb Nybegynder
24. maj 2005 - 22:11 #4
jeg har mit statistik script på et domæne lade os kalde det www.site_1.dk og et andet kaldet www.site_2.dk
på site_1.dk ligger et script som indsamler dataer fra de sider det er inkluderet på. (inklusiv http_referer) og bliver inkluderet således i bunden af en side:
<?php
define ("pageName", "Music Upload");
//define ("count", "statInsert.php");
include_once ("http://Statistik/statInsert.php");
?>

Hvis jeg så inkludere dette i på et andet domæne, men på samme server hvordan får jeg så alle variabler med over. Den sætter ip adresse, men sætter altid HOST som www.site_1.dk men skal jo helst læse det hele ind fra det andet domæne. som du ser herover
Avatar billede tanzaweb Nybegynder
14. februar 2006 - 11:50 #5
lukker spørgsmål
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester