php Fehlermeldung / ratlos
Jürgen
- php
0 Thomas Luethi0 Jürgen0 wahsaga0 Thomas Luethi
0 Jürgen
Guten Tag,
ich habe an den ganzen Morgen an einer Klasse gearbeitet und nun bekomme ich folgende Fehlermeldung. An der Funktion auf die sich die Fehlermeldung bezieht wurde aber nichts geändert.
Was ich überhaupt nicht verstehe is die Fehlermeldung von phpmyadmin.
Wieso kommt eine Fehlermeldung von diesem Programm, wenn ich meine homepage starte?
Warning: Failed opening './lang/english-iso-8859-1.inc.php' for inclusion (include_path='.;C:\php4-win32-STABLE-200307140830\pear') in C:\Programme\phpmyadmin\libraries\select_lang.lib.php on line 296
Undefined index: HTTP_X_FORWARDED_FOR in d:\dentona_new\classes\control\useradmin.class.php on line 58
function getClientIP()
{
if (!($ip = $_SERVER['HTTP_X_FORWARDED_FOR']))
{
if (!($ip = $_SERVER['REMOTE_ADDR']))
{
$ip = "Proxy";
}
$this->clientIP = $ip;
}
}
Danke
Hallo,
Warning: Failed opening './lang/english-iso-8859-1.inc.php' for inclusion (include_path='.;C:\php4-win32-STABLE-200307140830\pear') in C:\Programme\phpmyadmin\libraries\select_lang.lib.php on line 296
Da steht der eine Fehler.
Das Includieren funktioniert nicht.
Vermutlich ist der Pfad falsch.
Lies:
http://www.dclp-faq.de/q/q-fehler-include.html
Undefined index: HTTP_X_FORWARDED_FOR in d:\dentona_new\classes\control\useradmin.class.php on line 58
if (!($ip = $_SERVER['HTTP_X_FORWARDED_FOR']))
$_SERVER['HTTP_X_FORWARDED_FOR'] ist offenbar
nicht definiert.
Du solltest vorher pruefen:
IF (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{ /* Tue dies und das... */ }
Zum Vergleichen nimmt man _zwei_ Gleichzeichen.
http://www.php.net/manual/de/language.operators.comparison.php
if ($var1 == $var2)
{ /* tue dies */ }
Auf Ungleichheit prueft man mit !=
if ($var1 != $var2)
{ /* tue dies */ }
Gruesse,
Thomas
Hi,
ich denke Du hast nicht gelesen was ich geschrieben habe?
Was habe ich mit phpmyadmin zu tun? Die Fehlermeldung bezieht sich auf phpmyadmin, dass ich mal nach c: entzipped hatte.
Was hat aber meine lokale HP mit diesem Ordner zu tun?
Und mit dem http-x-forward hatte ich vorher nie Probleme!
Gruß
Jürgen
hi,
ich denke Du hast nicht gelesen was ich geschrieben habe?
ich denke, du hast die antwort nicht gelesen, oder nicht verstanden.
Was habe ich mit phpmyadmin zu tun? Die Fehlermeldung bezieht sich auf phpmyadmin, dass ich mal nach c: entzipped hatte.
Was hat aber meine lokale HP mit diesem Ordner zu tun?
woher sollen _wir_ das wissen? _dein_ script versucht offenbar die datei zu includen, die nicht gefunden wird.
Und mit dem http-x-forward hatte ich vorher nie Probleme!
dann hast du eben jetzt eins. wie du es lösen/umgehen kannst, wurde dir ja gesagt.
gruss,
wahsaga
Hallo,
Was habe ich mit phpmyadmin zu tun? Die Fehlermeldung bezieht sich auf phpmyadmin, dass ich mal nach c: entzipped hatte.
Was hat aber meine lokale HP mit diesem Ordner zu tun?
Also, nochmal von vorne:
Die Fehlermeldung lautet:
Warning: Failed opening './lang/english-iso-8859-1.inc.php' for inclusion (include_path='.;C:\php4-win32-STABLE-200307140830\pear') in C:\Programme\phpmyadmin\libraries\select_lang.lib.php on line 296
Offenbar wird also das Skript
C:\Programme\phpmyadmin\libraries\select_lang.lib.php
ausgefuehrt.
Wie ist die URL des Skripts, das Du aufrufst?
(http://localhost/...)
Was hast Du in dem Skript fuer Include-Befehle?
Welchen Webserver verwendest Du?
Wo ist Dein Document Root? (Bei Apache: siehe httpd.conf)
Hast Du PHP selbst installiert und konfiguriert,
oder hast Du irgendein "Paket" (WAMPP oder so) genommen?
Gruesse,
Thomas
Hi,
Offenbar wird also das Skript
C:\Programme\phpmyadmin\libraries\select_lang.lib.php
ausgefuehrt.
Wie ist die URL des Skripts, das Du aufrufst?
(http://localhost/...)
Benutze den Omnicron http server. gebe in der adressleiste schon immer "localhost" ein.
Was hast Du in dem Skript fuer Include-Befehle?
Habe keine includes in dem sriptt news.php das ich aufrufe.
Welchen Webserver verwendest Du?
Omnicron http.
Wo ist Dein Document Root? (Bei Apache: siehe httpd.conf)
d:\homepage
Hast Du PHP selbst installiert und konfiguriert,
oder hast Du irgendein "Paket" (WAMPP oder so) genommen?
Ist bei omnicon mit dabei.
Hi,
Problem gelöst.
Ein absolut mordsmäßig glücker Zufall hat meine 5 stündige Suche nach dem Problem gelöst.
Habe alle Klassen die von einander erben und aufeinander zufreifen auf den Kopf gestellt. Wäre fast wahnsinnig geworden.
Das Problem war.
Ich hatte vor 2 Stunden die config datei von phpmyadmin von meinem webspace provider heruntergeladen, um die configuration zu sichern bevor ich die neue Version von phpmyadmin dorthin kopiert habe.
Jetzt befand sich die config datei auf c:.
Immer wenn ich den localhost aufrief, der auf d:\homepage zeigt wurde die config datei aufgerufen. Das habe ich dadurch festgestellt, nachdem ich c:\programme\phpmyadmin einfach umbenannt habe. Konnte mir nicht erklären was das Datenbanktool mit meiner homepage zu tun hat.
Warum aber die config.inc.php aufgerudfen wird ist mir immer noch nicht klar.
Aber hätte ich nicht zufällig versucht den phpmyadmin Ordner umzubennenen, wäre dich wohl diese Woche nicht mehr auf die Lösung gekommen.
Weiß jemand was das passiert ist?
Danke
Hi,
Undefined index: HTTP_X_FORWARDED_FOR in d:\dentona_new\classes\control\useradmin.class.php on line 58
if (!($ip = $_SERVER['HTTP_X_FORWARDED_FOR']))
- $_SERVER['HTTP_X_FORWARDED_FOR'] ist offenbar
nicht definiert.
Du solltest vorher pruefen:
IF (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{ /* Tue dies und das... */ }
Ich teste doch bereits ob sie gesetzt ist.
$_SERVER['HTTP_X_FORWARDED_FOR']) wird in die Variable $ip kopiert und negiert.
- Zum Vergleichen nimmt man _zwei_ Gleichzeichen.
Ja, das weiß ich, aber was soll diese Information ?
Gruß
Jürgen
Hallo,
if (!($ip = $_SERVER['HTTP_X_FORWARDED_FOR']))
Ich teste doch bereits ob sie gesetzt ist.
Naja, hoechstens _sehr_ indirekt.
Du weist erstmal direkt zu, ohne zu wissen, ob die zweite Variable
existiert oder nicht.
Dann negierst Du das Ergebnis dieses Vorgangs.
Laut
http://www.php.net/manual/de/language.operators.assignment.php
gilt:
"Der Wert eines Zuweisungs-Ausdruckes ist
der zugewiesene Wert.
D.h. der Wert des Ausdruckes "$a = 3" ist 3."
Bei Dir laeuft es demzufolge so:
Mit
$ip = $_SERVER['HTTP_X_FORWARDED_FOR']
weist Du $ip den Wert einer offenbar nicht definierten Variable zu.
Der Wert des Ausdrucks ist also vermutlich auch
"undefiniert" oder eventuell FALSE.
Was die Negation (mit "!") von "undefiniert" ist, weiss ich nicht.
Das Gegenteil von FALSE waere natuerlich TRUE.
Ich faende es sauberer, klarer und sicherer,
ein isset() vorzuschalten:
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{ ... }
- Zum Vergleichen nimmt man _zwei_ Gleichzeichen.
Ja, das weiß ich, aber was soll diese Information ?
Ich dachte, dass Du damit:
if (!($ip = $_SERVER['HTTP_X_FORWARDED_FOR']))
schauen wolltest, ob $ip ungleich $_SERVER... ist, also
logisch gesehen das gleiche wie
if (!($ip == $_SERVER['HTTP_X_FORWARDED_FOR']))
bzw.
if (($ip != $_SERVER['HTTP_X_FORWARDED_FOR']))
Es ist ein beliebter Fehler (der auch alten Hasen mal passiert),
nur ein Gleichzeichen zu nehmen, wenn man eigentlich
den Vergleichsoperator meint.
Solange alles "gut geht", merkt man oft lange nichts davon...
Gruesse,
Thomas