Avatar billede gecko Nybegynder
12. februar 2004 - 18:57 Der er 12 kommentarer og
2 løsninger

Skrive til, og læse fra en tekstfil

Hejsa

Jeg vil prøve at lave en redigerbar rulletekst.

<marquee width="200"><p>Redigerbar Tekst</p></marquee>

Hvor man via en form skriver til en tekstfil og herfra henter teksten ind i <marquee> i en ny fil.

Hvordan gør jeg det?
Avatar billede terrak Nybegynder
12. februar 2004 - 19:04 #1
Har du erfaring med PHP, og kun mangler en idé til hvordan det kan laves, eller søger du en fuldstænding løsning?

Hvis man ser på pointene ude, må man vel gætte på det sidste :)
Avatar billede gecko Nybegynder
12. februar 2004 - 19:11 #2
Jeg har faktisk erfaring med php, men har været væk fra det alt for længe... nu kan jeg ik rigtigt få tingene til at virke - så en komplet løsning vil være rar.
Avatar billede faroe Nybegynder
12. februar 2004 - 19:13 #3
med på en lytter
Avatar billede terrak Nybegynder
12. februar 2004 - 22:36 #4
<marquee width="200"><p><?php

if (isset($_POST['addtext'])) {

$fil = "rulletekst.txt";
$tekst = $_POST['addtext'];


$tomfil = "empty";

if (!file_exists($fil)) {
die("Fejl: '$fil' eksisterer ikke!");
}

if (!file_exists($tomfil)) {
die("Fejl: '$tomfil' eksisterer ikke!");
}

if(copy($tomfil, "test") && unlink("test")) {
unlink($fil);
copy($tomfil, $fil);
} else {
die("Fejl: Kunne ikke kopiere eller slette testfil");
}

if (@$handle = fopen($fil, "a+")) {

fwrite($handle, $tekst);
fclose($handle);
}

}

echo file_get_contents("rulletekst.txt");
?></p></marquee>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

Ny tekst:<br>
<textarea name="addtext">
<?php echo file_get_contents("rulletekst.txt"); ?>
</textarea>
<p>
<input type="submit">
</form>

---

'rulletekst.txt' og 'empty' skal eksistere i mappen sammen med scriptet, med mindre du altså laver filnavne og/eller filstier om, hvilket der ikke skulle være noget problem i.
Avatar billede gecko Nybegynder
12. februar 2004 - 22:40 #5
Den 'empty' du nævner... hvad er det?
Avatar billede gecko Nybegynder
12. februar 2004 - 22:54 #6
nååå, det fandt jeg ud af --- jeg får en fejlmeddelelse: Fatal error: Call to undefined function: file_get_contents()
Avatar billede terrak Nybegynder
12. februar 2004 - 23:04 #7
file_get_contents virker kun i PHP 4+ (http://dk.php.net/file_get_contents)

Jeg fikser lige noget med fread..
Avatar billede terrak Nybegynder
12. februar 2004 - 23:09 #8
<marquee width="200"><p><?php

$fil = "rulletekst.txt";
$tomfil = "empty";

if (isset($_POST['addtext'])) {

$tekst = $_POST['addtext'];

if (!file_exists($fil)) {
die("Fejl: '$fil' eksisterer ikke!");
}

if (!file_exists($tomfil)) {
die("Fejl: '$tomfil' eksisterer ikke!");
}

if(copy($tomfil, "test") && unlink("test")) {
unlink($fil);
copy($tomfil, $fil);
} else {
die("Fejl: Kunne ikke kopiere eller slette testfil");
}

if (@$handle = fopen($fil, "a+")) {

fwrite($handle, $tekst);

fclose($handle);
}

}


if (@$handle = fopen($fil, "r")) {

$msgcontents = fread($handle, filesize($fil));

fclose($handle);

} else {
die("Fejl: Kunne ikke læse fra '$fil'");
}

echo $msgcontents;
?></p></marquee>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

Ny tekst:<br>
<textarea name="addtext">
<?php echo $msgcontents; ?>
</textarea>
<p>
<input type="submit">
</form>
Avatar billede gecko Nybegynder
13. februar 2004 - 01:06 #9
Hmmm... det virker stadig ikke. - gør jeg det mon forkert?

Jeg kopierer alt fra <marquee> til </marquee> i en fil: empty.php
resten til test.php
og laver rulletskst.txt

Lægger det i samme mappe - chmod'er det til 777

men der bliver ik skrevet til rulletekst.txt

i det første forslag kørte fejlmeddelelsen i empty.php, men nu sker der ik noget.
Avatar billede gecko Nybegynder
13. februar 2004 - 01:13 #10
hehe... DOH !!

Alt skal selvfølgelig være i én fil - men hvad er empty??? - der står den ikke eksisterer.

Jeg har prøvet at lave både en empty.php og en empty.txt

Puha, jeg føler mig dum
Avatar billede sukos Juniormester
13. februar 2004 - 09:04 #11
Du kan osse prøve dette:

<?php
$fil = $_SERVER["DOCUMENT_ROOT"] ."/marquee.txt"; //Fuld sti og navn på txt-fil

if(isset($_POST["tekst"])) {
$fp = fopen($fil, 'w+');
if($fp) {
chmod($fil, 0755);
fputs($fp, stripslashes(htmlentities($_POST["tekst"])));
    }
header("Location:". $_SERVER["PHP_SELF"] ."");
exit();
}

?>
<html><head><title>Marquee</title></head>
<body>
<?php
if(file_exists($fil)) {
echo"<marquee width=\"200\"><p>\n";
readfile($fil);
echo"\n</p></marquee>";
}
?>

<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<input type="text" name="tekst" size="32"> <input type="submit" value="Gem tekst">
</form>
Avatar billede sukos Juniormester
13. februar 2004 - 09:05 #12
Nåh, ja, dder mangler selvf. lige:

</body></html>
Avatar billede terrak Nybegynder
13. februar 2004 - 09:37 #13
empty skal ikke have nogen filendelse, dvs. at du opretter en tekstfil, omdøber den til empty, og husker at fjerne .txt.
Ellers kan du bare ændre indholdet af $tomfil i scriptet til empty.txt, eller noget andet.
Avatar billede gecko Nybegynder
13. februar 2004 - 10:46 #14
lækkert takker :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester