eben !!! den post vorher versteh ich auch net - ein skript - null aufwand
Shoutbox-Struktur
Einklappen
X
-
Ich wollte damit sagen, dass der Kram dann entweder in der index.php eingetragen werden muss, womit shoutbox-Zeug in einem fremden Script lagert -> Anpassungsaufwand. Oder die Stelle, wo der neue Eintrag in die Datenbank geschrieben wird, ist in der includierten shoutbox.php. Dann gibt es zwar keinen weiteren Anpassungsaufwand, du nimmst dir aber die Möglichkeit, wie empfohlen per header weiterzuleiten, da zwangsläufig in der index.php bereits Ausgaben gemacht wurden.
Das Problem der Doppelposts wollte ich umgehen, indem ich beim Posten eine ID (die des Eintrages in der DB) mitsende und einen Eintrag dann nur mache, wenn die ID nicht schon drinsteht, das sollte ja auch klappen.
Kommentar
-
Ich lese vor dem Posten die ID des neuesten Eintrages aus der Datenbank (und inkrementiere sie). Die sende ich dann mit.
Die geposteten Daten werden dann nur eingetragen, wenn es mit dieser ID noch keinen Eintrag gibt.
Wenn man nun reloaded, GIBT es dann aber einen Eintrag hiermit und die Daten werden NICHT eingetragen.
Kommentar
-
Ich lese vor dem Posten die ID des neuesten Eintrages aus der Datenbank (und inkrementiere sie). Die sende ich dann mit.
Die geposteten Daten werden dann nur eingetragen, wenn es mit dieser ID noch keinen Eintrag gibt.
Wenn man nun reloaded, GIBT es dann aber einen Eintrag hiermit und die Daten werden NICHT eingetragen.
Kommentar
-
Und wenn ich deine Shoutbox drei Tage bei mir geöffnet lasse und dann was poste, ist die ID sicherlich schon vergeben. Eher unglücklich!
Vllt. kommt ja dann an dieser Stelle doch AJAX oder so ins Spiel, um die ID alle - sagen wir mal - 10 sekunden neu auszulesen, was dann vom zeitraum für mich i.o. wäre...
Davon mal ab: Diese ID-Geschichte hab ich ja verwendet, um Reload-Neueinträge zu verhindern. Ich hatte nämlich gelesen, dass es in php keine Möglichkeit gibt, die POST-Variablen zu löschen (weil sie im header stehen o.ä.), ist das so richtig?
Kommentar
-
Dann darf ich nach 10 sekunden also Reloaden und mache einen Doppelpost?
Die normale Vorgehensweise ist genau wegen dieses Problems nach Eintragen der Daten eine Headerweiterleitung zu machen.
Da dir das nicht zu gefallen scheint, kannst du auch noch die Daten direkt per Ajax eintragen. Das mit dem Durchschleifen der ID ist in meinen Augen murks.
Kommentar
-
Naja, wenn ich es jetzt so mache
Ich kann ja die ID unmittelbar vorm Posten auslesen
- anweisungen zum id auslesen
- anweisungen zum generieren des formulars (inkl. submit)
insofern veraltet die ID ja verdammt noch mal schon wieder, wenn man die Seite lange aufhat..., schade...
Kommentar
-
Ich hab jetzt doch alles etwas anders.. Das Formular schickt die Daten an insert.php, die trägt es in die DB ein.
Über den Header soll dann ne Weiterleitung erfolgen, auf die man vorher war, also auf der die Shoutbox eingebunden ist, meinetwegen
.../galerie.php
dazu bestimme ich die aktuelle URL mit
PHP-Code:$url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
Wenn ich in nun die Shoutbox in die galerie.php einfüge:
PHP-Code:include ".../shoutbox/shoutbox.php"
Wie kann ich dieses Problem lösen, also wirklich die URL bestimmen auf der der User ist, nicht die URL zum Skript, das die Funktion verwendet? Ich möchte diese Funktion gerne in der includeten shoutbox.php haben. Ist dies möglich?
Ich hoffe, ich stelle keine zu grundlegenden Fragen, aber es ist im Prinzip mein erstes Projekt in PHP...
Kommentar
-
Original geschrieben von ministry
Wohin du sie schickst, ist eigentlich egal. Schick sie an die shoutbox.php, da machst du oben vor der Ausgabe die Auswertung (if (isset($_POST['shoutbox'])) ...), trägst es in die Tabelle ein und leitest per header wieder auf die Seite von der du kamst. Die section kannst du im Shoutboxformluar als hidden-feld mit übergeben und danach entscheiden, wohin du zurück-umleiten willst.Wenn ich in nun die Shoutbox in die galerie.php einfüge:
...
und die URL anschließend die URL bestimmen möchte (die Funktion dazu steht ja in der includeten .php) wird mir der Pfad dieser, also .../shoutbox/shoutbox.php zurückgegeben.
Aber wieso behältst du nicht deine Struktur bei, includest alles aus der index.php und gibst die section als hidden Feld weiter, wie bereits ganz am Anfang gesagt?
Kommentar
Kommentar