aktualisieren
neXus
- sonstiges
Hallo,
Ich hab folgendes Problem:
ich hab mir ein gästebuch geschrieben und es funktioniert ganz gut soweit nur wenn man aktualisieren klickt dann fragt er ob ich das formular nochmal schicken will.. das will ich aba natürlich nicht.. Hat wer von euch eine idee wie ich das verhindern kann dass wenn man aktualisiert nicht abgefragt wird ob man das formular noch mal versenden will...??
mfg neXus
puts "Hallo " + gets.chomp + "."
?> neXus
=> Hallo neXus.
ich hab mir ein gästebuch geschrieben
In welcher Sprache?
Hat wer von euch eine idee wie ich das verhindern kann dass wenn man aktualisiert nicht abgefragt wird ob man das formular noch mal versenden will...??
In PHP kannst du einen Location-header schicken, wobei du hierfür aber wahrscheinlich noch die Ausgabepufferung benötigst, da kein Header mehr versandt werden darf, wenn bereits eine Ausgabe erfolgt ist.
Einen schönen Sonntag noch.
Gruß, Ashura
Tschuldigung hab ich vergessen das ganze ist in PHP programmiert (mit datenbank)
Wie genau soll das gehn???
mfg neXus
Γειά σου, neXus!
Wie genau soll das gehn???
Ganz einfach: Das Script, das den User-Input verarbeitet, sendet nichts anderes als einen Location-Header zu einer "harmlosen" Seite (z. B. der Seite, auf der die neuesten Gästebuch-Einträge zu sehen sind). Die "harmlose" Seite kann User dann beliebig oft neu laden, ohne etwas abzusenden.
Пока!
Sven aus Bonn
puts "Hallo " + gets.chomp + "."
?> neXus
=> Hallo neXus.
Tschuldigung hab ich vergessen das ganze ist in PHP programmiert (mit datenbank)
Gut, dann helfen dir meine Tipps.
Wie genau soll das gehn???
Du hast die von mir verlinkten Seiten gelesen?
Einen schönen Sonntag noch.
Gruß, Ashura
aus dem was da steht werd ich aba leida nicht schlau =)
wie genau sieht der code aus??
puts "Hallo " + gets.chomp + "."
?> neXus
=> Hallo neXus.
aus dem was da steht werd ich aba leida nicht schlau =)
So schwierig ist es doch gar nicht:
Am Anfang deines Dokumentes (unbedingt vor jeglicher Ausgabe) schaltest du die Ausgabepufferung ein:
<?php [link:http://de2.php.net/manual/de/function.ob-start.php@title=ob_start()]; ?>
Am Ende des Dokumentes platzierst du gleich die Funktion, die für die Ausgabe, Leerung und Beendigung der Ausgabepufferung zuständig ist:
<?php [link:http://de2.php.net/manual/de/function.ob-end-flush.php@title=ob_end_flush()]; ?>
Und nun kannst du bedenkenlos nach dem erfolgreichen Tätigen eines Eintrages folgendes notieren:
<?php [link:http://de2.php.net/manual/de/function.header.php@title=header]("location: http://".$_SERVER['HTTP_HOST']."/dein-gaestebuch-skript-oder-welche-seite-auch-immer.php"); ?>
Warum das $_SERVER['HTTP_HOST']? Nun, damit hältst du dein Skript relativ flexibel, da das Ziel eines Location-headers ein absoluter URI sein muss:
„Anmerkung: HTTP/1.1 verlangt einen absoluten URI inkl. dem Schema, Hostnamen und absoluten Pfad als Argument von Location:, aber manche Clients akzeptieren auch relative URIs.“
Nachvollziehbar?
Einen schönen Sonntag noch.
Gruß, Ashura
Γειά σου, Ashura!
Am Anfang deines Dokumentes (unbedingt vor jeglicher Ausgabe) schaltest du die Ausgabepufferung ein:
<?php [link:http://de2.php.net/manual/de/function.ob-start.php@title=ob_start()]; ?>
Am Ende des Dokumentes platzierst du gleich die Funktion, die für die Ausgabe, Leerung und Beendigung der Ausgabepufferung zuständig ist:
<?php [link:http://de2.php.net/manual/de/function.ob-end-flush.php@title=ob_end_flush()]; ?>
Wenn er sauber programmiert, hat er während der Verarbeitung keine Ausgabe und kann sich somit diese Ausgabepufferung sparen.
Пока!
Sven aus Bonn
puts "Hallo " + gets.chomp + "."
?> Arx
=> Hallo Arx.
Wenn er sauber programmiert, hat er während der Verarbeitung keine Ausgabe und kann sich somit diese Ausgabepufferung sparen.
Natürlich. Doch wenn dies nachträglich eingebaut wird, bleibt meist keine Wahl.
Einen schönen Sonntag noch.
Gruß, Ashura
Ich hab jetzt am anfang <?php ob_start();?> und am ende <?php ob_end_flush();?> geschriebn bekomm aba trotzdem noch die selbe meldung beim aktualisieren...
mfg neXus
puts "Hallo " + gets.chomp + "."
?> neXus
=> Hallo neXus.
Ich hab jetzt am anfang <?php ob_start();?> und am ende <?php ob_end_flush();?> geschriebn bekomm aba trotzdem noch die selbe meldung beim aktualisieren...
Du hast die Location-header-Funktion eingebaut?
Sie muss in dem Moment ausgeführt werden, in dem ein Eintrag erfolgreich getätigt werden konnte.
Einen schönen Sonntag noch.
Gruß, Ashura
Hi Ashura,
In PHP kannst du einen Location-header schicken, wobei du hierfür aber wahrscheinlich noch die Ausgabepufferung benötigst, da kein Header mehr versandt werden darf, wenn bereits eine Ausgabe erfolgt ist.
Nein, bei location geht das (weiß nicht warum, aber es geht). der inhalt der seite wird dann aber nicht angezeigt.
Gruß, Marian
puts "Hallo " + gets.chomp + "."
?> Marian
=> Hallo Marian.
Nein, bei location geht das (weiß nicht warum, aber es geht). der inhalt der seite wird dann aber nicht angezeigt.
Glaube ich zwar nicht, aber der Nutzen ist gleich: Null.
Einen schönen Montag noch.
Gruß, Ashura