Schriftart in Variable festlegen ?



  • Hallo,
    ich möchte eine Tabelle ausgeben. In dieser Tabelle werden Daten, die aus einer Datenbank geholt wurden, ausgegeben.

    Da ich die Schriftgröße änderen möchte hab ich mal ein bisschen im Web gesucht wie man das in HTML macht. (Hab keine Erfahrung mit HTML/PHP)

    Ich hab hier mal ein einfaches Beispiel, wie ich mir das vorstelle, gemacht.
    Das ganze Datenbank Zeug hab ich weggeleassen da es eigentlich nichts zu Sache tut. Das eizigst wichtige ist eigentlich, das ich die Daten später in einer Tabelle ausgeben möchte. Ich habe gelesen, dass ich bei Tabellen jeweils, vor jeder Ausgabe die Schriftart definieren muss. Genau das stört mich, stell ich später mein Design um, muss ich an 100 stellen die Schriftarten ändern.
    Deswegen dachte ich ich kann die Schriftart in eine Variable schreiben,klappt aber irgendwie nicht so wie ich mir das vorstelle.

    Hier wird nur das Wort "Infos" mit der angebebenen Schriftart und Schriftgröße ausgegeben.

    echo "<td><font face=\"Verdana, Arial, Helvetica, sans-serif;\" size=\"1\"><CENTER>Infos</CENTER></font></td>";
    

    Ich dachte nun mach ich das so :

    $schriftart = \"Verdana, Arial, Helvetica, sans-serif;\";
    
    echo "<td><font face=$schriftart size=\"1\"><CENTER>Infos</CENTER></font></td>";
    

    dann muss ich später nur noch die Schriftart in der Variablen ändern.
    Leider funktioniert das so nicht.
    Das erste Beispiel tut was ich möchte, nämlich den Text "Infos" in den vorgegebenen Schriftart darzustellen.
    Im zweiten Beispiel kommt ein Fehler ....wegen dem ersten / .
    Hab schon diverste versuche gestartet den Fehler wegzubekommen:
    ua. weiter Anführungszeichen bei der Variablendeklaration ergänzt, nun wird aber nur die Schriftgröße geändert, nicht die Art.

    $schriftart = "\"Verdana, Arial, Helvetica, sans-serif;\""; // Anführungszeichen ergänzt
    
    echo "<td><font face=$schriftart size=\"1\"><CENTER>Infos</CENTER></font></td>";
    

    Wer weis Rat ?

    Danke,
    Chris



  • Hallo,

    Oh oh, da fehlt aber absolutes Grundlagenwissen ...

    $fontFamily = 'Verdana, Arial, Helvetica, sans-serif';
    
    echo '<td><font face="'.$fontFamily.'"><center>Infos</center></font></td>'
    

    Allerdings ist diese Lösung sehr unschön. Man ist stets bemüht, Programmlogik und GUI zu trennen. Was hat die Schriftart, in der Text angezeigt wird, im Programmablauf zu tun? Gar nichts. Deswegen wird diese Information ausgelagert:

    <style type="text/css">
    td.myFormatting   {
       font-family: Verdana, Arial, Helvetica, sans-serif;
       text-align: center;
       /* Whatever more */
    }
    </style>
    
    echo '<td class="myFormatting">Infos</td>';
    

    Vorteile:
    1. Schriftart aus Programmlogik extrahiert
    2. Schriftart ist bequem per CSS an einer einzigen zentralen Stelle zu regeln
    3. Gestaltung via CSS ist wesentlich umfangreicher und bietet dir einiges mehr an Möglichkeiten
    4. Der Code, der generiert wird, ist kleiner -> Spart traffic und beschleunigt die Anzeige im Browser
    5. Der Code, der generiert wird, ist überstichtlicher

    Ließ dir am besten mal einige gute Tutorials zu php und html durch!
    Zu empfehlen seien da zum Beispiel selfhtml: http://de.selfhtml.org/
    -> Da gibt es eine sehr gute, aktuelle und umfangreiche Einführung + Referenz zu sowohl (X)HTML, CSS als auch PHP. 😉



  • Hallo,

    du hast recht ich hab kein Grundlagenwissen HTML + PHP.

    Mir ist es wichtiger Inhalt auf meine Seite zu bekommen als mich mit Design Problemen meiner Seite zu plagen.

    Ich denke für eine Seite auf der eine Tabelle, die den Inhalt einer Datenbank ausgibt, muss ich kein HTML + PHP Profi sein.
    Meine Anforderungen sind schnell zusammengefasst, ich möchte
    1. Informationen aus der Datenbank auslesen und ausgeben.
    2. Eine kleine Suche für die Datenbank.
    3. Ein Forumlar mit dem mir Besucher neue Daten für die Datenabank zusenden können.

    (Bisschen Hintergrund: Die Datenbank enthält kostenlose eBooks die im Internet zu finden sind. Mehr als die oben genannten Funktionalitäten brauche ich meiner Meinung nach nicht damit die DAtenbank sinnvoll genutzt werden kann)
    Ich glaube diese Funktionalitäten werde ich dann schon "irgendwie" implementieren können mehr oder weniger schön.

    Deswegen benutze ich für meine Seite auch Joomla!.
    Mein Ziel ist es nur ein Seite zu machen , die halbwegs an mein Joomla! Template angepasst ist. Da man das Joomla! Template schnell/ einfach ändern kann, sollte das auch für meine Seite möglich sein.
    Deswegen wollte ich die Schriftgröße/-art in einer Variablen speichern.

    Ich werde sicher keinen guten PHP Quelltext schreiben,
    dazu fehlt mir Erfahrung und Zeit diese zu bekommen.
    Außerdem ist es mir wichtiger meine Zeit, für den Inhalt meiner Seite zu "vergeuden".

    Wahrscheinlich wird mir nun keiner Mehr antworten, weil ich meine Einstellung mal klar gemacht habe, und jeder denk, klar sollen wir ihm das jetzt schreiben oder was ? Aber ist dann auch ok.

    Ich hab mal dein einfaches Beispiel probiert, leider geht es nicht.

    $fontFamily = 'Verdana, Arial, Helvetica, sans-serif';
    echo '<td><font face="'.$fontFamily.'"><center>Infos</center></font></td>';
    

    Die Seite wird zwar abgefufen, jedoch steht das Wort Infos immer noch in der "falschen Schriftart" da.

    Viele Grüße
    Chris

    PS: Wenn mal jemand reinschauen will.
    chri5.ch.funpic.de
    Unter Bücherei ist dann die PHP Seite, mit Datenbankabfrage.
    (Die Seite "weitere Infos" wird noch im Design umgestellt.)



  • Und mein zweites Beispiel hast du dir nicht einmal angesehen, oder wie?

    Abgesehen davon: Wenn du allen ernstes denkst, du kannst mal eben ohne jede Ahnung von der Materie ein Frontend schreiben, mit dem Besucher Daten in deine Datenbank speichern können, dann ist das nicht nur grob fahrlässig, sondern unter Umständen sogar strafbar.

    Schon einmal die Worte SQL Injection, Code Injection, Bruteforcing, Flooding, CSS oder CSRF gehört? HTTP Respsonse Splitting? Nein? Na, dann weißt du jetzt immerhin schon einmal ein paar der Dinge, die dir blühen können, wenn du einfach "auf gut Glück" solche Skripte schreiben und produktiv einsetzen willst ... 😉

    EDIT:
    Der <font>-Tag ist des weiteren deprecated ...



  • Und mein zweites Beispiel hast du dir nicht einmal angesehen, oder wie?

    Doch natürlich hab ichs mir angesehen, aber nicht ausprobiert.

    Abgesehen davon: Wenn du allen ernstes denkst, du kannst mal eben ohne jede Ahnung von der Materie ein Frontend schreiben, mit dem Besucher Daten in deine Datenbank speichern können, dann ist das nicht nur grob fahrlässig, sondern unter Umständen sogar strafbar.

    Von Daten in die Datenbank speicher ist doch nirgenwdo die Rede. Das einzigste was dem ähnelt ist Punkt 3.

    Schon einmal die Worte SQL Injection, Code Injection, Bruteforcing, Flooding, CSS oder CSRF gehört? HTTP Respsonse Splitting? Nein? Na, dann weißt du jetzt immerhin schon einmal ein paar der Dinge, die dir blühen können, wenn du einfach "auf gut Glück" solche Skripte schreiben und produktiv einsetzen willst ...

    Nein, davon habe ich nichts gehört, und ich schätze 90% der Internet Nutzer und wahrscheinlich 50% derjenigen die Webseiten haben auch nicht.
    War mir schon klar, das dass zu einer Grundsatzdiskussion führt.
    Es gibt doch Millionen Webseiten, meinst du die sind alle von Speziallisten wie dir geschrieben ?

    Wenn sich eben dann jemand cool vorkommt, sich irgendwo ein Skript zu besorgen die irgendeiner deiner angedrohten Methoden auf meiner Website ausprobiert , soll er doch.
    Nur eins ist doch klar, der hat noch weniger Ahnung als ich!
    Das sind doch nur Schafe die sich irgendwoher solche Angriffs Skripte besorgen, weil selber schreiben können sie sie ja nicht. Diejenigen die es können haben sicher einen anderen Ehrgeiz als meine Website zu zerstören.

    Jo, dank dir trotzdem.

    Chris

    PS : Nicht aufregen, es gibt Millionen wie mich, dich sich mal ein bisschen was zusammeklopfen das dann schon so tut was man will.

    "Wodurch unterscheiden sich Spezialisten von Amateuren ? - Die Spezialisten kennen ein paar Fachwörter mehr, mit den sie die Amateure unheimlich beeindrucken."



  • chri5 schrieb:

    Von Daten in die Datenbank speicher ist doch nirgenwdo die Rede. Das einzigste was dem ähnelt ist Punkt 3.

    Ah, stimmt, sorry 😉
    "3. Ein Forumlar mit dem mir Besucher neue Daten für die Datenabank zusenden können." - Das hatte ich beim Schreiben meines obigen Postings etwas anders in Erinnerung.

    chri5 schrieb:

    Wenn sich eben dann jemand cool vorkommt, sich irgendwo ein Skript zu besorgen die irgendeiner deiner angedrohten Methoden auf meiner Website ausprobiert , soll er doch.
    Nur eins ist doch klar, der hat noch weniger Ahnung als ich!
    Das sind doch nur Schafe die sich irgendwoher solche Angriffs Skripte besorgen, weil selber schreiben können sie sie ja nicht. Diejenigen die es können haben sicher einen anderen Ehrgeiz als meine Website zu zerstören.

    Das ist, fürchte ich, etwas zu stark verallgemeinert. Es braucht nicht einmal jemand bewusst sein; Spambots und Webcrawler durchforsten schon automatisiert das Web nach anfälligen Scripts.

    Folgendes:
    Du musst dir Gedanken machen, "wie" die Besucher dir die Daten zuschicken sollen. Ich meine jetzt nicht, den Weg über ein Formular, sondern, wie du die Daten verarbeitest.

    • Willst du sie dir per E-Mail zuschicken lassen? Kein Problem, aber wusstest du, dass du dann unbedingt die einzelnen Variablen vor dem Schicken der Mail auf Newline-Tags und den Zerobyte Character prüfen musst, um HTTP Response Splitting sowie das mutieren deines E-Mail-Accounts zu einem Spam-Acount zu verhindern?
    • Willst du die Daten in eine Datei schreiben? Dann musst du die Verzeichnisse auf jeden Fall auf dateisystemeigene Zeichen wie "./" und "../" prüfen, sowie ebenfalls auf den Zerobyte Character. Sonst kannst du ganz schnell deine gesamte Internetpräsenz gecrackt oder - im schlimmsten Fall - gelöscht haben. Auch könnte fremder Code eingeschleust werden; Stichwort Code Injection.
    • Willst du die Daten in eine Datenbank schreiben? Dann musst du dich mit dem Thema SQL Injection auseinander setzen, wenn du nicht willst, dass jemand mit einer einzigen Abfrage deine gesamte Datenbank mit Müll befüllen oder aber Löschen kann.

    Du siehst - Es gibt doch einiges zu beachten. Einfach zu sagen "Wer das macht, hat noch weniger Ahnung als ich" ist leider falsch und nicht praxistauglich. Als Webmaster hat man eine gewisse Verantwortung seinen Besuchern und seinem Provider gegenüber. Man muss - wenn man es als Hobby betreibt - nicht der Sicherheitsexperte in allen Gebieten sein, aber zumindest die Grundlagen sollte man kennen. Mehr möchte ich dir auch nicht auf den Weg geben, da du deine Webseite ohnehin durchziehen wirst 😉

    Aber lies dir einfach nebenher einige Lektüre zu dem Thema durch - Das macht es dir auch bei der Entwicklung leichter und du wirst flexibler. Außerdem kansnt du nur dann im Fall der Fälle reagieren. :p 🙂



  • also erstmal coole Sache, das du anderst reagiert hast als ich es erwartet habe 😉

    Zum Thema:

    Bei dem Forumular bin ich ja noch lange nicht, aber grundsätzlich hatte ich mir schon gedacht mir das ganze per mail schicken zu lassen. Erstens weil mich selbst das vorgeschlagene Buch interssieren könnte, und beim automatischen Eintrag in die Datenbank könnte ich eine update verpassen oder müsste mir selber den neuen Eintrag umständlich suchen. Zweitens, das was du erwähnt hattest, ich möchte entscheiden welche Informationen in meine Datenbank kommen. (Hier sollen es nur Bücher sein die mit den Themen Elektrotechnik und Programmieren zu tun haben).

    In den herkömmlichen Forumlaren wird dann immer die Eingabe einer Zeichenreihenfolge die als Bild daneben ist verlang um automatische Eintragen oder versenden von Mails zu verhindern, oder ?
    Naja wenn ich soweit bin meld ich mich vielleicht nochmal 🙂
    Aber jetzt hab ich noch an anderen Problemchen zu basteln.

    Insgesamt gesagt, finde ich es doch eher erstaunlich, was man ohne wirkliches Fachwissen schon alles auf die Beine stellen kann.

    Danke,

    Chris



  • chri5 schrieb:

    In den herkömmlichen Forumlaren wird dann immer die Eingabe einer Zeichenreihenfolge die als Bild daneben ist verlang um automatische Eintragen oder versenden von Mails zu verhindern, oder ?

    Jain. Diese Bilder (gemeinhin "Captcha" genannt - Completely Automated Public Turing test to tell Computers and Humans Apart) sollen, wie der Name eben klärt, Computer von Menschen unterscheiden.
    Sie sind aber problematisch, da die Computer sie immer besser "entschlüsseln" können. Macht man sie jedoch wiederum komplexer, so dass Computer sie nicht mehr erkennen können, passiert es, dass auch Menschen die Zeichen nicht mehr eindeutig erklären können.

    Spam vermeidet man dadurch nur in Maßen. Hat es ein Hacker/Cracker auf dich abgesehen hilft es nicht, der der kann das Captcha bestätigen. Seine Aufgabe hat es dabei nach wie vor erfüllt - Es hat den Mensch als Mensch erkannt.

    Das Problem, wenn du die die Eingaben als E-Mail schicken lassen willst, ist, dass derjenige, der die Daten in das Formular eingibt, beliebigen Text schreiben kann. Dadurch kann er das Protokoll, über das die E-Mail verschickt wird, manipulieren, und z.B. neben der E-Mail an dich noch 50 E-Mails an 50 verschiedene E-Mail-Adressen verschicken. So kann dein E-Mail-Account unfreiwillig zum Spam-Versender werden, und du merkst es schlimmstenfalls erst, wenn es viel zu spät ist.

    Naja, nur ein wenig zur Theorie 😉
    Solche Dinge sollte man halt verhindern. Aber wir sind vom Thema abgekommen, die eigentliche Fragestellung dürfe ja geklärt sein.



  • Danke für ein bisschen Theorie. Ist durchaus mal interessant.

    Chris


Anmelden zum Antworten