Beiträge von shikari

    Hab ich auch nicht, zumindest nicht zu hause. Schau dir die Seite mal bei http://www.browsershots.org an.


    hm, da scheint die Seite zentriert zu sein (Link zum Bild) - Und es scheint sogar so, als würde die Seite im IE6 funktionieren (zweiter Link), bis auf die Navigation was ich ja aber noch reparieren könnte.

    Dann muss ich wohl mal zu Nachbarn, Freunden oder wem auch immer und mir da mal die Seite anschauen um 100% sicher zu sein.

    Zitat von MrMurphy

    der Validator sagt, das in Zeile 163 ein div geschlossen wird, das nicht geöffnet wurde. Vielleicht reagiert der IE darauf ja allergisch.


    Validator ist mal eine gute Idee. Ich war so überzeugt, dass ich sauber gecodet hab, dass ich garnicht nachgeschaut hab :P Aber leider löst es nicht das Problem.

    Zitat von threadi

    Und es hilft nicht wie von mir vorgeschlagen statt dem body die umgebenden div-Elemente mit einer festen Breite und margin zu versehen?



    Nein. Ich teste meine Seiten immer mit IE Net Renderer da ich selbst kein Windows habe. Vielleicht stellt der ja auch etwas falsch dar ?

    Ich glaube der Code war zu stark vereinfacht um das Problem wirklich darstellen zu können, deshalb mal der Link: Hier

    Die Vorschläge haben leider nichts gebracht (Außer, dass die komplette Seite im IE7 links ist)

    Ich war davon überzeugt, dass ohne das position:relative; für #wrapper der #nav div sich am body orientiert. Da der body aber nicht genau #wrapper entspricht stimmt das mit height:100% nichtmehr.
    (Außerdem umschließt #wrapper ja nicht #header, wodurch nur durch die Zentrierung #header sowieso links bleibt.)

    Aber vielleicht ist das Problem einfach durch den Link zur Seite besser erkennbar.

    Edit: Übrigens wollte ich #nav nicht mittels float:left in #wrapper positionieren, da, sollte ich in #content etwas floaten und nachfolgend clear:left; verwenden, der Inhalt erst NACH #nav wieder weitergeht.

    Ich erstelle derzeit eine Homepage. Dabei habe ich Probleme mit der Zentrierung im IE7. (IE6 vernachlässige ich)

    Mein Code sieht folgendermaßen aus: (vereinfacht)

    Code
    <body>
    <div id='header'></div>
    <div id='wrapper'>
     <div id='nav'></div>
     <div id='content'></div>
     <ul id='footer'></ul>
    </div>
    </body>


    Dazu folgender CSS-Code:


    Das Problem stellt sich wie folgt dar:
    Der Wrapper-Div wird im IE7 nicht zentriert sondern klebt an der linken Seite.
    Ich war darüber sehr verwundert, da ich den Code bereits bei einer anderen Seite problemlos verwende, und habe mich deswegen natürlich auf Fehlersuche begeben.

    Letztendlich habe ich gesehen, dass ich nicht GENAU den gleichen Code verwende. Das Problem liegt an position:relative; von #wrapper. Ohne position:relative; wird #wrapper zentriert. Jedoch ist ohne position:relative; der #nav-Div nichtmehr 100% hoch (bzw. zu hoch - er orientiert sich dann ja an body und nichtmehr an #wrapper)

    Wie kann ich es nun lösen, dass #nav 100% Höhe von #wrapper hat, #wrapper aber zentriert ist ?

    Öhm... ich dachte, man solle das gerade so rum nicht machen? <strike> ist doch deprecated?

    Äh ja das stimmt, grade nochmal nachgeschaut, in HTML 4.01 deprecated und in HTML5 garnichtmehr enthalten.
    Ich hab in meinem Script schon als Kommentar "<del>" reingeschrieben, was ich auch eigentlich statt <strike> verwenden wollte, hab nur beim reinschreiben hier nicht drangedacht.

    Das mit den RegExp sollte ja nicht das problem sein. Oder wie ist das zu verstehen?


    Nein, ich hoffe nicht :D
    Solche Ersetzungen sind mit dem HTMLPurifier aber nicht direkt möglich oder ? Also irgendwie Style-Attribut -> Klasse. Hab dafür zumindest nichts in der Doku gefunden ... Und wäre ja auch zu schön :D

    Ich wollte mit meinem Post im Prinzip auch nur eine Lösung zeigen wie man es machen könnte falls irgendjemand so wie ich auch mal in Google nach ner Lösung sucht (vorausgesetzt er kommt auf diesen Thread :D)

    Ich habe mal damit etwas rumgespielt und bin jetzt eigentlich fertig. Krass. Da bekommt man einfach innerhalb kürzester Zeit nen echt guten Parser!

    Hier ist mal der Code, vielleicht gibts ja noch irgendwas zu verbessern ?


    Als Testcode habe ich mal den eingegeben (durch Tiny):


    Das ganze scheint soweit zu funktionieren, Ergebnis ist folgendes:


    Jetzt muss ich durch preg_replace (oder ne ähnliche Funktion) nur noch

    Code
    <span style='text-decoration:line-through;'></span>


    durch

    Code
    <strike></strike>


    ersetzen und das "text-align:center|left|right|block;" durch ne jeweilige Klasse.

    Dein Fehler liegt in HTML.Allowed
    Hier musst du explizit angeben, welche Attribute im Tag erlaubt sind, derart

    PHP
    $allowedTags = array('p[style]', 'span[style]');


    Ich habe das mal so reingemacht, allerdings ändert sich am Ergebnis nichts. Ich habe im Internet dazu 2 Ergebnisse gefunden, die etwas mit magic_quotes zu tun hatten. Dort wurde gemeint, man sollte vorher den String noch durch stripslashes() laufen lassen(, hat am Ergebnis aber leider auch nichts geändert.) Hat am Ergebnis sehr wohl etwas geändert, jetzt funktioniert es. Keine Ahnung was ich da beim letzten mal falsch gemacht habe weil ichs schonmal so probiert habe.

    Prinzipiell kannst du dich an dieses "white-list"-Verfahren schon mal gewöhnen ;)
    HTMLPurifier arbeitet nur damit...


    Das ist mir gerade recht, so wird einem nämlich viel Arbeit abgenommen.

    ich habs noch nicht produktiv eingesetzt. Aber weisste was, ich hab Bock :D

    Das lass ich mir nicht zweimal sagen :P

    Eine Eingabe die per $_POST reinkommen könnte wäre z.B.:

    HTML
    <p style='width:2000px;'>Beliebiger Text. <span style='color:red'>Wichtig in Farbe</span></p>

    Nun sollen die Tags "p" und "span" erlaubt sein. Das Style-Tag darf auch vorkommen, allerdings darf eben kein "width" drin vorkommen. Der Code am Ende sollte also folgender sein:

    HTML
    <p>Beliebiger Text. <span  style='color:red'>Wichtig in Farbe</span></p>

    Ich habe auch schon einen Ansatz, allerdings scheint sich da irgendein Fehler zu befinden, der mir immer folgenden Code liefert:

    HTML
    <p>Beliebiger Text. <span>Wichtig in Farbe</span></p>

    Mein PHP-Code sieht so aus:

    PHP
    $allowedTags = array('p', 'span');
    $config = HTMLPurifier_Config::createDefault();
    $config->set('HTML.Allowed', implode(',', $allowedTags));
    $config->set('CSS.AllowedProperties', array('text-align', 'color', 'background-color'));
    $config->set('AutoFormat.RemoveSpansWithoutAttributes', true);
    $config->set('AutoFormat.RemoveEmpty.RemoveNbsp', true);
    $purifier = new HTMLPurifier($config);
    echo $purifier->purify($string);

    Ich muss auch sagen, dass ich die Dokumentation von Purifier irgendwie nicht so ganz verstehe (Was heißt "Lookup array (or null)" ganz genau ? Ich mein Array klar, aber ist "Lookup" was besonderes ?^^). Scheint wohl so als hätte ich bei "CSS.AllowedProperties" einen Fehler reingebaut. Weil "HTML.Allowed" und die beiden "AutoFormat" funktionieren auch.
    Das ganze ist natürlich erst der Anfang und ich möchte es noch ausbauen aber wie gesagt stecke ich eben schon hier fest.

    Aber sich auf das Feld zu verlassen ist sowieso n bills unsicher, ich kann die Seite ja aufrufen, des Feld wird erstellt und dann JS ausmachen. Dann kann ich in die Textarea auch schreiben wass ich will.


    Dann wird ja aber ALLES mehr oder weniger entfernt (strip_tags). Dadurch sind letztendlich nur p-Tags übrig (ohne Style/Class/Id). Dadurch ist es ja nicht mehr unsicher. Oder irre ich mich da jetzt ?

    Ich habe mal den "HTML Purifier" getestet. Scheint das zu sein, was ich gesucht habe. Muss mich nur noch etwas mit der Konfiguration rumschlagen, die gerade noch nicht so zu funktionieren scheint.
    Kennt sich jemand damit aus ?

    Öhm, wenn du kein PHP hast, wie willst du das eingegebene HTML verarbeiten?!? Versteh mich nicht falsch, aber hast du jetzt Webspace mit PHP under Webspace ohne PHP?
    Und man KANN mit PHP herausfinden, ob der benutzer HTML hat.
    http://de2.php.net/get_browser

    :D

    Ich hab Webspace mit PHP, allerdings eben keinen Server wo ich HTMLTidy installieren könnte (für mich klingt es auf der Seite nämlich so, als ob man sich das ganze erst auf dem Server installieren muss um es nutzen zu können)

    Und ob der Benutzer HTML hat setze ich einfach mal vorraus, da ansonsten mein ganzes Unterfangen ja sinnlos wäre, denn was sollte ich dann großartig verarbeiten ?
    Es geht ja eher darum, ob der Nutzer JS hat bzw. aktiviert hat. Dazu ist mir allerdings schon ein Weg eingefallen. Ich lasse einfach zu der Textarea noch einen hidden-Input mit JS erstellen. Existiert der hidden-input läuft Javascript, d.h. der Code muss detailliert durchgelaufen werden, gibt es den Input nicht wird der Code "hart" behandelt, also alles mehr oder weniger "gnadenlos" entfernt.

    Hallo,
    wie schon hier: https://www.forum-hilfe.de/showthread.php?p=366212 angesprochen, bastele ich mir gerade einen eigenen Parser.

    Ich möchte nun HTML-Tags die ein Style-Attribut enthalten abfangen um die Style-Angaben wiederum zu filtern.
    Dazu habe ich folgenden Code:

    PHP
    $string = preg_replace_callback("/<(.*?)style\s*=\s*[\'|'](.*?)[\'|'](.*?)>(.*?)<\/.*?>/i", style_replace, $string);

    Gebe ich nun folgenden Code ein funktioniert das ganze wunderbar:

    HTML
    <p style="text-align: left;">beliebiger Text hier drin</p>

    Als Ergebnis bekomme ich (durch print_r):

    PHP
    Array
    (
        [0] => <p style="text-align: left;">beliebiger Text</p>
        [1] => p 
        [2] => text-align: left;
        [3] => 
        [4] => beliebiger Text
    )

    Wird allerdings folgender Code eingegeben gefällt mir das Ergebnis nicht mehr ganz:

    HTML
    <p style="text-align: left;"><span style="color:  #ff0000;">beliebiger Text</span></p>

    Als Ergebnis kommt:

    PHP
    Array
    (
        [0] => <p style="text-align: right;"><span style="color: #ff0000;">beliebiger Text</span>
        [1] => p 
        [2] => text-align: right;
        [3] => 
        [4] => <span style="color: #ff0000;">beliebiger Text
    )

    Das Problem liegt darin, dass er als Anfangs-Tag das "p" nimmt, als End-Tag jedoch das "span". Ich möchte nun irgendwie sicherstellen, dass Anfangs- und End-Tag genau gleich sind. Ich konnte allerdings leider nichts finden womit das funktionieren kann. Habt ihr da eine Idee ?

    veruch mal HTMLTidy, wenn du in php nicht ganz unbewandert bist.
    IMO die beste Bibliothek, um sauberes html zu erzeugen

    Ich bin zwar durchaus etwas in PHP bewandert, allerdings liegt das Problem eher darin, dass ich nur Webspace und habe und keinen Server. Dadurch wird die Verwendung von HTMLTidy etwas schwierig.

    Ich werde mich dann aber mal ransetzen und den Parser selbst zusammenbasteln.

    Das ist mir schon klar, ich habe auch bereits einen Code, allerdings funktioniert der nicht so ganz wie gewünscht, weswegen ich wissen wollte, ob es schon etwas "fertiges" gibt bzw. wie das z.B. hier oder bei anderen großen Communitys mit WYSIWYG-Editoren gemacht wird.

    Probleme habe ich z.B. dabei, dass nur gewissen Klassen/ID's erlaubt sind. Mein bisheriger Ansatz war folgender:

    PHP
    $string = preg_replace('/<(.*?)(id|class).*?=.*?".*?(beispiel|klasse|oder|id).*?".*?>(.*?)<\/.*?>/i', '<$1 $2="$3">$4</$1>', $string);


    Leider wird bei diesem Code dann mein kompletter abgesendeter Code zerstört. Vielleicht hab ich aber auch das mit den Regulären Ausdrücken noch nicht ganz "gerafft" ?

    Hallo!
    Ich nutze auf meiner Seite den "TinyMCE" (WYSIWYG-Editor). Der Editor selbst funktioniert zu meiner vollsten Zufriedenheit.

    Allerdings gibt es nun 2 Dinge die mich doch etwas stören:
    1. Ein etwas erfahrener Besucher kann spätestens durch das klicken des HTML-Tags beliebige Klassen/Id's zu den Tags hinzufügen und sogar Stylesheets und Javacscript-Dateien einbinden. Das möchte ich allerdings verhindern. So sollen Stylesheets, Javascript und bestimmte Klassen/Id's verboten sein, außerdem sollen die Style-Angaben bei Tags gefiltert werden und nur bestimmte erlaubt sein. Der Code den ich gemacht habe funktioniert aber leider nicht so ganz wie erwünscht, deswegen bin ich seit längeren auf der Suche nach einem Parser o.ä. der HTML-Code parsen und nach gegebenen Regeln filtern kann.

    2. Wenn ein Besucher kein JS hat gibts auch kein TinyMCE, heißt er kann wirklich JEDEN Code in die Textarea schreiben. Gerade hier ist das filtern von großer Bedeutung. Wie aber damit umgehen ? Ich kann ja via PHP schlecht erkennen ob eine Person JS (de-)aktiviert hat. Gerade hier ist ein Parser ja extrem wichtig.

    Kennt ihr dazu evtl. eine Lösung ? Nutzt ihr den TinyMCE und wie schützt ihr euch vor solchen HTML-"Hacks" (kann ja immerhin das Layout erheblich zerstören und durch JS geht ja noch viiiel mehr)

    Ich arbeite gerade an einem Kalender in PHP. Das Auslesen der Monate und Tage funktioniert super, auch das anzeigen des aktuellen bzw. ausgewählten Tages stellt kein Problem dar.

    Nun möchte ich aber noch Termine in diesem Kalender anzeigen. Bei eintägigen Terminen wäre das ganze kein Problem, ich könnte die Termine vor der for-Schleife in ein Array einlesen und in der for-Schleife dann immer den Tag vergleichen.
    Wie kann ich das ganze aber mit mehrtägigen Terminen realisieren ? Was ist, wenn der Termin vielleicht im letzten Monat anfängt und im neuen Monat endet.
    Da hänge ich gerade fest und habe keine Ahnung wie ich das ganze realisieren soll.

    Wäre es vielleicht sogar sinnvoller, in der for-Schleife für jeden Tag einen Query auszuführen und zu schauen, ob an dem betreffendem Tag ein Termin ist ? Ich finde aber, dass das etwas viel ist wenn dann zwischen 28 und 31 Querys ausgeführt werden.

    Eine andere Idee wäre noch, beim abspeichern des Termins, sollte er über mehrere Tage gehen, für jeden Tag einen Eintrag zu erstellen, was aber dann Probleme beim bearbeiten eines Termins macht, falls sich das Datum ändert.

    Habt ihr irgendwelche Lösungsansätze/Ideen wie ich das ganze lösen könnte ?

    Ich würde die Schrift auf der Startseite bei den "Nachrichten-Anreissern" noch etwas größer machen zwecks besserer Lesbarkeit (somit identisch mit der normalen Schriftgröße).


    Done.


    Evtl. beim Text noch generell auf Blocksatz (text-align: justify) stellen, aber das ist Geschmacksache.


    Davon bin ich nicht so begeistert. (Geschmackssache eben :-P)


    Die Navi wirkt vielleicht etwas schlank, aber das ist man von Ausdauersportlern ja gewohnt ;)
    Die würde ich noch um ein paar Pixel breiter machen und dementsprechend die Gesamt-Seitenbreite vergrößern.


    *grins*
    Die wirkt tatsächlich etwas schlank, am Anfang war sie noch schlanker. Wobei ich es so in Ordnung finde. Evtl. sollte man auf der linken Seite ein padding einbauen, dass die Abstände links/rechts zum Rand der Box gleich sind. Dann kann man auch die Gesamtbreite vergrößern.


    Das orangene Headerlogo wirkt etwas "abseits". Vielleicht könntest du die Grafik über die Gesamtbreite ausdehnen und darein dann den Vereinsschriftzug platzieren.


    Meinst du das Bild der Schwimmerin/Schwimmer ? Das Logo trotzdem noch mit dem orangenem Hintergrund oder nicht ?
    Das Bild bekomme ich nur leider nicht noch breiter, hab da schon auf der rechten Seite geschummelt und das Wasser kopiert und wieder angefügt :P Aber zum Triathlon gehören ja auch noch Radfahren und Laufen, vielleicht kann ich das noch einarbeiten.

    Allerdings stören die Baustellenseiten gewaltig. Beim Relaunch sollten sie gefüllt oder verborgen sein.


    Das stimmt allerdings, ich werde die Seiten, sofern ich die Texte nicht bekomme, aus der Navi solange rausmachen.

    ist selten das jemand hier keine kritik bekommt:D


    Deswegen bin ich auch etwas verwundert, weil ich dachte ihr hättet bestimmt noch etwas, was man ändern bzw. besser machen könnte. Aber so ist es doch auch nicht schlecht :P