webForumDet fria alternativet

Skriva resultat i fil - går det? & Radiofråga

PHP

4 svar · 242 visningar · startad av aasah

Medlem sedan mars 20034 471 inlägg
Frågan#1

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.

  1. 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?

  2. 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.

  3. 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.)

Medlem sedan juni 20034 013 inlägg
#2

1. Med radio-buttons så heter alla knappar likadant, men de har olika värden:

<input type="radio" name="knapp" value="radio1">
<input type="radio" name="knapp" value="radio2">
<input type="radio" name="knapp" value="radio3">

$_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!

Medlem sedan mars 20034 471 inlägg
#3

Tackar! Följdfråga....

tydal skrev:

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

Medlem sedan juni 20034 013 inlägg
#4

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.

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...

Medlem sedan mars 20034 471 inlägg
#5

Tack, tydal! :)

253 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)