Hej.
Försöker lära mig php. Har skaffat mig boken "Webbprogrammering med PHP" skriven av Viktor Jonsson. Nu har jag kört fast. Jag har skrivit följande kod:
det är en inställning i php.ini tror jag. Jag hjälpte min kompis genom att skicka min php.ini fil till honom och då försvann felmeddelandet. Leta lite i php.ini men ändra inget om du inte är säker på vad det är!!
Du har antagligen de globala variablerna satta till 'Off' i din php.ini fil (de är default satta till det).
För att komma åt variabler som du skickar via formulär måste du använda:
$_GET['variabelnamn'] (om du använder method="get") eller
$_POST['variablenamn'] (om du använder method="post") eller
$_REQUEST['variabelnamn'] (som du kan använda i vilket fall)
Alltså i ditt fall
echo "Du heter ".$_GET['namn']." ";
echo "och din favoritfärg är ".$_GET['farg'];
Det här kan funka:
• Leta reda på php.ini-filen
• Leta upp raden: display_errors = On
• Ändra den till Off. ;)
Nu vill jag protestera lite. Så där kan man göra om sidan ligger ute på en webserver, men i utvecklingsläge är det mycket lämpligare att skriva sin kod så det inte blir några notiser/varningar/felmeddelanden.
När man använder en variabel utan att den är definierad så sätter PHP den till 0 (noll) om det är ett tal eller "" (tom sträng) om det är en sträng. Samtidigt skickas en notis/varning ut om att det är lämpligt att definiera sin variabel innan man använder den. Mitt råd är att följa vad PHP säger.
Vill du kolla en variabel som kommer från ett formulär eller url så titta på vad GrodanBoll skrev annars kan man göra så här:
if (isset($namn)) echo "Du heter $namn ";
eller
if (!isset($namn)) $namn = "";
echo "Du heter $namn ";
<?php
$tal = 11;
if ($tal = $odef_var){
// gör något
}
// eller
$tal2 = $tal + $odef_var;
// så sätts $odef_var till 0.
echo "odef_var =". $odef_var;
?>
Klumpigt uttryckt av mig. Temporärt i satsen sätts den till, eller rättare sagt används den som 0 (noll). Eftersom den fortfarande inte är definierad så finns variabeln inte, och allt börjar om igen nästa gång den dyker upp. Om det rent tekniskt är på det sättet vet jag inte, men så funkar det praktiskt. Är, som du kanske förstår, ute på litet djupt vatten här, eftersom jag aldrig använder odefinierade variabler.
Sedan upptäckte jag en viss brist på likhetstecken i min if-sats. Ska naturligtvis vara: