Moin!
vermutlich ist aber die php.ini noch etwas verstellt. habe zwar mich an verschiedene anleitungen von wamp.de und php3.de gehalten, aber ich bekomme z.B. immer noch solche fehlermdelungen
Warning: Undefined variable: auswahl in
Diese Warnung ist eine gute Sache. Weil sie dich zur Entwicklungszeit davor bewahren soll, undefinierte Variablenwerte zu verarbeiten - entweder weil du unbekümmert programmiert hast, oder weil du dich vertippt hast.
Auch wenn du möglicherweise herausfindest, wie man diese Warnung abschaltet: Tu es auf deinem Testserver nicht! Warnungen sind deine Freunde und wollen beseitigt werden.
von scripten die im internet reibungslos funktionieren. könnte mir evtl. einer dies betreffende tipps geben oder vielleicht sogar sagen, welche php.ini einstellungen das sein könnten?
Konkret: Wenn du in deinem Skript das hier machst:
<?php
$a = "link 1 geht";
$b= "link 2 geht";
if ($auswahl == "1"): print "$a"; endif;
if ( $auswahl =="2"):print "$b"; endif;
print "$auswahl";
?>
Dann setzt du voraus, dass $auswahl irgendwo definiert wurde. Muß es aber nicht sein. Das ist dann unsauberer Programmierstil, den man nicht benutzen sollte.
Punkt 1: register_globals sollte auf off (das ist mittlerweile bei den meisten Servern so eingestellt, stell dich also drauf ein). Dann kannst du sowieso nicht mehr über einen Link "seite.php?auswahl=2" auf $auswahl zugreifen, sondern, mußt $_GET['auswahl'] (bzw. bei PHP 4.0.x $HTTP_GET_VARS) verwenden.
Und dann: Wenn eine Variable definiert sein kann, es aber nicht muß: Frage genau das ab.
if (isset($_GET['auswahl']))
{
//... Aktionen bei gesetzter Variablen
}
else
{
//... Aktionen bei nicht gesetzter Variablen
}
Und schon hast du keine Warnungen mehr.
Um dir noch den Vorteil bei Tippfehlern zu zeigen: Wenn du deine Variable $a, wie geschehen, zuerst definierst und mit einem Wert belegst, und dich dann irgendwann später beim Ausgeben oder benutzen der Variablen vertippst und beispielsweise $aa benutzt, statt $a, wird dir die Warnung sofort sagen, dass an der entsprechenden Stelle was nicht stimmt.
Diese Warnungen sind also eine gute Sache für den Entwickler. Ein gutes Programm produziert keine Warnungen (und ein sehr gutes Programm auch keine "Notice").
- Sven Rautenberg
"Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
(fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)