Link einfügen

Hey, die Frage ist nicht ernst gemeint, oder? Du weißt doch wie man in HTML ein Bild verlinkt? Und wie man zumindest via echo in PHP was ausgeben kann, oder? Fazit: dann schaffst du das ohne langes nachdenken!
 
Glaubst du ich würde fragen, wenn ich es wüsste?
Wie man einen Link mit HTML macht weiss ich,
aber wie ich den in den PHP-Code einbinden muss und wo weiss ich leider nicht.
 
ich habe es jetzt nochmal versucht, aber ich weiss wirklich nicht, wo ich den "Seite-zurück-Link" einfügen soll. Nochmals, von meiner Hauptseite öffnet sich ein Popup mit
den Thumbnails. Wenn man auf ein Thumbnail klickt, öffnet sich im gleichen Fenster (also im Popup) das grosse Bild. Was ich jetzt möchte ist, auf der Seite, auf der das grosse Bild erscheint, ein "Zurück"-Link einfügen.

Kann mir da wirklich keiner helfen?

So sieht der Code aus:
______________________________________________________________________
<?php

function createimage($width, $height){
$imgh = imagecreate($width, $height);
$bgc = imagecolorallocate($imgh, 230, 230, 230);
return $imgh;
}

if($path){ // Thumbnail

$height = 70; // Maximalhöhe
$width = 150; // Maximalbreite

$img_size = getimagesize($path);
$img_size[4] = $img_size[1]/$height;
$faktor = 100/$img_size[4];
$img_size[1] = $img_size[1]/100;
$img_size[0] = $img_size[0]/100;
$img_size[1] = $img_size[1]*$faktor;
$img_size[0] = $img_size[0]*$faktor;

if($img_size[0] >= 120){
$img_size[4] = $img_size[0]/$width;
$faktor2 = 100/$img_size[4];
if($faktor2 << $faktor){
$img_size[1] = $img_size[1]/100;
$img_size[0] = $img_size[0]/100;
$img_size[1] = $img_size[1]*$faktor2;
$img_size[0] = $img_size[0]*$faktor2;
}
}

$imgh = createimage($img_size[0], $img_size[1]);
$imgh2 = imagecreatefromjpeg($path);
$imgsz = getimagesize($path);
$black = imagecolorallocate($imgh2, 0, 0, 0);

imagecopyresized($imgh, $imgh2, 0, 0, 0, 0, $img_size[0], $img_size[1], $imgsz[0], $imgsz[1]);

header("Content-Type: image/jpeg");
imagejpeg($imgh, '', 100);
imagedestroy($imgh);
} else { // Dateianzeige
$mydir = dir("./");
while($file=$mydir->read()) {
if(getimagesize($file)){
echo'<a href="'.$file.'"><img src="' . $PHP_SELF . '?path=' . $file . '"></a>&nbsp;';
}
}
}

?>
_____________________________________________________________________

Danke für die Hilfe!
 
EM?
Da ich nicht weiß,wo dein Ursprung ist:

PHP:
<?
echo "<a href=\"javascript:history.back()\">Back</a>";
?>

oder:
Code:
<a href="javascript:history.back();">Back</a>
 
Das, was Du mit Deinem Code ausgibst (den Du im Übrigen das nächste mal auch in [ PHP ] code [ /PHP ] schreiben kannst), ist ein Bild. In einem Bild kann man keine Links ausgeben. Du mußt das Bild eine HTML-Seite einbetten, die Du mit PHP erstellen kannst.
grossbild.php
PHP:
<html>
.....
<a href="linkWohinDuZurückWillst"><img src="<? echo $HTTP_GET_VARS['bild']?>"></a>
...
</html>

Aufrufen musst Du das mit einem Link auf
Code:
./grossbild.php?bild=pfadUndDateiNameDeinesBildes
 
Cool, das ganze funktioniert. Was ich aber möchte ist, das die Grösse der Thumnails nicht automatisch angepasst werden, sondern das jedes Thumnail 150*100px gross ist... Ich nehme an, man kann einen grossen Teil des Codes löschen..=
Bin nicht so der PHP-Kenner, aber vielleicht kann mir das jemand sagen!?

Thx!
 
Es gibt Dinge, die muss man nicht selber schreiben.
Schau Dir mal phpThumb an.
Das ist ein sehr mächtiges Skript, um Thumbnails zu erzeugen.
Macht im Prinzip das, was Dein Skript auch macht, lässt über Parameter jedoch eine ganze Menge mehr Einstellungen zu.
 
Dieses Skript ist für einen PHP-Anfänger wie mich ziemlich lang und unverständlich... :-(
Es ist doch sicher möglich, meinen jetzigen Code (siehe oben) abzuändern, damit einfach jedes bild im thumnail 150x100 Pixel gross ist, oder ist das falsch?
Es wäre ja eigentlich eine Vereinfachung des jetzigen Codes...

Danke für eure Hilfe!

PS: PHP mag klasse sein, aber es gibt sooooooo viel zu lernen :-)
 
Wenn Du es "gestretched" haben willst, also immer genau (nicht maximal) 150 x 100 px, ist das relativ einfach.
Du lässt
PHP:
$img_size[4] = $img_size[1]/$height;
$faktor = 100/$img_size[4];
$img_size[1] = $img_size[1]/100;
$img_size[0] = $img_size[0]/100;
$img_size[1] = $img_size[1]*$faktor;
$img_size[0] = $img_size[0]*$faktor;

if($img_size[0] >= 120){
$img_size[4] = $img_size[0]/$width;
$faktor2 = 100/$img_size[4];
if($faktor2 << $faktor){
$img_size[1] = $img_size[1]/100;
$img_size[0] = $img_size[0]/100;
$img_size[1] = $img_size[1]*$faktor2;
$img_size[0] = $img_size[0]*$faktor2;
weg, änderst die Angaben von $height und $width entsprechend und schreibst anstatt
PHP:
$imgh = createimage($img_size[0], $img_size[1]);
$imgh2 = imagecreatefromjpeg($path);
$imgsz = getimagesize($path);
$black = imagecolorallocate($imgh2, 0, 0, 0);

imagecopyresized($imgh, $imgh2, 0, 0, 0, 0, $img_size[0], $img_size[1], $imgsz[0], $imgsz[1]);
jetzt:
PHP:
$imgh = createimage($width, $height);
$imgh2 = imagecreatefromjpeg($path);
$black = imagecolorallocate($imgh2, 0, 0, 0);

imagecopyresized($imgh, $imgh2, 0, 0, 0, 0, $width, $height, $img_size[0], $img_size[1]);

Mach Dir ein Backup, solange Du noch den Code hast, der Dir annähernd Dein Ergebnis produziert.

Wenn Du ein Bild haben willst, das maximal 150 x 100 px hat und dabei auf das Seitenverhältnis Rücksicht nehmen willst, dann schreib noch mal.
Aber das ist mir für einen Schuss ins blaue jetzt etwas zu mühsam, da muss ich denken ... und das dauert :-)

Ich bin mir nicht ganz sicher, aber die Zeile mit $black scheint mir überflüssig, müsstest Du mal ausprobieren, ob sich da was ändert, wenn Du sie weglässt.

Wenn Dir das Ergebnis nicht "hübsch" genug ist (256 Farben), dann kannst Du hoffen, dass Du die gd2 hast und versuchen, createimage durch ImageCreateTrueColor zu ersetzen und imagecopyresized durch imagecopyresampled.
Kannst ja mal bei php.net schauen, die Parameter sind dieselben.

Gruß hpvw
 
Zurück