Weil die Variablen im Template ersetzt werden muessen und da bei eval() der Code als PHP Code ausgefuehrt wird, werden die Variablen ersetzt. ;]
Weil mir <hr /> nicht gefaellt und ich es so mache. ;]
Weil die Ueberschrift unabhaengig vom Container Definiert werden soll und <h1> stellt fuer mich ein Textformatierungs Element dar und kein Design Element wie <div>.
Richtig!.![]()
Und was, bitte, gefällt dir daran nicht? Stylefähig sind die genau wie alles andere auch.
Warum benutzt du dann nicht untergeordnete Überschriften, oder benutzt wenigstens Klassen zum designen? Ich meine, man kann auch alles in hundert Div-Containern ablegen, aber der Sinn dahinter ist mir absolut schleierhaft.
Naja, Galleryscripts gibts wie Sand am Meer. Die meisten sind auch leicht so erweiterbar, dass der Effekt der selbe ist.Zitat von Drakes
Verstehe den Sinn dahinter nicht ganz.
Deine tolle Seite hat (zumindest wenn magic_quotes_gpc aus ist) SQLInjections. Ich brauche nur als Faker einzutrage und schon habe ich deinen Masterpassworthash (Ein Glück, dass dein Hoster magic_quotes aktiviert hat) - und denn kann man bei einigermaßen simplen Passwörtern leicht knacken. Das du die MySQL Fehler freundlicherweise ausgibst, erleichtert natürlich das Debuggen von solchen SQLInjections
Dein Code ist unlesbar und ziemlich eklig. Immerhin benutzt du Templates, auch wenn deine Methode ziemlich unsauber ist. Du hättest ja wenigstens den Kram mit dem eval() in eine eigene Funktion auslagern können. Außerdem ist die Hälfte deines HTML Codes dann doch statisch eingebunden.
Ansonsten hast du aber einige mögliche Sicherheitslücken bereits ausgeschlossen (die meisten Sachen werden ja auch vor dem Einsetzen in eine Query sicher gemacht). Auch die Sprachenunterstützung finde ich gut, auch wenn sie ein wenig statisch eingebunden ist
Bis auf die fehlenden Zeilenumbrüche und Einrückungen und die zu langen Zeilen ist dein Code aber auf jeden Fall besser als viele andere Sachen, die ich gesehen habe. Verbesser die paar Punkte und mir gefällt's![]()
--
Textformatierung = Design. <h1> ist aber ein strukturierendes Element und da es nur einmal in einem Dokument vorkommen sollte ist die vergabe von Klassen oder IDs dafür relativ sinnlos.Zitat
Hm, die Trennlinie ist identisch zu deiner Vorstellung gestaltbar.Zitat
Warum verwendest du für die Liste am Anfang nicht einfach eine Liste?
Die Tabellen sind imho auch unnötig. Mit einem float für die Bilder wäre das ganze viel schneller geschrieben.
Außerdem möchte ich dich auf die kleine Schrift hinweisen, ich muss mehrmals auf Textvergrößerung klicken um überhaupt was lesen zu können.
Gestalte doch die Seitenbreite flexibel (momentan wird der großteil der Seite nicht genutzt) und füge ebenso flexibel die Fake-Zusammenfassungen nebeneinander dazu.
--
Die Wespe, der Fuchs und der Vogel gehen erst in die Oper und dann auf Safari. 8)
Nützliche Adressen (HTML, CSS, PHP, MySQL, Werkzeuge) für Webgestalter.
-> Übersicht meiner Artikel (HTML Strict verstehen Teil 1-8 und weitere interessante Themen).
Mal ne Frage: Wer braucht so ein Mist eigentlich?
Hm und was kann ich noch dagegen tun, ausser magic_quotes_gpc auszumachen? Das mit dem Eintrag bei Faker habe ich ausprobiert und da ist nichts passiert.
Naja nu dann wuerde es so aussehen:
Ist doch fast das gleiche.
Wie meinste das?
Habe ich doch garnicht gemacht, hab doch nur dem Div Container eine ID gegeben, es wird ihn ja auch nur einmal geben.
Na ja jut dann mach ichs halt so.
Joa hab ich einfach nicht dran gedacht. ;P Habs gleich mit eingebaut.
Habs gerade Probiert und komme nicht auf das gewuenschte Ergebnis.
Immer noch? Naja ok bin nun auf 11px Hochgegangen.
Ja so soll aber das Design sein. ;] So halt nen Fake Bild aehnlich sehen.
Versteh ich nicht. Wie meinst du das?
Es soll fuer mich eine Uebung sein und es soll zur Sammlung der Fakes dienen damit man mal eine Uebersicht hat.![]()
Geändert von deadshox (17.06.2007 um 21:28 Uhr)
Es geht darum, das dur dir das div sparen kannst (und solltest) wenn du schon h1 hast.Zitat
Du kannst das h1 so formatieren wie du willst, da braucht es kein div mehr.
oder aber du entfernst das h1, was aber dem sinn von CSS komplett zuwiederlaufen würde.
--
cats are not characteristically disposed toward voluntary aerobic exercise
Sag' das dem 15"-MacBook Pro. Oder so ziemlich jedem anderen Breitbild-Laptop. Du brauchat allerdings gar nicht so hohe Auflösungen, damit es fies aussieht; schon bei 1024x768 sieht die Seite leer aus.
Angaben in px brauchst du nur und ausschließlich in Seiten, die du vorher in Photoshop gebastelt hast. Ansonsten wären flexiblere Angaben wie pt oder auch mm (oder bei nicht-Textelementen em und ex) wohl eine bessere Wahl. Ein enormer Voertil ist, daß diese Angaben dem vom User vorgegebenen DPI-Wert folgen, was px AFAIK nicht tut.Zitat
Was die Verteilung angeht: Bitte nicht nur als PE. Nicht jeder User hier verwendet Microsoft Windows und daß ein beliebiges Packprogramm mit Windows-SFX-Archiven umgehen kann, ist nicht selbstverständlich. Besser wäre es, zusätzlich eine normale Paketdatei mit anzubieten.
BTW, du solltest dich mal über die Unterschiede zwischen ' und " informieren. ' ist marginal schneller und könnte dir einige \" sparen. (Zugegeben, als Optimierung ist es nicht so derb, aber man muß ja nicht Leistung verschenken, wenn der bessere Weg einen vernachlässigbaren Mehraufwand hat.)
Na ja jut und was kann ich dagegen tun ohne das Design großartig zu veraendern?
So bin jetzt wieder auf pt.
Hab ich sofort gemacht. ;]
Joa muss ich mal gucken.
Edit: Wie kann ich Eigentlich das Upload Formular besser Stylen? Hab grad Festgestellt das es bei einer Aufloesung von 800x600 nicht wirklich gut aussieht.
Geändert von deadshox (18.06.2007 um 07:22 Uhr)
Was zum Linux-Download: Ich fürde dir zu .tar.gz bzw. .tar.bz2 raten - .tar allein ist nicht komprimiert. Du kannst aber auch einfach nur .zip verwenden, das ist auf allen größeren Betriebssystemen verbreitet.
Was das Design angeht - du kannst die bisher bestehende Leite natürlich weiterbenutzen und einfach rechts was danebenpacken (in etwa wie bei der Postanzeige im Forum hier). Vielleicht Kommentare oder so.
Zum Uploadformular: Mir ist aufgefallen, daß der Button aus dem Formular herausragt. Das könntest du korrigieren, indem du body das Attribut min-width: 32em gibst. Achtung, min-width wird nicht von allen Browsern unterstützt; sicherer wäre es, gleich width: 32em zu verwenden.
Wenn du nach em gehst geht er nach der Breite des Buchstaben M. Schön skalierbar und wenn du den Rest auch skalierbar machst (da gehen auch Sachen wie 17.34em) auch ziemlich resistent gegen herausragende Elemente.
BTW, tu' mal zwischen das Textfeld und den Button einen Leerraum. Würde IMO besser aussehen.
Du sollst es ja gerade nicht ausmachen o.o Das ist in diesem Fall das, weas dich gegen die SQLInjections schützt, da alle Sachen, die von außen kommen, escaped werden. Du musst, um dich zu schützen, eigentlich nur die entry()-Funktion auch auf die Sachen beim Upload anwenden (auch auf den Dateinamen).
Ich würde die entry() Funktion auf die Sachen beschränken, die zum Sichern für eine Query notwendig sind (eigentlich nur add_slashes()) Gerade strip_tags würde ich mir sparen, da es ja unter Umständen zum Beispiel Benutzernamen gibt, die wie ein Tag aussehen - die wären dann nicht erlaubt.
Aber auch nur fast. eval() ist eine unsaubere Sache, die sollte man am besten nur an einer Stelle verwenden(mal davon abgesehen, dass es viel kürzer wäre :P)
Naja , es ist über ein include gemacht. Besser wäre es imo, die Sprache nur als Einstellungswert zu definieren, und dann in der index.php oder sonstwo die entsprechende Sprache einzubauen - das ist benutzerfreundlicher und flexibler (zB unabhängig vom Sprachpfad)
PS: Der neue Code ist schon viel übersichtlicher![]()
--
Ok Sry da hab ich mich falsch ausgedrueckt mit den Magic Quotes. ^^ Meine natuerlich ausser es an zulassen.
Hab das grad Probiert eval() in eine Funktion zu packen hat aber nicht Funktioniert. ;(
Was meinst du mit Einstellungswert? Ueber einen Admin Panel?
Danke.![]()
Änder doch einfach deine dooutput() Funktion (ungetestet):
Du könntest das ganze auch direkt in die gettemplate() Funktion packen:
Änder doch einfach deine dooutput() Funktion (ungetestet):
In beiden Fällen bekommst du allerdings Probleme mit den variablen, weil sie innerhalb der Funktion nicht vorhanden sind (außer den Superglobalen). Da empfielt es sich, einfach alle Variablen für das Template mitzuübergeben (als Array) und dann extract() zu verwenden
Ein Wert in deiner Konfigurationsdatei. Und wenn du ein Admin Panel hast, dann sollte man das da natürlich auch ändern können![]()
--
Warum zum Teufel benutzt du überhaupt eval(), um statischen Code auszuführen?
Was Magic Quotes angeht: Stell' sie ab. Und zwar bei dir lokal (sofern du auf einem eigenen Rechner einen Testserver laufen hast). Man sollte Webanwendungen immer so entwickeln, als wolle man sie hinterher auf einem maximal unsicheren System laufen lassen - weil sie nämlich vielleicht irgendwann auf genau so einem laufen. Wenn du dich dann auf Magic Quotes und Safemode verläßt kann es sein, daß es eine böse Überraschung gibt.
Abgesehen davon stellen Magic Quotes u.U. unschöne Dinge mit den Daten an, wenn man nicht aufpaßt. Es hat seine Gründe, warum sie bei PHP seit Ewigkeiten standardmäßig deaktiviert sind.
Naja also kann ich es auch gleich sein lassen da es ja noch Komplizierter wird.
In meiner Konfigurationsdatei brauch ich auch bloß german, mit sagen wa mal english austauschen aber ich werd das ganze Sprach System noch einmal ueberarbeiten. ;]
Was soll ich sonst nutzen? War halt die einfachste Variante fuer ein Template System.