Die letzten 20 Bilder auf Knopfdruck

Neue Projekte (requests) und Beta Mods

Moderator: Supporter

Beitragvon AmigaLink » 21. Nov 2006 18:58

Ich meinte ja auch nur das bei dir keine Fehlermeldung kommt!
Bilder ohne Kommentare werden angezeigt (es werden alle vorhandenen Bilder angezeigt), sollten aber in der Sortierung an letzter Stelle sein. Das ist vollkommen normal. Weil keine Filterung eingebaut ist, die dafür sorgt das nur Bilder mit Kommentaren angezeigt werden.
Was mir bei dir aber aufgefallen war. Ist das Bilder mit mehreren Kommentaren auch mehrmals angezeigt werden. Das passiert nicht mehr, wenn ORDER BY new_comment DESC benutzt wird. :)
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon Eva » 21. Nov 2006 20:47

also doppelte bilder habe ich nicht gefunden , aber wenn du mal ab seite 2 schaust, siehst du das da bilder bei sind die noch keine kommentare haben

Zugefügt nach 9 Minute(n):

mir ist gerade nochetwas aufgefallen .... die links oben sind falsch ... also wenn man auf die zahlen klickt .. wenn man z.b. bei den kommentaren ist... dann wird man immer wieder auf die letzten bilder zurückverwiesen, wenn man eine zahl anklickt. (das hört sich sicherlich verwirrend an)
Naja das erklärt auch warum da bilder mit 0 kommentaren zu finden sind, schätze mal das gleiche passiert auch bei den bildern mit den meisten klicks.
Wo kann ich da den link anpassen ?!
Benutzeravatar
Eva
User
 
Beiträge: 356
Registriert: 15. Okt 2004 21:49

Beitragvon AmigaLink » 21. Nov 2006 21:06

[center]ACHTUNG SICHERHEITSLÜCKE!!![/center]
Code: Alles auswählen
#
#-----[ FIND ]----------------------------------------------------------------
#

$l_last_pics = ($_GET['l_last_pics'] == '') ? "Letzte Bilder" : $_GET['l_last_pics'];

#
#-----[ REPLACE WITH ]--------------------------------------------------------
#

$l_last_pics = (isset($lang['last_pics'])) ? $lang['last_pics'] : 'Letzte Bilder';

Mal abgesehen davon das diese Zeile keinen Sinn macht und die phpBB group die Verwendung von $HTTP_GET_VARS anstelle von $_GET vorschreibt, wird Hackern die Möglichkeit gegeben ein Script auszuführen. Bild

@ bce
Geh niemals hin und übergib extern eingeführte Daten ungeprüft an den Browser weiter!!!
$HTTP_GET_VARS und $HTTP_POST_VARS bzw. $_GET und $_POST sind Globale Variablen die es ermöglichen Daten aus HTML-Formularen in PHP zu übernehmen bzw. sie der benutzen URL auszulesen.
Wenn du so übernommene Daten ungeprüft weiterverarbeitest öffnest du Hackern Haus und Hof!

Das es wenig Sinn macht, den Seitentitel mittels $_GET zu bestimmen. Habe ich es jetzt so abgeändert, das es euch freisteht mit Sprachvariablen zu Arbeiten.
Das heist: Sobald ihr in der lang_main.php eine die Variable $lang['last_pics'] definiert, wird deren Inhalt benutzt. Macht ihr das nicht, wird 'Letzte Bilder' angegeben. :)
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon AmigaLink » 21. Nov 2006 22:05

mir ist gerade nochetwas aufgefallen .... die links oben sind falsch ... also wenn man auf die zahlen klickt .. wenn man z.b. bei den kommentaren ist... dann wird man immer wieder auf die letzten bilder zurückverwiesen, wenn man eine zahl anklickt. (das hört sich sicherlich verwirrend an)
Das liegt daran das ihr bei den Unterschiedlichen Dateien jeweils nur die Datenbankabfrage angepasst habt.
Es wäre viel Inteligenter, die Datei nur einmal auf den Server zu legen und die Ausgabe mittels Parameterübergabe zu steuern. Schon alleine weil der Code darauf ausgelegt ist. :)

Ich habe vorhin mal ein paar Minuten daran gebastelt (wobei mir die Sicherheitslücke aufgefallen ist). Das Ergebnis ist noch nicht Serienreif, aber es Zeigt bereits was man aus dem Code machen kann:
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon Eva » 21. Nov 2006 22:49

also bei den letzten kommentaren ist noch ein fehler .... die sind nicht richtig angeordnet .. das letzte kommentar steht nicht oben rechts ... sondern es ist alles durcheinader
Benutzeravatar
Eva
User
 
Beiträge: 356
Registriert: 15. Okt 2004 21:49

Beitragvon AmigaLink » 22. Nov 2006 00:00

Er steht oben links! Das ist auch vollkommen richtig so. ;)
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon bce » 22. Nov 2006 14:39

@ bce
Geh niemals hin und übergib extern eingeführte Daten ungeprüft an den Browser weiter!!!
upps.. nicht richtig aufgepasst... :oops:


Das es wenig Sinn macht, den Seitentitel mittels $_GET zu bestimmen. Habe ich es jetzt so abgeändert, das es euch freisteht mit Sprachvariablen zu Arbeiten.
Das heist: Sobald ihr in der lang_main.php eine die Variable $lang['last_pics'] definiert, wird deren Inhalt benutzt. Macht ihr das nicht, wird 'Letzte Bilder' angegeben
hmm.. man bräuchte 4 sprachvariablen. und zwar für aktuellstes bild, neuster kommentar, höchste bewertung und höchste ansichtenzahl!
diese werte hab ich ja mit dem link übergeben und mit $_GET ausgelesen..
wäre halt besser wenn das entsprehcende dort steht und nicht immer "letzte bilder"...

Zugefügt nach 7 Minute(n):

wenn ORDER BY new_comment DESC benutzt wird
so ist es!! funzt nun!! thx
bce
User
 
Beiträge: 58
Registriert: 8. Nov 2005 23:14

Beitragvon AmigaLink » 22. Nov 2006 15:29

man bräuchte 4 sprachvariablen. und zwar für aktuellstes bild, neuster kommentar, höchste bewertung und höchste ansichtenzahl!
diese werte hab ich ja mit dem link übergeben und mit $_GET ausgelesen..
wäre halt besser wenn das entsprehcende dort steht und nicht immer "letzte bilder"...
Da ihr momentan noch mit 4 verschiedenen Dateien Arbeitet, ist das ja kein Problem. ;)

Ich gehe bei meiner Version (nur eine Datei für 5 verschiedene Anzeigen (siehe Beitrag 14)) einen etwas anderen weg. :mrgreen:
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon bce » 22. Nov 2006 15:51

Da ihr momentan noch mit 4 verschiedenen Dateien Arbeitet, ist das ja kein Problem

nö.. habe ich das noch gar nicht erwähnt..

ist eine datei, die verschiedene parameter beim aufruf erhält:

Code: Alles auswählen
   <tr>
      <td class="row1" align="center" width="25%"><a href="album_last_pics.php">Aktuellstes Bild</a></td>
      <td class="row1" align="center" width="25%"><a href="album_last_pics.php?sort_method=new_comment&sort_order=desc&l_last_pics=Neuster Kommentar">Neuster Kommentar</a></td>
      <td class="row1" align="center" width="25%"><a href="album_last_pics.php?sort_method=rating&sort_order=desc&l_last_pics=Höchste Bewertung">Höchste Bewertung</a></td>
      <td class="row1" align="center" width="25%"><a href="album_last_pics.php?sort_method=pic_view_count&sort_order=desc&l_last_pics=Höchste Ansichtenanzahl">Höchste Ansichtenanzahl</a></td>
   </tr>


Zugefügt nach 20 Minute(n):

das mit dem parameter hab ich geändert..
es wird nun in der php datei ermittelt welche sort_method benutzt wird

meine änderungen schauen so aus:
Code: Alles auswählen
//$l_last_pics = (isset($lang['last_pics'])) ? $lang['last_pics'] : 'Letzte Bilder';

switch ($sort_method) {
case "new_comment":
    $l_last_pics = "Neuster Kommentar";
    break;
case "rating":
    $l_last_pics = "Höchste Bewertung";
    break;
case "pic_view_count":
    $l_last_pics = "Höchste Ansichtenanzahl";
    break;
default:
   $l_last_pics = "Letztes Bild";
}
(funzt)
bce
User
 
Beiträge: 58
Registriert: 8. Nov 2005 23:14

Beitragvon AmigaLink » 22. Nov 2006 16:35

Sogar mit switch gearbeitet. Sehr schön. :)

Die ganze Geschichte hat aber noch einen ganz fetten Hacken, durch den die Datei(en) nicht auf jedem Board einsetzbar sind. :?
Und zwar werden keinerlei Ansichtberechtigungen geprüft, wodurch es zu dem Berümten Bild (beim FireFox ein leeres Feld) kommen kann. :evil:

Zugefügt nach 7 Minute(n):

Ich lasse mir zu dem Problem mal was einfallen.
Eine Grundidee hab ich bereits, fragt sich nur wie das in der Praxis aussehen wird.
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

VorherigeNächste

Zurück zu New Projects



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste

cron