Fehlerhaftes Auslesen der Variablen in PHP

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Fehlerhaftes Auslesen der Variablen in PHP

Postby Twix3k » 29. December 2002 15:57

Hallo zusammen,

bisher war ich immer sehr begeisterter Benutzer vom wampp2c, doch leider hatte ich sich meine Festplatte vor wenigen Tagen auf nimmer Wiedersehen verabschiedet. Nachdem ich endlich wieder alle lebenswichtigen Programme installiert habe, kam auch gleich der Apache dran.

Zunächst sah es ja sehr gut aus, aber als ich meine ersten PHP-Seiten öffnen wollte, wurde ich mit diesem Fehler überrannt:
Notice: Use of undefined constant X - assumed 'X' in ....Datei... on line Y

Das lustige ist, dass mir das bei jeder Variable passiert (Konstanten sind gar nicht definiert :? ). Bei den vorgefertigen PHP-Scripts (die beim Paket gleich mit dabei sind) tritt dieser Fehler nicht auf.

Als "Not-Problemlösung" hatte ich bereits den wampp13a installiert, leider mit gleichem Ergebnis :(

Weiß jemand Rat?

Vielen Dank & eine guten Rutsch :)
Twix, Benutzer von Win2000
User avatar
Twix3k
 
Posts: 120
Joined: 29. December 2002 15:48

Postby Twix3k » 29. December 2002 16:36

-> Hab noch ein paar Angaben vergessen :oops:
+ Apache 2.0.42
+ PHP 4.2.3
User avatar
Twix3k
 
Posts: 120
Joined: 29. December 2002 15:48

Postby Oswald » 29. December 2002 18:12

Hallo Twix3k,

wahrscheinlich ist die Ursache für die (Fehler-)meldungen ein nicht so sauber programmierter PHP-Code. Zwei Lösungsvorschläge bieten sich an:

1) PHP-Programm verbessen. Dazu müsstest Du mal eine Zeile hier posten, die die Fehlermeldung erzeugt.
2) Einfach die Fehlermeldungen ausschalten.

In der Regel wird meistens 2) gemacht, da sehr viele PHP-Programme nicht wirklich richtig sauber programmiert wurden und 1) viel zu aufwendig wäre. Nicht schön, aber so ist die Realität.

Guck mal in Deine Datei php.ini. Was steht da in der Zeite, die mit error_reporting beginnt?

Wahrscheinlich steht da in etwa sowas:

Code: Select all
error_reporting  =  E_ALL


Änder das mal in folgendes um:

Code: Select all
error_reporting  =  E_ALL & ~E_NOTICE


Damit sind dann die Fehlermeldungen bzw. Hinweise ausgeschaltet.

Viele Grüße und viel Erfolg,
Oswald
User avatar
Oswald
Apache Friends
 
Posts: 2718
Joined: 26. December 2002 19:51
Location: Berlin, Germany
Operating System: Linux

Postby Twix3k » 29. December 2002 18:44

Hallo Kai,

mag sein, dass mein Code nicht ganz sauber ist, aber bisher hatte der Apache auch nie gemekert ;)

Mit fiel gerade auf, dass dieser Fehler nur bei der Funktion mysql_fetch_array auftritt....
Code: Select all
$request = "SELECT * FROM ".$tabelle_news." ORDER BY date DESC LIMIT ".$news_limit;
$sql = mysql_query ( $request );

while ( $query = mysql_fetch_array ( $sql ) ) {
   include ( "news.php" );
}

Egal, welce Variable ich nun in news.php mit $query[X] aufrufe, er denkt immer, es sei eine undefinierte Konstante (siehe Fehlermeldung)...

So, nun habe ich wieder mal was zum Lachen festgestellt: Bei mysql_fetch_object geht es ohne Probleme.... Diese Funktion nutze ich aber nicht, da es mich leicht verwirrt ;)
Kann es sein, dass es eine fehlerhafte PHP-Version ist?

Grüße,
Twix
User avatar
Twix3k
 
Posts: 120
Joined: 29. December 2002 15:48

Postby Apache-User » 30. December 2002 17:02

hi Twix3k,

also das selbe prob hatte ich vor kurzen auch hab meine server mit einem neuen apache ausgestettet war auch die PHP vers 4.2.3 so nun gut und schön als ich mich dann an mein neues projekt sezte und anfing die scripts zu testen bin ich fast verzweifelt immer fehlermeldungen von zeilen die NICHT fehlerhaft waren so dann erst mal *grübel* ok hatte noch ne alte apache version als backup hab das verzeichniss PHP kopiert und in den neuen apache eingesezt also PHP 4.2.3 gegen PHP 4.0 seitdem geht alles ohne irgentwelchen skurielen meldungen
mfg
D.A.U.™
User avatar
Apache-User
 
Posts: 594
Joined: 30. December 2002 16:50
Location: anonym

Postby Twix3k » 30. December 2002 17:08

Gibt es irgendwo eine gute Anleitung, wie man die PHP-Version updaten kann? Ich hab von php.net das gesamte Paket downgeloadtet doch steh nun etwas hilflos da...
Ich habe es bisher zumindest geschafft, die php.ini aus dem win32-Ordner im Paket durch meine php.ini im alten php-Ordner zu ersetzen. Trotzdem noch 4.2.3... *confused*

Am Besten wäre es, wenn die Anleitung in Deutsch ist :)

Danke & Gruß,
Twix
User avatar
Twix3k
 
Posts: 120
Joined: 29. December 2002 15:48

Postby Apache-User » 30. December 2002 17:14

du musst nur den ordner PHP ersetzen!!!! also C:\wamppxxx\PHP wenn du version 4 willst kann ich sie dir zippen und zum download bereitstellen das du wieter vernünftig arbeiten kannst
mfg
D.A.U.™
User avatar
Apache-User
 
Posts: 594
Joined: 30. December 2002 16:50
Location: anonym

Postby Oswald » 30. December 2002 17:15

Hallo Twix3k!

Twix3k wrote:mag sein, dass mein Code nicht ganz sauber ist, aber bisher hatte der Apache auch nie gemekert ;)


Das der Apache bisher nicht gemeckert hat liegt wahrscheinlich (wirklich, wirklich, wirklich) daran, dass bei dem auch die Warnungen abgeschaltet waren. Bei manchen PHPs sind die Warnungen per Default abgestellt, bei manchen per Default nicht.

Ich wollte auch nicht Deinen Code kritisieren. ;)

Twix3k wrote:Egal, welce Variable ich nun in news.php mit $query[X] aufrufe, er denkt immer, es sei eine undefinierte Konstante (siehe Fehlermeldung)...


Vielleicht ist das der Fehler: Ich denke, es müsste $query['X'] oder $query["X"] heissen.

Gruß,
Oswald
User avatar
Oswald
Apache Friends
 
Posts: 2718
Joined: 26. December 2002 19:51
Location: Berlin, Germany
Operating System: Linux

Postby Twix3k » 30. December 2002 17:21

@Apache-Friend: Danke für das Angebot, aber das scheint nun nicht mehr nötig...
Außerdem möchte ich lieber immer die aktuellste Version bei mir haben :)

@Kai: Tja.... Dumdidum... *gg* Genau da liegt der Fehler. Die Anführungszeichen fehlen... Es ist nur wirklich sehr merkwürdig, dass gerade PHP 4.2.3 da meckert und 4.2.2 nicht... Soweit ich mich erinnern kann, wurden vorher auch alle Fehlermeldungen angezeigt... Naja, was solls... Muss ich mich wohl den Umständen anpassen :) Vielen Dank :)

Aber ist jemanden ein gutes Tutorial bekannt? Wenn ich, wie von Apache-Friend gesagt, den Ordner ersetzen will... Öhm... Welchen denn genau? Nur den win32 Ordner?

Grüße,
der ganz dumme Twix ;)
User avatar
Twix3k
 
Posts: 120
Joined: 29. December 2002 15:48

Postby Apache-User » 30. December 2002 17:25

Twix3k siehe oben da hab ich dir den pfad reingeschrieben und mein nick hier lautet Apache-User *ggggggg*
mfg
D.A.U.™
User avatar
Apache-User
 
Posts: 594
Joined: 30. December 2002 16:50
Location: anonym

Postby Oswald » 30. December 2002 17:27

Twix3k wrote:@Kai: Tja.... Dumdidum... *gg* Genau da liegt der Fehler. Die Anführungszeichen fehlen... Es ist nur wirklich sehr merkwürdig, dass gerade PHP 4.2.3 da meckert und 4.2.2 nicht... Soweit ich mich erinnern kann, wurden vorher auch alle Fehlermeldungen angezeigt... Naja, was solls... Muss ich mich wohl den Umständen anpassen :) Vielen Dank :)


Twix, ich vermute mal bei Deinem 4.2.2 waren wirklich nur die Warnungen schon ausgeschaltet. Weil: es funktioniert ja auch ohne Anführungszeichen. Es ist zwar nicht richtig und es gibt Warnugen, aber PHP ist so tolerant, dass es trotzdem funktioniert.

Sehr viele PHP-Programme sind so falsch programmiert und die Fehler tauchen dann plötzlich auf, wenn man den Provider, Apache oder PHP wechselt. Einfach nur deswegen, weil die Warnungen plötzlich nicht mehr ausgeschaltet sind.

Grüsse und schon man nen Guten Rutsch! ;)
Oswald
Last edited by Oswald on 30. December 2002 18:40, edited 1 time in total.
User avatar
Oswald
Apache Friends
 
Posts: 2718
Joined: 26. December 2002 19:51
Location: Berlin, Germany
Operating System: Linux

Postby Twix3k » 30. December 2002 17:28

Das kapiere ich ja, Apache-User (*ggggg* sorry ;) ), aber ich meine im ZIP-File... Dort sind so um die 10 Unterordner im Stammverzeichnis, darunter eben auch ein Ordner names win32.....
User avatar
Twix3k
 
Posts: 120
Joined: 29. December 2002 15:48

Postby Twix3k » 30. December 2002 17:49

Öhm, ich hab jetzt nochmal das gesamte Zip-Paket exthrahiert, aber das war wohl nix....

Ist es überhaupt normal, dass der ZIP-File 4,5 MB groß ist oder habe ich da was falsches downgeloadet?
User avatar
Twix3k
 
Posts: 120
Joined: 29. December 2002 15:48

Postby Mercury01 » 02. January 2003 23:58

Habe das gleiche Problem. Bekomme nur noch "undefined index:"
Hier die Zeile:
switch ($HTTP_GET_VARS['a'])
{
...

Ich versteh's nicht ...
Mercury01
 

Postby Guest » 03. January 2003 13:24

@Twix3k:
PHP 4.3.0 zip package [5,811Kb] - 27 December 2002 - ist raus (http://www.php.net/downloads.php); probiere es mal damit es auszutauschen. dabei solltest du dir aber vorher deine (eventuell modifizierte?) 'php.ini' vom apachefriends-bundle wampp 0.2.4c sichern / backen...

@Mercury01:
probiere mal alternativ die kleine 'wampp 0.13.4c small' mit 4.2.3 aus - bestehendes auch vorher saven...

---

für windows galt bei mir als allerletzter weg (meine konfig konnte ich so retten und neu umstricken):
Wenn es Probleme mit der PHP für Windows (PHP 4.2.2) gibt, downgraden auf PHP 4.0.6 - nur für localhost und nur zu testzwecken (keine Empfehlung !!) - das sollten aber nur versiertere Leute machen...

gruss
deep
Guest
 

Next

Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 41 guests