frankhaugen Skrevet 15. juni 2011 Del Skrevet 15. juni 2011 Hvis noen har lyst til å være kritikker, så har jeg laget et script som lagrer verdier fra et sjema i en CSV-fil, og så lister det opp i en tabell. Kunne trengt litt tilbakeledinger på om dette er en bra eller dårlig måte å gjør dette på. <html> <head> <?php if (isset($_POST['navn'])) { $navn = $_POST['navn']; $postnummer = $_POST['postnummer']; $dato = $_POST['dato']; $csvData = $navn . "," . $postnummer . "," . $dato . "\r\n"; $fp = fopen("values.csv","a"); if($fp) { fwrite($fp,$csvData); fclose($fp); } } ?> </head> <body> <h2>Signer vår undersøkelse:</h2> <form action="index.php" method="POST"> Fullt Navn: <input type="text" name="navn" /><br /> Postnummer: <input type="text" name="postnummer" /><br /> Fødtselsdato(DDMMÅÅ): <input type="text" name="dato" /><br /> <input type="submit" value="Signér" /> </form> <hr /> <?php $row = 1; if (($handle = fopen("values.csv", "r")) !== FALSE) { echo '<table border="1">'; while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); if ($row == 1) { echo '<thead><tr>'; } else { echo '<tr>'; } for ($c=0; $c < $num; $c++) { if ($row == 1) { echo '<th>'.$data[$c].'</th>'; } else { echo '<td>'.$data[$c].'</td>'; } } if ($row == 1) { echo '</tr></thead><tbody>'; } else { echo '</tr>'; } $row++; } echo '</tbody></table>'; fclose($handle); } ?> </body> </html> krever, at denne koden ligger i "index.php" og at man har en "values.csv" i samme dir. Hvis noen har gode ideer til å forbedre dette så tar jeg gjerne imot feedback! (ja vet at en database er en bedre måte å lagre data, men dette er til et prosjekt hvor databaser IKKE kan brukes) -frank Lenke til kommentar
torbjørn marø Skrevet 16. juni 2011 Del Skrevet 16. juni 2011 Du bør validere dataene som sendes inn fra formet før du lagrer dem. Linjeskift bør f.eks. fjernes, og hvis data inneholder komma bør feltet wrappes med hermetegn for å ikke ødelegge CSV-formatet. Lenke til kommentar
frankhaugen Skrevet 16. juni 2011 Forfatter Del Skrevet 16. juni 2011 Du bør validere dataene som sendes inn fra formet før du lagrer dem. Linjeskift bør f.eks. fjernes, og hvis data inneholder komma bør feltet wrappes med hermetegn for å ikke ødelegge CSV-formatet. Jeg fant ut at jeg burde bytte til semikolon eller et annet mindre brukt tegn som | eller ¤, så minsker man faren for problemer ja. Linjeskiftstegnet må jeg ha, ellers blir alt på samme linje, (tok meg litt tid før jeg skjønnte hva som gjorde at tabellen bare hadde 1 linje ), har du en bedre løsning jeg kan dytte inn i kode så vil jeg høre, men å fjerne den funket ikke for min del. -frank Lenke til kommentar
torbjørn marø Skrevet 16. juni 2011 Del Skrevet 16. juni 2011 Info om håndtering av linjeskift i CSV finner du her. Men strengt tatt burde du nok bruke et biblotek for å håndtere (og passe på at du ikke ødelegger) CSV-formateringen. Antar PHP har noe innebygd for å skrive csv - tilsvarende fgetcsv som du bruker for å lese (jeg er ingen PHP-ekspert). Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå