Autor |
Nachricht |
Smooth-Graphics
Threadersteller
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 23.05.2008 16:18
Titel
|
|
|
Hmm... es war mir irgendwe schon klar, dass es irgendein verdammter Flüchtigkeitsfehler ist. Danke, m!
Noch kurz eine Frage: Warum ist die Qualität so schlimm, trotz 100% JPEG? Schau mal hier: http://knipsolina.management-panel.com/Galerie/thumb.php?path=Galerie/images/11.jpg
EDIT:
Ach, und wo wir schon dabei sind (sorry wenn ich langsam nerv). Bei der großen Bildanzeige links sind ja weiter und zurück Buttons. Da stimmt was nicht. Eigentlich sollte die nächste ID bzw vorherige aufgerufen werden, wenn man drauf klickt. Nur irgendwie springt er immer auf einen festen Wert (ca 3 Bilder weiter) und dann gar nicht mehr weiter.
Der Code dazu:
Code: |
<?php
// per SQL erstes Bild der Sektion auswerten
$dbq_firstimg = "SELECT DISTINCT * FROM galerie WHERE category='".$category."'";
$result_firstimg = mysql_db_query("knipsolina_galerie", $dbq_firstimg);
$row_firstimg = mysql_fetch_array($result_firstimg);
$firstcatimg = $row_firstimg['ID'];
// erstes Bild ausgeben oder gewähltes ausgeben
if(isset($_GET['img'])) {
$img = strip_tags($_GET['img']);
} else {
$img = $firstcatimg;
}
$dbq2 = "SELECT * FROM galerie WHERE ID='".$img."'";
$result2 = mysql_db_query("knipsolina_galerie", $dbq2);
$row2 = mysql_fetch_array($result2);
// Breite und Höhe des Bildes auslesen:
list($origwidth, $origheight) = getimagesize($row2['path']);
// Breite und Höhe für Fullsize bestimmen:
if($origwidth > $origheight) {
$width = 400;
$Skalierungsfaktor = $origwidth/$width;
$height = intval($origheight/$Skalierungsfaktor);
$divheight = (400-$height)/2;
echo '<img src="whitespace.gif" alt="whitespace holder" width="400" height="'.$divheight.'" />';
}
if($origheight > $origwidth) {
$height = 400;
$Skalierungsfaktor = $origheight/$height;
$width = intval($origwidth/$Skalierungsfaktor);
}
if($origheight == $origwidth) {
$width = 400;
$height = 400;
}
// Vor / Zurück Link
$vor = $currid + 1;
$back = $currid - 1;
?>
<img src="<?php echo $row2['path']; ?>" alt="<?php echo $row2['name']; ?>" width="<?php echo $width; ?>" height="<?php echo $height; ?>" />
<div id="previmg">
<a href="?id=portfolio&sub=<?php echo $category; ?>&page=<?php echo $page; ?>&img=<?php echo $back; ?>"><img src="Galerie/imghandler_invisible.gif" alt="Bild zurück" width="60" height="60" /></a>
</div>
<div id="nextimg">
<a href="?id=portfolio&sub=<?php echo $category; ?>&page=<?php echo $page; ?>&img=<?php echo $vor; ?>"><img src="Galerie/imghandler_invisible.gif" alt="Bild weiter" width="60" height="60" /></a>
</div>
|
Vor allem zu beachten eben die letzten Zeilen mit den Links.
Wäre nett, wenn du oder jmd anderes mir dabei noch helfen könnte(s)t!
Zuletzt bearbeitet von Smooth-Graphics am Fr 23.05.2008 16:22, insgesamt 1-mal bearbeitet
|
|
|
|
|
pRiMUS
Dabei seit: 09.09.2003
Ort: Vienna
Alter: 48
Geschlecht:
|
Verfasst Fr 23.05.2008 17:35
Titel
|
|
|
ich sehe da nichts, was dein bild erzeugt, aber ich vermute du hast nicht imagecopyresampled() und imagecreatetruecolor() verwendet.
|
|
|
|
|
Anzeige
|
|
|
Smooth-Graphics
Threadersteller
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 23.05.2008 17:37
Titel
|
|
|
pRiMUS hat geschrieben: | ich sehe da nichts, was dein bild erzeugt, aber ich vermute du hast nicht imagecopyresampled() und imagecreatetruecolor() verwendet. |
Die Bilder werden mit
Code: | imagecreatetruecolor();
imagecopyresized();
| erzeugt.
Code steht bisschen weiter oben.
Zuletzt bearbeitet von Smooth-Graphics am Fr 23.05.2008 17:37, insgesamt 1-mal bearbeitet
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 23.05.2008 19:29
Titel
|
|
|
versuch mal imagecopyresampled() anstelle von ...resized()
|
|
|
|
|
Smooth-Graphics
Threadersteller
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 23.05.2008 19:59
Titel
|
|
|
Wunderbar! Wozu gibts dann eigentlich imagecopyresized();?
Habt ihr für das andere Problem ne Lösung?
|
|
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 23.05.2008 21:00
Titel
|
|
|
Smooth-Graphics hat geschrieben: | Wunderbar! Wozu gibts dann eigentlich imagecopyresized();? |
Zum resizen ohne Interpolation
Smooth-Graphics hat geschrieben: | Habt ihr für das andere Problem ne Lösung? |
Ich habe mir dass jetzt nicht genau angesehen, aber ich gehe mal davon aus dass die ids der Bilder
nicht durchlaufend sind, da anscheinend unters. Kategorien vorhanden sind.
Die aktuelle Zeile daher anhand der ID zu identifzieren wird nicht funktionieren wenn du nicht die
vorherige und folgende ID ermittelst. Daher solltest du es etwas anders angehen:
Code: | $page = (int) $_GET['page']
$c = SELECT COUNT(id) as ...
bild = SELECT pfad FROM ... LIMIT $page, $page+1
$c ist in dem fall ja gleich der anzahl an seiten (ein bild pro seite)
if($page > 1) {
zurück
}
if($page<$c) {
vor
} |
|
|
|
|
|
Smooth-Graphics
Threadersteller
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 23.05.2008 22:35
Titel
|
|
|
Hab das jetzt so gelöst:
Code: |
// Vor / Zurück Link
$sqlx = "SELECT ID, path, thumb, name FROM galerie";
$resultx = mysql_db_query("knipsolina_galerie", $sqlx);
$rowsx = mysql_num_rows($resultx);
// Zurück Link
$lastid = "SELECT max(ID) FROM galerie WHERE category='".$category."' AND ID<'".$img."'";
$last_id = mysql_db_query("knipsolina_galerie", $lastid);
while($zeile=mysql_fetch_array($last_id))
{
$minus_id = $zeile[0];
}
// Vor Link
$nextid="SELECT min(id) FROM galerie WHERE category='".$category."' AND id>'".$img."'";
$next_id= mysql_query($nextid);
while ($zeile=mysql_fetch_array($next_id))
{
$plus_id = $zeile[0];
} |
Danke an euch alle! Danke für eure Hilfe!!!
Zuletzt bearbeitet von Smooth-Graphics am Fr 23.05.2008 22:36, insgesamt 1-mal bearbeitet
|
|
|
|
|
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht:
|
Verfasst So 25.05.2008 03:16
Titel
|
|
|
Zitat: | Wunderbar! Lächel Wozu gibts dann eigentlich imagecopyresized();? |
Klick
Bist du eigenzlich schon mal auf die Idee gekommen, einen Blick ins PHP-Handbuch zu werfen?
Das sollte eigentlich jeder PHP-Programmierer kennen.
Und ansonsten könnte auch SelfPHP noch für dich interessant sein.
und was mir noch aufgefallen ist...
Code: | $resultx = mysql_db_query("knipsolina_galerie", $sqlx); |
Warum arbeitest du mit der Funktion mysql_db_query()?
Setz besser mysql_query() ein.
Denn: Zitat: | Hinweis: Diese Funktion ist seit PHP 4.0.6 veraltet. Verwenden Sie diese Funktion nicht. Stattdessen sollten Sie die Funktionen mysql_select_db() und mysql_query() verwenden. | (Quelle)
Außerdem frage ich mich, wo deine Variablen herkommen, die du in deine Abfragen einbaust.
Ich kann das nicht erkennen, wie/ob du die behandelst/sicherst.
Wenn Variablen von außen kommen, darfst du diese niemals ungeprüft in deine Abfragen einbauen.
Eine Absicherung mit mysql_real_escape_string() ist das Mindeste, was du tun solltest.
Andernfalls wäre ein Angriff auf dein Script per SQL-Injektion denkbar.
|
|
|
|
|
|
|
|
Ähnliche Themen |
[Hilfe] Thumbnails erstellen
Thumbnails mit Dateiinformationen erstellen
[PHP Advanced] Grafik aus PLZ erzeugen
Advanced Image Swap
[CSS advanced?] flexiblen werbebanner positionieren
PHP Thumbnails per FTP speichern?
|
|