Jag har precis börjat titta på PHP. Efter att ha läst igenom del I + II av manualen på php.net har jag fortfarande vissa frågor.
Finns det någon funktion som kollar om något val gjorts i en "radio-button-väljare" eller måste man gå igenom alla svar och kolla om just den är vald? Eller vet man vad värdet blir om ingen valts så man kan kolla tex: $_POST["radio1"] == "" eller NULL eller dylikt?
Går det (och i så fall hur) att skriva resultat ("highscorelista") till en fil på nätet? Sidan skulle ligga i samma katalog på samma server som php-skriptet i så fall.
Om detta går, går det att skriva till en fil som inte är läslig för alla?
Tacksam för svar...
(Jag kan programmera diverse vanliga språk, men just på skriptfronten är jag ett blåbär.)
$_POST['knapp'] får något av värdena radio1 till radio3 beroende på vilken man valt. Har man inte valt något så finns inte variabeln $_POST['knapp']. Det kan du kolla så här:
if (!isset($_POST['knapp']))
Utropstecknet betyder ju "inte", så den här if-satsen blir sann om ingen radio-button har valts.
2. Ja, det går. Du använder funktionen fopen för att öppna/skapa en fil och sedan fputs eller fwrite för att skriva till den.
3. Ifall den måste ligga i samma katalog så får du göra den till en php-fil och stoppa all information i kommentarer, så här:
<?php /*
Här lagrar du all information.
*/ ?>
Filen är ju visserligen läsbar, men eftersom php-skriptet inte skriver ut något så kommer man bara få upp en tom sida!
1. Har man inte valt något så finns inte variabeln $_POST['knapp']. Det kan du kolla så här:
if (!isset($_POST['knapp']))...
Varför funkar då följande:
if ($_POST['knapp'] != radio1 && $_POST['knapp'] != radio2 && $_POST['knapp'] != radio3) {....
Om $_POST['knapp'] inte existerar i det läget, varför får jag inte fel då? Jag kan väl inte använda variabler som inte finns... eller kan jag det php?? :o :q
Nu existerar visserligen variabeln $_POST, det som inte finns är indexet 'knapp' i arrayen.
Man får inget fel i php när man använder en variabel eller refererar till ett index som inte finns. Däremot får du en varning, men standardinställningen kan vara att den sortens varningar inte ska visas på sidan.
Du kan använda funktionen error_reporting överst på sidan för att ange hur pass mycket fel/varningar du vill ska visas:
error_reporting(E_ALL); // visar alla fel och varningar.
På http://se.php.net/error_reporting ser du vilka nivåer som finns. Sätter du den till E_ALL så borde du få en varning om att indexet inte finns...