PHP-Variablen werden nicht automatisch gesetzt

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

PHP-Variablen werden nicht automatisch gesetzt

Postby crego » 05. November 2009 09:57

Hallo,

Unter Fedora 11 werden im Lampp 1.7.2 die Variablen im PHP 5.3.0 bei mir nicht mehr automatisch gesetzt.
Also wenn da der Quelltext steht:
Code: Select all
<?php
$out= 'Diese Variable wurde vorher nie verwendet: '.$nouse.'.' ;
ß>

Dann gibt PHP folgende Meldung bei Aufruf aus:
Code: Select all
Notice: Undefined index: errorignore in /opt/lampp/htdocs/user/new.php on line 2
.
Im Windows System und auf den nicht lokalen Webservern au denen ich das hoste läuft das problemlos. Wenn ich dann abr die Variablen mal vorher initialisiere geht alles:
Code: Select all
<?php
$nouse='';
$out= 'Diese Variable wurde vorher nie verwendet: '.$nouse.'.' ;
ß>

Genau dasselbe mit Arrays. Dort muss ich sogar noch, selbst wenn ich die als $arr= array(); initialisiere die Arrayfelder setzen damit es geht.
Wo ist der Fehler? Müssen Variablen in PHP 5.3.0 immer initialisiert werden und initialisieren sich nicht automatisch bei der ersten Verwendung?
Oder ein Einstellungsproblem?
:?:
Grüße
crego
--
greetings
crego
crego
 
Posts: 4
Joined: 07. March 2008 00:09

Re: PHP-Variablen werden nicht automatisch gesetzt

Postby Altrea » 05. November 2009 10:09

Hallo,

Die Notice die ausgegeben wird gehört zwar definitiv nicht zu dem Quelltext dadrüber...
aber du schreibst ja auch, dass dies auch bei array-Werten passiert, wozu die Meldung passen würde.

Wie du an der Meldung schon erkennen kannst, ist es "lediglich" eine Notice.
Du wirst also darauf hingewiesen, dass die Variable oder der array-index vorher nicht initialisiert wurde.
Demnach ist es kein Zwang, das initialisieren und die Prüfung darauf gehört aber zum sauberen programmieren dazu.
Je nach Verwendung von nicht initialisierten Variablen könntest du dir sogar Sicherheitslücken in deiner Anwendung öffnen.

Wenn du dir vorher nicht sicher bist, ob eine Variable zur Laufzeit gesetzt wird oder nicht, ist eine isset() oder empty() Prüfung anzuraten.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: PHP-Variablen werden nicht automatisch gesetzt

Postby crego » 05. November 2009 10:48

Hi,

Ja, sorry, da hatte ich eine solche Fehlermeldung aus einem Array genommen. Ist mir vorhin nicht mehr aufgefallen.
Aber die Sache ist, dass das Script halt nicht komplett durchläuft. Und bei allen anderen Servern schon, nur eben auf der benannten Umgebung nicht. Ich würde gerne die Initialisierung einiger Variablen auslassen, da ich den Inhalt manchmal nicht habe. Und extra eine isset() Abfrage würde ich auch ungern schreiben. Drum die Frage eben, ob das normal ist oder sich eventuell als Fehler unterdrücken lässt ohne den Code zu ändern. Insbesondere der Programmabbruch ist sehr unschön ;).
Danke erst mal.
Grüße
--
greetings
crego
crego
 
Posts: 4
Joined: 07. March 2008 00:09

Re: PHP-Variablen werden nicht automatisch gesetzt

Postby Altrea » 05. November 2009 11:14

Du kannst definieren, welche Fehlermeldungen du ausgeben möchtest und welche nicht.
Die PHP-Einstellung dazu heißt "error_reporting" und ist auf verschiedene Arten manipulierbar:
- direkt in der php.ini (hier findest du auch ein paar Beispiele, welche Werte dort möglich und sinnvoll sind)
- über eine .htaccess-Datei (php_value error_reporting XXXX) XXXX ist dabei der nummerische Wert, da die htaccess keine Kenntnis von den PHP-Konstanten hat
- in der php-Datei selbst mit der Funktion error_reporting().

Ein Programmabbruch durch Notices ist aber eigentlich unüblich. Was ich mir vorstellen könnte wäre, dass du versuchst Dateiheader-Metainformationen zu senden. Das funktioniert natürlich nicht, wenn vorher schon etwas ausgegeben wurde.

Ich rate dir abermals davon ab Fehler-/Hinweismeldungen zu unterdrücken. Du erschwerst dir damit lediglich die Fehlersuche und läufst gefahr dir durch unsaubere Programmierung Sicherheitslücken zu schaffen.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: PHP-Variablen werden nicht automatisch gesetzt

Postby Wiedmann » 05. November 2009 13:56

Im Windows System und auf den nicht lokalen Webservern au denen ich das hoste läuft das problemlos.

Aber auch nur eher zufällig. (jedenfalls kannst du dich nicht darauf verlassen)

Bei Windows kannst du zudem keinen aktuellen XAMPP für Windows meinen...

Müssen Variablen in PHP 5.3.0 immer initialisiert werden und initialisieren sich nicht automatisch bei der ersten Verwendung?

Das ist eigentlich seit PHP4 so der Standard. (bei PHP3 war das noch nicht der Standard)

Oder ein Einstellungsproblem?

Da gibt's ne Einstellung dazu. Siehe das PHP-Manual, Kapitel "externe Variablen".
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: PHP-Variablen werden nicht automatisch gesetzt

Postby crego » 05. November 2009 14:36

Danke schön.
Problem wird gelöst ;) . Ja es ist eine ältere Xampp Version.
--
greetings
crego
crego
 
Posts: 4
Joined: 07. March 2008 00:09

Re: PHP-Variablen werden nicht automatisch gesetzt

Postby crego » 05. November 2009 15:21

Hi,

Da waren zwei Probleme die nix iteinander zu tun hatte... Die Ordner waren noch nicht für den lampp Zugriff eingerichtet. Nun tut es. Entschuldigt Verwirrung gestiftet zu haben. Alles fein. :P
--
greetings
crego
crego
 
Posts: 4
Joined: 07. March 2008 00:09


Return to XAMPP für Linux

Who is online

Users browsing this forum: No registered users and 59 guests