php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Fehlermeldungen allgemein unterdrücken


 
skalu
27-05-2003, 23:02 
 
Hi Leute,

ich habe ein PHP-Projekt auf Apache entwickelt. Das funkt zwar auch auf IIS fehlerfrei, nur gibt er mir bei manchen Befehlen einfach eine Fehlermeldung aus, wie z.B. "Undefined Variable", obwohl genau das einen Zweck hat, dass diese Variable leer bleibt.

Kann ich diese Fehlermeldungen irgendwie unterdrücken? Ich weiß, dass ein "@" das kann, aber geht das vielleicht auch globaler? Ich möchte nicht alle meine Files durchsuchen... :)

Tnx 4 Help!

MfG Lukas

 
Abraxax
27-05-2003, 23:04 
 
in der php.ini die warnings ausschalten.

aber warum prüfst du nicht mit isset() ab, ob eine var existiert. das ist sogar sauberer.

 
TBT
27-05-2003, 23:06 
 
set_error_reporting(0);

 
skalu
27-05-2003, 23:07 
 
es geht um folgendes:

Ich habe einige Formularfelder. Davon sind ein paar Felder optional. Wenn ich nun in der Eintragsdatei die Eingaben abfrage, bzw. diese verwenden möchte, bekomme ich den Fehler "Undefined Variable".

Ist das unter "assert.warning"?

MfG Lukas

 
Abraxax
27-05-2003, 23:09 
 
unter ERROR_REPORTING müsstest du das finden.

aber ...if (isset($_POST["name"]) && trim($_POST["name"])!="") ....... ist meiner meinung nach die sauberste lösung

 
skalu
27-05-2003, 23:11 
 
Original geschrieben von Abraxax
php]if (isset($_POST["name"]) && trim($_POST["name"])!="") ....[/php]... ist meiner meinung nach die sauberste lösung

was ist dieses "trim"?

MfG Lukas

 
mrhappiness
27-05-2003, 23:11 
 
die php.ini oder ähnliches zu verändern is suboptimal imho, da du das ja wahrscheinlich auch irgendwann online stellen willst und da hast du (außer mit root-zugriff) keine zugriff auf die konfiguration

bleibt dir also nur noch die varinate das im skript zu lösen und da denke ich, ist die abfrage mittels isset, bzw. empty eleganter als einfach komplett alle fehler zu unterdrücken@skalu: trim (http://www.php.net/manual/de/function.trim.php)

@Abraxax
wenn das formularfelder sind, sind die doch immer gesetzt, d.h. er muss auff empty (http://www.php.net/manual/de/function.empty.php) prüfen

 
Abraxax
27-05-2003, 23:12 
 
Original geschrieben von skalu
was ist dieses "trim"?

http://de.php.net/manual/de/function.trim.php

 
skalu
28-05-2003, 00:07 
 
also set_error_reporting(0); funzt bei mir nicht. Da bekomme ich am Apache folgenden Fehler:


Fatal error: Call to undefined function: set_error_reporting() in /home/www/web/html/index/index.php on line 4

Habe den Befehl ganz oben unter einer Kommentarzeile eingefügt.

Greetz Lukas

 
Abraxax
28-05-2003, 00:12 
 
Original geschrieben von mrhappiness
@Abraxax
wenn das formularfelder sind, sind die doch immer gesetzt, d.h. er muss auff empty (http://www.php.net/manual/de/function.empty.php) prüfen[/edit] hab erst jetzt deinen edit gesehen.... :p

soviel ich meine, reicht das isset() aus. wenn ein feld nciht gefüllt ist, solle es in $_POST nicht als index auftauchen. zumindest habe ich die erfahrung gemacht. und ich prüfe meine dinge eh meist so...if (isset($_POST["name"]) && trim($_POST["name"])!="") ........ wie oben schon beschrieben.

 
mrhappiness
28-05-2003, 00:12 
 
heißt auch error_reporting, aber abgeshene davon würd ich mir die posts nochmal durchlesen und überlegen ob die anderen vorschlägenicht evtl. besser geeignet sind

 
Abraxax
28-05-2003, 00:13 
 
Original geschrieben von skalu
also set_error_reporting(0); funzt bei mir nicht. Da bekomme ich am Apache folgenden Fehler:verwende einfach isset() und empty(). s.o. damit fährst du eh besser... ;)

 
mrhappiness
28-05-2003, 00:16 
 
@Abraxax
von nem formular wird immer alles übermittelt außer du hast bei ner radiogroup/dropdownlist (select) keinen default-wert angegeben und der user hat da nirgendwo geklickt bevor er das dingen abschickt (textfelder u.ä. sind immer vorhanden)


und dann ist
if (isset($irgendwas) && trim($irgendwas)=='')das gleiche wieif (empty($irgendwas))

 
Abraxax
28-05-2003, 00:18 
 
wenn du meinst. :D

ich teste das mal bei gelegenheit aus. da könnte ich mir wieder etwas code sparen. nur empty() hat wohl noch einen nachteil. weiss nur nicht mehr welchen. daher habe ich das nie verwendet. ;)

 
mrhappiness
28-05-2003, 00:23 
 
empty gibt dir ne notice wenn das dingen !isset is (was hier ja ausscheidet denk ich)

wenn du noch nen nachteil hast immer her damit, man lernt ja nie aus *g*

 
Abraxax
28-05-2003, 00:26 
 
und genau wegen der notice nehme ich das wohl auch nicht. ;) ich will/muss immer mit isset() prüfen, weil ich den standard .....error_reporting = E_ALL & ~E_NOTICE.... bei mir so eingestellt habe .....error_reporting = E_ALL ...., damit ich auch wirklich sauber arbeite und auch keine warnings und/oder notices erzeuge. ;)

 
mrhappiness
28-05-2003, 00:30 
 
angeber ;) :D

P.S. Ich auch, wir sind ja beide gut *g*bei variablen die ggf.nicht da sind schau ich ja auch nach mit isset, aber waum soll ich bei variablen die auf jeden fall vorhanden sind, prüfen ob sie vorhanden sind und ob sie leer sind, wenn auch eine prüfung auf letzteres allein ausreicht?

 
Abraxax
28-05-2003, 00:37 
 
Original geschrieben von mrhappiness
bei variablen die ggf.nicht da sind schau ich ja auch nach mit isset, aber waum soll ich bei variablen die auf jeden fall vorhanden sind, prüfen ob sie vorhanden sind und ob sie leer sind, wenn auch eine prüfung auf letzteres allein ausreicht? schon klar. hier hatte ich meiner meinung nach das mal, dass nur empty() eben nicht reicht. daher mache ich IMMER isset() ;)

stimmt. wir sind beide gut. *g*

 
mrhappiness
28-05-2003, 00:41 
 
Original geschrieben von Abraxax
schon klar. hier hatte ich meiner meinung nach das mal, dass nur empty() eben nicht reicht. daher mache ich IMMER isset() ;)vorsicht ist der elefant in der mutter der porzellankiste oder wie? :)

 
Abraxax
28-05-2003, 00:44 
 
so kann man zumindest keine fehlermeldungen mutwillig verursachen.
vor allem, wenn andere an dem formular rumschrauben und gar einige felder entfernen. ;)


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:11 Uhr.