verbesserung ?! an meinem galerie script

dehne
hi,

ich habe jetzt mal so ma ein bisschen rumgecodet und folgends is bei raus gekommen !

http://partybilder.hr-radio.org/

aber ich finde es noch nicht perfekt und nicht so gut, ich kann das mit dem php noch nicht so gut bzw nur so coden ohne mysql erfahrung !

ich wollte ne funktion drinne haben um wenn man die bilder hochgeladen hat das man die erst in einer panel oder admin.php freischalten muss bevor is darein kommen, ich wollte auch das sich das fenster an die bildgröße anpasst sowie nen wasserzeichen aber ich habe noch nicht so wirklich ahung ! und jetzt wollte ich ma fragen ob mir jemand helfen kann dabei !? wäre sau nett !
p-Logic
Alles kein Problem würd ich sagen. So weit siehts gut aus, habs jetzt nicht auf mysql injection oder ähnliches geprüft, aber wird schon funktionieren Augenzwinkern

Die erwünschte Admin Funktion lässt sich einfach durch eine neue Spalte "frei_geschalten" (oder ähnliches) in der mysql Tabelle realisieren. Beim speichern des Bildes einfach den Wert 0 einsetzen und in der Gallerie die mysql Abfrage nach allen Bildern mit "... WHERE frei_geschalten = 1" begrenzen.
Nun brauchst du nur noch eine kleine Admin Seite mit einer einfachen Passwortabfrage (wie du die realisierst ist dir überlassen), die dir alle Bilder auf listet WHERE frei_geschalten = 0.

Für jedes Bild generierst du jetzt einen Link nach dem Schema href="?bild=$bild_id".
Ob du für $bild_id eine wirkliche ID (0,1,2,3,..) verwendest oder nur z.B. den Bildnamen, kannst du dir aussuchen, sollte beides gehen, solange die Angabe einen Datensatz eindeutig identifizieren.
Auf der Admin Seite fehlt dann noch eine kleine Änderung, die die Bilder auch wirklich frei schaltet:
Wenn if (isset($_GET["bild"])) ist, wurde die Seite über einen der frei-schalt-links betreten, nun muss man nur noch die Datensätze in der Datenbank UPDATEn, die diese ID/diesen Bildnamen besitzen.

Für Wasserzeichen sowie Bildgröße ermitteln verweise ich mal dezent auf die image Funktionen auf php.net. (getimagesize/imagesx/imagesy/...)
Zum verändern der Größe des Fensters kannst du dann Java Script im Popup Fenster verwenden oder du generierst die Popup Links gleich für die richtige Größe (ist halt mehr Rechnerei pro Seitenaufruf).

Der erste Kommentar auf dieser Seite enthält außerdem ein kleines Script für Wasserzeichen.

Falls ich mich irgendwo verwirrend ausgedrückt habe, frag einfach nochmal nach, das passiert mir manchmal Augenzwinkern
daHooligan
die bilder werden bei dir bis jetzt verzerrt dargestellt, das kanns du noch anders machen indem du die längere seite des bilds ermittelst, ermittelts wie viel % das von der gewünschten GRöße sind und die Bilder dann relativ verkleinerst und nicht mehr angibst, das bild muss 100*100px² sein
dehne
also ich habe es ein bisschen verändert
http://www.hardrevolution.org/v2/partybilder/
hier ! ich bin schon die ganze zeit dabei die größe es bildes anzupassen aber irgendwie will mir das net gelingen ! genauso wenig wie von mysql wie ich das mit den tabellen machen mus habe ich eher weniger ahnung weil soviel kann ich nun auch noch wieder net ! sorry

aber könnte mir jemand dabei helfen ?!

das is der code für die show.php
wäre nett super mega nett wenn mir jemand helfen kann =)

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
<html> 
<head> 
<script type="text/javascript"> 
       function openWindow(bildname) { 
          window.open("show.php?show&picture="+bildname, "Detailansicht", 
"height=800 ,width=600 ,menubar=no,resizable=no,scrollbars=yes,toolbar=no"); 
     }
</script> 
<? 
 
// aufruf mit show.php?show=0 oder ?show=1&picture=bild_name 
 
$directory 'upload/'$pic_row 8; 
 
if (!isset($_REQUEST['show'])) { 
     // Gallerie anzeigen von allen Bildern im Verzeichnis 
 
     if ($handle opendir($directory)) { 
          echo '<table>'; 
 
          /* This is the correct way to loop over the directory. */ 
          $i 0; 
           
          while (false !== ($file readdir($handle))) { 
               if (!preg_match("=^\.+="$file)) { 
list($width$height$type$attr) = getimagesize($directory.$file);
                
                    if ($i == 0) echo '<tr>'; 
                    echo '<td><a href="show.php?show=&picture='.$file.'" 
onClick="'."openWindow('$file'); return false".'">
<img width="100px" height="100px" "border="0"  src="'.$directory.$file.'"></a></td>'; 

                    $i++; 
                    if ($i == $pic_row) { 
                         echo '</tr>'; 
                         $i 0; 
                    } 
               } 
          } 
           
          // um "ganze" Tabellen zu bauen 
          if ($i $pic_row) { 
               for ($p $i$p <= $pic_row$p++)  
                    echo '<td>&nbsp;</td>'; 
          } 
          closedir($handle); 
     } else echo 'ERROR: PFAD NICHT RICHTIG ANGEGEBEN ODER KANN NICHT GEOFFNET WERDEN!'; 
} else { 
             if (isset($_REQUEST['picture'])) { 
               echo '<img src="'.$directory.$_REQUEST['picture'].'">';
          }

          else echo 'FEHLER: KEIN BILD ANGEGEBEN';  
} 
?> 
</body> 
</html> 
daHooligan
kommt drauf an , was du machen willst... Augenzwinkern
kannst du das bitte ein bissel präzisieren, bin grad zu müde um mir das genau anzuschauen, vielleicht schreib ich nachher noch was dazu, wenn ich wieder wach bin
dehne
so besser ?!
naja ich will da ne admin funktion rein haben sodas man die hochladen kann aber das man die erst unter admin.php freigeben kann ! damit das irgendwie keine porno bilder drauf kommen und dann möchte ich das das fenster an die größe von dem bild angepasst wird und unten drunter schließen oder wenn man auf das bild denn klickt das es schließt !
ThiefMaster
Und was genau ist jetzt deine Frage?
daHooligan
das mit dem fenster schließen kannste die woanders recht einfach abschauen, geht mit <a href=java script:window.close()>zu</a> wenn mich nicht allzu viel täuscht
für das admin-modul kommst du kaum um ne datenbank rum.
Die Größe von dem Bild kriegst du mit getimagesize(); und dann erzeugst du den link für das große Bild indem du die Bildgröße des verlinkten Bildes ermittelst, und das in die größe des fensters einbaust (<a href="show.php?show=&picture='.$file.'"
onClick="'."openWindow(".$file.", height=".$height + 20 ." width=".$width + 30."); return false".'"> , das sollte ein Fenster öffnen, das 20px breiter und 30px höher ist als das bild, allerdings ist der "schließen"-link da noch nicht eingebaut. Dazu müsstest du ne .php machen, die das Bild in ner kleinen html-seite anzeigt, die den "schließen"-link enthält.
sorry wenns verwirrt klingt aber bin grad nicht so gut drauf...
dehne
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
<html> 
<head> 
<script type="text/javascript"> 
       function openWindow(bildname,hoehe,breite) {
          window.open("show.php?show&picture="+bildname, "Detailansicht", "height=800 ,width=600 ,menubar=no,resizable=no,scrollbars=yes,toolbar=no");
     }
</script> 
<? 
 
 
$size getimagesize ("upload/21130.jpg");
echo "<img src=\"upload/21130.jpg\" {$size[3]}>";

// aufruf mit show.php?show=0 oder ?show=1&picture=bild_name 
 
$directory 'upload/'$pic_row 8; 
 
if (!isset($_REQUEST['show'])) { 
     // Gallerie anzeigen von allen Bildern im Verzeichnis 
 
     if ($handle opendir($directory)) { 
          echo '<table>'; 
 
          /* This is the correct way to loop over the directory. */ 
          $i 0; 
           
          while (false !== ($file readdir($handle))) { 
               if (!preg_match("=^\.+="$file)) { 
list($width$height$type$attr) = getimagesize($directory.$file);
                
                    if ($i == 0) echo '<tr>'; 
                    echo '<td> <a href="show.php?show=&picture='.$file.'"
onClick="'."openWindow(".$file.", height=".$height 20 ." width=".$width 30."); return false".'"> 
<img width="100" height="100" border="0"  src="'.$directory.$file.'"></a></td>';
                    
                                
                    
                                  
                    
                    $i++; 
                    if ($i == $pic_row) { 
                         echo '</tr>'; 
                         $i 0; 
                    } 
               } 
          } 
           
          // um "ganze" Tabellen zu bauen 
          if ($i $pic_row) { 
               for ($p $i$p <= $pic_row$p++)  
                    echo '<td>&nbsp;</td>'; 
          } 
          closedir($handle); 
     } else echo 'ERROR: PFAD NICHT RICHTIG ANGEGEBEN ODER KANN NICHT GEOFFNET WERDEN!'; 
} else { 
             if (isset($_REQUEST['picture'])) { 
               echo '<img src="'.$directory.$_REQUEST['picture'].'">';
          }

          else echo 'FEHLER: KEIN BILD ANGEGEBEN';  
} 
?> 
</body> 
</html>



so ist jetzt der code ! aber gehn tut as nicht http://partybilder.hardrevolution.org/

bruahce hilfe