Malcolm Beck´s: MySQL Timestamp-Format für header('Last-Modified') gesucht

hi,

ich möchte über meine MySQL DB ein Last-Modified-Header generieren, dafür brauche ich ein Timestamp, was ja auch kein Problem ist.
Ich hab in der MySQL-DB ein Feld date mit „CURRENT_TIMESTAMP, Attribute „ON UPDATE CURRENT_TIMESTAMP.

Auslesen tue ich das Feld mit dem Select:

SELECT DATE_FORMAT(date,'%d %M %Y %H:%i:%s') FROM intern

Ausgabe:
18 September 2008 09:01:03

benötigte Ausgabe:
Thu, 18 Sep 2008 09:01:03

Muss ich ein Script schreiben, um mir die benötigte Ausgabe zu bauen, oder gibt es da schon eine Function, um die Ausgabe header-bereit auszulesen?

Oder sollte ich schon beim Speichern der TIMESTAMP in der Datenbank das Datum in dem Format speichern, in dem ich es später brauche? (das wäre ja schnell umgesetzt)

holla holla

  1. Hello,

    SELECT DATE_FORMAT(date,'%d %M %Y %H:%i:%s') FROM intern
    Thu, 18 Sep 2008 09:01:03

    Ins Handbuch könntest du aber wirklich gerade mal selber gucken...

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Death is nature's way of telling you to slow down.
    1. hi,

      SELECT DATE_FORMAT(date,'%d %M %Y %H:%i:%s') FROM intern
      Thu, 18 Sep 2008 09:01:03
      Ins Handbuch könntest du aber wirklich gerade mal selber gucken...

      Vielen Dank, ich hatte die Seite Gestern zwar gefunden, hab aber allen Anschein nach den Wald vor lauter SQL nicht mehr gesehen.

      '%a %d %b %Y %H:%i:%s'

      Dann kann das Caching ja beginnen ;)

      --------------

      Wo der Thread noch so Frisch ist, kann ich den Dateinamen meiner php.ini ändern oder zumindest den Pfad vereinheitlichen, so das ich nicht in jedes Verzeichnis eine .ini ablegen muss?

      PHPIniDir "E:/xampp/anonymous/datatest/" -- in der .htaccess führt zu einem Serverfehler.

      holla holla

      1. echo $begrüßung;

        kann ich den Dateinamen meiner php.ini ändern oder zumindest den Pfad vereinheitlichen, so das ich nicht in jedes Verzeichnis eine .ini ablegen muss?
        PHPIniDir "E:/xampp/anonymous/datatest/" -- in der .htaccess führt zu einem Serverfehler.

        Wenn PHP als Modul eingebunden ist, dann sind die Messen für die php.ini bereits beim Serverstart und damit beim Aktivieren von mod_php gelesen. Es lassen sich dann nur noch die im Verzeichnis erlaubten Änderungen in der .htaccess notieren. Bei CGI wird das PHP jedes Mal gestartet und eine im Startverzeichnis liegende php.ini ausgewertet, wenn die Option -c nicht angegeben ist.

        Reduziere die Verzeichnisse, in dem Scripte gestartet werden auf 1. mod_rewrite hilft dir, die aufgerufenen URLs auf Scripte in diesem Verzeichnis umzubiegen. Schon brauchst du nur noch eine php.ini.

        echo "$verabschiedung $name";

        1. hi,

          Reduziere die Verzeichnisse, in dem Scripte gestartet werden auf 1. mod_rewrite hilft dir, die aufgerufenen URLs auf Scripte in diesem Verzeichnis umzubiegen. Schon brauchst du nur noch eine php.ini.

          Mein Verständnis für mod_rewrite ist nicht besonders Gross, wie könnte ich das realisieren bzw. wie muss ich da vorgehen?

          Die URI Manipulieren ist ja eine Sache, aber die Scriptpfade ändern ist mir ein bisschen zu hoch.
          Ich hab beispielsweise auch in den Scriptverzeichnissen noch zusätzliche Verzeichnisse, um meine Funktionen auszulagern, muss ich die ausgelagerten auch berücksichtigen oder nur die Scripte, die ausgeführt werden?

          Beispielsweise mein Root:

            
           index.php             # hier werden alle Scripte ausgeführt  
           funktionen/           # Hier habe ich Funktionen, die ich mittels require_once '' in die Index lade  
           funktionen/sonstiges/ # Wenn die Funktionen umfangreicher werden
          

          Müsste ich in diesem Beispiel alle Verzeichnisse berücksichtigen?
          Ich kann das Lokal nicht mal richtig testen, da Apache nur die xampp eigene php.ini aus dem xampp\apache\bin Verzeichnis ladet, warum das so ist, habe ich auch noch nicht so recht verstanden.

          Für mich das eigentlich wichtige, wie kann ich verhindern, das meine php.ini so einfach aufzurufen ist?

          holla holla

          1. echo $begrüßung;

            Reduziere die Verzeichnisse, in dem Scripte gestartet werden auf 1. mod_rewrite hilft dir, die aufgerufenen URLs auf Scripte in diesem Verzeichnis umzubiegen. Schon brauchst du nur noch eine php.ini.
            Mein Verständnis für mod_rewrite ist nicht besonders Gross, wie könnte ich das realisieren bzw. wie muss ich da vorgehen?

            Ein Tutorial suchen, lesen, probieren, bei konkreten Fragen googeln oder forumen. :-)

            Die URI Manipulieren ist ja eine Sache, aber die Scriptpfade ändern ist mir ein bisschen zu hoch.

            Man hat ja meist bei allen Seiten ein gleiches Aussehen, nur der Inhalt ändert sich. Man kann das so lösen, dass man die gemeinsamen Teile in jedes einzelne Seiten-Script hinzulädt. Man kann sich auch so organisieren, dass ein Startscript die gemeinsamen Teile behandelt und nur den speziellen Inhalt gegebenenfalls aus ausgelagerten Dateien holt. mod_rewrite benötigt man dabei nur, wenn man /foo/bar statt /index.php?was=foo;nochwas=bar haben möchte.

            Ich hab beispielsweise auch in den Scriptverzeichnissen noch zusätzliche Verzeichnisse, um meine Funktionen auszulagern, muss ich die ausgelagerten auch berücksichtigen oder nur die Scripte, die ausgeführt werden?

            Beispielsweise mein Root:

            index.php             # hier werden alle Scripte ausgeführt
            funktionen/           # Hier habe ich Funktionen, die ich mittels require_once '' in die Index lade
            funktionen/sonstiges/ # Wenn die Funktionen umfangreicher werden

            
            >   
            > Müsste ich in diesem Beispiel alle Verzeichnisse berücksichtigen?  
              
            Günstiger wäre es, wenn Dateien, die nicht direkt aufrufbare Ressourcen darstellen, außerhalb des DocumentRoots zu liegen kommen. Dann ist die Gefahr, dass sie versehentlich ausgeliefert werden erst einmal deutlich geringer. (Null ist sie nicht, denn irgendwer könnte ja auch das "außenliegende" Verzeichnis versehentlich zum DocumentRoot umkonfigurieren.) Weniger gut ist, den Zugriff auf diese Verzeichnisse per Apache-Konfiguration zu verbieten. Für das php.ini-Problem sind diese Verzeichnisse aber nicht relevant. Nur wenn aufrufbare Scripte in Unterverzeichnissen liegen, benötigst du dort eine eigene php.ini.  
              
            
            > Ich kann das Lokal nicht mal richtig testen, da Apache nur die xampp eigene php.ini aus dem xampp\apache\bin Verzeichnis ladet, warum das so ist, habe ich auch noch nicht so recht verstanden.  
              
            Das gehört sich so. Es gibt zwei Arbeitsweisen je nach Art der PHP-Einbindung im Apachen. Im Xampp wirst du PHP als mod\_php eingebunden haben. In dem Fall startet PHP zusammen mit dem Apachen und wertet nur zu diesem Zeitpunkt die php.ini aus. Weitere verzeichnisspezifische Konfigurationen können nur über die .htaccess eingestellt werden. Bei deinem Provider 1&1 läuft PHP als CGI, was bedeutet, dass bei jedem Request PHP gestartet wird und damit die im Verzeichnis des aufgerufenen Scripts liegende php.ini ausgewertet werden kann.  
              
            
            > Für mich das eigentlich wichtige, wie kann ich verhindern, das [meine php.ini](http://dj-tut.de/php.ini) so einfach aufzurufen ist?  
              
            In dem Fall kannst du nur mit einer Verbotsdirektive in der .htaccess den Zugriff darauf verbieten. Siehe <Files>, Order, Allow und Deny der Apache-Konfiguration.  
              
            Zum Inhalt zwei Anmerkungen: Du begibst dich freiwillig in den Safe Mode? Der fällt übrigens mit PHP 6 weg. Den session.save\_path würde ich nicht auf das allgemeine /tmp legen. Da werden deine Session-Dateien womöglich von den Session-Einstellungen der anderen beeinflusst. Leg das doch in ein Unter-Verzeichnis deines Kundenverzeichnisses (vorausgesetzt, kein DocumentRoot zeigt direkt auf das Kundenverzeichnis.  
              
              
            echo "$verabschiedung $name";
            
            1. hi,

              Ein Tutorial suchen, lesen, probieren, bei konkreten Fragen googeln oder forumen. :-)

              Ich lese Mittlerweile soviel, dass ich schnell vergesse, was ich gerade noch gelesen hatte;)

              Man kann sich auch so organisieren, dass ein Startscript die gemeinsamen Teile behandelt und nur den speziellen Inhalt gegebenenfalls aus ausgelagerten Dateien holt.

              So habe ich es ja bereits, eine Index, in die ich alles lade, Mittlerweile steuere ich gezwungenermaßen auch die error 404 Ausgabe über die Index.

              Günstiger wäre es, wenn Dateien, die nicht direkt aufrufbare Ressourcen darstellen, außerhalb des DocumentRoots zu liegen kommen.

              Da habe ich mich auch schlau gemacht, um dass zu realisieren müsste ich ein Teures Paket bei 1&1 bestellen, dass lohnt sich aber für meine kleinen Projekte nicht.
              Ich hab schon versucht, über Putty auf meinen Server zuzugreifen, finde aber kein Passwort, mit dem ich Zugriff auf den Server bekomme.

              Für das php.ini-Problem sind diese Verzeichnisse aber nicht relevant. Nur wenn aufrufbare Scripte in Unterverzeichnissen liegen, benötigst du dort eine eigene php.ini.

              Stimmt, dass habe ich gerade ausprobiert, eine php.ini im Root und eine im Admin-Verzeichnis reicht in meinem Fall schon aus.

              Bei deinem Provider 1&1 läuft PHP als CGI, was bedeutet, dass bei jedem Request PHP gestartet wird und damit die im Verzeichnis des aufgerufenen Scripts liegende php.ini ausgewertet werden kann.

              Kann ich das in meinem xampp auch so einstellen, wenn ja, wo im xampp? Und wenn ich das Einstellen kann, hätte ich damit Nachteile?

              In dem Fall kannst du nur mit einer Verbotsdirektive in der .htaccess den Zugriff darauf verbieten. Siehe <Files>, Order, Allow und Deny der Apache-Konfiguration.

              Ich hab gerade eine ganz andere Lösung gefunden, einfach über mod_rewrite die URI php.ini auf die index.php umleiten, der Webserver kommt so wie es aussieht an die .ini ran, wenn man die php.ini über den Browser aufruft kommt jetzt error 404 :)
              http://dj-tut.de/php.ini -- Das die php.ini ausgelesen wird erkennt man am header, Content-Encoding: gzip funktioniert ohne die ini nicht.

              Du begibst dich freiwillig in den Safe Mode? Der fällt übrigens mit PHP 6 weg.

              Das passiert, wenn ich zuviel lese :) Habe ich auf OFF gesetzt, ich brauch das ja nicht einmal.

              Den session.save_path würde ich nicht auf das allgemeine /tmp legen.

              Das habe ich Komplett gelöscht, ich weiss garnicht, warum ich das in der ini hatte, ich verwende ja nicht mal session.

              Danke jedenfalls für die Hilfe, hat mich wieder ein Stück weiter gebracht.

              holla holla

              1. echo $begrüßung;

                Günstiger wäre es, wenn Dateien, die nicht direkt aufrufbare Ressourcen darstellen, außerhalb des DocumentRoots zu liegen kommen.
                Da habe ich mich auch schlau gemacht, um dass zu realisieren müsste ich ein Teures Paket bei 1&1 bestellen, dass lohnt sich aber für meine kleinen Projekte nicht.

                Ach was. Die Domainverwaltung lässt auch bei einfachen Hostingpaketen zu, dass man Unterverzeichnisse angeben kann. Selbst für die mitgelieferte s{ziffernfolge}-Domain geht das.

                Ich hab schon versucht, über Putty auf meinen Server zuzugreifen, finde aber kein Passwort, mit dem ich Zugriff auf den Server bekomme.

                Ist auch gar nicht nötig.

                Bei deinem Provider 1&1 läuft PHP als CGI, was bedeutet, dass bei jedem Request PHP gestartet wird und damit die im Verzeichnis des aufgerufenen Scripts liegende php.ini ausgewertet werden kann.
                Kann ich das in meinem xampp auch so einstellen, wenn ja, wo im xampp? Und wenn ich das Einstellen kann, hätte ich damit Nachteile?

                Der Nachteil ist, das jeder Request das Laden PHPs voraussetzt, was sich in einer niedriegeren Performance niederschlägt, aber das sollte für die Testumgebung irrelevant sein. Prinzipiell ist es kein Problem PHP als CGI auch zusätzlich zum Modul zu konfigurieren. Die dazu notwendige Apache-Konfiguration müsste ich mir auch erst erarbeiten, doch das hat sicherlich schon mal jemand gemacht und darüber eine Webseite verfasst.

                In dem Fall kannst du nur mit einer Verbotsdirektive in der .htaccess den Zugriff darauf verbieten. Siehe <Files>, Order, Allow und Deny der Apache-Konfiguration.
                Ich hab gerade eine ganz andere Lösung gefunden, einfach über mod_rewrite die URI php.ini auf die index.php umleiten,

                Das ist nicht einfach sondern umständlich und bei Änderungen an deinem produktiven Rewriting jedes Mal mit zu berücksichtigen. Das Deny ist einfach einzustellen und tut auch wenn mod_rewrite grad nicht funktioniert.

                der Webserver kommt so wie es aussieht an die .ini ran, wenn man die php.ini über den Browser aufruft kommt jetzt error 404 :)

                Der Webserver interessiert sich für seine eigene Konfiguration nur wenn er Requests auswerten soll. Interne Dateizugriffe, auch die von mod_php sind davon nicht betroffen.

                echo "$verabschiedung $name";

                1. hi,

                  Ach was. Die Domainverwaltung lässt auch bei einfachen Hostingpaketen zu, dass man Unterverzeichnisse angeben kann. Selbst für die mitgelieferte s{ziffernfolge}-Domain geht das.

                  Also entweder ich bin zu Doof, oder ich bin viel zu Doof :)
                  Nehmen wir beispielsweise diese Domain, für diese habe ich jetzt ein Verzeichnis angelegt ohne index, wie soll ich diese denn nun unerreichbar über http machen? Ich versteh das nicht.
                  Oder meinst du das, was ich jetzt auf dieser Domain gemacht habe, also ohne index?

                  Ich weiss, das 1und1 eine Menge Konfigurationsmöglichkeiten bietet, mir stehen lediglich nur diese 2 zur verfügung, http://start-navi.de/images/1und1.gif.

                  Die dazu notwendige Apache-Konfiguration müsste ich mir auch erst erarbeiten, doch das hat sicherlich schon mal jemand gemacht und darüber eine Webseite verfasst.

                  Ja, ist es, leider etwas spärlich, Serverseitige Techniken (Partnerprogramme), 4 Stunden und ich musste 3 mal xampp neu installieren, weil irgendwie nichts mehr ging.
                  2 Stunden habe ich mich noch mit diesem Tutorial rumgeschlagen, erfolglos, ich könnte heulen.
                  Ich bin jeweils so, wie es beschrieben wird alles durchgegangen, Ergebnis war entweder, PHP wurde überhaupt nicht ausgeführt oder Serverfehler.

                  Das ist nicht einfach sondern umständlich und bei Änderungen an deinem produktiven Rewriting jedes Mal mit zu berücksichtigen. Das Deny ist einfach einzustellen und tut auch wenn mod_rewrite grad nicht funktioniert.

                  Das werde ich jetzt nochmal probieren, wie man Verzeichnisse schützen kann ist ja einfach, aber nirgends ein Tutorial, den Schutz auf nur eine Datei zu begrenzen.
                  Vielleicht habe ich ja heute Glück.

                  holla holla

                  1. echo $begrüßung;

                    Ach was. Die Domainverwaltung lässt auch bei einfachen Hostingpaketen zu, dass man Unterverzeichnisse angeben kann. Selbst für die mitgelieferte s{ziffernfolge}-Domain geht das.
                    Nehmen wir beispielsweise diese Domain, für diese habe ich jetzt ein Verzeichnis angelegt ohne index, wie soll ich diese denn nun unerreichbar über http machen? Ich versteh das nicht.
                    Oder meinst du das, was ich jetzt auf dieser Domain gemacht habe, also ohne index?

                    Die Default-Domain eines 1&1-Webhosting-Pakets sIrgendwas.online.de zeigt in der Domain-Verwaltung als Verwendungsart Webspace(/) an. Das bedeutet, sie zeigt auf die Wurzel des Kundenverzeichnisses und bietet damit HTTP-Zugriff auf sämtliche Unterverzeichnisse. Das ist bei den anderen Domains eines Pakets genauso. Man sollte nun Unterverzeichnisse für jedes Projekt und auch eins für die s-Domain anlegen und unter Verwendungsart für Webspace ebendieses Unterverzeichnis einstellen. Somit zeigt nichts mehr auf die Wurzel und dort kann man dann Dateien und weitere Verzeichnisse hinlegen, die nicht über HTTP erreichbar sind, weil alle Domains erst ab ihrem Unterverzeichnis beginnen.

                    Ich weiss, das 1und1 eine Menge Konfigurationsmöglichkeiten bietet, mir stehen lediglich nur diese 2 zur verfügung, http://start-navi.de/images/1und1.gif.

                    Genau da änderst du beispielsweise das projekt1.example.com-Verzeichnis auf /projekt1 und das s-Domain-Verzeichnis auf /irgendwasanderes.

                    [...] ich musste 3 mal xampp neu installieren, weil irgendwie nichts mehr ging.

                    Kopier dir doch das xampp-Verzeichnis vor dem Experimentieren an einen anderen Platz und beim Fehlversuch wieder zurück.

                    2 Stunden habe ich mich noch mit diesem Tutorial rumgeschlagen, erfolglos, ich könnte heulen.

                    Gerade das scheint mit beim Überfliegen doch recht geeignet zu sein.

                    Ich bin jeweils so, wie es beschrieben wird alles durchgegangen, Ergebnis war entweder, PHP wurde überhaupt nicht ausgeführt oder Serverfehler.

                    Serverfehler werden im ErrorLog mit einer genaueren Meldung aufgeführt. Du siehst nur deshalb so eine Pauschalaussage im Browser, weil niemanden außer dem ErrorLog-Zugriffsberechtigten die genaue Ursache was angeht.

                    Das ist nicht einfach sondern umständlich und bei Änderungen an deinem produktiven Rewriting jedes Mal mit zu berücksichtigen. Das Deny ist einfach einzustellen und tut auch wenn mod_rewrite grad nicht funktioniert.

                    Das werde ich jetzt nochmal probieren, wie man Verzeichnisse schützen kann ist ja einfach, aber nirgends ein Tutorial, den Schutz auf nur eine Datei zu begrenzen.

                    Leg um Order, Allow und Deny einen <Files>-Bereich.

                    echo "$verabschiedung $name";

                    1. hi,

                      Somit zeigt nichts mehr auf die Wurzel und dort kann man dann Dateien und weitere Verzeichnisse hinlegen, die nicht über HTTP erreichbar sind, weil alle Domains erst ab ihrem Unterverzeichnis beginnen.

                      Endlich, ich hab 's verstanden, nur hat 1und1 ausgerechnet hier gepfuscht :(
                      Ich kann alle Domains (ich hab in meinem Paket 6 st.) auf jedes beliebige Verzeichnis zeigen lassen, nur meine Hauptdomain kann ich nicht ändern.
                      Meine Hauptdomain ist http://nimmet.de/, 5 weitere Domains sind in diesem Paket und jede zusätzliche Domain hat schon sein eigenes Verzeichnis, nur das Verzeichnis für meine Hauptdomain kann ich nicht ändern, aber ich hab das Prinzip verstanden, ich werde mal ein bisschen Experimentieren.

                      Genau da änderst du beispielsweise das projekt1.example.com-Verzeichnis auf /projekt1 und das s-Domain-Verzeichnis auf /irgendwasanderes.

                      Jetzt habe ich noch ein wenig rumprobiert, mein Tutorial Root ; jetzt stellt sich mir die frage, was bedeutet nicht übers Web erreichbar, was sieht der aufrufende Browser, welchen Status-Code?

                      diesem Tutorial rumgeschlagen
                      Gerade das scheint mit beim Überfliegen doch recht geeignet zu sein.

                      Ich werde es nochmal durchgehen und vorher eine Sicherung machen, daran hatte ich garnicht gedacht.

                      Leg um Order, Allow und Deny einen <Files>-Bereich.

                      Danke für den Link, ich hatte gestern einen Script-Fitzel gefunden, die Apache-Seite ist natürlich interessanter.

                      holla holla

                      1. echo $begrüßung;

                        Jetzt habe ich noch ein wenig rumprobiert, mein Tutorial Root ; jetzt stellt sich mir die frage, was bedeutet nicht übers Web erreichbar, was sieht der aufrufende Browser, welchen Status-Code?

                        404, wie bei allen fehlerhaften Anfragen. Allerdings heißt "nicht übers Web erreichbar", dass es keine URL gibt, mit der man auf diese Dateien zugreifen kann. Versuche wie http://example.com/../außerhalb_vom_DocumentRoot müssen wie alle anderen Versuche prinzipbedingt scheitern.

                        echo "$verabschiedung $name";

                        1. hi,

                          404, wie bei allen fehlerhaften Anfragen. Allerdings heißt "nicht übers Web erreichbar", dass es keine URL gibt, mit der man auf diese Dateien zugreifen kann. Versuche wie http://example.com/../außerhalb_vom_DocumentRoot müssen wie alle anderen Versuche prinzipbedingt scheitern.

                          Ich hab mal 1und1 angeschrieben, ob die mir die Möglichkeit einräumen können, meine Hauptdomain auf ein unterverzeichnis zu lenken, dann müsste ich es Theoretisch hinkriegen.
                          So jedenfalls werde ich aus der Sache einfach nicht Klug.

                          holla holla

                          1. echo $begrüßung;

                            Ich hab mal 1und1 angeschrieben, ob die mir die Möglichkeit einräumen können, meine Hauptdomain auf ein unterverzeichnis zu lenken, dann müsste ich es Theoretisch hinkriegen.

                            Ehrlich gesagt weiß ich nicht, wo du da Schwierigkeiten hast. Mir ist noch nicht aufgefallen, dass sich eine der Domains, auch wenn es die einzige (neben der s-Domain) ist, nicht konfigurieren ließ. Technisch wäre sogar die s-Domain die Haupt-Domain, denn selbst wenn du mal alle Domains per KK woandershin beförderst, bleibt dir dein Kundenverzeichnis und diese eine Domain erhalten, solange dein Vertrag mit 1&1 noch läuft.

                            echo "$verabschiedung $name";

                            1. hi,

                              Ehrlich gesagt weiß ich nicht, wo du da Schwierigkeiten hast. Mir ist noch nicht aufgefallen, dass sich eine der Domains, auch wenn es die einzige (neben der s-Domain) ist, nicht konfigurieren ließ.

                              Vielleicht übersehe ich ja etwas,

                              Erstmal rufe ich die Konfig-Seite auf

                              Hier kann ich alle Domains, bis eben auf meine Hauptdomain ändern.

                              Wenn ich z. B. eine Domain auswähle, bekomme ich die Möglichkeit, die Verwendungsart zu bearbeiten,

                              Wenn ich aber meine Hauptdomain auswähle bekomme ich diese Möglichkeit nicht, siehe

                              Übersehe ich irgendwas?

                              Technisch wäre sogar die s-Domain die Haupt-Domain, denn selbst wenn du mal alle Domains per KK woandershin beförderst, bleibt dir dein Kundenverzeichnis und diese eine Domain erhalten, solange dein Vertrag mit 1&1 noch läuft.

                              Das ist ja auch wie gesagt kein Problem, nur die Hauptdomain steht mir bei allem im weg, weil diese sich nicht konfigurieren lässt.

                              holla holla

                              1. echo $begrüßung;

                                Übersehe ich irgendwas?

                                Ja, da steht ein "RSS", das bei den anderen Domains nicht steht. Ich vermute, wenn du das dort entfernt bekommst, kannst du auch das Verzeichnis umlegen.

                                echo "$verabschiedung $name";

                                1. hi,

                                  Übersehe ich irgendwas?
                                  Ja, da steht ein "RSS", das bei den anderen Domains nicht steht. Ich vermute, wenn du das dort entfernt bekommst, kannst du auch das Verzeichnis umlegen.

                                  Das war auch mein erster Gedanke, da aber bei dj-tut.de auch ein „RSS“ dran steht, hatte ich dem keine bedeutung zugeordnet, dass war aber tatsächlich der Fehler.
                                  Das „RSS“ habe ich gelöscht und siehe da, jetzt Funktioniert es.

                                  Ich hab ein Verzeichnis außerhalb des DOCUMENT_ROOT :)

                                  Jetzt habe ich aber ein Verständnis-Problem, wie greife _ich_ denn nun auf dieses Verzeichnis zu?

                                  Einfache include Funktionieren jetzt nicht, muss ich noch irgendwo was einstellen? Vielleicht im .htaccess?

                                  holla holla

                                  1. hi,

                                    Einfache include Funktionieren jetzt nicht, muss ich noch irgendwo was einstellen? Vielleicht im .htaccess?

                                    Sorry, mein Fehler.

                                    Ich muss den Absoluten Pfad von Serverseite aus nutzen, also /kunden/homepages/**/**/**/includen/index.htm.

                                    Vielen Dank für den Tipp und deine Geduld, es zu ende zu bringen :)

                                    Und so sieht es nun aus:

                                    http://s191805405.online.de/ -- 404, obwohl existiert

                                    http://s191805405.online.de/includen/ -- hier auch noch 404

                                    http://nimmet.de/includen/ hier greift meine .htaccess

                                    Hier mal direkt aus dem includen-Verzeichnis die index.htm eingebunden.

                                    Jetzt noch eine Grundsätzliche Frage ; Wie gehe ich jetzt am besten vor, eine config erstellen, die diesen versteckten Pfad mitschleppt, damit ich schnell drauf zugreifen kann?
                                    Wie geht ihr sowas an?

                                    holla holla

                                    1. echo $begrüßung;

                                      Ich muss den Absoluten Pfad von Serverseite aus nutzen, also /kunden/homepages/**/**/**/includen/index.htm.

                                      Nicht unbedingt. Es gibt der Möglichkeiten einige. Du kannst die Datei angeben:

                                      • mit absolutem Pfad,
                                      • relativ vom Startverzeichnis: ../includen/diese.php
                                      • den include_path in der php.ini (oder .htaccess bei PHP als Modul) setzen, z.B: /kunden/.../includen/, und dann normal: require_once 'diese.php';

                                      Und so sieht es nun aus:
                                      http://s191805405.online.de/ -- 404, obwohl existiert

                                      Hier fehlt vermutlich eine index.html im DocumentRoot dieser Domain.

                                      http://s191805405.online.de/includen/ -- hier auch noch 404
                                      http://nimmet.de/includen/ hier greift meine .htaccess

                                      Das kann ja nicht mehr, weil unterhalb des (jeweiligen) DocumentRoots kein solches Verzeichnis existiert.

                                      Jetzt noch eine Grundsätzliche Frage ; Wie gehe ich jetzt am besten vor, eine config erstellen, die diesen versteckten Pfad mitschleppt, damit ich schnell drauf zugreifen kann?
                                      Wie geht ihr sowas an?

                                      Für einzelne Verweise eignet sich die relative Angabe. Für generelle Bibliotheken ist der include_path die bessere Alternative. Beispielsweise PEAR und Zend Framework lassen sich nur über den include_path ordentlich einbinden, wenn man beides außerhalb des DocumentRoots zu legen haben möchte. Den include_path kann man auch noch im Script setzen, was sinnvoll ist, wenn man keinen Zugriff auf eine Konfiguration in der php.ini oder .htaccess hat und alle Requests (z.B. mit mod_rewrite) über ein gemeinsames Start-Script laufen.

                                      echo "$verabschiedung $name";

                                      1. hi,

                                        • den include_path in der php.ini (oder .htaccess bei PHP als Modul) setzen, z.B: /kunden/.../includen/, und dann normal: require_once 'diese.php';

                                        Ich werde mir nie wieder ein Hostingpaket ohne php.ini zulegen, das ist ja beeindruckend, was diese kleine Datei alles fertig bringt :)

                                        include_path = ".:/kunden/homepages/**/d******/htdocs/includen"
                                        require_once 'index.htm';

                                        http://s191805405.online.de/ -- 404, obwohl existiert
                                        Hier fehlt vermutlich eine index.html im DocumentRoot dieser Domain.

                                        Sorry, mein Fehler ; Ich meinte die Domain gibt es, das dafür „eigentlich vorgesehene Verzeichnis“ hatte ich nach der Konfiguration bei 1und1 komplett gelöscht.
                                        Die Domain zeigt auf ein Verzeichnis, dass es gar nicht mehr gibt.

                                        Das kann ja nicht mehr, weil unterhalb des (jeweiligen) DocumentRoots kein solches Verzeichnis existiert.

                                        Ja, endlich geschafft.

                                        Für einzelne Verweise eignet sich die relative Angabe. Für generelle Bibliotheken ist der include_path die bessere Alternative. Beispielsweise PEAR und Zend Framework lassen sich nur über den include_path ordentlich einbinden, wenn man beides außerhalb des DocumentRoots zu legen haben möchte.

                                        Leider blicke ich bei den Frameworks noch nicht wirklich durch, kommt aber bestimmt auch noch.
                                        Die richtige Konfiguration habe ich schonmal.

                                        Den include_path kann man auch noch im Script setzen, was sinnvoll ist, wenn man keinen Zugriff auf eine Konfiguration in der php.ini oder .htaccess hat

                                        Ein Paket ohne .htaccess und php.ini kommt gar nicht mehr in Frage :)
                                        Wobei ich mit der Zeit versuchen werde, die Alternativen zu finden, sind sicherlich auch ganz nützlich.

                                        Dank dir vielmals für die Hilfe.

                                        holla holla

  2. hi,

    Hab da _noch_ ein Problem bzw. ich bin ein wenig verunsichert.

    Ich hab jetzt mein kleines CMS um eine Caching-Funktion bereichert, soweit ich das beurteilen kann Funktioniert es auch, bin mir aber nicht so Sicher.

    Könntet ihr mal bitte diese Seite testen und über Eventuell auftretende Fehler berichten. (lange Ladezeiten z. B.)

    Welche Fehler genau auftreten könnten kann ich leider nicht sagen, da ich vom Caching eigentlich keine Ahnung habe.
    Die Seite wird via gzip ausgeliefert ; über ein „Last-Modified + Etag“ im Header wird der Status der Seite auf „200 ok“ oder eben auf „304 Not Modified“ gesetzt.

    Soll ich den verwendeten Code posten oder kann man so schon sehen, ob irgendwo Fehler schlummern?

    holla holla

  3. Hello,

    ich habe da noch ein altes Script im Fundus:

    function put_image($filename,$bildtyp)
    {
      if (strlen($filename)<=0)
      {
        return false;
      }

    // prüfen, ob das Bild im Server neuer ist als im Cache des Browsers

    $last_modified = @gmdate('D, d M Y H:i:s',@filemtime(PICPATH.$filename)).' GMT';

    if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']))
      {
        // parse header
        $if_modified_since = preg_replace('/;.*$/', '', $_SERVER['HTTP_IF_MODIFIED_SINCE']);

    if ($if_modified_since == $last_modified)
        {
          // the browser's cache is still up to date
          header("HTTP/1.0 304 Not Modified");
          header("Cache-Control: max-age=86400, must-revalidate");
          return true;
        }
      }

    $fh=fopen(PICPATH.$filename,"r");
      if (!$fh)
      {
        return false;
      }

    $picdata = fread($fh,filesize(PICPATH.$filename));

    //$picdata = file_get_contents(PICPATH.$filename);  // ist auf Hoster-Server nicht
                                                          // verfügbar.

    fclose($fh);

    // ist ein Bild ist da?
      // sind die header schon gesendet?
      if ((strlen($picdata) <= 0) or headers_sent())
      {
        return false;
      }

    header (make_content_type($bildtyp));
      header ("Last-Modified: $last_modified");
      echo $picdata;

    return true;
    }

    Vielleicht kannst Du etwas damit anfangen

    Liebe Grüße aus Syburg bei Dortmund

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. hi,

      Vielleicht kannst Du etwas damit anfangen

      Danke, ich werde mal sehen, was ich daraus verstehe. (auf dem ersten Blick war es nicht viel)
      Ich hab gerade festgestellt, dass mein Caching ziemlich Aggressiv ist, ich muss mit meinem FF STRG + F5 mehrmals betätigen, damit ich neuerungen angezeigt bekomme.

      Ich hab dieses Script auf php.net gefunden ;

        
      $date_select = "SELECT DATE_FORMAT(date,'%a, %d %b %Y %H:%i:%s'), id FROM head";  
        
      if ($date_result = $dat_verbindung->query($date_select))  
      {  
       while ($date_row = $date_result->fetch_array())  
       {  
        $my_timestamp = $date_row[0];     // Timestamp  
        $my_timestamp_id = $date_row[1];  // ID des Feldes  
       }  
      }  
      $etag = "$my_timestamp_id - $my_timestamp";  
        
      // Header Generieren  
      if (@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $my_timestamp || trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag)  
      {  
       header("HTTP/1.1 304 Not Modified");  
      }  
      else  
      {  
       header("HTTP/1.1 200 ok");  
      }
      

      ist es geeignet zum einfachen Cachen? Mir ist diese Funktion beim Cachen ein Ticken zu streng, oder ich hab einen Fehler eingebaut.

      holla holla