Web-Foto-Galerie mit Bewertungs- und Auswahlmöglichkeit 44

19.11.2011
@netAction: Es scheint ja schon sehr komplexe Community-Projekte zu geben (siehe Posting von Christian). Außerdem mag ich es persönlich nicht, mit mehreren Entwicklern an einer Sache herumzubasteln. wenn man da nicht ganz klar Aufgabenbereiche vergeben kann und dafür ist das Ding einfach viel zu klein :) Es ist auch nicht meine Absicht jetzt daraus ein Shop-System zu machen, aber mal schauen was daraus wird und was man da alles noch einbauen kann.

Was die Lizenz angeht, darüber habe ich mir bisher noch keine Gedanken gemacht. Werde ich wohl auch noch machen müssen.

@cooltour: Eine Galerie wird mit einem Benutzerkonto verknüpft. Es können also beliebig viele Galerien mit beliebig vielen Benutzerkonten angelegt werden. Auch können mehrere Benutzerkonten mit einer Galerie verknüpft werden, wobei dann jedes Benutzerkonto seine eigene Bewertung vornehmen kann.
[gone] User_28381
19.11.2011
gefällt mir ganz gut. Bookmark.......

Gruß Ralf
19.11.2011
Mach ich auch mal ein bookmark.
Immer DVDs mit kleinen Bilders zu verschicken ist doch teurer. ;)
[gone] kj
19.11.2011
Gute Sache, Frank! *gefällt mir*.
22.11.2011
Ich habe jetzt die erste Version soweit vorbereitet, dass sie heruntergeladen und ausprobiert werden kann. Eine Dokumentation ist auch dabei. Den Download-Link findet ihr ganz unten auf
dieser Foto-Galerie-Seite. Dort werde ich in Zukunft immer die aktuellste Version zur Verfügung stellen.

Es wäre schön, wenn ich ein paar Rückmeldungen bekommen könnte wie es mit der Installation geklappt hat und wie ihr mit der Dokumentation zurecht gekommen seid. Wenn es irgendwelche Probleme gibt oder ihr Fehler entdeckt, dann wäre es schön, wenn ihr mir diese mitteilen könntet.

Wer sich eine Installation bzw. Anpassung selbst nicht zutraut, der darf sich auch gerne direkt bei mir melden und ich übernehme diese Arbeiten dann. Teilt mir einfach mit was genau ihr wünscht und ich mache euch da ein Angebot.

Ansonsten hoffe ich, dass ihr damit was anfangen könnt :) Verbesserungsvorschläge dürft ihr natürlich auch gerne machen :)
23.11.2011
Ich habe den Quellcode überflogen. Du hast es dir ziemlich kompliziert gemacht, aber schön sauber programmiert ist es.

Deine Lizenz kommt von den mittelmäßig freien Lizenzen am Ehesten an die CC-BY-ND. Vielleicht nutzt du einfach die? Das Verbot der Veränderung wird dich wahrscheinlich nur behindern. Es ist eher für künstlerische Dinge oder Personenfotos gedacht. Bei Software macht es keinen großen Sinn.

Dein Spagat zwischen Datenbank und Dateisystem ist fehleranfällig. Du könntest entweder einen Upload-Wizard schreiben, der das Dateisystem verwaltet, oder du packst in jede Galerie eine SQLite-Datenbank. Durch Hinzufügen oder Löschen von Bildern sollte nicht das System kaputt gehen. Ein dritter Weg wäre, wenn sich die Datenbank automatisch an das Dateisystem anpasst. Dan hast du für jeden Benutzer eine kleine Datei mit den Zugangsdaten, den Rest sucht sich die Datenbank selbst zurecht.

Ansonsten ein schöner Code, wie man ihn vor zehn Jahren geschrieben hat. Besonders brenzlig sind die mysqli-Aufrufe und der falsche Gebrauch von prepared statements, weil damit jeder vollen Zugriff auf die Datenbank bekommt. Nimm lieber PDO.
23.11.2011
Original von netAction
Ich habe den Quellcode überflogen. Du hast es dir ziemlich kompliziert gemacht, aber schön sauber programmiert ist es.

Warum habe ich es mir kompliziert gemacht?

Original von netAction
Deine Lizenz kommt von den mittelmäßig freien Lizenzen am Ehesten an die CC-BY-ND. Vielleicht nutzt du einfach die? Das Verbot der Veränderung wird dich wahrscheinlich nur behindern. Es ist eher für künstlerische Dinge oder Personenfotos gedacht. Bei Software macht es keinen großen Sinn.

Dein Spagat zwischen Datenbank und Dateisystem ist fehleranfällig. Du könntest entweder einen Upload-Wizard schreiben, der das Dateisystem verwaltet, oder du packst in jede Galerie eine SQLite-Datenbank. Durch Hinzufügen oder Löschen von Bildern sollte nicht das System kaputt gehen. Ein dritter Weg wäre, wenn sich die Datenbank automatisch an das Dateisystem anpasst. Dan hast du für jeden Benutzer eine kleine Datei mit den Zugangsdaten, den Rest sucht sich die Datenbank selbst zurecht.

Ich könnte vieles machen und man kann das alles anders und besser machen. Ich habe es mir einfach gemacht, weil das genau so für meine Zwecke vollkommen ausreichend ist und ich nicht nachträglich neue Fotos hinzufüge oder bestehende lösche. Das habe ich aber auch in der Doku so beschrieben, dass man das nicht machen soll.

Original von netAction
Ansonsten ein schöner Code, wie man ihn vor zehn Jahren geschrieben hat. Besonders brenzlig sind die mysqli-Aufrufe und der falsche Gebrauch von prepared statements, weil damit jeder vollen Zugriff auf die Datenbank bekommt. Nimm lieber PDO.

Warum gebrauche ich die Prepared Statements falsch? Ich habe das so gemacht wie es in meinem PHP-Buch beschrieben ist. Und wie soll so jemand Zugriff auf die Datenbank bekommen?
23.11.2011
das wäre super, her damit
23.11.2011
> Warum gebrauche ich die Prepared Statements falsch?

Du holst die Variable $nr vom User und stellst sie in das Statement. Das erleichtert SQL-Injections. In deinem Code ist die Gefahr durch den sauberen, konsequenten Gebrauch von intval() begrenzt, aber das ist anfällige Symptombehandlung und sicherlich das häufigste Tor für Angriffe.

Weiterhin machst du dir mit der Bildnummer im Statement den Geschwindigkeitsvorteil von mysqli zunichte. Das Ziel sollte sein, mit möglichst wenigen Statements auszukommen, auf die sich die Datenbank dann einstellt.
...was schlägst du nun also jedem interessierten mitleser hier vor? welches einfache system kannst du genau für die vom TO beschriebenen bedürfnisse denn empfehlen?
lg martin


Original von netAction
> Warum gebrauche ich die Prepared Statements falsch?

Du holst die Variable $nr vom User und stellst sie in das Statement. Das erleichtert SQL-Injections. In deinem Code ist die Gefahr durch den sauberen, konsequenten Gebrauch von intval() begrenzt, aber das ist anfällige Symptombehandlung und sicherlich das häufigste Tor für Angriffe.

Weiterhin machst du dir mit der Bildnummer im Statement den Geschwindigkeitsvorteil von mysqli zunichte. Das Ziel sollte sein, mit möglichst wenigen Statements auszukommen, auf die sich die Datenbank dann einstellt.
23.11.2011
Original von netAction
> Warum gebrauche ich die Prepared Statements falsch?

Du holst die Variable $nr vom User und stellst sie in das Statement. Das erleichtert SQL-Injections. In deinem Code ist die Gefahr durch den sauberen, konsequenten Gebrauch von intval() begrenzt, aber das ist anfällige Symptombehandlung und sicherlich das häufigste Tor für Angriffe.

Weiterhin machst du dir mit der Bildnummer im Statement den Geschwindigkeitsvorteil von mysqli zunichte. Das Ziel sollte sein, mit möglichst wenigen Statements auszukommen, auf die sich die Datenbank dann einstellt.


Selbst wenn ich intval verwende, SQL-Injections werden so trotzdem nicht möglich sein. Du behauptest hier, dass jeder einfach in die Datenbank eindringen kann. Wenn das wirklich so einfach ist, dann versuche es doch, in meine hinein zu kommen :) Wenn Du wirklich konkrete Sicherheitslücken siehst, dann teile sie mir mit. Dafür bin ich jedem dankbar.
23.11.2011
Ich versuche es mal anders zu erklären. Es ist momentan und auf deinem Server nicht einfach, in deiner Installation einzubrechen. Das ist aber eher Glück. Wenn ich in irgend einem Programmteil die Variable $nr manipulieren kann, kann ich einsteigen. Dieses Szenario halte ich aus Erfahrung für wahrscheinlich. Das ist dann die berühmte "Verkettung unglücklicher Zufälle".

Übergib doch einfach konsequent $nr mit der Funktion bind_param(), genau dafür ist sie vorgesehen.

Eigentlich wollte ich dich nicht angreifen, sondern Hinweise geben. Das ist doch das Geile an Open Source. Einen Patch darf ich ja wegen der Lizenz nicht schreiben.

Edit: Um einen Fehler nachzuweisen braucht man keinen Exploit. In SSL war über Jahre ein Problem bekannt, das mangels Exploit nicht ernst genommen wurde. Bis das kürzlich zu einem Desaster führte.
23.11.2011
Original von netAction
Ich versuche es mal anders zu erklären. Es ist momentan und auf deinem Server nicht einfach, in deiner Installation einzubrechen. Das ist aber eher Glück. Wenn ich in irgend einem Programmteil die Variable $nr manipulieren kann, kann ich einsteigen. Dieses Szenario halte ich aus Erfahrung für wahrscheinlich. Das ist dann die berühmte "Verkettung unglücklicher Zufälle".

Übergib doch einfach konsequent $nr mit der Funktion bind_param(), genau dafür ist sie vorgesehen.

Eigentlich wollte ich dich nicht angreifen, sondern Hinweise geben. Das ist doch das Geile an Open Source. Einen Patch darf ich ja wegen der Lizenz nicht schreiben.


Dann schreibe aber auch nicht, dass das jeder so einfach kann. Ich mag es nicht, wenn jemand Dinge behauptet, die überhaupt nicht den Tatsachen entsprechen und alles in den Dreck zieht was ich mache. Ich habe bisher noch nicht viel mit PHP programmiert und das ist jetzt die erste etwas größere Sache, die ich überhaupt mit PHP gemacht habe. Darüber hinaus ist das die erste Version, die ich jetzt veröffentlicht habe und natürlich möchte ich wissen, wenn irgendwo Fehler in meinem Code sind. Ich behaupte ja nicht, dass ich fehlerfreie Programme schreibe. Aber wenn dann möchte ich das vernünftig gesagt bekommen, mit Angaben von Datei und Zeilennummer und nicht so, dass ja sowieso alles Mist ist, was ich da gemacht habe.

Ich werde die Zugriffe auf die Datenbank alle noch mal überprüfen und überall dort bind_param() verwenden, wo ich das bisher noch nicht gemacht habe. Auch wenn ich es jetzt so wie es ist schon für ausgeschlossen halte, dass jemand SQL-Injections einbringen kann. In kürze gibt es dann Version 1.0.1 :)
[gone] Stefan Pausch
23.11.2011
Ich habe mir gerade auch mal das Script, Code und Testseite angeschaut. Vom Code her ist es nicht mein Fall.

- Ich finde die Lizenz etwas schade.
- In jeder Datei stehen Metadateien drin (geo., ICBM) die m.E. nicht in ein Downloadscript gehören.
- Wenn ich in der Thumbnailansicht über ein Bild gehe und mittels Numerntasten eine Wertung eingebe, so wird nicht die Wertung des Bildes gesetzt, sondern der Filter. Fände es schön, wenn man da auch schon direkt bewerten könnte
- Die Filterfarben der ausgewählten / nicht ausgewählten Farbe (unter dem Banner) irritieren. Das Schwarz wird als schwarz, grau und durchsichtig dargestellt. Wenn ich alle Farben auswähle wird kein Bild angezeigt, allerdings sollte dann doch ALLE Bilder mit Farben angezeigt werden?
- Die Seite benutzt sehr viele "Browserneuladen" Logiken. Dies könnte man u.a. mit Ajax geschickter lösern.
[gone] Stefan Pausch
23.11.2011
Nachtrag: In LR ist es so das ein Bild nur eine Farbe haben kann. Ansonsten würde sich ja die Logik mit den Sternen aufheben :)
... das habt ihr wieder richtig gut hingekriegt, Jungs!

Jemand aus unserer "Gemenischaft" hier kommt angetrieben mit einer gesunden Portion Enthusiasmus und einer gutem Idee und Lösung für ein scheinbar breites Anliegen, freut sich des Lebens und seines Werkes und dann pflügt man rücksichtslos wie ne Dampfwalze über ihn drüber...!

Resultat: er überlässt euch Hirschis ob soviel "gut gemeinter Zusammenarbeit" demotiviert und enttäuscht den Ring - und was bleibt?
Wieder Ein User und Mitglied, der kaum mehr irgendwann mal irgendwas konstruktives posten wird und ein verweister, zerstückelter Fred wie man ihn hier fast täglich antrifft!

Richtig gut gemacht Jungs, BRAVO!

Edit: ... und unser aller Anliegen und Wunsch nach genau sowas bleibt natürlich, who cares!
[gone] Stefan Pausch
23.11.2011
Man kann natürlich auch immer Lobeslieder singen auch wenn gerade Nero Rom abrennt Hauptsache Augen zu und durch, nur damit sich ein Mensch die Wärme in seinem Herzen fühlt und er sich seines Werkes hinreichend beachtet fühlt.

Meinungen / Kritik sei sie noch so bedacht und möglichst neutral geschrieben wird immer direkt als Ermordung angesehen. Gibt man Hinweise die irgendwie aufzeigen das man mehr Wissen hat als die Person selber, so ist man direkt der Feind der einem seines Schatzes berauben will, egal wie sehr man es gut meint. Anstelle - mit einfachem logischen Verstand - auszusondern was man von dem annimmt was an einen herangetragen wird, wird man direkt ein Manifest von Gegenbehauptungen aufziehen, da der Gegner ja ein Beweisschuld mit sich bringt.

Mir ist die Person die hinter einem Werke steckt egal, ich kenne diese nicht, ich möchte nicht mit Ihr schlafen und schon Freunde/Feine sind wir noch lange nicht. Warum wird den immer alles immer direkt persönlich?

Der Ansatz des Scriptes ist nett und es funktioniert. Wer es nutzen will soll es nutzen. Wenn man den Mund halten sollte, was Kritik, Bugs und Verbesserungspunkte angeht dann hätter der TO einfach sagen können "Jungs hier, fresst oder stirbt, ich brauche keine Kritik". Verschiedene Meinungen kommen immer, wen man was veröffentlicht. Und da sind nun einmal auch nicht Lobeslieder bei. Nehmt euch geschriebene Worte nicht immer so zu Herzen und diskutiert nicht darüber welche Fehler Leute haben und was man rhetorisch besser gemacht hätte, sondern konzentriert euch auf die Sache um die es geht.

Um Kritik, welche nicht plump und mit direkten Informationen bestückt ist bedarf es auch einer Zeitaufwendung und Wissen. Wenn es darum ginge die Person zu beleidigen könnte man das auch viel einfach. Einfach zufällige Worte in Richtung "Mutter" "stinken" und "Warmduscher" wählen. Da spart man Zeit und muss sich nicht mit der Sache direkt auseinandersetzen.

Ich vermute das meine Kritik nicht so böse klang wie die von netAction. Meiner Meinung nach sollte man -selber- (als TO) entscheiden was man davon annimmt oder sein lässt. Direkt mit Argumenten um sich zu werfen bläht das ganze nur auf. Nettigkeit gehört an beide Seiten. Worte sind in dem Falle IMMER blöde gewählt.

Um das ganze Abzurunden: Ich habe mir das Script angeschaut und Hinweise gegeben was mir nicht gefallen hat. Das Script werde ich nicht nutzen (dazu habe ich einen Workflow wo es nicht passt und würde mir was eigenes coden, was nicht bedeuten soll das ich jetzt in der Evolution höher stehe :D), allerdings habe ich kein Problem damit bei solch einem Projekt mein Wissen bereitzustellen und Kritik zu üben und ab und an das Teil zu testen. Wenn das allerdings so bitterböse aufgefasst wird dann habe ich kein Problem damit und widme mich anderen Dinge.

In dem Sinne: Take it easy :D

Edit: Tippfehler beseitigt :D
24.11.2011
@Stefan: +1
das ist alles was dir dazu einfällt oder?
könntest dir ja fürs nächste mal vielleicht eine andere strategie einfallen lassen, anstatt hier alle zu verscheuchen! alternativ könntest du solche wahnsinns beiträge dem TO jeweils per pn schicken!?

martin


Original von netAction
@Stefan: +1
08.12.2011
Es gibt jetzt eine neue Version der Foto-Galerie mit einer ganzen Reihe von Verbesserungen, u.a.

  • Fotos können jetzt direkt über den Browser hochgeladen und auch wieder gelöscht werden, auch nachträglich

  • Thumbnails werden automatisch erzeugt

  • Fotos können sortiert werden

  • benötigte Verzeichnisse für die Fotos werden automatisch erzeugt

  • Administrator kann direkt in die Galerien springen

  • und noch einiges mehr

Bei einem Update bitte unbedingt die Hinweise in der Dokumentation beachten. Alle Änderungen, Download usw. findet Ihr wie bisher unter
http://www.frank-merfort.de/downloads/foto-galerie.html

Topic has been closed