Toon posts:

PHP Tijdelijke bestanden probleem

Pagina: 1
Acties:
  • 38 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb met php een textveld gemaakt. De ingevulde waarde van dit veld word na op een knop (verzenden) te hebben gedrukt naar een textbestand geschreven.

Daaronder heb ik geschreven wat er in dat bestand al staat.

Het probleem is dat wanneer de pagina word herladen niet de waarde in het textbestand blijft staan. Deze word onmiddelijk overschreven door de laats ingevoerde text die op die pc in dat textvak is ingevult.

Mijn conclusie is dan ook dat wanneer ik de pagina herlaad, er ook een post request word gedaan. Hierdoor word een tijdelijk bestand aangeroepen dat eerder in de pc stond in het bestand geschreven.

Hoe los ik dit probleem op, ik ben radeloos...Hieronder volgt de broncode_commentaar

bvd, Emiel

________________________________________________________________
<?php
# In dit gedeelte word de actuele datum aangegeven.
Echo date("j F Y");
# In dit gedeelte word het visuele gedeelte 'textvak + verzendbutton'.


?>
<form action="index.php" method="POST">
<input type="text" size=10 name="EersteElement">
<input type="Submit" value="Verzenden">


<?php
Echo "<BR>";0
if ($_SERVER['REQUEST_METHOD'] == "POST")
{
# Eerst moet je het naam van het bestand geven waar de gegevens uiteindelijk in moeten worden geschreven
# we noemen dat bestand output.txt
$tekst1 = $_POST['EersteElement'];
$file = "output.txt";
$file_open = fopen($file, "w+");
# Het bestand moet eerst worden geopend voordat het gelezen kan worden, de variabele $file hebben we in de eerste
# regel al een waarde gegeven namelijk output.txt

#Er zijn een aantal rechten die je het bestand kan geven bij het lezen van het bestand een aantal staan hieronder vermeldt.
# 'r+' - opent het bestand om te lezen en te schrijven en zet de cursor aan het begin van het bestand
# De nieuwste data komt dus als eerste in het txt bestandje te staan en de oudste aan het einde

# 'w+' - Deze opent het bestand om te lezen en te schrijven en maakt het bestandje leeg.
# de nieuwste data wordt komt dus als laatste in het bestandje te staan en de oudste aan het begin

# 'a+' - Opent het bestandje om te lezen en te schrijven, de cursor wordt aan het einde gezet zodat de nieuwe tekst achter de oude komt te staan.
$file_write = fwrite($file_open, $tekst1);
fclose($file_open);
echo "</form>";
}


Echo "In het bestand staat nu <BR>";
Echo "'" ;
# In dit gedeelte word het bestand output.txt geopent en word de inhoud op het scherm weergeven.
$file = fopen ("output.txt", "r");
$lines = fgets($file);
echo "$lines";

fclose ($file);

Echo "'" ;
Echo " geschreven<br><br>";
Echo "Typ 'start' om proces te starten<BR>";
Echo "Typ 'stop' om proces te stoppen<BR>";
Echo "Typ 'pauze' om proces tijdelijk te stoppen<BR><BR>";

________________________________________________________________

Verwijderd

We hebben [ php ] tags.

Zet daar je code eerst eens tussen, dan gaan we daarna wel lezen.

Edit: Ik ben het toch maar aan het lezen geslagen; Aangezien ik uit je post eigenlijk niet goed op kan maken wat de bedoeling is (zou je wat duidelijker kunnen zijn), zal ik het bij een opmerking over de code houden:

Commentaar in je code is goed (ik ben onder de indruk), maar je hoeft niet de handleiding over te gaan typen. Zoals over wat al die mode strings betekenen; dat kan een beetje programmeur zelf wel opzoeken, als hij het al niet weet. Zet in het commentaar liever waarom jij voor een bepaalde oplossing hebt gekozen, dan een opsomming van alle mogelijke oplossingen.

[ Voor 77% gewijzigd door Verwijderd op 22-12-2004 12:14 ]


Verwijderd

ja kan na dat de post is weg geschreven met header naar de pagina linken zodat de post niet meer aanwezig is dus:

http://nl.php.net/header

<?php
header("Location: http://www.example.com/"); /* Redirect browser */

/* Make sure that code below does not get executed when we redirect. */
exit;
?>


Hoop dat dit werkt

Verwijderd

Verwijderd schreef op woensdag 22 december 2004 @ 12:09:
We hebben [ php ] tags.

Zet daar je code eerst eens tussen, dan gaan we daarna wel lezen.
verkeerde been?

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:44

Creepy

Tactical Espionage Splatterer

Misschien, maar daarnaast staat het gebruik van code tags niet in de FAQ / Quickstart ofzo. Iets waar de TS al meerdere keren op gewezen is. Evenals het groeten doen onder de post en nog wat andere basic GoT zaken.

[ Voor 25% gewijzigd door Creepy op 22-12-2004 12:21 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Dit topic is gesloten.