Ankündigung

Einklappen
Keine Ankündigung bisher.

Seite neu laden

Einklappen

Neue Werbung 2019

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

  • Seite neu laden

    Hallo zusammen!

    Ich möchte, dass bei einer bestimmten Aktion in meinem Script die Seite neu geladen wird.

    Tja, dazu müsste ich jetzt aber wissen, wie man einfach an einer x-beliebigen Stellle im Script die Seite einfach neu laden kann...

    Kann mir jemand sagen wie das geht?

    Ich hab's so versucht, aber das funktioniert nicht:
    PHP-Code:
    <?
    header("Location: index.php?section=bilder&upload=ja&id=<?=$id?>");
    ?>
    Danke im Vorraus für jede Antwort!


  • #2
    aber das funktioniert nicht
    Dann wird es wohl daran liegen, dass es regnet.

    Geht's auch etwas genauer! header ist eigentlich richtig.

    Gruß
    phpfan

    Kommentar


    • #3
      Ich hab ein Script, in dem man Bilder hochladen kann.
      Man kann diese Bilder dann auch wieder löschen.
      ABER: Wenn man das Bild löscht, dann wird die Seite nicht neu geladen, und das gelöschte Bild ist noch zu sehen.
      --> wenn man auf löschen klickt, soll zuerst das Bild gelöscht werden (passiert schon) dann soll die Seite aber noch neu geladen werden.

      PHP-Code:
      <?
      .
      .
      .
      // Bild 1 löschen
              if(isset($_POST['delete_01']))
              {
                  if(!($bild_01 == "dummy.jpg"))
                  {
                      unlink("images/user/".$bild_01);

                      $mysql = "UPDATE ".$tb_name_03." SET BILD_ID = '' WHERE IDENT = ".$id;
                      $result = mysql_query($mysql);
                      if($result)
                      {
      ?><script type="text/javascript">
          window.setTimeout('document.getElementById("box_01").style.display="none";', 7000);
      </script><?
                      echo $box_bild_01;
                      }
                      else
                      {
      ?><script type="text/javascript">
          window.setTimeout('document.getElementById("box_01").style.display="none";', 7000);
      </script><?
                      echo $box_bild_02;
                      }
                  }
                  header("Location: index.php?section=bilder&upload=ja&id=<?=$id?>");
                  // Seite neu laden
              }
      .
      .
      .
      ?>
      Hab ich mein Problem jetzt klarer machen können?

      Warum geht's dann nicht (wenn header() ja eigentlich richtig wäre)?

      Kommentar


      • #4
        Schon die Zeile

        error_reporting(E_ALL);

        an den Anfang des Scriptes geschrieben und dies beachtet:

        Richtig debuggen
        1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
        2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
        3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
        4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
        5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
        6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
        7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

        Gruß
        phpfan

        Kommentar


        • #5
          Hm, also erstmal Danke!

          Das Problem liegt anscheinend an dem Stylesheet für das Programm.

          Fehlermeldung:
          Warning: Cannot modify header information - headers already sent by (output started at C:\apachefriends\xampp\htdocs\www\home\PROGRAMM\in cludes\stylesheet.css:75)

          So, jetzt weiß ich wo der Fehler liegt, aber ich weiß nicht, wie ich ihn beheben kann...
          Wenn ich Stylesheet.css nicht einbinde, dann stimmen ja die optischen Einstellungen nicht...
          stylesheet.css wird so eingebunden:
          (im selben Script ganz oben)
          PHP-Code:
          <?
          include('includes/stylesheet.css');
          ?>
          Muss ich stylesheet.css anders einbinden?

          Kommentar


          • #6
            Re: Seite neu laden

            Zitat von seeker
            Ich hab's so versucht, aber das funktioniert nicht:
            PHP-Code:
            <?
            header("Location: index.php?section=bilder&upload=ja&id=<?=$id?>");
            ?>
            Soweit ich weiß, gehört bei Location: eine komplette URI hin. nicht nur ein relativer Pfad einer URL.

            Was soll denn diese Konstruktion am Ende?
            PHP-Code:
            <?php
            id
            =<?=$id?>
            ?>
            Du befindest Dich doch schon in PHP und musst somit einfach die Variable in dem String ausgeben:
            PHP-Code:
            <?php
            header
            ("Location: http://domain.xy/pfad/index.php?section=bilder&upload=ja&id=$id");
            ?>
            **********************************
            Nein, ich bin nicht die Signatur.
            Ich putze hier nur.
            **********************************

            Kommentar


            • #7
              Zitat von seeker
              Muss ich stylesheet.css anders einbinden?
              Ich nehme an, in der css-Datei steht kein PHP-Code.
              Somit wird das als Ausgabe verwertet.

              Wenn Du header("location:...) verwendest, ist jede Ausgabe und jedes Style-Sheet vollkommen sinnfrei, da die Seite ja gar nicht angezeigt wird.
              **********************************
              Nein, ich bin nicht die Signatur.
              Ich putze hier nur.
              **********************************

              Kommentar


              • #8

                Also css via header() einbinden?
                (Es ist kein Code in der css Datei)

                Ich hab für das neu laden jetzt mal das versucht:
                PHP-Code:
                <?
                header("Location: http://localhost/www/home/PROGRAMM/index.php?section=bilder&upload=ja&id=$id");
                ?>
                --> leider ohne Ergebnis...

                wenn ich den Stylesheet so einbinde:
                PHP-Code:
                <?
                header("Location: http://localhost/www/home/PROGRAMM/includes/stylesheet.css");

                ?>
                macht sich Frontpage auf (mit stylesheet.css), die Seite die angezeigt werden soll, kommt aber gar nicht mehr...

                Kommentar


                • #9
                  Wenn Du per Header zu einer anderen Seite umleitest, brauchst Du kein Stylesheet, weil die Seite, in der Du umleitest nicht angezeigt wird. Darum wird ja umgeleitet.

                  Wenn Du die Seite anzeigen willst und erst nach einer Weile neu laden willst, solltest Du mal in der HTML-Doku nach REFRESH suchen.
                  **********************************
                  Nein, ich bin nicht die Signatur.
                  Ich putze hier nur.
                  **********************************

                  Kommentar


                  • #10
                    stylesheet so einbinden:
                    <link rel=stylesheet type="text/css" href="stylesheet.css" title="My Stylesheet">

                    Pfade anpassen nicht vergessen
                    Wie man Fragen richtig stellt

                    Kommentar


                    • #11
                      Zitat von dsmcg
                      stylesheet so einbinden:
                      <link rel=stylesheet type="text/css" href="stylesheet.css" title="My Stylesheet">

                      Pfade anpassen nicht vergessen
                      Diese Zeile darf aber vor Header("Location: ..."); nicht ausgegeben werden! Genau wie jeder andere HTML-Code
                      **********************************
                      Nein, ich bin nicht die Signatur.
                      Ich putze hier nur.
                      **********************************

                      Kommentar


                      • #12
                        Tja, mit Stylesheet geht das, aber es werden noch 2 weitere Dateien eingebunden (mit Funktionen, die das Script braucht), und dann hängt das header() eine Zeile drunter fest, wenn die beiden eingebunden werden...

                        Gibt es nichts anderes zum Neu-Laden?
                        Ich hab nur Neu-Laden nach xx-Sekunden gefunden, aber es soll ja nur neu geladen werden, wenn man löscht, und nur einmal...

                        Kommentar


                        • #13
                          Was meinst Du mit "wenn man löscht"?
                          Wenn Du auf einen Button klickst, wird die Seite garantiert neu aufgebaut. Es wird ja das ganze Script neu ausgeführt.
                          Da brauchst Du aber im Script nix zu machen, sondern das macht der Benutzer durch Anklicken des Lösch-Buttons.
                          Bei dem neuerlichen Seitenaufruf musst Du dann natürlich die DB-Operationen durchführen bevor Du wieder die aktuellen Daten ausgibst. Sonst sieht der Benutzer ja die Daten von vor dem Löschen.
                          **********************************
                          Nein, ich bin nicht die Signatur.
                          Ich putze hier nur.
                          **********************************

                          Kommentar


                          • #14
                            Zitat von Der_Gerhard

                            Bei dem neuerlichen Seitenaufruf musst Du dann natürlich die DB-Operationen durchführen bevor Du wieder die aktuellen Daten ausgibst. Sonst sieht der Benutzer ja die Daten von vor dem Löschen.
                            Das ist ja auch das was er machen will..
                            Wie man Fragen richtig stellt

                            Kommentar


                            • #15
                              Also nochmal langsam zum Mitmeiseln:

                              Es gibt irgendwo eine Seite mit einem Formular, in dem man zu löschende Daten auswählen kann.
                              Diese wird durch ein Script ausgegeben. In diesem Script ist keinerlei Aktion für das Neuladen notwendig, weil das ja erst passiert, nachdem man das Formular ausgefüllt und abgeschickt hat.

                              Dann wird ein neues Script aufgerufen, das die Aktion durchführt. Neue Ausgaben sollten natürlich erst nach der Aktion erstellt werden, damit sie aktuell sind.
                              Somit ist auch hier kein Neuladen notwendig.

                              Wann soll also durch das Script was neu geladen werden?
                              **********************************
                              Nein, ich bin nicht die Signatur.
                              Ich putze hier nur.
                              **********************************

                              Kommentar

                              Lädt...
                              X