Shoutbox-Struktur

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    eben !!! den post vorher versteh ich auch net - ein skript - null aufwand
    Signatur-Text ...

    Kommentar


    • #17
      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.
      Das klappt nicht. Woher soll die ID kommen?
      ich glaube

      Kommentar


      • #18
        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


        • #19
          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.
          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!

          Kommentar


          • #20
            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!
            hmmm... das ist in der tat ein argument... die seite wird zwar nicht allzu sehr frequentiert sein, aber dass jemand die seite ein paar minuten offen hat und ihm dann jemand anders dazwischenfunkt ist ja durchaus kein unrealistisches Szenario...

            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


            • #21
              Aber ach nein: Ich kann ja die ID unmittelbar vorm Posten auslesen, dann geht es doch... Dass zwei Leute gleichzeitig Posten (oder welches Szenario auch immer für einen Fehler nötig wäre ) ist mir unwahrscheinlich genug...

              Kommentar


              • #22
                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.
                ich glaube

                Kommentar


                • #23
                  Naja, wenn ich es jetzt so mache

                  Ich kann ja die ID unmittelbar vorm Posten auslesen
                  müsste es doch eigentlich funktionieren... ich weiß nur noch nicht so recht, wie ich das "unmittelbar" hinkriege, ich habe ja

                  - 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


                  • #24
                    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']; 
                    und übergebe diese über ein HIDDEN Formularfeld.

                    Wenn ich in nun die Shoutbox in die galerie.php einfüge:

                    PHP-Code:
                    include ".../shoutbox/shoutbox.php" 
                    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.

                    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


                    • #25
                      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.
                      Das stimmt nicht. Du bekommst die URL der aufgerufenen Seite, also zur galerie.php.

                      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?
                      ich glaube

                      Kommentar

                      Lädt...
                      X