Postet av: Svend Andreas Re: Problemer med gjestebok
Se kapittel 14.5.1 i boka (2. utgave). Her står løsningen:
Sitat fra boka:
14.5.1 Håndtere blanke linjer når informasjon lagres på fil
Problem: Hilsener i en gjestebok lagres på en tekstfil med en linje per besøkende.
Av og til blir det satt inn blanke linjer, og det er vanskelig å finne feilen.
Løsningsstrategi: Dersom du lagrer det som brukeren skriver inn direkte på filen,
vil det bli problemer når brukeren trykker enter i en tekstboks og sender over informasjonen.
Da mottas nemlig et tegn for linjeskift, og når det skrives til fil uten
videre, betyr det at en ekstra linje opprettes. Du må enten fjerne alle forekomster
av \r\n eller omgjøre disse:
$fp = fopen("gjester.txt", "a+");
$linje = $_GET['navn'] . "***---***";
$linje .= $_GET['hilsen'] . "***---***";
$linje .= $_GET['www'] . "***---***";
$linje = str_replace("\r\n", "<br>", $linje);
fwrite($fp, $linje); //skriver strengen til fil
fclose($fp);
Merk: Tegnet for linjeskift er forskjellig i ulike operativsystem:
– Mac bruker \r
– Unix/Linux bruker \n
– Windows (og DOS) bruker \r\n
Som standard vil alle nettlesere bruke Windows-varianten, uansett om operativsystemet
som brukes er Linux, Mac eller Windows. Derfor må du erstatte \r\n for
å lykkes i dette tilfellet.
Se også: Kapittel 8.3.1. Dokumentasjon av str_replace().
| |