Gå til innhold

CSV lagring/lesing script jeg snekkret sammen!


Anbefalte innlegg

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
Videoannonse
Annonse

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 :p), 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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...