Tom: Ewig refresh mit Meta :(

Hallo!
Ich habe ein kleines php gebaut, wo man per textfelder dazten in ein txt einträgt. Funktioniert soweit auch.
Ich hole mir die aktuellen Daten beim Aufruf der Seite in die textfelder um sie leichter ändern zu können. Funktioniert auch. Wenn ich aber nun die Sachen änder und es abschicke, dann läd er zwar die seite neu aber noch mit den ungeänderten daten (die neuen daten werden dennoch eingetragen). Wenn ich nun auf "Aktualisieren" klicke, dass sind die neuen Daten in den Textfeldern.

Ich wollte also ein Refresh einbauen, dass beim klicken des Buttons aktualisiert.
Bei Selfhtml hab ich das hier gefunden:
<meta http-equiv="refresh" content="5; URL=http://selfhtml.teamone.de/">

Wenn ich das aber ausführen will (egal wie hoch der content ist), dann führt er die Seite in eine Endlosschleife :(

Ich hätte zwar die Lösung, dass ich ein Teil meines PHP in eine andere Datei verlagere, aber das will mein Chef nicht ...

Habt ihr ne Lösung, wie mein PHP mir die aktuellen Werte angibt?

Gruß, Tom

  1. Hi Tom!

    Ich glaub ohne Auszüge aus deinem PHP Script könne wir hier wenig machen.
    aber bei jedem Aufruf des PHP Scripts sollte auch die aktuelle Zeit
    in die txt Datei eingetragen werden und danach ausgegeben
    werden.

    mfg
    Julius

    1. Hi!
      Hier ist mein Script:

      <?
      $dname="konzept.txt";
      $da=fopen($dname,"r");
      if($da)
      {
      $zei=fgets($da,255);
      $ab=explode(";",$zei);
      ?>
      <form name="form1" method="post" action="arbeit.php" onSubmit="return chkFormular()">
      <?
      echo "<table width='34%' border='0'>";
      echo "<tr>";
      echo "<td width='58%'><font face='Arial, Helvetica, sans-serif'>Zeitpunkt</font></td>";
      echo "<td width='42%'>";
      echo "<input name='zeit' type='text' id='zeit' value='$ab[0]'>";
      echo "</td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td><font face='Arial, Helvetica, sans-serif'>Anzahl der Firmen</font></td>";
      echo "<td><input name='firmen' type='text' id='firmen' value='$ab[1]'></td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td><font face='Arial, Helvetica, sans-serif'>Anzahl der Arbeitsplätze</font></td>";
      echo "<td><input name='anzahl' type='text' id='anzahl' value='$ab[2]'></td>";
      }
      echo "</tr>";
      echo "</table>";
      echo "<input type='submit' name='Submit' value='Abschicken'>";
      echo "</form>";
      echo "<p> </p>";
      echo "</html>";

      $msg="$zeit;$firmen;$anzahl\n";
      $datei="konzept.txt";
      $data=fopen($datei,"w");
      fwrite($data,$msg);
      fclose($data);
      ?>

      Vielen Dank für Eure Hilfe!
      Gruß, Tom

      1. UPPS!
        PS: Das Meta hab ich ausgetragen. Im Form steht das return chkFormular()... das ist nur ein javaScript zur überprüfung der Pflichtfelder...
        Danke!!
        Gruß, Tom

  2. Hallo!

    Hallo Tom.

    Ich hab mir das angesehen und dran herumgedoktort. Nichts. PHP weigert sich absolut zuverlässig in die Datei zu schreiben und sie danach in der neuen Version zu öffnen.

    Ich habs mit fflush($dateihandler) versucht, mit warten, verschiedenen Dateihandlern  und und. Ich habs aber nur unter Windows versucht. Auf einem anderen BS kann das anders reagieren.

    Ferner sind mir noch einige andere Sachen an Deinem Script aufgefallen. ich nehme an, das kam durch basteln.

    Nichtdeszutrotz: eine korrigierte, vielen Fehlern trotzende, lauffähige Version findest Du unter:

    http://fastix.dyndns.org/test/csv_schreiben.php (Mit Quelltext)

    Ich habs übrigens so gemacht, dass ich die Datei kurzerhand includiere und in einer Area anzeigen lasse.

    Was Du machen kannst:

    Überprüfe ob die $_GET['firmen'] oder $_GET['firmen'] gesetzt ist und sende nach dem Schreiben  der Daten ein:

    header("location: deinScript.php");
    exit;

    Wurden keine Daten gesendet (da kommt dann nichts...) , trägst Du nichts ein, sondern liest die Werte aus der Datei und zeigts das Formular.

    Fertig. Ist es eben ein "doppeltes Affenscript".

    Oder Du trickst und zeigst einfach die übergebenen Werte an. Das ist das allereinfachste.

    fastix®