Ankündigung

Einklappen
Keine Ankündigung bisher.

Nach Löschen eines Bildes, Seite automatisch refreshen

Einklappen

Neue Werbung 2019

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

  • Nach Löschen eines Bildes, Seite automatisch refreshen

    Hallo liebe Community.

    Ich möchte gerne, dass sich die index.php automatisch neu lädt sobald ich ein Bild dort lösche. Jetziger stand ist, dass man auf eine andere Seite verwiesen wird (loeschen.php). Ich möchte eben keinen Verweis zurück zur index.php auf der loeschen.php einbauen

    Script sieht wie folgt aus:

    index.php
    PHP-Code:
    if(isset($_GET['file'])){
        
    $images 'bilder/images' ltrim($_GET['file'], '/\\');
    // make sure only deleting a file in files/ directory
    if (dirname(realpath($images)) == realpath('bilder/images')) {
        
    unlink($images); 
    PHP-Code:
    <a href="loeschen.php?file=<?php echo $image['full'];?>" title="Delete file '<?php echo $image['full'];?>' from the server">Foto entfernen</a>
    loeschen.php
    PHP-Code:
    <?php
    if(isset($_POST['file'])){
        
    unlink($_POST['file']);
    }
    ?>

  • #2
    Ich möchte gerne, dass sich die index.php automatisch neu lädt sobald ich ein Bild dort lösche. Jetziger stand ist, dass man auf eine andere Seite verwiesen wird (loeschen.php). Ich möchte eben keinen Verweis zurück zur index.php auf der loeschen.php einbauen
    Wenn ich das so verstehen darf, daß Du keinen Seitenreload haben willst, musst Du einen HTTP-Request über AJAX absetzen, der ein Script aufruft, der das Bild löscht die Anzeige ggf. aktualisiert.
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      Da ich seid dieser Woche erst mit PHP angefangen habe und mich davor noch nie damit beschäftigt habe, habe ich wenig Ahnung von dem, was du da geschrieben hast

      Die Bilder befinden sich auf index.php -> bild entfernen -> index.php neu laden ohne auf eine andere Seite verwiesen werden -> bild weg.

      Kommentar


      • #4
        schau dir mal die header() - Funktion an. Ich glaub, dass es das ist was du suchst.
        Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

        Kommentar


        • #5
          Die Bilder befinden sich auf index.php -> bild entfernen -> index.php neu laden ohne auf eine andere Seite verwiesen werden -> bild weg.
          PHP Affenformular
          oder
          Ajax-Request

          EDIT:...header dürfte für diesen Fall sinnfrei sein!
          Competence-Center -> Enjoy the Informatrix
          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

          Kommentar


          • #6
            Ich hab das hier jetzt mal ausgetestet
            PHP-Code:
            header('Location: index.php'); 
            Aber wo zum Teufel muss das hin

            Vielleicht zur besseren Übersicht - hier der ganze Script:

            PHP-Code:
            <?php

            require 'bilder/Gallery.php';
            require 
            'bilder/images/loeschen.php';

            $gallery = new Gallery();
            $gallery->setPath('bilder/images');

            $images $gallery->getImages(array('jpg''png'));


            if (
            count($_POST) > 0) {
                
            $name $_POST['name'];
                
            move_uploaded_file($_FILES['datei'] ['tmp_name'], "bilder/images/$name");
            }

            if(isset(
            $_GET['file'])){
                
            $images 'bilder/images' ltrim($_GET['file'], '/\\');
            // make sure only deleting a file in files/ directory
            if (dirname(realpath($images)) == realpath('bilder/images')) {
                
            unlink($images);
            }
            }

            header('Location: index.php');
            ?><!DOCTYPE html>
            <html>
                <head>
                    <title>Bildergalerie</title>
                    <link rel="stylesheet" href="css/gallery.css">
                </head>
                <body style="background-color: #AAAAAA">
                    <font color='#C00000'><h1>Bildergalerie</h1></font>
                        

                    <FORM method="post" enctype="multipart/form-data" >
                        <input type="file" name="datei" value="Durchsuchen"> <br>
                        <input type="text" name="name" value="DateiName.jpg"> <br>
                        <input type="submit" value="Hochladen">
                        <br>
                    </FORM>
                    
                    <a href="index.php">
                <button>Aktualisieren!</button>
            </a>
                    <br>
                    <br>
                    <br>
                    

                    <div class="container">
                        <?php if ($images): ?>    
                            <div class="gallery cf">
                <?php foreach ($images as $image): ?>
                                    <div class="gallery-item">
                                        <a href="<?php echo $image['full']; ?>"> <img src="<?php echo $image['full']; ?>"></a>
                                        <a href="index.php?file=<?php echo $image['full'];?>" title="Delete file '<?php echo $image['full'];?>' from the server">Foto entfernen</a>
                                    </div>
                                <?php endforeach; ?>
                            </div>
            <?php else: ?>
                            There are no images.
                            <?php endif; ?>
                    </div>
                </body>
            </html>
            Nebenbei, die Seite wird nicht online gestellt !!

            Kommentar


            • #7
              Zitat von Arne Drews
              EDIT:...header dürfte für diesen Fall sinnfrei sein!
              Lese Dich in eine der anderen beiden Varianten.
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

              Kommentar


              • #8
                @ Arne Drews

                Wieso sollte die header()-Funktion in diesem Fall sinnfrei sein? Richtig angewandt ist das der richtige Weg.

                Kommentar


                • #9
                  Also wenn ich dich richtig verstanden habe, dann müsstest du das

                  PHP-Code:
                  header('Location: index.php'); 
                  einfach nur direkt nach

                  PHP-Code:
                  unlink($images); 
                  einfügen.

                  PHP-Code:
                  unlink($images);
                  header('Location: index.php'); 

                  Dann wird die Seite reloaded, bzw zur index.php weitergeleitet,
                  nachdem das Bild gelöscht wurde.

                  Kommentar


                  • #10
                    Bitte die Dokumentation lesen, der Location-Header verlangt eine absolute URI: http://php.net/manual/de/function.header.php

                    Kommentar


                    • #11
                      @WTB

                      Wenn ich das so versuche, wie du es mir beschrieben hast, kommt folgende Fehlermeldung:

                      Warning: Invalid argument supplied for foreach() in C:\www\index.php on line 55

                      PHP-Code:
                      <?php foreach ($images as $image): ?>

                      Kommentar


                      • #12
                        @Trainmaster:
                        Zitat von Rusko
                        Ich möchte gerne, dass sich die index.php automatisch neu lädt sobald ich ein Bild dort lösche.
                        Zitat von Rusko
                        PHP-Code:
                        <a href="loeschen.php?file=<?php echo $image['full'];?>" title="Delete file '<?php echo $image['full'];?>' from the server">Foto entfernen</a>
                        Zitat von Rusko
                        Ich möchte eben keinen Verweis zurück zur index.php auf der loeschen.php einbauen
                        ...lesen wir evtl. unterschiedlich, aber für mich macht das per Interpretation immer noch wenig Sinn über header() zu regeln.


                        Beispiel ohne header():
                        index.php
                        PHP-Code:
                        <?php
                        error_reporting
                        ( -);
                        ini_set'display_errors'true );


                        include_once 
                        './delete.php';


                        // HTML-Gedöns:
                        ?>


                        <a href="index.php?file=<?php echo $image['full']; ?>" title="Delete file '<?php echo $image['full']; ?>' from the server">Foto entfernen</a>
                        delete.php
                        PHP-Code:
                        $getFile = isset( $_GET['file'] )? $_GET['file']: null;


                        if ( !
                        is_null($getFile) ) {
                            
                            
                        $sImageFileName 'bilder/images/' ltrim$getFile'/\\' );
                            
                        unlink$sImageFileName );
                            

                        ...mir fällt kein Grund ein, warum header() die bessere Variante sein soll?!
                        Ausser ich hab den TE nicht verstanden...
                        Competence-Center -> Enjoy the Informatrix
                        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                        Kommentar


                        • #13
                          Ich vermute mal, mit „Verweis“ ist ein Link gemeint.

                          EDIT:...header dürfte für diesen Fall sinnfrei sein!
                          Nunja, habe ich lange auch vertreten die Position. Aber betrachten wir mal diesen Punkt http://en.wikipedia.org/wiki/Post/Redirect/Get und dass man Löschen-Aktionen eigentlich nicht über GET macht und den Punkt, dass der Löschversuch einer nicht vorhandenen Datei eine Fehlermeldung bringen sollte und den Punkt, dass ein Refresh genau das bewirken kann, ist ein header-Redirect vielleicht doch gar nicht so doof.

                          Die Alternative wäre ein Include und ein Sessionflag/Transaktionstoken.
                          [COLOR="#F5F5FF"]--[/COLOR]
                          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                          [COLOR="#F5F5FF"]
                          --[/COLOR]

                          Kommentar


                          • #14
                            Wie gesagt, wenn ich den TE falsch verstanden habe, mag das alles sein, aber ich glaube er sucht einfach nur sowas simples, wie in meinem Edit aus #12

                            Zitat von nikosch
                            Aber betrachten wir mal diesen Punkt http://en.wikipedia.org/wiki/Post/Redirect/Get
                            ...dann sollte er erstmal auf Formular umbauen, er nutzt aber <a-Tags.
                            Zitat von nikosch
                            und
                            dass man Löschen-Aktionen eigentlich nicht über GET macht
                            ...POST wäre wieder => Formular
                            Zitat von nikosch
                            und
                            den Punkt, dass der Löschversuch einer nicht vorhandenen Datei eine Fehlermeldung bringen sollte
                            ...saubere Fehlerbehandlung fehlt hier sowieso!
                            Zitat von nikosch
                            und
                            den Punkt, dass ein Refresh genau das bewirken kann,
                            ist ein header-Redirect vielleicht doch gar nicht so doof.
                            ...hab ich ehrlich gesagt nicht ganz verstanden, wie Du das meinst.

                            Alles in allem, 2x Erkenntnis, daß Formular besser geeignet wäre =>
                            Zitat von Arne Drews aus #2
                            PHP Affenformular
                            Competence-Center -> Enjoy the Informatrix
                            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                            Kommentar

                            Lädt...
                            X