Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Programmierung und Datenbanken (https://boardunity.de/programmierung-datenbanken-f23.html)
-   -   Fehler nach Einrichtung von Apache (https://boardunity.de/fehler-einrichtung-apache-t1618.html)

macs 27.03.2004 18:09

Fehler nach Einrichtung von Apache
 
Hallo,

nach dem ich mein System neu gemacht habe und Apache und PHP neu eingerichtet habe, kommt folgender Fehler in jeder PHP-Datei:

Notice: Undefined index: action in C:\Apache\Apache2\htdocs\...

Notice: Undefined variable: blog_data in C:\Apache\Apache2\htdocs\...

das mehrmals und angepasst ...

es wird jedoch alles korrekt dargestellt.

Woran liegt das?

Philipp Gérard 27.03.2004 18:11

error_reporting("E_ALL ^ E_NOTICE"); in die erste Zeile und die Notices (Hinweise) sind weg. Programmierst scheinbar schlampig ;)

Edit: Oder in der php.ini das Level vom Error-Reporting nach o.g. Muster anpassen - dann ist es überall so.

macs 27.03.2004 18:27

Danke, ich habe es in der php.ini angepasst.

Inwiefern hat sowas mit dem eigenen Source-Code zu tun?

Philipp Gérard 27.03.2004 18:29

ein notice wäre z.b:

$array[wert], weil wert eigentlich $array['wert'] sein soll, hier aber auch $array[_wert_der_konstante_"wert_] sein könnte... oder wenn du auf variablen zugreifst, die nur eventuell gesetzt sind usw.

exe 28.03.2004 00:57

Zitat:

Zitat von Philipp Gérard
error_reporting("E_ALL ^ E_NOTICE");

Du hast da einen kleinen Fehler: error_reporting() erwartet einen Integer und keinen String, also weg mit den Anführungszeichen:

error_reporting(E_ALL ^ E_NOTICE);

Philipp Gérard 28.03.2004 01:14

Spielt keine Rolle; außerdem ist E_ALL ^ E_NOTICE auch kein Integer ;)

DaddyCool 28.03.2004 10:47

Zitat:

Zitat von Philipp Gérard
Spielt keine Rolle; außerdem ist E_ALL ^ E_NOTICE auch kein Integer ;)

E_ALL und E_NOTICE sind Konstanten welche Zahlen repräsentieren

E_ALL = 2047
E_NOTICE = 8

Im übrigen schreibt man Konstanten grundsätzlich nicht in " oder ', da sie dort nicht umgewandelt werden. Wäre ja auch noch schöner.

Siehe auch http://de.php.net/error_reporting und http://de.php.net/manual/de/language.constants.php

Patrick Gotthardt 28.03.2004 15:55

Off-Topic:
Zitat:

Klar, das Beispiel ist daemlich, dafuer wuerde jeder eine for Schleife verwenden.
Man merkt, dass du meinen Info-Lehrer nicht kennst. ;)
Bzgl. der for-Schleife hatte ich mich mit dem schon öfter in den Haaren... er bevorzugt sowas (in Java):
Code:

// Klassen- & Funktionsdefinition lasse ich mal weg
 int stop_variable = 0;
 while(stop_variable < 20) {
        // irgendein Code
        stop_variable++;
 }

Wobei die Variable am besten noch global definiert sein sollte... und zum Schluss wundert er sich, warum er eine Endlos-Schleife hat...


Zitat:

Spielt keine Rolle; außerdem ist E_ALL ^ E_NOTICE auch kein Integer
Doch ist es. ;)
Wenn ich mich nicht irre ist ^ sowas wie OR, AND oder XOR... bin mir nur grad nicht sicher... jedenfalls wird das in einen Integer umgewandelt... ^^"

Abgesehen davon ist das kein guter Rat... stattdessen sollte macs lieber ordentlich programmieren. Dann bleiben solche Fehler erspart. ;)

exe 28.03.2004 16:11

Warum nicht einfach einen Blick ins Manual werfen um zu sehen was das ^ denn eigentlich macht? ;)
http://www.php.net/manual/de/languag...rs.bitwise.php

DaddyCool 28.03.2004 16:11

^ steht für XOR und gehört zu den Bit-Operatoren

Wenn ein Bit in Variable1 oder Variable2 gesetzt ist, wird es im Ergebnis gesetzt. Ist das Bit in beiden gesetzt, fällt es weg.

Beispiel:
Code:

$x = 1 ^ 1;
$x = 0;

$x = 2 ^ 1;
$x = 3;

oder in diesem Fall

Code:

$x = 2047 ^ 8;
$x = 2039;


Patrick Gotthardt 28.03.2004 16:15

Hatte ich ja sogar mal recht. :)

Off-Topic:
@ciruZ: Hab ich ihm oft genug gesagt. ;)

DaddyCool 28.03.2004 16:49

Zitat:

Zitat von ciruZ
Ok, DaddyCool, ich hab zu lange nix mehr mit PHP gemacht *g*. Ich fang an, das alles durcheinander zu schmeissen :).

Das gibts aber nicht nur in PHP sondern in jeder Sprache, und wenn ich mich nicht irre funktioniert es in fast jeder Sprache gleich.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:53 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25