include img? weiß nicht weiter.

damug

Mitglied
hallo,
nachdem ich den ganzen tag schon die tutorials und das forum hier nach hilfe durchsuche,
mir das futter für den google ausgegangen habe ich mich nun doch angemeldet um nach hilfe zu betteln.

Ich habe eine php bildergallerie die mir thumbs erstellt und die auch auf
PHP:
echo "<a target=\"_blank\" href=\"../bilder/Katze/$filename\">";
das Vollbild verlinkt.

Ich will das Vollbild aber in das div, in dem ich auch die Gallerie laden lasse haben.

Das ist die Hautseite in die mit
PHP:
switch ($_REQUEST['page'])
der Text oder die Gallerie, je nach dem was eben gewünscht ist geladen werden.


Genau so hatte ich mir das auch für die Gallerie selbst vorgestellt.
Aber es will nicht.

Hier das Script wie ich es bisher mit "a href & target hatte":
PHP:
<?php

header ("Content-type: image/png");

function get_files($path, $opt = "", $pathadd = "") {
     $return = array();
     foreach(get_path_content($path) as $p) if(is_file("$path/$p")) $return[ ] = $p;
     return $return;     
}



function get_dirs($path) {
     $return = array();
     foreach(get_path_content($path) as $p) if(is_dir("$path/$p")) $return[ ] = $p;
     return $return;     
}


function get_path_content($path) {
     $verzeichnishandle = @opendir("$path");
     rewinddir($verzeichnishandle);
     $files = array();
     while ($file = readdir($verzeichnishandle)) {
          if($file != "." and $file != "..") array_push($files, "$file");
     }
     sort($files);
     return $files;
}


function create_thumb($imagefile, $width, $height) {
     if(file_exists("/usr/export/www/vhosts/funnetwork/hosting/damug/bilder/Ponny/thumbs/" . $imagefile)) return false;
     $Img = imageCreateFromJPEG("/usr/export/www/vhosts/funnetwork/hosting/damug/bilder/Ponny/" . $imagefile);
     $oBreite = imageSX($Img);
     $oHöhe = imageSY($Img);
     $nBreite = $oBreite / 6;
     $nHöhe = $oHöhe / 6;
    
     
     $nBreite = floor($nBreite);
     $nHöhe = floor($nHöhe);
     $Out = imageCreateTrueColor($nBreite, $nHöhe);
     imageCopyResampled($Out, $Img, 0, 0, 0, 0, $nBreite, $nHöhe, $oBreite, $oHöhe);
     imageJPEG($Out, "/usr/export/www/vhosts/funnetwork/hosting/damug/bilder/Ponny/thumbs/" . $imagefile);
     return true;     
}

foreach(get_files("/usr/export/www/vhosts/funnetwork/hosting/damug/bilder/Ponny/")as $filename) {
     create_thumb($filename, 100, 75);
     echo "<a target=\"_blank\" href=\"../bilder/Ponny/$filename\">";
     echo "<img style=\"border:3px solid #ffffff;\" src=\"../bilder/Ponny/thumbs/$filename\" />";
     echo "</a>";}
              
?>

und jetzt der Teil den ich wie beschrieben versucht habe zu ändern:

PHP:
 ...echo "<a href=\"?pic=$filename\">";
     echo "<img style=\"border:3px solid #ffffff;\" src=\"../bilder/Ponny/thumbs/$filename\" />";
     echo "</a>";}

switch ($_REQUEST['pic']) {
                   case '$filename': include('../bilder/Ponny/$filename'); break;}...
:confused:

Auch wenn ich Testhalber einfach eine andere .php Gallerie, anstatt meiner Ponnys die Hund Gallerie z.B., angebe wird mir immer wieder default geladen...



wenn euch irgendwas fehlt um zu helfen versuch ichs schnellst möglich nachzureichen.


PLZ, PLZ help
 
ich denke der fehler muss in meinem
PHP:
switch()
     case''
liegen?

Wenn mir keiner hilft muss ichs aufgeben. Mir fehlt grad nach 12Std jeglicher Ansatz wie ich das weiter angehn sollte:confused:
 
du hast in deiner case Anweisung case '$filename' geschireben, hier bleibt $filename gleich $filename, du musst case "$filename" schreiben, also mit doppelanführungszeiten.
 
du hast in deiner case Anweisung case '$filename' geschireben, hier bleibt $filename gleich $filename, du musst case "$filename" schreiben, also mit doppelanführungszeiten.

Hab das was du vorschlägst probiert aber leider ohne erfolg.
PHP:
switch ($_GET['pic']) {
     case "$filename": include('tiere.php'); break;}

und auch
PHP:
switch ($_GET["pic"]) {
     case "$filename": include('tiere.php'); break;}
also bei GET auch mit doppelanführungszeichen.

Der Einfachheit halber versuche ich die tiere.php und nicht das Bild über includ zu holen.
Da ich diese, wie auch die Galerie.php, ja schon in die tiere.html über ein
PHP:
switch ($_GET['page']) {
     case'xxx':include'yyy'
hole.

Kann es dabei nicht zu fehlern kommen, wenn ich ein switch/case in der tiere.html habe und noch ein switch/case in der darin includeten Galerie.php?

Ich kappier das überhaupt nich, vorallem weil ich in der Galerie ja nichts anderes mache als in der .html in der sie drin ist und da gehts.



Habe jetzt einfach mal probiert was pasiert wenn ich switch/case stink normale feste namen vergebe. Also:

PHP:
...(!aszugsweise!)...
     echo "<a href=\"?pic=bild\">";
     echo "<img style=\"border:3px solid #ffffff;\" src=\"../bilder/Ponny/thumbs/$filename\" />";
     echo "</a>";}

switch ($_GET['pic']) {
     case 'bild': include('tiere.php'); break;}

und selbst so, seh ich zwar den link, bei klicken wird aber einfach nichts geladen.
 
Zuletzt bearbeitet:
PHP:
if( isset( $_GET['pic'] ) )
{
    var_dump( $_GET );
    var_dump( $filename );
}
Poste mal das Ergebnis von var_dump.
 
folgende dinge:
anstatt >>case "$filename"<< kann man auch einfach >>case $filename<< schreiben.

es ist egal ob du >>$_GET['pic']<< oder >>$_GET["pic"]<< schreibst.

Diese Zeile :>>include('../bilder/Ponny/$filename');<< musst du mit doppeltenAnführungsstrichen schreiben: >>include("../bilder/Ponny/$filename");<<

Mit der dump_var() Funktion bin ich nicht vertraut, aber gib doch mal vor der switch anweisung den Wert von $_GET['pic'] und $filename aus, also einfach mit >>echo<<.

EDIT:
ich sehe gerade, wenn bei var_dump() nichts ausgegeben wird, bedeutet das die Parameter übergabe nicht korrekt statt gefunden hat, bzw die Variablen keinen Inhalt haben.

du hast oben einen Fehler in deinem Script, in dem du die Images berreitstellst:
>>header ("Content-type: image/png"); << da hast du dies als Kopf hinein geschrieben, gibts aber am Ende mit >>echo<< HTML-Code aus.
Das macht keinen Sinn.
du brauchst in diesem Fall den Header nicht ändern, denn du Gibts Tatsächlich HTML aus, welches auf ein Bild verweist.
welchen Namen hat dieses Script, den? und wie bindest du es ein?
 
Also, das ganze Script sieht jetzt so aus, aktualisiert nach den letzten Posts von euch sollte ich sie richtig verstanden haben (fotoalbum_ponny.php):

PHP:
<?php

function get_files($path, $opt = "", $pathadd = "") {
     $return = array();
     foreach(get_path_content($path) as $p) if(is_file("$path/$p")) $return[ ] = $p;
     return $return;     
}



function get_dirs($path) {
     $return = array();
     foreach(get_path_content($path) as $p) if(is_dir("$path/$p")) $return[ ] = $p;
     return $return;     
}


function get_path_content($path) {
     $verzeichnishandle = @opendir("$path");
     rewinddir($verzeichnishandle);
     $files = array();
     while ($file = readdir($verzeichnishandle)) {
          if($file != "." and $file != "..") array_push($files, "$file");
     }
     sort($files);
     return $files;
}


function create_thumb($imagefile, $width, $height) {
     if(file_exists("/usr/export/www/vhosts/funnetwork/hosting/damug/bilder/Ponny/thumbs/" . 

$imagefile)) return false;
     $Img = imageCreateFromJPEG

("/usr/export/www/vhosts/funnetwork/hosting/damug/bilder/Ponny/" . $imagefile);
     $oBreite = imageSX($Img);
     $oHöhe = imageSY($Img);
     $nBreite = $oBreite / 6;
     $nHöhe = $oHöhe / 6;
    
     
     $nBreite = floor($nBreite);
     $nHöhe = floor($nHöhe);
     $Out = imageCreateTrueColor($nBreite, $nHöhe);
     imageCopyResampled($Out, $Img, 0, 0, 0, 0, $nBreite, $nHöhe, $oBreite, $oHöhe);
     imageJPEG($Out, "/usr/export/www/vhosts/funnetwork/hosting/damug/bilder/Ponny/thumbs/" . 

$imagefile);
     return true;     
}

foreach(get_files("/usr/export/www/vhosts/funnetwork/hosting/damug/bilder/Ponny/")as 

$filename) {
     create_thumb($filename, 100, 75);
     echo "<a href=\"?pic=$filename\">";
     echo "<img style=\"border:3px solid #ffffff;\" src=\"../bilder/Ponny/thumbs/$filename\" 

/>";
     echo "</a>";}


switch ($_GET['pic']) {
     case $filename: include("../bilder/Ponny/$filename"); break;}


if( isset( $_GET['pic'] ) )
{
    var_dump( $_GET );
    var_dump( $filename );
}  
              
?>


Und es wird beim Aufruf des Links Ponnys auf der tiere.html in diese mit einer funktionierenden switch/case funktion includet

die tiere.html:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>




  
  
  
  <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">



  


  
  
  
  
  
  <title>Tiere</title>
  <meta content="daniel mugele" name="author">




  
  
  
  <link rel="stylesheet" href="html3/basic.css" type="text/css">

  <a><script type="text/javascript" src="../html3/head.js"></script>
</a>

</head>


<body onload="javascript:preload()" style="color: rgb(0, 0, 0); background-color: rgb(255, 

255, 255);" alink="#66ff99" link="#008800" vlink="#18341b">




<div style="" class="kopfhalter">
<div style="" class="streifen">


<?php include 'lauftext.php';?>

<div style="" class="titel"><img src="../bilder/Tiere_big.png" alt="titel"></div>




</div>




</div>




<div style="" class="rechtshalter">
<div style="" class="rechtsschieber">
<div style="" class="rechts">

<div style="" class="nav"><a href="?page=kuehe"><img src="../bilder/Kuehe.png" style="border: 

0px solid ; width: 140px; height: 35px;" alt="kuehe" name="kuehel" onmouseover="if 

(document.images) document.kuehel.src= '../bilder/Kuehe2.png';" onmouseout="if 

(document.images) document.kuehel.src= '../bilder/Kuehe.png';"></a></div>




<div style="" class="nav"><a href="?page=ponnys"><img src="../bilder/Ponnys.png" 

style="border: 0px solid ; width: 140px; height: 35px;" alt="ponnys" name="ponnysl" 

onmouseover="if (document.images) document.ponnysl.src= '../bilder/Ponnys2.png';" 

onmouseout="if (document.images) document.ponnysl.src= '../bilder/Ponnys.png';"></a></div>




<div style="" class="nav"><a href="?page=hunde"><img src="../bilder/Hunde.png" style="border: 

0px solid ; width: 140px; height: 35px;" alt="hunde" name="hundel" onmouseover="if 

(document.images) document.hundel.src= '../bilder/Hunde2.png';" onmouseout="if 

(document.images) document.hundel.src= '../bilder/Hunde.png';"></a></div>




<div style="" class="nav"><a href="?page=katze"><img src="../bilder/Katze.png" style="border: 

0px solid ; width: 140px; height: 35px;" alt="katze" name="katzel" onmouseover="if 

(document.images) document.katzel.src= '../bilder/Katze2.png';" onmouseout="if 

(document.images) document.katzel.src= '../bilder/Katze.png';"></div>




</div>




</div>




</div>




<div style="" class="logonavhalter">
<div style="" class="logo"><img src="../bilder/Logo.png" style="border: 0px solid ; width: 

200px; height: 199px;" alt="logo"></div>




<div style="" class="navhalter">
<div style="" class="nav"><a href="index.html"><img src="../bilder/Home.png" style="border: 

0px solid ; width: 140px; height: 35px;" alt="home" name="homel" onmouseover="if 

(document.images) document.homel.src= '../bilder/Home2.png';" onmouseout="if (document.images) 

document.homel.src= '../bilder/Home.png';"></a></div>




<div style="" class="nav"><a href="familie.html"><img src="../bilder/Familie.png" 

style="border: 0px solid ; width: 140px; height: 35px;" alt="familie" name="familiel" 

onmouseover="if (document.images) document.familiel.src= '../bilder/Familie2.png';" 

onmouseout="if (document.images) document.familiel.src= '../bilder/Familie.png';"></a></div>




<div style="" class="nav"><a href="garten.html"><img src="../bilder/Garten.png" style="border: 

0px solid ; width: 140px; height: 35px;" alt="garten" name="gartenl" onmouseover="if 

(document.images) document.gartenl.src= '../bilder/Garten2.png';" onmouseout="if 

(document.images) document.gartenl.src= '../bilder/Garten.png';"></a></div>




<div style="" class="nav"><a href="arbeit.html"><img src="../bilder/Arbeit.png" style="border: 

0px solid ; width: 140px; height: 35px;" alt="arbeit" name="arbeitl" onmouseover="if 

(document.images) document.arbeitl.src= '../bilder/Arbeit2.png';" onmouseout="if 

(document.images) document.arbeitl.src= '../bilder/Arbeit.png';"></a></div>




<div style="" class="nav"><a href="tiere.html"><img src="../bilder/Tiere1-2.png" 

style="border: 0px solid ; width: 140px; height: 35px;" alt="tiere"></a></div>




<div style="" class="nav"><a href="guestbook.html"><img src="../bilder/Gast.png" 

style="border: 0px solid ; width: 140px; height: 35px;" alt="Gästebuch" name="gastl" 

onmouseover="if (document.images) document.gastl.src= '../bilder/Gast2.png';" onmouseout="if 

(document.images) document.gastl.src= '../bilder/Gast.png';"></a></div>




</div>




</div>




<div style="" class="lmrhalter">
<div style="" class="links"></div>




<div style="" class="mitte">

<?php
          switch ($_REQUEST['page']) {
                    case 'tiere': include_once('tiere.php'); break;
                    case 'kuehe': include('fotoalbum_Kuehe-04.2008.php'); break;
                    case 'ponnys': include('fotoalbum_ponny.php'); break;
                    case 'hunde': include('fotoalbum_hunde.php'); break;
                    case 'katze': include('fotoalbum_katze.php'); break;
                    default: include_once('tiere.php'); break;
		    

          }

      ?>

</div>

</div>




</body>
</html>

ich habe jetzt dem switch in der tiere.html ein default gegeben und seltsammer weise wird bei wahl eines links aus der fotoalbum_ponny.php, also bei klicken auf eines der thumbs, nicht das Bild in org. größe sonder das default der tiere.html geladen :confused::eek:
 
Der FEhler liegt an dieser Stelle >>echo "<a href=\"?pic=$filename\">"; <<
und zwar übergibts du als Parameter >>pic=$filename<< aber nicht mehr die Seite.
es müsste ungefährso aussehen: >>echo "<a href=\"?page=ponnys&pic=$filename\">"; <<
 
Zurück