Som jag kan se så är det inget fel på din PHP-installation. Skriptet uppför sig precis som det ska. Vad du får är en varning om att din variabel inte är definierad eller initierad. Vad du kan göra är att kolla först om den finns:
Skulle du ha register_globals=On i din php.ini så går det bra att byta ut $_GET['visa'] mot $visa, men det är av säkerhetsskäl inte något som rekommenderas.
Den är på On och om jag sätter den på Off så funkar ej php för mig! Men allt funkar när jag använder koden du skrev! Har jag som jag skrev så blir det felmeddelanden!
Det jobbiga är att jag jämt får fel på andra phpscript som är rätt ju! Lite jobbigt!
Lite jobbigt med alla såna här felmeddelanden:
Notice: Undefined variable: NAM in FILEN.php on line XX
PHP godkänner en odefinierad variabel men är inte riktigt glad över det och sänder därför ut en notis om det, som ett litet tips om att man bör justera sitt skript lite.
Dessa notiser går att ta bort med en inställning i php.ini. I äldre php-versioner så var grundinställningen att inte visa notiser så det är därför du hittar en massa skript på nätet som ger dessa varningar.
För att skriva om din kod, skulle du kunna göra såhär:
<? if (isset ($visa) && $visa == "ja") { ?>
Ja
<? } elseif (isset ($visa) && $visa == "nej") { ?>
Nej
<? } else { ?>
Annat
<? } ?>
Att ändra i php.ini är inget jag rekommenderar på en utvecklingsdator, bättre att lära sig skriva "korrekt" kod. För det mesta handlar det om att lägga ett if(isset($variabel)) före. Annars ta en titt på error_reporting i php.ini. Tror för att få bort notiserna, ska du skriva error_reporting = E_ALL & ~E_NOTICE (tror jag). Har det själv inställt på E_ALL för att fånga upp alla "felmeddelanden".
Jag tycker det är bäst att satsa på "korrekt" kod. :)
När jag gjorde min senaste uppdatering av PHP så fick jag som grundinställning att inte visa notiser. Detta ändrade jag i php.ini, eftersom jag vill ha alla "felmeddelanden" (alltså på andra hållet). Jag har för mig att det före ändring stod som jag beskrev ovan, men jag minns visst fel.
Annars, om du kör PHP som modul så måste man starta om webservern för att de nya inställningarna i php.ini skall gälla.