Hi Thomas, ich wollte nicht direkt am unteren Thread anknüpfen, aber ich wollte dennoch etwas fragen,
habe Dein Buch schon länger und wollte habe es in der Theorie alles mal durchgespielt, aber mal eine Praxisfrage.
Ich habe jetzt folgendes:
htaccess File mit dem Inhalt
ErrorDocument 404 test.php
Also so quasi wie in deinem Buch eben, das Beispielscript hab ich einfach in die Datei test.php geschrieben.
Die Umwandlung in x.htm klappt einwandfrei, dennoch fehlt mir der Praktische Nährwert, ich weiss garnicht, wo jetzt der Nutzen liegt, die eigentlich zuvor dynamischen Seiteninhalte aufzurufen, also wo sollen diese aufgerufen werden, das einzige, was ich sehe, ist der Dateiname test.php, mehr nicht.
Mir ist das Prinzip versändlich, ist auch sehr sinnvoll, ich setze oder möchte das für eine Statistik einsetzen, dennoch fehlt mir momentan der Sinn, wo die Daten eigentlich herkommen sollen.
Gruss
P.S. Sehr nützliche Tipps im BUch, war seinen Preis wert
Homepage selbermachen 7.852 Themen, 35.619 Beiträge
Das Buch an sich ist sicher sehr gehaltvoll, aber ich hätte es netter gefunden, wenn es hier auf nickles nicht so angepriesen wurde, á la "auch für den webmaster" denn in 99% der fälle haben normale Private Webmaster garkeine Möglichkeit so am server rumzufummeln wie wie ein webserver-betreiber und mann hätte das meiner meinung nach etwas mehr betonen sollen, denn ich muss sagen, dass ich ausserm dem GZIP Artikel nichts wirklich auf meinen server beziehen konnte - der rest ist wirklcih nur für insider, die einen eigenen server betreiben - naja, schade, denn knapp 40 Euro find ich für den webprogrammierer, der wenig einfluss auf den server hat oder sagen wir normalen einfluss (ich persönlich habe bei meinem provider schon sehr grosse möglichkeiten, dennoch nicht genug für die tipps im buch!), einfach zu happig.
aber das gehört hier einfach nciht hin, werde das an passender stelle vielleicht nochmal erwähnen.
gruss de t e s t e r
hm - erster satz vom klappentext: 'wer einen dedizierten webserver betreibt (...)'
ich denke deutlicher gehts nicht.
WM_FYI
Vorausgesetzt man weiß, was ein dedizierter Server ist ;o)
Der Nährwert ist wohl folgender:
Wenn Du eine Seite mit vielen Aufrufen und/oder aufwändigen Scripten hast, so verursachen dynamische Inhalte eine nicht zu vernachlässigende Last auf dem Server. So kommt es vor, daß das Script die selben Inhalte zig mal dynamisch generieren muß. Nimm mal einen Webshop, der die Produktbeschreibungen aus einer Datenbank liest und daraus eine Produktseite erstellt.
Das gleiche Produkt wird wahrscheinlich mehr als einmal aufgerufen und jedes mal müsste das Script Verbindung zur Datenbank aufnehmen, die Seite rendern und ausliefern, obwohl sich die Inhalte in der Zwischenzeit nicht im Geringsten geändert haben.
Dann macht es natürlich wesentlich mehr Sinn die Inhalte in eine HTML-Seite zu packen, die für alle Aufrufe gilt. Wie entscheidet man nun, ob die Seite schon gerendert ist? Dazu kann man nun recht praktisch die Features des Webserver nutzen bei fehlenden Seiten auf eine Fehlerseite umzuleiten und die URL der nciht gefunden Seite zu übergeben, denn so kann man die Seite, sofern sie noch nicht gerendert wurde rendern und jeder zukünftige Zugriff auf die Produktseite findet die fertige, statische HTML-Seite.
Du ersetzt also z.B. einen Produktlink der früher so aussah:
<a href="produktpage.php?prodid=10873">Produkt 10873</a>
einfach durch
<a href="10873.html">Produkt 10873</a>
Besteht die Seite nicht, dann rendert die Fehlerseite sie und liefert sie aus.
Hallo,
soweit hab ich das auch verstanden, in meinem Thread weiter unten, bin erst eben dazu gekommen, mir das nochmal durchzulesen, aber wo denn nun genau befinden sich die Daten?? Ich steige da nicht durch:
Ich habe jetzt mal 3 Dateien angelegt und gebe dir jetzt mal die inhalte durch:
htaccess:
ErrorDocument 404 daten.php
DATEN.PHP:
<?php
header("HTTP/1.0 200 OK");
$pathParts = explode("/",$REQUEST_URI);
$nLastPart = count($pathParts);
$szFilename = $pathParts[$nLastPart - 1];
$szFilenameparts = explode(".",$szFilename);
$szID = $szFilenameparts[0];
if(! is_numeric( $szID))
{
print "<html><head></head><body>geht nicht</body></html>";
return;
}
$request_news = "test.php?id=$szID";
$news_filename = "/$szID.htm";
$fcontents = join('',file( $request_news));
$file = fopen( $news_filename, "W");
fputs( $file, $fcontents);
fclose( $file);
readfile( $news_filename);
?>
LINK.PHP:
<a href="daten.php?id=233">testlink 123</a>
<a href="233.htm">testlink 123</a>
Im Gegensatz zu meinem Vorredner weiter unten klappt ja das Aufrufen des testlinks 123 mit dem Verweis auf die seite 233.htm, aber es kommt halt kein Inhalt, weil mir nicht ersichtlich ist, wo der auch hergeholt werden sollte -
Beim Aufruf von "233.htm" kommt nur "daten.php" als ausgegebener Text und beim Aufruf von "daten.php?id=233" kommt nur der fehler von Apache, den auch mein Vorredner beschreibt.
Ich habe mir das Kapitel gründlich durchgelesen, der Apache bei mir stimmt auf alle Fälle, es klappt ja an sich auch wunderbar, doch mir ist einfach nicht klar, wo ich die daten in daten.php oder wo auch immer unterbringen soll, denn das htaccess script greift ja nur auf daten.php zu und wandelt alles mögliche in xxx.htm um aber immer eben nur mit dem Text "daten.php"
Ich habe/kenne das Buch leider nicht und kann mich nur grob an dem von Dir geposteten Script orientieren. Hier kommt der Inhalt aus der Datei test.php mit dem Parameter id=$szID. Was die Date test.php?id=$szID liefert hängt eben davon ab, was Du ihr beibringt zu liefern.
Genausogut kannst Du in einer daten.php die Logik einbauen Daten aus einer Datenbank zu holen. Zum Verständis mal noch ein Beispiel:
Du hast also den o.g. Webshop und ein PHP_Script, daß die Produktbeschreibung aus der Datenbank holt. Diese Seite heißt products.php und ist ungefähr folgendermaßen aufgebaut:
<?php
if(!empty($_GET['pid'])
{
if($dp=@mysql_connect('localhost','user','123abc'))
{
$sql="SELECT name,beschreibung,preis FROM articles WHERE id='".$_GET['pid']."' LIMIT 1";
if($q=@mysql_query($sql,$dp))
{
if($r=@mysql_fetch_assoc($q))
{
echo "Produkt: {$r['name']}<br />
echo "Beschreibung: {$r['beschreibung']}<br />
}
}
}
}
?>
Jetzt würdest Du das Script normalerweise so aufrufen:
products.php?pid=123
ersetze nun im Beispiel aus dem Buch den Eintrag test.php?id=$szID durch products.php?pid=$szID und es sollte klar sein, wie Du an deine Inhalte heran kommst.
Für die Erstellung der Inhalte mußt Du eben sorgen. Das obige Script erzeugt nur aus den dynamischen Inhalten aus products.php?pid=123 dann die statische HTML-Seite 123.html.
Frage:
Wo erzeugt denn dein script eine statische HTML Seite :-?
Ich habs noch nicht getestet, aber es sieht doch nur nach einer dynamischen aus - oder knüpfst du an das Bsp. von TW an,das hier schon gepostet wurde
Das war nur das Beispiel für Waldmensch, wo die Inhalte herkommen können. Das Script in meinem letzten Posting erzeugt kein statisches HTML, das war nur die Fortsetzung von oben. Das ist ein Beispielscript, welches von dem anderen Script, welches die statischen Inhalte erzeugt aufgerufen werden können.
die daten kommen daher wo du sie eben hast. also vermutlich aus einer datenbank. das programm 'test.php' ist derjenige, der dafuer zustaendig ist die daten aufzubereiten: was immer test.php tut (mit hilfe des als id übergebenen parameters) - das ergebnis davon wird als statischer inhalt verwendet.
WM_HOPETHISHELPS