 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
16.03.2004, 12:42
|
#1
|
|
TP-Senior
Registriert seit: Oct 2002
Ort: Steinach
|
Undefined offset
Ich habe mir folgendes Script erstellt um das Betriebssystem des Besuchers festzustellen.
Das erkennen, einfügen und zählen funktioniert.
Wenn ich die Funktion auf meiner Testumgebung Teste dann kommt die Fehlermeldung: Notice: Undefined offset: 1 in pfadzuderDatei.php on line 137
Auf meiner HP wo ich das Script in der Statistik einsetze kommt keine Fehlermeldung.
PHP-Code:
function usersystem()
{
global $t3;
$agent = getenv("HTTP_USER_AGENT");
###########################
# Betriebssystem ermitteln
###########################
$_systems = array(
"linux"=>"Linux",
"Windows NT 5\.0|Windows 2000"=>"WINDOWS 2000",
"Windows NT 5\.1|Windows XP"=>"WINDOWS XP",
"Windows NT 4\.0|Windows NT|WinNT4\.0"=>"WINDOWS NT",
"Windows 98"=>"WINDOWS 98",
"Windows 95"=>"WINDOWS 95",
"Windows 95"=>"WINDOWS 95",
"PPC Mac OS X"=>"MACOSX",
"PPC"=>"MACPPC",
"Mac_PowerPC"=>"MACPPC",
"mac"=>"MAC",
"sunos"=>"SUNOS",
"beos"=>"BEOS",
"freebsd"=>"FREEBSD",
"openbsd"=>"OPENBSD",
"irix"=>"IRIX",
"os/2"=>"OS/2",
"plan9"=>"PLAN9",
"unix"=>"UNIX",
"hp-ux"=>"UNIX",
"osf"=>"OSF",
"X11"=>"UNIX",
"Unbekannt"=>"UNBEKANNT",
);
foreach ($_systems as $system => $ossystem)
{
if (preg_match("=$system=",$agent, $ag_system))
{
$os = "$ossystem ".$ag_system[1];
$sql = mysql_fetch_row(mysql_query("SELECT * FROM $t3 WHERE system like '$os'"));
if($sql == 0) mysql_query ("INSERT INTO $t3 (id,system,hits) VALUES('', '$os', '1')");
else mysql_query ("UPDATE $t3 SET hits = hits+1 WHERE system like '$os'");
}
}
}
Geändert von maffy (16.03.2004 um 12:45 Uhr).
|
|
|
16.03.2004, 13:17
|
#2
|
|
TP-Supporter
Registriert seit: Jun 2003
Ort: Fürth
|
Also ein undefined offset ist normalerweise der Versuch auf ein Arrayelement, das nicht existiert zuzugreifen...
also immer mit isset() prüfen , ob die var auch existiert
und bei dir auf dem Server sind die Warnungen ausgeschaltet, deshalb werden dir die Warnungen lokal nur angezeigt.
aber lieber immer die Warnungen anzeigen, dann weiss man auch, dass man unsauber programmiert ;(
welches ist denn Zeile 137 ?
Geändert von CB.NET (16.03.2004 um 13:20 Uhr).
|
|
|
17.03.2004, 10:06
|
#3
|
|
TP-Senior
Registriert seit: Oct 2002
Ort: Steinach
|
Das komische ist, das ich den gleichen Code, aber mit verschiedenen Browsern, auch für das ermitteln des Browser verwende und er mir hier keine Fehlermeldung bringt.
PHP-Code:
if (preg_match("=$agents ([0-9]{1,2}).[0-9]{1,2}=",$agent, $ag))
{
$bs = "$agenten ".$ag[1];
------------------------------------------------------------------------------------
Zeile 137:
PHP-Code:
$os = "$ossystem ".$ag_system[1];
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 11:34 Uhr.
|
 |