Undefined index?

emonem

Erfahrenes Mitglied
Hi,

ich habe auf meiner Page ein Webstatistic tool
installiert. Den einzelnen Unterseiten habe ich, wie in der Installations-readme angegeben, folgenden PHP Code hinzugefügt.
PHP:
<?
				require("../webanalyse/include/stats_main.inc");
				$stats = new init(true, '../webanalyse/'); 
				?>

Die Page wird bei Concept69 gehostet und alles funktioniert.
Die Zugriffe werden aufgezeichnet.

Jetzt hab ich dieses Statistic tool für eine andere HP verwendet welche bei Greatnet
gehostet wird. Allerdings bekomm ich dort eine Fehlermeldung ausgegeben wenn ich die
Seiten aufrufe.
PHP:
Notice: Undefined index: UID in /home/www/web124/html/webanalyse/include/stats_main.inc on line 22

Notice: Undefined index: HTTP_REFERER in /home/www/web124/html/webanalyse/include/stats_main.inc on line 26

Warning: Cannot modify header information - headers already sent by (output started at /home/www/web124/html/_flash/index.php:8) in /home/www/web124/html/webanalyse/include/stats_main.inc on line 71
Die Pfadangeben im Code sind richtig. Kenn mich mit PHP nicht sonderlich gut aus um
eine Information aus der Meldung herauszulesen.

Was muß ich tun damit es auch auf diesem Webspace funktioniert.

Danke und Gruß
 
Hallo,

das liegt daran, dass dieses Webstatistikpaket wohl nicht sonderlich sorgfältig programmiert wurde. Umgehen kann man das ganze, indem man die Fehlermeldungssensibilität von PHP heruntersetzt, z.B. durch error_reporting(E_ALL ^ E_NOTICE);.

Grüße,
Matthias

edit:
tobee hat gesagt.:
Ich glaube das hat was mit den register_globals zu tun.
Dein Skript möchte nämlich den $_SERVER['HTTP_REFERER'] wissen, aber es ist nicht vorhanden.
Das Vorhandensein von $_SERVER['HTTP_REFERER'] hängt nicht von der Einstellung register_globals ab. Eher das Vorhandensein von $HTTP_REFERER.
 
Matthias Reitinger hat gesagt.:
Umgehen kann man das ganze, indem man die Fehlermeldungssensibilität von PHP heruntersetzt, z.B. durch error_reporting(E_ALL ^ E_NOTICE);.
Sorgfalt beim Lesen zahlt sich doch manchmal aus.
 
Ok, jetzt hab ich
diesen Schnippsel in meinem Code eingefügt aber ich bekomme weiterhin zwei von den anfangs drei
Fehlermeldungen angezeigt.

PHP:
Notice: Undefined index: UID in /home/www/web124/html/webanalyse/include/stats_main.inc on line 22

Warning: Cannot modify header information - headers already sent by (output started at /home/www/web124/html/_flash/index.php:8) in /home/www/web124/html/webanalyse/include/stats_main.inc on line 71

Wieso läuft das ganze aber bei dem anderen Provider problemlos? Hängt das von der eingetzten PHP Version ab? Läßt sich diese umändern oder irgendwie konfigurieren?
 
Lösch mal die html parameter von der datei die du includest:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>

<body>
</body>
</html>

der code der aufgelistet ist einfach löschen,
dass wars

[EDIT]

die fehlermeldung sagt außerdem noch den ursprung aus:
Code:
Notice: Undefined index: UID in /home/www/web124/html/webanalyse/include/stats_main.inc on line 22

Da die oben genannten HTML Tags löschen,
bitte nächstes mal die suchen Funktion besser nutzen, wurde schon mehr mals behandelt.

mfg,
cille
 
Zuletzt bearbeitet:
Hi,

es werden keine Seiten includet. Es handelt sich hierbei um eine swf welche in der index.php eingebunden ist.

Ich hab die Installationanweisungen befolgt die in der readme Datei der Statistikpaketes standen und auf dem anderen Webspace funktioniert es reibunglos mit genau den gleichen Pfaden wie auf dem jetztigen webspace.

Natürlich kann ich mit hilfe von error_reporting(0); die Fehlermeldungen auschalten aber es werden
dadurch trotzdem die Seitenaufrufe nicht aufgezeichnet.

Das kann doch nur etwas mit den Providereinstellungen zu tun haben.
 
Zuletzt bearbeitet:
Ein Hoster wird sich wohl nicht vorschreiben lassen wie er seinen Server zu konfigurieren hat..... es sei denn dass evtl. Vorschläge kommen die zur Sicherheit beitragen.

Wie Matthias schon sagt..... nicht sonderlich sorgfältig programmiert.
Z.b. habe ich beim überfliegen gesehen dass mal <?php, mal <? und mal <?= verwendet wird.
Auch dieses kann zu Problemen führen, siehe dazu short_open_tag.
Das Script hat bestimmt noch mehr "Problemfälle" in sich.

Dass das Script bei Dir funktioniert ist reines Glück..... und kann sich jeden Augenblick ändern, denn auch Dein Hoster kann ja jederzeit seine Konfiguration ändern.
Wenn also auch Du nicht plötzlich vor dem selben (oder gar komplett anderen) Problem stehen willst, gibt es eigentlich nur 3 Möglichkeiten:
1. Das Script entsprechend anzupassen, was bei (alles inkl.) fast 100 Dateien ein haufen Arbeit sein dürfte.
2. Das Script wegschmeissen und was anderes suchen.
3. Selbst ein Script schreiben.

Gruss Dr Dau

[edit]
@cille, den HTML-Code zu löschen ist keine sonderlich gute Idee..... ohne diesen ist die Seite nicht W3C-valide (falls sie es überhaupt ist).
Allein die Meldung dass der Header schon gesendet wurde (Warning: Cannot modify header information - headers already sent by.....) besagt nicht dass es am HTML-Code liegt.
Oder weisst Du wo sich der HTML-Code befindet? (muss sich ja nicht am Anfang der Datei befinden)
Ich vermute eher dass die Warnung eine Folge vom Hinweis (Notice: Undefined index: UID in.....) ist, denn diese Meldung wurde vor dem Header an den Browser gesendet.
Somit kommt es zwangsläufig zu der Meldung wegen dem Header. ;)
[/edit]
 
Zuletzt bearbeitet:
Setze doch einfach die Variablen selbst nochmal, bevor du das Skript einbindest, dann sollte alles seine Gang gehen,
PHP:
$HTTP_REFERER=$_SERVER['HTTP_REFERER'];
require("../webanalyse/include/stats_main.inc"); 
//...uswusf.
Was soll eigentlich UID sein....woher kommt es?
 
Zurück