Populera .txt-fil från hemsida

Tråden skapades och har fått 9 svar. Det senaste inlägget skrevs .
1

Hej,

Ska hjälpa några polare med att uppdatera sin grupps hemsida. Eller rättare sagt, jag ska ge dom ett sätt att lägga in egna nyheter. Sajten är utvecklad av en kille som dagligen jobbar med Flash, så siten blev sålunda Flash-driven. Men han har väldigt lite/ingen tid att underhålla siten, och tyvärr så blev det lite småkort om tid som han kunde lägga ner på att göra siten "användarvänlig" för gruppmedlemmarna. Så jag tänkte ställa upp och ge dom möjlighet att gå in på en php eller html sida på servern. Denna sida ska innehålla några fält som du kan fylla i, och som sedan vid tryck på "Spara" ska föra in den inmatade texten i .txt-filen.

Nyheterna ligger i .txt-filer på servern, och anropas från .swf-filen.

Några rekommendationer från kungarna här på 99mac skulle uppskattas. Hur bör jag angripa problemet? Jag vet att jag måste göra .txt-filen läs/skrivar av webbservern. Jag behöver dock råd på lite andra plan. Ni kanske kan tipsa om redan färdiga lösningar? De får vara hur beiga som helst. Bara det är funktionellt o enkelt. Eller så kan jag försöka fippla med en egen lösning. Ge dock gärna förslag på lämpligaste angreppssätt.

  • Medlem
  • Uppsala
  • 2006-11-30 10:00

Antingen kollar du upp om du inte kan justera någon del av flashsidan så den går mot en sql databas och läser in nyheterna, som läggs upp i databasen via en php sida eller liknande.
Annars är väl text filslösningen fungerande, men inte speciellt säkert eller pålitligt i scenariot då två st. admin är inne och ska lägga upp nyheter parallellt.

Jag skulle kolla upp hur mycket jobb det kan vara att göra en sql koppling i flash och göra ett "backoffice" gränssnitt i php för att lägga upp nyheterna.

Alterantivet annars är väl att konvertera hela sajten till ett öppet cms system för att på så sätt få maximal kontroll över innehållet, inget litet jobb men kanske något som kan vara bra att dra igång för inte hamna i liknande position när nästa svaghet hittas i sidans innehåll?

Låt mig omformulera, eftersom det går att missförstå.

Vad jag vill ha svar på: Hur populerar jag en text-fil som ligger på webbservern med mer text från ett webbgränssnitt. Det går att använda sig av PHP eftersom servern har PHP installerat.

Det finns tyvärr ingen större chans till att få mer tid av den ordinarie utvecklaren av flash-siten för tillfället, så jag tänker ställa upp och ge bandet en sida där dom kan mata in text, som då man trycker på "Spara" förs över till text-filen. Går detta göra? Kan man populera en textfil från en sida?

PS: Om jag försöker söka på t.ex. google så hittar jag bara information om tvärt-om metoder. Alltså populera fält i ett webbgränssnitt från textfiler.

  • Medlem
  • Uppsala
  • 2006-11-30 13:56

Nu hoppas jag inte att jag feltolkat det hela igen
i php koden ska följande göra rätt?

$temp=file_get_contents("fil.txt");
$temp.=$_POST["formulärData"];
file_put_content("fil.txt",$temp);

Detta skulle läsa in filen fil.txt, lägga till innehåller i formulärfältet till filens slut och spara ner det igen. Detta förutsätter att filen är skrivbar av webservern, OM webhotellet som sidan ligger på har gjort rätt ska det vara så per default annars måste man ändra rättigheterna på filen, men det borde inte vara några problem att kolla upp?

Ursprungligen av nubbe:

Nu hoppas jag inte att jag feltolkat det hela igen
i php koden ska följande göra rätt?

$temp=file_get_contents("fil.txt");
$temp.=$_POST["formulärData"];
file_put_content("fil.txt",$temp);

Detta skulle läsa in filen fil.txt, lägga till innehåller i formulärfältet till filens slut och spara ner det igen. Detta förutsätter att filen är skrivbar av webservern, OM webhotellet som sidan ligger på har gjort rätt ska det vara så per default annars måste man ändra rättigheterna på filen, men det borde inte vara några problem att kolla upp?

Tackar, ska testa det ikväll o se om jag kan lyckas fippla till nån lösning med detta.

PS: Ska den andra raden heta "$temp." (med punkten på slutet)?

Jag vet inte om detta är samma som HannesP menar, men jag hade gjort så att jag hade skapat en standard php+databas-gränssnitt för nyheterna som genererar en ny textfil när man uppdaterar databasen. Då kan man läsa in och redigera nyheter enkelt utan att behöva hitta nyheten i textfilen och modifiera den där.

  • Medlem
  • Simrishamn
  • 2006-11-30 14:25

Jag har förstått att du vill använda textfiler, men frågar ändå: kan du inte bara använda SQLite? PHP har inbyggda funktioner för att hantera SQL-databaser. Du kan - och bör - ha en PHP-intermediär mellan databasen och Flash-applikationen, så Flash-appet kräver väldigt lite ändring.

Ursprungligen av HannesP:

Jag har förstått att du vill använda textfiler, men frågar ändå: kan du inte bara använda SQLite? PHP har inbyggda funktioner för att hantera SQL-databaser. Du kan - och bör - ha en PHP-intermediär mellan databasen och Flash-applikationen, så Flash-appet kräver väldigt lite ändring.

Nej, jag vill inte använda text-filer. Men sajten är uppbyggd så... och flash-filen har jag varit in i och kollat i... men den är extraordinärt svulstig. Jag är rädd att jag kommer förstöra nått då jag går in o mecklar med den. Så jag tänkte att det skulle vara smidigast om jag löste det genom en "enkel" php-sida.

Hmm, om jag nu tolkat er rätt så ska jag göra en liknande lösning som denna:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transi...">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>test1</title>
</head>

<body>
<?
$temp_in=file_get_contents("daniel.txt"); 
$temp_ut=$_POST["textfalt"]; 
file_put_content("daniel.txt",$temp); 
?> 
<form id="form1" name="form1" method="post" action=""> 
<label>Skriv din text här:<br /> 
<textarea name="textfalt" id="textfalt" value=".$temp"></textarea> 
</label> 
<label> 
<input type="submit" name="Submit" value="Submit" /> 
</label> 
</form> 
</body> 
</html>

Men jag får det inte att fungera. Jag är medveten om att jag måste göra två if-satser för att kolla om det är första gången formuläret läses in, men det får bli en senare huvudvärk. Just nu så får jag inte detta att fungera. Får felmeddelande:

"Fatal error: Call to undefined function: () in /home/html/blablabla/temp/daniel.php on line 12"

file_put_content är en odefinierad funktion, dvs, funktionen finns inte. En sådan funktion skulle kunna se ut lite så här:

function file_put_content($filename,$newstuff){
$file = fopen($filename, "r");
$oldstuff = fread($file,filesize($filename));
rewind($file);
fwrite($file, $oldstuff.$newstuff); // eller tvärtom
fflush($file);
ftruncate($file, ftell($file));
fclose($file);
}

Sök annars på php.net. sök på en av funktionerna ovan, t ex fopen så hittar du länkar till de övriga.

Annars skulle du kunna ladda ner cutenews (som använder textfiler som databas. Artikeldatabasen hamnar i en fil, "news.txt" som du lätt skulle kunna parsa). Cutenews har en mycket bra admin med olika användarnivåer och du hittar det på cutephp.com

/ B

1
Bevaka tråden