Arne: Wie is die Technik?

Hallo Zusammen,
Entlich ist die Website halbwegs fertig. Die Bilder sind noch nicht alle die entgültigen. Hauptsächlich geht es mir aber um die Programmierung. In dem Gebiet bin ich eher neuling. Für Rückmeldungen bin ich euch sehr Dankbar: Ach, die Adresse: http://arne-sonnabend.com
Liebe Grüße
Arne

  1. Hallo Arne,

    Für die Formularfeldbeschriftungen bietet sich das label-Element an.

    Der Text unter "Über mich" könnte noch etwas schnörkelloser werden. Deine Karriere als Kindergartenkind oder dein Waldorfschulischer Werdegang, bei dem du nicht zwei Mal sitzen geblieben bist, interessiert wohl kaum jemanden.

    Beste Grüße
    Richard

    --
    Um Rekursion zu verstehen, muss man erstmal Rekursion verstehen.
    ~§%+
    1. Da konntest du echt haben. Wer mal in den nachsten tagen nen neuen schreiben.

  2. Bereinige erstmal die Fehler dann sehn wir weiter.

    http://validator.w3.org/check?uri=http%3A%2F%2Farne-sonnabend.com%2F

    gruss

    1. hach sorry:

      Bereinige erstmal die Fehler dann sehn wir weiter.

      http://validator.w3.org/check?uri=http%3A%2F%2Farne-sonnabend.com%2F

      gruss

    2. Bereinige erstmal die Fehler dann sehn wir weiter.

      Oh, die Fehler hatte ich noch garnicht gesehen. Hatte die Site schonmal durchlaufen lassen und dann nochmals eta Tags eingebaut und nocht nochmal geprüft. Muss ich gleich mal korriegieren.
      Liebe Grüße
      Arne

  3. Hauptsächlich geht es mir aber um die Programmierung. In dem Gebiet bin ich eher neuling.

    Das da solltest du abfangen!

    1. Wo taucht der fehler denn auf? den hab ich noch garnicht gesehen. Oder mehr gesagt, wie kann ich sowas verhindern?

      1. Wo taucht der fehler denn auf? den hab ich noch garnicht gesehen. Oder mehr gesagt, wie kann ich sowas verhindern?

        Du bist dem Link gefolgt? Du hast Fehlermeldungen gesehen?

        Zweimal ja? Dann wirst du erkennen, dass es schlau ist, zuerst die Existenz einer Datei zu prüfen, bevor du sie einbindest. Dateiexistenz heißt file_exists().

    2. Wie mach ich das denn am besten mit der Abgrage nach inhalten? Muss ich wirklich jede Seite in nen array eintragen, oder kann man sowas auch automatisieren?
      Liebe Grüße
      Arne

      1. Wie mach ich das denn am besten mit der Abgrage nach inhalten? Muss ich wirklich jede Seite in nen array eintragen, oder kann man sowas auch automatisieren?

        Sicher kann man das. Zunächst prüfst du auf gültige Zeichen (z.B. mittels preg_match). Da du das Ganze in Verzeichnissen mit jeweils drei Textdateien organisiert hast, prüfst du mit is_dir, ob der Wert für site ein gültiger Verzeichnisname ist und ob in diesem Verzeichnis die drei Textdateien vorhanden sind (die Funktion hat dir Daywalker schon verlinkt). Sind diese drei Tests bestanden, bindest du die Textdateien ein, falls irgendeiner der Tests schiefgeht, gib eine Fehlermeldung aus. Am Rande sei noch erwähnt, dass du (sofern noch nicht geschehen) nicht include, sondern readfile verwenden solltest, da ich in den Textdateien keinen PHP-Code gefunden habe.

        Siechfred

        --
        Ich bin strenggenommen auch nur interessierter Laie. (molily)
        1. In den meisten Dateien sind auch keine PHP Befehle enthalten. Dich in manchen schon. z.B. in der Submenü txt. Des weiteren wird die Website in einigen Tagen (oder Wochen je nach Zeit) um Funktionen erweitert in denen php in den Textdateien verlangt wird. Aber danke für den hinweiß. in Dateien die auf keinen fall php beinhalten könnte ich das ja umstellen.
          Liebe Grüße
          Arne

        2. Ich bins nochmal,
          Meine Idee die ich gestern noch hatte war, jedes einzelne Include auf seine richtigkeit zu prüfen. das hab ich geschrieben

          <?php
          $filename = '/data/".$site."/header.txt';

          if (file_exists($filename)) {
             include ("./data/".$site."/header.txt");
          } else {
             include ("./data/fehler/header.txt");
          }
          ?>

          Leider funst es nicht. als ich es eingebaut habe, gab es angeblich garkeine seiten mehr.

          Aber wie ich dich jetzt eben verstanden habe, kann man auch alles in einer funktion abfragen und nicht in einzelnen?
          Liebe Grüße
          Arne

          1. $filename = '/data/".$site."/header.txt';

            Woher kommt $site?

            Leider funst es nicht. als ich es eingebaut habe, gab es angeblich garkeine seiten mehr.

            Die Problemlösung könnte in der Antwort auf meine Frage liegen, ich schieße aber mal ins Blaue:
            http://www.php.net/manual/de/security.globals.php

            Siechfred

            --
            Ich bin strenggenommen auch nur interessierter Laie. (molily)
            1. $filename = '/data/".$site."/header.txt';

              Woher kommt $site?

              Die $site wird bei mir so festgelegt:
              if (!isset($site)) {
               $site = "start";
               }

              ich weiß nur nicht ob er das auch erkennt, das es so funst. irgendwo muss ja der wurm drin sein.
              Liebe grüße
              Arne

              1. Die $site wird bei mir so festgelegt:
                if (!isset($site)) {
                $site = "start";
                }

                Das nährt die Vermutung, dass du register_globals nicht beachtet hast. Lies dir bitte die von mir verlinkte Seite durch, um zu verstehen, was ich meine. Bis dahin:

                if(!isset($_GET['site']) {  
                  $site = 'start';  
                }
                

                Siechfred

                --
                Ich bin strenggenommen auch nur interessierter Laie. (molily)
                1. Nee, hab vergessen was zu posten

                  $site = $HTTP_GET_VARS['site'];
                  Das hab ich auchnoch. ich hab das ein wneig getrennt. Ich kes mir das gleich dann nochmal genauer durch.
                  Liebe Grüße
                  Arne

                  1. Ich verstehe gerade nur Bahnhof. Mir fehlt einfach der Ansatz. Hie rmal meine ganze index.php

                    <?
                    // Die Globale VAR $site festlegen
                    $site = $HTTP_GET_VARS['site'];
                    $ebene2 = $HTTP_GET_VARS['ebene2'];
                    $ebene3 = $HTTP_GET_VARS['ebene3'];
                    $ebene4 = $HTTP_GET_VARS['ebene4'];

                    // Festlegung der leeren VAR $site
                    if (!isset($site)) {
                     $site = "start";
                     }

                    // Festlegung der leeren VAR $ebene2
                    if (isset($ebene2)) {
                     $ebene2 = "/".$ebene2;
                     }

                    // Festlegung der leeren VAR $ebene3
                    if (isset($ebene3)) {
                     $ebene3 = "//".$ebene3;
                     }

                    // Festlegung der leeren VAR $ebene4
                    if (isset($ebene4)) {
                     $ebene4 = "///".$ebene4;
                     }

                    ?>
                    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                    <html>
                    <head>
                    <title>arne-sonnabend.com :: <?=$site?></title>

                    <link rel="stylesheet" type="text/css" href="css/layout.css" />

                    <link rel="alternate" type="application/rss+xml" title="arne-sonnabend.com" href="http://www.arne-sonnabend.com/rss.xml" />

                    <script type="text/javascript">

                    function MM_openBrWindow(theURL,winName,features) {
                     window.open(theURL,winName,features);
                     }

                    </script>
                    <script type="text/javascript" src="http://www.arne-sonnabend.com/stat/pixel.php?mode=js"></script>

                    </head>

                    <body>

                    <div id="page">

                    <div id="header">
                      <?php
                      // Header einladen
                      include ("./data/".$site."/header.txt");
                      ?>
                     </div>

                    <div id="logo">
                      <?php
                       if (ereg ("http://arne-sonnabend.com/", $_SERVER['HTTP_REFERER'])) {
                       echo '<img src="xxx/logo.gif" alt="Logo" />';
                       }
                       else {
                          echo '<object type="application/x-shockwave-flash"
                          data="http://www.arne-sonnabend.com/xxx/logo_annimiert.swf" width="280" height="155">
                          <param name="movie" value="http://www.arne-sonnabend.com/xxx/logo_annimiert.swf" />
                          <param name="bgcolor" value ="#FFFFFF" />
                          <param name="quality" value ="high" />
                          <param name="loop" value="false" />
                          <param name="menu" value="false" />
                          <param name="swliveconnect" value="true" />
                          </object>';
                        }
                      ?>
                     </div>

                    <div id="menu">
                      <?php

                    include("./data/menu/menu.txt");
                      ?>
                     </div>

                    <div id="content">

                    <div id="submenu">
                       <?php include("./data/menu/ebene2/".$site.".txt");
                       ?>
                      </div>

                    <div id="text">
                       <?

                    // Inhalt einladen
                       include ("./data/".$site.$ebene2.$ebene3.$ebene4."/text.txt");

                    ?>
                      </div>

                    <div id="subsubmenu">
                       <?php

                    include ("./data/".$site.$ebene2.$ebene3.$ebene4."/subsub.txt");
                       ?>

                    </div>
                     </div>

                    <div id="footer">
                      <?php
                      include("./data/footer.txt");
                      ?>
                     </div>
                    </div>
                    </body>
                    </html>

                    Ich weiß nicht wirklich wo ich anfangen soll. Schreibe ich jetzt eine funktion die auf alle variablen zugreift, oder schreibe ich ne abfrage zu jedem include? Für mich war mein beispiel total einläuchtend, doch leider funst es ja nicht. Also muss dohc was falsch sein.
                    Kannst mir mal nen ansatz geben?

  4. Hallo!

    Auf den ersten Blick ist es optisch ziemlich gut. <geschmackssache>Allerdings würde ich die Schriftgröße der Navigation kleiner machen und sie vertikal zentrieren (wie im Footer).</geschmackssache>

    Aber jetzt zur "Programmierung" (HTML programmiert man nicht). Du solltest die Meldungen des Validators anschauen. Dein CSS ist ziemlich sauber. 6 Warnungen gibt es aber noch :)

    Zu deiner Javascriptfuntkion:
    "Amen, ich sage euch: So denn der Name einer Javascript-Funktion mit MM_ anfängt, könnt ihr so gut wie immer sicher sein, dass es sich um einen Versuch des gefallenen Engels handelt, euch mit schmeichelnder Zunge in den Abgrund des Verderbens zu locken." [wahsaga]

    Im übrigen hast du eine ziemliche DIV-Suppe. Schreibe smantisch korrektes HTML (zum Beispiel für deine Navigation eine Liste...)

    ciao, ww

    PS: Was mir gerade noch auffällt ist, dass du ein leeres <div> mit der id "subsubmenu" hast ;-)

    --
    Dies ist eine sehr einfache und effektive Sicherheitsstufe, aber nicht perfekt. Denn wenn mehrere User über eine Leitung ins Internet gehen, haben für den Webserver alle User die selbe IP. Und dann wirkt diese Sicherheitsstufe nicht mehr. Aber zumindest könnt ihr demjenigen, der euch die Session-ID geklaut hat, eins in die Fresse hauen.
    http://tut.php-q.net/login.html
    1. PS: Was mir gerade noch auffällt ist, dass du ein leeres <div> mit der id "subsubmenu" hast ;-)

      Dies Leere Div wird im Menüpunkt protfolio benutzt. Dort kommt dann ne weitere Menüstrucktur zum einsatz. Das problem mit den W3 hatte ich gerade gelöst. Dummer fehler der mir da passiert ist. Wie kann ich denn das mit der Divsuppe am besten behebn? Also welchen Ansatz sollte ich verfolgen?
      Liebe Grüße nd vielen Danl für die Ratschläge
      Arne

      1. Hallo!

        Dies Leere Div wird im Menüpunkt protfolio benutzt. Dort kommt dann ne weitere Menüstrucktur zum einsatz.

        Achso.

        Also welchen Ansatz sollte ich verfolgen?

        Am besten liest du dir folgenden Artikel durch: Warum Div Suppen nicht schmecken.

        ciao, ww

        --
        Dies ist eine sehr einfache und effektive Sicherheitsstufe, aber nicht perfekt. Denn wenn mehrere User über eine Leitung ins Internet gehen, haben für den Webserver alle User die selbe IP. Und dann wirkt diese Sicherheitsstufe nicht mehr. Aber zumindest könnt ihr demjenigen, der euch die Session-ID geklaut hat, eins in die Fresse hauen.
        http://tut.php-q.net/login.html
  5. guck dir deine Seite mal im Lynx an. Grauenhaft. Besonders das Menü!
    Am besten machst du dafür eine Liste mit Inline-Elementen. Das macht optisch keinen Unterschied und sieht auch für Textbrowser oder MobilePC-Nutzer schön aus.

  6. http://arne-sonnabend.com

    Die Links haben keinen Hovereffekt.

    Siechfred

    --
    Ich bin strenggenommen auch nur interessierter Laie. (molily)