tillmarMedlem sedan sep. 2002928 inlägg Hej
Jag har nyligen börjar gå över på från asp till php.
Och sitter och kodar lite här och får detta fel.
Notice: Undefined index: sida in C:\Program\Apache Group\Apache2\htdocs\gb\action.php on line 9
Notice: Undefined index: sida in C:\Program\Apache Group\Apache2\htdocs\gb\action.php on line 18
Notice: Undefined index: sida in C:\Program\Apache Group\Apache2\htdocs\gb\action.php on line 23
<?php
session_start();
session_register('admingb');
//kolla så att man är inloggad
if ( $_SESSION['admingb'] == 'granted')
{
if($_GET['sida'] == "svara") //Rad 9
{
$id = $_GET['id'];
echo "Skriv ditt svar i rutan<br />";
echo "<form action=\"action.php?sida=svara1&id\"" . $id ."";
echo "<textarea name=\"svar\" cols=\"50\" rows=\"10\"></textarea><br />";
echo "<input type=\"submit\">";
echo "</form>";
}
else if($_GET['sida'] == "svara1") //Rad 18
{
//svarkoden
echo "svaret sparas";
}
else if($_GET['sida'] == "delete") //rad 23
{
echo "delete";
}
}
else {
echo "Du verkar inte vara inloggad";
}
?>
Fick även detta fel när jag körde denna kod
if ( $_SESSION['admingb'] == 'granted')
Men ordnade sig med session_register. Varför måste man använda detta?!
Mvh Pontus
GislavedMedlem sedan nov. 20041 740 inlägg Den säger helt enkelt att $_GET['sida'] inte är definierad någonstans. Du kan antingen definiera alla dina variabler & arrayer i början av filen, eller så kollar du om de finns över huvud taget.
if(isset($_GET['sida']) && $_GET['sida'] == "svara") ...
TroxyMedlem sedan mars 20041 505 inlägg Du får inget fel, utan en notis. En notis säger till om saker som eventuellt skulle kunna bli till fel. Det finns där för man lättare ska veta vad som händer. I det här fallet så försöker du kolla värdet på GET-variabeln "sida" fast den inte finns.
ASP är ett väldigt förlåtande språk som låter dig läsa värden från variabler även fast dom kanske inte existerar. PHP fungerar i stora drag på samma sätt, fast man får notiser om saker som man borde rätta till.
Om du exempelvis läser en GET-variabel så är det säkrast att först kontrollera om den ens existerar genom att använda sig av funktionen isset().
För att bli av med notiserna ovan så kan du exempelvis skriva såhär istället:
if ( isset($_GET['sida']) && ($_GET['sida'] == 'svara') )
tillmarMedlem sedan sep. 2002928 inlägg Aha då förstår jag!
Då har jag en liten fråga till bara.
Vad är skillnaden på att skriva
$_GET['sida'] == 'svara'
Och...
$_GET['sida'] == "svara"
Alltså ' ' eller " "
Har fått för mig att den tolkar den som två olika typer eller är jag hel ute och cyklar?
TroxyMedlem sedan mars 20041 505 inlägg