Diashow aufrufen und Pfad der Bilder übergeben

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

  • Diashow aufrufen und Pfad der Bilder übergeben

    Hallo an Alle,

    ich bin neu hier im Forum und neu beim Erstellen von PHP-Code.
    Ich baue gerade eine Internetseite auf der es viele Diashows mit vorwärts und rückwärts-Links gibt. Um die Sache universell zu gestalten wollte ich ein Script, das ich über einen normalen HTML-Link dem ich den Pfad mitgebe, aufrufe. Zu besseren Verständnis poste ich mal den Code.
    PHP-Code:
    // Bildverzeichnis
    // $bildpfad = "./content/2012/wmarkt/";
    $bildpfad $_GET['pfad'];
    $filehandle opendir($bildpfad);
    $lv 1;
    while(
    $file readdir($filehandle)){
    // Serververweise nicht auslesen
    if($file != "." && $file != ".."){
    // Nur .jpg
    if(preg_match("/.(jpg)$/i"$file)){
    // Bilder in ein Array laden
    $bild[$lv] = $file;
    $lv++;
    }
    }
    }
    closedir($filehandle);
    // Anzahl Bilder
    $anzbilder count($bild);
    // ID übergeben?
    if(!isset($_GET['b'])) $_GET['b'] = 1;
     
    // Bild ausgeben
    echo "<p style=\"text-align:center; margin:0px; padding:0px;\"><img src=\"".$bildpfad.$bild[$_GET['b']]."\" alt=\"Bild ".$_GET['b']." / ".$anzbilder."\" /></p>\n";
    // Zurück und Weiter Link
    echo "<p>";
    if((
    $anzbilder $anzbilder)+!= $_GET['b']) echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']-1)."\" title=\"zur&uuml;ck\">« zur&uuml;ck</form></a>&nbsp;&nbsp;";
    if(
    $anzbilder != $_GET['b']) echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']+1)."\" title=\"weiter\">weiter »</a>";
    echo 
    "</p>\n";
    // Bildnummer ausgeben
    echo "<p style=\"text-align:center; margin:0px; padding:0px;\">Bild ".$_GET['b']." / ".$anzbilder." &nbsp;</p>\n";
    ?> 
    Der Link sieht dann so aus:

    HTML-Code:
    <a href=/diashow.php?pfad=./content/2012/wmarkt>Diashow</a>
    Das Problem ist nun folgendes. Wenn ich den Pfad im Script direkt eintrage ($bildpfad=./content...), funktioniert es ohne Probleme. Übergebe ich den Pfad über den Link, so sehe ich das erste Bild und sobal ich auf "weiter" klicke, bekomme ich die Meldung, "Notice: Undefined index: pfad in C:\Program Files\xampp\htdocs\egs.local\diashow.php on line XX" und ich habe keine Ahnung wieso. Ich bin für jede Hilfe dankbar.

    vielen Dank im Voraus
    an_no

  • #2
    und ich habe keine Ahnung wieso
    Weil du da keinen Parameter namens pfad sondern einen names b übergibst.

    Woher das erstmalige $_GET['pfad'] kommt, kann ich im Moment auch nur erraten.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Hallo Peter,

      vielen Dank für deine schnelle Antwort. Ich dachte eigentlich, dass ich mit dem Link die Variable "pfad" übergebe und im Script mir $_GET['pfad'] wieder abrufen kann. Meine Idee war, dass ich dieses Script für alle Diashows verwenden kann und lediglich den Link entsprechend gestalten muss. Kannst du mir vielleicht sagen, wie es dafür aussehen müsste?

      vielen Dank
      Andreas

      Kommentar


      • #4
        PHP-Code:
        ."?b="
        Mach aus dem b ein pfad, pass deinen Code an und gut ist es.

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Hallo nochmal,

          ich glaube, ich weiß, wo der Fehler liegt. Nur leider habe ich noch keine Lösung gefunden. Die Variable $b enthält die Bild-ID.
          Mit
          PHP-Code:
          $bildpfad $_GET['path']; 
          setze ich den Pfad zum Bilderordner den ich vorher aus einer anderen Seite mit
          HTML-Code:
          <a href=/diashow.php?pfad=./Ordnerpfad>Diashow starten</a>.
          übergeben habe. Beim ersten Aufruf funktioniert das noch. Wenn ich aber mit
          PHP-Code:
          if($anzbilder != $_GET['b']) echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']+1)."\" title=\"weiter\">weiter »</a>"
          zum nächsten Bild blättern will, ruft sich das Script selbst auf und in diesem Aufruf fehlt dann der Inhalt von
          PHP-Code:
          $bildpfad $_GET['path']; 
          . Soweit so gut. Nur, wie löse ich das Problem???
          Zuletzt geändert von an_no; 31.01.2013, 18:02.

          Kommentar


          • #6
            Sorry, aber vom Programmieren hast du nicht wirklich viel Ahnung.

            Häng das $bildpfad zusätzlich an den GET-Parameter im Link. Oder beschäftige dich mit Sessions.

            Peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Sage ich ja... Genau deshalb stelle ich diese Frage .
              Aber ich bin lernfähig und werde mich mit Sessions beschäftigen.

              Kommentar


              • #8
                ich bin jetzt ein Stück weiter. Der Tip mit den Sessions war gut. Ich habe jetzt eine Session aufgemacht und die Pfadvariable darin gespeichert.
                PHP-Code:
                ini_set('session.use_trans_sid''1');
                session_start();
                if (!isset (
                $_SESSION["bildpfad"])) $_SESSION["bildpfad"] = $_GET['pfad']; 
                Das funktioniert auch super. Das Problem, das ich jetzt habe ist, dass diese Session nicht wieder zu gemacht wird. Ich möchte ja das Script universell einsetzten und ihm nur den Pfad zu den Bildern übergeben. Allerdings funktioniert das nicht, solange die Session nicht wieder geschlossen wird. Das hat natürlich zur Folge, dass immer die selben Bilder angezeigt werden da der Pfad ja in der Session steht. Ich suche jetzt schon eine Weile und weiß im Moment nicht so richtig weiter. Vielleicht hat jemand noch ein Idee.

                Kommentar


                • #9
                  PHP-Code:
                  if (!isset ($_SESSION["bildpfad"])) $_SESSION["bildpfad"] = $_GET['pfad']; 
                  Umdrehen?
                  PHP-Code:
                  if (!empty($_GET["bildpfad"])) {
                    
                  $_SESSION["bildpfad"] = $_GET['pfad'];  

                  Peter
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Kommentar


                  • #10
                    Jetzt habe ich das Problem gelöst und es ist mehr als einfach. Man muss nur drauf kommen. Dazu brauche ich KEINE Sessions. Ich übergebe einfach im "weiter" und "zurück" den pfad.
                    Zu ändern sind die Zeilen:
                    PHP-Code:
                    if(($anzbilder $anzbilder)+!= $_GET['b']) echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']-1)."\" title=\"zur&uuml;ck\">« zur&uuml;ck</form></a>&nbsp;&nbsp;";
                    if(
                    $anzbilder != $_GET['b']) echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']+1)."\" title=\"weiter\">weiter »</a>"
                    in
                    PHP-Code:
                    if(($anzbilder $anzbilder)+!= $_GET['b']) echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']-1)."&pfad=".$bildpfad."\" title=\"zur&uuml;ck\">« zur&uuml;ck</form></a>&nbsp;&nbsp;";
                    if(
                    $anzbilder != $_GET['b']) echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']+1)."&pfad=".$bildpfad."\" title=\"weiter\">weiter »</a>"

                    Kommentar


                    • #11
                      Brauche Hilfe vom Fachmann

                      Hallo zusammen,

                      ich finde diese Diashow super gut, darum würde ich sie gerne verwenden. Hab leider nur ein Problem damit. Meine Bilder kommen von einer Webcam, darum sollte das letzte Bild das aufgenommen wurde immer als erstes angezeigt werden. (Bilder kommen bei mir fortlaufend nummeriert an, aber die Stückzahl kann variieren). Danach sollte zuerst rückwärts geblättert werden können, später dann aber auch wieder vorwärts. Hab leider keinerlei PHP Kenntnisse, und werde vermutlich auch nie wieder was mit PHP zu tun haben. Könntet ihr mir vielleicht hierbei behilflich sein. Würde mich sehr freuen, wenn ihr mir hier weiter helfen könntet.


                      Grüße
                      Karl Heinz

                      Kommentar

                      Lädt...
                      X