Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Automatisch Bilder rotieren mit PHP oder anderem

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Automatisch Bilder rotieren mit PHP oder anderem

    Hallo liebe Community.

    Folgendes: Ich erstelle mit HTML, CSS und natürlich der PHP-echo Ausgabe einen Banner.
    Ich habe dazu noch die Variable $bannerid und dazugehörige if-Struktur:

    PHP-Code:
    <?php
    $img1 
    "diabloIII.png";
    $img2 "armaIII.png";
    $img3 "guildwars.png";
    $img4 "wildstar.png";
    $img5 "teso.png";
    $img6 "minecraft.png";
    $imgheight "88px";
    $unterbrechung 5;
    $bannerid 2;

        echo 
    '
            <div id="banner">
                <div class="tl">'
    ;
                    if (
    $bannerid == "1") {
                        echo 
    '<img src="',$img1,'" style="height:',$imgheight,'; width: auto;"/>';
                    }
                    elseif (
    $bannerid == "2") {
                        echo 
    '<img src="',$img2,'" style="height:',$imgheight,'; width: auto;"/>';
                    }
                    elseif (
    $bannerid == "3") {
                        echo 
    '<img src="',$img3,'" style="height:',$imgheight,'; width: auto;"/>';
                    }
                    elseif (
    $bannerid == "4") {
                        echo 
    '<img src="',$img4,'" style="height:',$imgheight,'; width: auto;"/>';
                    }
                    elseif (
    $bannerid == "5") {
                        echo 
    '<img src="',$img5,'" style="height:',$imgheight,'; width: auto;"/>';
                    }
                    elseif (
    $bannerid == "6") {
                        echo 
    '<img src="',$img6,'" style="height:',$imgheight,'; width: auto;"/>';
                    };
        echo 
    '
                </div>
                <div class="tr">'
    ;
                    if (
    $bannerid == "1") {
                        echo 
    '<img src="',$img6,'" style="height:',$imgheight,'; width: auto;"/>';
                    }
                    elseif (
    $bannerid == "2") {
                        echo 
    '<img src="',$img1,'" style="height:',$imgheight,'; width: auto;"/>';
                    }
                    elseif (
    $bannerid == "3") {
                        echo 
    '<img src="',$img2,'" style="height:',$imgheight,'; width: auto;"/>';
                    }
                    elseif (
    $bannerid == "4") {
                        echo 
    '<img src="',$img3,'" style="height:',$imgheight,'; width: auto;"/>';
                    }
                    elseif (
    $bannerid == "5") {
                        echo 
    '<img src="',$img4,'" style="height:',$imgheight,'; width: auto;"/>';
                    }
                    elseif (
    $bannerid == "6") {
                        echo 
    '<img src="',$img5,'" style="height:',$imgheight,'; width: auto;"/>';
                    };
        echo 
    '
                </div>
                <div class="br">'
    ;
                    if (
    $bannerid == "1") {
                        echo 
    '<img src="',$img5,'" style="height:',$imgheight,'; width: auto;"/>';
                    }
                    elseif (
    $bannerid == "2") {
                        echo 
    '<img src="',$img6,'" style="height:',$imgheight,'; width: auto;"/>';
                    }
                    elseif (
    $bannerid == "3") {
                        echo 
    '<img src="',$img1,'" style="height:',$imgheight,'; width: auto;"/>';
                    }
                    elseif (
    $bannerid == "4") {
                        echo 
    '<img src="',$img2,'" style="height:',$imgheight,'; width: auto;"/>';
                    }
                    elseif (
    $bannerid == "5") {
                        echo 
    '<img src="',$img3,'" style="height:',$imgheight,'; width: auto;"/>';
                    }
                    elseif (
    $bannerid == "6") {
                        echo 
    '<img src="',$img4,'" style="height:',$imgheight,'; width: auto;"/>';
                    };
        echo 
    '
                </div>
                <div class="bl">'
    ;
                    if (
    $bannerid == "1") {
                        echo 
    '<img src="',$img4,'" style="height:',$imgheight,'; width: auto;"/>';
                    }
                    elseif (
    $bannerid == "2") {
                        echo 
    '<img src="',$img5,'" style="height:',$imgheight,'; width: auto;"/>';
                    }
                    elseif (
    $bannerid == "3") {
                        echo 
    '<img src="',$img6,'" style="height:',$imgheight,'; width: auto;"/>';
                    }
                    elseif (
    $bannerid == "4") {
                        echo 
    '<img src="',$img1,'" style="height:',$imgheight,'; width: auto;"/>';
                    }
                    elseif (
    $bannerid == "5") {
                        echo 
    '<img src="',$img2,'" style="height:',$imgheight,'; width: auto;"/>';
                    }
                    elseif (
    $bannerid == "6") {
                        echo 
    '<img src="',$img3,'" style="height:',$imgheight,'; width: auto;"/>';
                    };
        echo 
    '
            </div>'
    ;
    ?>
    Wenn ich die bannerid manuell ändere und die Seite neu lade, passt sich alles super an. Kein Problem.

    Aber natürlich will ich das ganze noch automatisch. Ich habe es schon mit einer for-Schleife probiert, das einzige, was ich dabei aber erreichte, war eine Seite, die lud, lud und lud.

    Habt ihr noch Ideen?

    LG,
    Auran

  • #2
    Sowas?
    Code:
    yourscript.php?bannerid=1
    PHP-Code:
    $bannerid 1// default
    if (isset($_GET['bannerid'])) 
      
    $bannerid intval($_GET['bannerid']); 
    Und dann dein restlicher Code...
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      Danke.
      Hab aber noch was vergessen. Das ganze ist ein Code, der wiederum in einen anderen Code eingebunden werden soll. Ich habe schon an Ajax gedacht, steige da aber nicht ganz durch.

      Kommentar


      • #4
        Der Code ist schon ein wenig abartig. Pack die Bilder in ein Array, misch den durch (array_shuffle), und zieh dir mit array_pop() jeweils ein Bild raus.

        Kommentar


        • #5
          Und dann habe ich irgendwann 4 gleiche Bilder? ^^
          Kann sein, dass der Code umständlich ist. Aber solange er funktioniert...

          Kommentar


          • #6
            Nicht, wenn du es richtig machst. Du sparst dir dann auch ungefähr 90% deines Codes.
            Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

            Kommentar


            • #7
              Ich bin gerade völlig planlos: Was heißt jetzt wenn ich es richtig mache. Wie geht es denn richtig? Und wie schaffe ich es, dass das immer wieder rotiert?

              Kommentar


              • #8
                Zitat von Auran Beitrag anzeigen
                Und dann habe ich irgendwann 4 gleiche Bilder? ^^
                Wenn du nicht 4 mal das selbe Bild in den Array schreibst, wird das nicht passieren.

                Zitat von Auran Beitrag anzeigen
                Kann sein, dass der Code umständlich ist. Aber solange er funktioniert...
                Und solange du kein weiteres Bild hinzufügen musst, oder den HTML Markup ändern musst, und und und...

                Zitat von Auran Beitrag anzeigen
                Ich bin gerade völlig planlos: Was heißt jetzt wenn ich es richtig mache. Wie geht es denn richtig? Und wie schaffe ich es, dass das immer wieder rotiert?
                Ich habs doch oben schon geschrieben Array() + array_shuffle() + array_pop()

                PHP-Code:
                $images = array(...);
                array_shuffle($images);

                echo 
                '<img src="',array_pop($images),'" style="height:',$imgheight,'; width: auto;"/>';
                echo 
                '<img src="',array_pop($images),'" style="height:',$imgheight,'; width: auto;"/>';
                echo 
                '<img src="',array_pop($images),'" style="height:',$imgheight,'; width: auto;"/>';
                echo 
                '<img src="',array_pop($images),'" style="height:',$imgheight,'; width: auto;"/>'

                Kommentar


                • #9
                  Danke für die ausführliche Erklärung. Jetzt ist es mir klar. Allerdings benötige ich noch eine Wiederholung. Hast du da auch eine Idee? Wie schon oben beschrieben war meine Ausbeute bis jetzt etwas rar... ^^

                  Kommentar


                  • #10
                    Zitat von Auran Beitrag anzeigen
                    Danke für die ausführliche Erklärung. Jetzt ist es mir klar. Allerdings benötige ich noch eine Wiederholung. Hast du da auch eine Idee? Wie schon oben beschrieben war meine Ausbeute bis jetzt etwas rar... ^^
                    PHP-Code:
                    $images = array(...); 
                    array_shuffle($images); 

                    echo 
                    '<img src="',array_pop($images),'" style="height:',$imgheight,'; width: auto;"/>'
                    echo 
                    '<img src="',array_pop($images),'" style="height:',$imgheight,'; width: auto;"/>'
                    echo 
                    '<img src="',array_pop($images),'" style="height:',$imgheight,'; width: auto;"/>'
                    echo 
                    '<img src="',array_pop($images),'" style="height:',$imgheight,'; width: auto;"/>';
                    echo 
                    '<img src="',array_pop($images),'" style="height:',$imgheight,'; width: auto;"/>'
                    So hätte ich das jetzt verstanden? Oder was meinst du mit Wiederholung
                    Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

                    Kommentar


                    • #11
                      Mit Wiederholung meine ich folgendes:
                      User betritt Seite, Banner wird aufgebaut.
                      Nach X Sekunden werden die Bilder neu verteilt.
                      Nach X Sekunden werden die Bilder neu verteilt.
                      Nach X Se...

                      Versteht ihr jetzt, was ich meine?

                      Noch ein anderes Problem, das gerade aufgetaucht ist. #banner hat noch ein background-image. Mit eurer Version, wird das aber nicht mehr angezeigt. Idee?

                      Kommentar


                      • #12
                        Dann setz dich mit JavaScript auseinander. PHP kann das allein nicht mehr. Ich glaub dafür gibts auch dutzende Plugins für JQuery und Co.
                        Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

                        Kommentar


                        • #13
                          Zitat von Auran Beitrag anzeigen
                          Mit Wiederholung meine ich folgendes:
                          User betritt Seite, Banner wird aufgebaut.
                          Dann kannst du dir den PHP Code sparen und das direkt mit JS machen. Alternativ kannst du das PHP Script auch regelmässig mit AJAX aufrufen, macht aber in der Form wenig sinn.

                          Zitat von Auran Beitrag anzeigen
                          #banner hat noch ein background-image. Mit eurer Version, wird das aber nicht mehr angezeigt. Idee?
                          Sry, aber wie wäre es mit Hirn einschalten?!

                          Kommentar


                          • #14
                            Sry, aber wie wäre es mit einem netteren Umgangston?

                            PHP-Code:
                            <?php
                            $imgheight 
                            "88px";
                            $images = array("diabloIII.png""armaIII.png""guildwars.png""wildstar.png""teso.png""minecraft.png");
                                echo 
                            '
                                    <div id=banner">
                                        <div class="tl">
                                            <img src="'
                            ,array_pop($images),'" style="height:',$imgheight,'; width: auto;"/>
                                        </div>
                                        <div class="tr">
                                            <img src="'
                            ,array_pop($images),'" style="height:',$imgheight,'; width: auto;"/>
                                        </div>
                                        <div class="br">
                                            <img src="'
                            ,array_pop($images),'" style="height:',$imgheight,'; width: auto;"/>
                                        </div>
                                        <div class="bl">
                                            <img src="'
                            ,array_pop($images),'" style="height:',$imgheight,'; width: auto;"/>
                                        </div>
                                    </div>
                                '
                            ;  
                            ?>
                            Glaub mir ich setzt mich nicht hin und denk mir Hä? Und schreib zurück. Ich denke schon nach. Aber offensichtlich bin ich auf die Lösung nicht gekommen.

                            Kommentar


                            • #15
                              Deine Lösung kannst du halt nicht nach X sekunden neu anordnen. Deswegen würde ichs per JS machen, außer du bist damit zufrieden, dass sich die Bilder nicht ständig neuanordnen.
                              Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

                              Kommentar

                              Lädt...
                              X