Seite automatisch neu laden ohne Parameter

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

  • Seite automatisch neu laden ohne Parameter

    Hallo!

    Ich habe eine Datenbank, in die andere leute etwas eintragen können. Diese Daten sollen dann freigeschalten werden. Dazu lese ich die temporären Daten aus. Diese lasse ich in einer Tabelle anzeigen und setze in der Tabelle einen Link zum freischalten.

    Hier der Link Code:
    <a href=\"freischalt.php?freischalt=true&freischaltid=$nummer&frageid=$frage&antwortid=$antwort&zeichen id=$zeichen\">Freischalten</a>

    Der Freischalten Code:

    PHP-Code:
    if(!empty($_GET['freischalt']) && $_GET['freischalt']) 
    {
      
    //Freischalten
      
    $freischaltid $_GET['freischaltid'];
      
    $frageid $_GET['frageid'];
      
    $antwortid $_GET['antwortid'];
      
    $zeichenid $_GET['zeichenid'];
      
    $db->query("DELETE from temporaer WHERE nummer=$freischaltid");
      
    $db->query("insert into final (frage,antwort,zeichen) values ('$frageid','$antwortid','$zeichenid')");
      echo 
    'Der Eintrag wurde freigeschalten!';

    Nun habe ich das Problem, dass sobald ich reloade die Seite nochmal mit den Parametern abgesendet wird. Und dadurch der Eintrag doppelt ist.

    Nun hatte ich mir überlegt, nicht direkt auf die gleiche Datei zu verlinken, sondern den freischalten-Teil in eine extra Datei zu legen, kurz die Meldung zu zeigen und dann die ursprüngliche Seite automatisch wieder anzuzeigen.

    Also folgendes Schema:
    1. Anzeigen der Einträge
    2. Klick beim entsprechenden Eintrag aud "Freischalten"
    3. andere Seite öffnet sich schaltet frei und gibt meldung über erfolg
    4. automatisch wird nach ca. 3sekunden die Seite 1 aufgerufen mit der tabelle der anderen noch nicht freigeschalteten begriffe

    hat jemand eine idee wie man das umsetzt? ist sicher einfach, aber ich bekomm es nicht hin.

    Danke Jens

  • #2
    also ich wuerde einen header('location ... machen eben ohne parameter...
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Re: Seite automatisch neu laden ohne Parameter

      PHP-Code:
      header ('location: ...) 
      sollte dir helfen ...
      Danke Jens
      aber woher wußtest du vorher, daß ich antworte?

      achso, du kannst natürlich in der db auch die entsprechenden spalten unique machen ...
      Zuletzt geändert von derHund; 13.08.2004, 21:22.
      Die Zeit hat ihre Kinder längst gefressen

      Kommentar


      • #4
        @hund: ich bin schon dankbar, wenn jemand meinen post liest

        unique spalten geht leider nicht, da es in jeder spalte zu doppelungen kommen kann - oder kann man zwei spalten kombinieren?

        also das soll z.b. gehen:

        fisch karpfen
        fisch hecht
        tier karpfen

        bei header() darf ich aber vorher keine ausgabe machen wenn ich das richtig erlesen habe. wie koennte man alternativ eine ausgabe/bestätigung über die freischaltung machen?

        habe auch schon mal metarefresh probiert, aber das funktionierte leider nicht richtig, er hat die gleich seite immer wieder geöffnet statt der url im meta refresh?!

        habe im forum inzwischen auch gelesen, dass es mit php keinen timer an sich gibt und javascript wollte ich halt aus dem spiel lassen...

        und wieder
        DANKE
        Jens

        Kommentar


        • #5
          oder kann man zwei spalten kombinieren?
          ja, das geht. schau mal im php_my_admin ... 'create an index on ...' oder so heißts ...
          wie koennte man alternativ eine ausgabe/bestätigung über die freischaltung machen?
          du könntest auf die bestätigungsseite weiterleiten ...?
          Die Zeit hat ihre Kinder längst gefressen

          Kommentar


          • #6
            danke für die schnelle antwort.

            aber ich möchte nach möglichkeit nach dem freischalten möglichst wieder zur freischalttabelle um dort den nächsten freischalten zu können.

            im moment mache ich es jetzt erstmal so, dass ich auf der bestätigungsseite einen zurückbutton machen werden, dann muss ich halt klicken

            Kommentar


            • #7
              hmm,

              wenn du unbedingt eine visuelle bestätigung brauchst, leite per header auf die best.-seite und von dort mittels meta-refresh auf die alte ...
              Die Zeit hat ihre Kinder längst gefressen

              Kommentar


              • #8
                hmm.. mal ein anderer Ansatz:
                Du machst zuerst ein Delete dann ein Insert.
                Wenn du die Insertquery nur abschickst, wenn das Delete auch etwas gelöscht hat, wird auch bei einem refresh nix doppelt eingetragen.
                also zb so:
                PHP-Code:
                $db->query("DELETE from temporaer WHERE nummer=$freischaltid");
                if (
                mysql_affected_rows()) $db->query("insert into final (frage,antwort,zeichen) values ('$frageid','$antwortid','$zeichenid')");
                else echo 
                "Der Eintrag wurde bereits freigeschaltet."

                Kommentar

                Lädt...
                X