PHP-Web-Stat Support Forum
https://www.php-web-statistik.de/cgi-bin/yabb/YaBB.pl
Board (Deutsch) >> Vorschläge & Codeschnipsel >> track.php - Parameter testen
https://www.php-web-statistik.de/cgi-bin/yabb/YaBB.pl?num=1284457408

Beitrag begonnen von hr3 am 14.09.10 um 11:43:28

Titel: track.php - Parameter testen
Beitrag von hr3 am 14.09.10 um 11:43:28
Gerade bei der Erstinstallation gibt es häufig Anlaufschwierigkeiten mit der Grundeinstellung, sodass die Statistik nicht aufzeichnet.

Wenn die Prüfungen laut sysinfo.php fehlerfrei sind, alle Einstellungen nach besten Wissen vorgenommen wurden und es dennoch nicht funktioniert, kann diese kleine Testroutine hoffentlich weiter helfen Fehler selber zu erkennen und abzustellen, bzw. wenn auch das nicht gelingt, dem Support hilfreiche Hinweise zu geben.

Den folgenden Code z.B. als track_parm_check.php im Statistikverzeichnis (in dem auch track.php steht) ablegen und die Seite aufrufen.

Um die Funktion ggf. zu verbessern oder möglicherweise in den Standard zu übernehmen bitte ich jeden um Rückmeldung über die Einsatzhäufigkeit, Erfahrungen damit und selbstverständlich auch Anregungen dazu bzw. Probleme dabei. Nur so kann dieses Forum wachsen und ggf. später andere von deinen Erfahrungen profitieren, so wie hoffentlich du von den Erfahrungen der Leute, die vor dir ähnliche Probleme hatten.


Code (]<?php    // 20.09.2010
include('config/config.php');
$f=0; define('_N',"\n"); define('_BRN','<br>'._N);

echo '<b><pre>$script_domain:    '.$script_domain.'</pre></b>'._N;
if (substr($script_domain,0,7)!='http://') {display_error($a.'beginnt nicht mit "http://"');}
if (substr_count($script_domain,'/')!=2) {display_error($a.'Anzahl "/"');}
if ((substr($script_domain,7)!=$_SERVER['HTTP_HOST'):

)&&(substr($script_domain,7)!='www.'.$_SERVER['HTTP_HOST'])) {display_error($a.'Name ungleich "'.$_SERVER["HTTP_HOST"].'"');}
checklink($script_domain);

echo '</font><b><pre>$script_path:      '.$script_path.'</pre></b>'._N;
if (substr(dirname($_SERVER['SCRIPT_NAME']),1).substr(dirname($_SERVER['SCRIPT_NAME']),0,1)!=$script_path) {display_error($a.'fehlerhaft');}
checklink($script_domain.'/'.$script_path);

echo '</font><b><pre>$exception_domain: ';print_r($exception_domain);echo '</pre></b>'._N;
foreach ($exception_domain as $value) {checklink($value);}
echo '<b><font color="'; if ($f==0) {echo 'green';} else {echo 'red';} echo '">'.$f.' Fehler festgestellt!</font></b>'._BRN;

echo '<pre><b>JavaScript & Image-Code</b>
&lt;script type="text/javascript" src="'.$script_domain.'/'.$script_path.'track.php?mode=js">&lt;/script&gt;
&lt;noscript&gt;&lt;img src="'.$script_domain.'/'.$script_path.'track.php?mode=img" border="0" alt="" width="1" height="1"&gt;&lt;/noscript&gt;</pre>'._N;

$x=$_SERVER['HTTP_HOST']; if (substr($x,0,4)=='www.') {$x=substr($x,4);}
if (substr_count($x,'.')>1) {$x1=substr($x,strpos($x,'.')+1);} else {$x1=$x;}

if ((in_array($x,$exception_domain))||(in_array($x1,$exception_domain))) {echo
'</pre><img src="'.$script_domain.'/'.$script_path.'track.php?mode=img&ref=Test&uuml;bergabe img" border="0" alt="" width="0" height="0">
<script type="text/javascript" src="'.$script_domain.'/'.$script_path.'track.php?mode=js"></script>'._BRN.
'<b><script type="text/javascript">document.write("JavaScript ist aktiviert. Es sollten 3 S&auml;tze geschrieben sein.");</script>
<noscript>JavaScript ist deaktiviert. Es sollten 2 S&auml;tze geschrieben sein.</noscript>
</b><a href="last_hits.php"> Statistik auf Eintr&auml;ge &uuml;berpr&uuml;fen!</a>'._BRN;
$_GET['mode']='img';
$_GET['ref']='Testuebergabe include';
$_SERVER['HTTP_REFERER']='http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; // site_name
error_reporting(0);
echo '<hr><font color="gray">alle folgenden Meldungen k&ouml;nnen ignoriert werden.'._BRN;
include('track.php'); 
} else {echo '<b><font color="red">Keine Test&uuml;bergabe m&ouml;glich, da aktuelle Domain nicht unter $exception_domain verzeichnet ist.</font></b>';}

function display_error($x) {global $f; $f++; echo "<font color='red'>&nbsp; - $x.</font>"._BRN;}
function checklink($loc) {global $a; $x=head($loc); if($x!=200) {display_error("$x $loc ist zur Zeit nicht verf&uuml;gbar");}}

function head($location) {
$location=trim(preg_replace("/^http:\/\//i","",$location));
$c=strpos($location,"/");
if(!$c) {$host=$location; $pfad="/";} else {$host = substr($location,0,$c); $pfad = substr($location,$c);}
$fp = fsockopen($host, 80, &$errno, &$errstr, 5);
if($fp) {
  fputs($fp,"HEAD $pfad HTTP/1.0\r\n");
  fputs($fp,"Host: $host\r\n");
  fputs($fp,"User-Agent: PHP/StatusCheck V0.2\r\n");
  fputs($fp,"\r\n");
  while(!feof($fp))
   {$c=fgets($fp,133);
   if(strlen($c)==2) break;
   if($verbose) echo htmlentities($c)."<br>\n";
   if(preg_match("/^HTTP.*? ([0-9]{3})/i",$c,$match))
   $status=0+$match[1];
   if(preg_match("/^Location: (.*)$/i",$c,$match))
   $newLocation=$match[1];}
  if(($status==302 || $status==301) && $newLocation) return(head($newLocation)); else return ($status);
  fclose($fp);} else {return 0;}}
?>


Führt zu folgender (Beispiel-)Anzeige ggf. mit Fehlerhinweisen.


Code (]$script_domain:    http://www.xxx.de

$script_path:      stat/

$exception_domain: Array
(
    [0):

=> xxx.de
    [1] => co.de
)

0 Fehler festgestellt!

JavaScript & Image-Code
<script type="text/javascript" src="http://www.xxx/stat/track.php?mode=js"></script>
<noscript><img src="http://www.xxx.de/stat/track.php?mode=img" border="0" alt="" width="1" height="1"></noscript>

JavaScript ist aktiviert. Es sollten 3 Sätze geschrieben sein. Statistik auf Einträge überprüfen!
_________________________________________________________________________________________________
alle folgenden Meldungen können ignoriert werden.
GIF89a���...

Titel: Re: track.php - Parameter testen
Beitrag von Reimar am 01.11.10 um 18:04:55
Hallo hr3,

wir haben uns Deinem "Support-Script" angenommen und wollen dies in die Statistik mit einbauen. Dazu haben wir aber noch eine Frage. Welche Methode hälst Du für sinnvoll ?:

1. Das Script wird mit ausgeliefert bei einer Installation. Durch eine Freischaltung innerhalb des Admincenters kann es dann auch von extern aufgerufen werden

2. Das Script wird als separater Download angeboten.

Viele Grüße
Reimar und Holger

Titel: Re: track.php - Parameter testen
Beitrag von hr3 am 01.11.10 um 19:11:43
Ich würde es gut finden, wenn es generell mit ausgeliefert wird und von Admin-Center ausgeführt werden kann. Dann können neue Anwender diese Art von Problem hoffentlich selber besser lösen.
Ein externer Aufruf muß nicht unbedingt möglich sein. Ich brauche es nicht um solche Fehler bei fremden Installationen zu erkennen. Dafür reicht sysinfo.php und falls es doch mehr seine sollte, die entsprechende Aussage des Anwenders zum Funktionstest.

Titel: Re: track.php - Parameter testen
Beitrag von hr3 am 07.01.11 um 11:02:39
Ab 4.4.00 im Standard.

PHP-Web-Stat Support Forum » Powered by YaBB 2.5.2!
YaBB Forum Software © 2000-2012. Alle Rechte vorbehalten.