PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

30-01-2013, 21:47
|
an_no
Registrierter Benutzer
|
|
Registriert seit: Jan 2013
Beiträge: 6
|
|
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)+1 != $_GET['b']) echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']-1)."\" title=\"zurück\">« zurück</form></a> "; 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." </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
|

30-01-2013, 22:13
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.772
|
|
Zitat:
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
|

31-01-2013, 09:20
|
an_no
Registrierter Benutzer
|
|
Registriert seit: Jan 2013
Beiträge: 6
|
|
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
|

31-01-2013, 10:46
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.772
|
|
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
|

31-01-2013, 12:30
|
an_no
Registrierter Benutzer
|
|
Registriert seit: Jan 2013
Beiträge: 6
|
|
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???
Geändert von an_no (31-01-2013 um 19:02 Uhr)
|

31-01-2013, 21:01
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.772
|
|
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
|

31-01-2013, 21:29
|
an_no
Registrierter Benutzer
|
|
Registriert seit: Jan 2013
Beiträge: 6
|
|
Sage ich ja... Genau deshalb stelle ich diese Frage  .
Aber ich bin lernfähig und werde mich mit Sessions beschäftigen.
|

11-02-2013, 19:43
|
an_no
Registrierter Benutzer
|
|
Registriert seit: Jan 2013
Beiträge: 6
|
|
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.
|

12-02-2013, 21:25
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.772
|
|
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
|

17-02-2013, 13:18
|
an_no
Registrierter Benutzer
|
|
Registriert seit: Jan 2013
Beiträge: 6
|
|
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)+1 != $_GET['b']) echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']-1)."\" title=\"zurück\">« zurück</form></a> "; if($anzbilder != $_GET['b']) echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']+1)."\" title=\"weiter\">weiter »</a>";
in
PHP-Code:
if(($anzbilder - $anzbilder)+1 != $_GET['b']) echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']-1)."&pfad=".$bildpfad."\" title=\"zurück\">« zurück</form></a> "; if($anzbilder != $_GET['b']) echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']+1)."&pfad=".$bildpfad."\" title=\"weiter\">weiter »</a>";
|

03-07-2016, 23:35
|
Ghostman
Registrierter Benutzer
|
|
Registriert seit: May 2015
Beiträge: 1
|
|
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
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|