Dynamische Webseiteninhalte - Laufschrift wechseln
Piranha
- php
Hi Tom!
Also wie gesagt:
wenn ich in siteA was eingebe, wird neueLaufschrift.php geladen (ohne text). wenn man danach manuell auf siteB.php wechselt ist immernoch der anfangstext zu sehen
MfG Piranha
Also wie gesagt:
wenn ich in siteA was eingebe, wird neueLaufschrift.php geladen (ohne text). wenn man danach manuell auf siteB.php wechselt ist immernoch der anfangstext zu sehen
Hallo Piranha,
also zuerst hier nochmal die drei beteiligten Dateien:
---- neueLaufschrift.php ----------
diese Datei dient dazu, das Submit-Event Deiner Client-Page aufzufangen und in der anderen Webpage etwas zu ändern. Geändert wird natürlich nit direkt in einer anderen Webpage sondern in einer Datei laufschrift.inc.php, die in einem anderen Verzeichnis liegt, als die aufrufende Webpage. Dieses Verzeichnis "daten" musst du vorher anlegen und am besten die folgenden Einstellungen vornehmen:
chown wwwrun daten wwwrun wird der Eigentümer des Verzeichnis
chmod 700 wwwrun wwwrun darf in dem V. alles, andere fürfen nix
---- Quellcode --------------------
<?
if ($lauf)
{
$datei=@fopen("../daten/laufschrift.inc.php","w+");
$eingabe1=strip_tags($eingabe1);
if (!$datei) die("Datei konnte nicht geoeffnet werden. Schrift konnte nicht gesetzt werden");
$eingabe1='<? $lauf="'.$eingabe1.'"?>';
if (!@fputs($datei,$eingabe1))
echo "Schreiben der Daten war nicht moeglich";
fclose($datei);
echo "Laufschrift wurde ausgetauscht";
}
else echo "Blödmann <br><br>";
echo "<br><a href='siteB.php' target='_blank'>hier die Seite B anschauen</a>";
---- die Datei siteA.htm -----------
Hierzu ist hoffentlich nicht viel zu sagen.
Normale Webpage mit Formular. Das Formular postet an das Script "neueLaufschrift.php". Diese Datei und neueLaufschrift.php müssen im selben Verzeichnis der Site A liegen.
---- Quellcode ---------------------
<html>
<head>
<title>Neue Laufschrift eingeben</title>
</head>
<body>
<br>
bitte neue Schrift eingeben:<br>
<form action="neueLaufschrift.php" name="laufschrift" ID="laufschrift" method="Post" encType="multipart/formdata">
<input type="text" name="eingabe1" ID="eingabe1" size="100" maxlength="150">
<input type="submit" name="lauf" ID="lauf" value="und tschüss">
</form>
</body>
</html>
---- die Datei siteB.php -----------------
Im Document-Verzeichnis der Site B liegt dieses Script. Site B ist Dynamisch und benötigt daher ein PHP-Script.
Die dynamischen Inhalte werden aber nicht direkt in die Seite geschrieben, sondern werden aus einer include-Datei geholt. Die Include-Datei liegt in einm für HTTP-Nutzer nicht zugänglichen Verzeichnis. Allerdings kommt der wwwrun an die Datei heran (oben beschrieben).
Durch den Include-Befehl wird die Datei an die Stelle im Script geholt, an der der Befehl steht.
---- Quellcode ---------------------------
<html>
<head>
<title>meine Laufschrift</title>
</head>
<body>
<h1>hier steht der ganz normale Quatsch</h1><br>
<?
if (!@include("../daten/laufschrift.inc.php"))
{
$lauf="Der ganz normale Wahnsinn made by Tom von bitworks.de";
}
echo "<marquee>".stripslashes($lauf)."</marquee><br>";
echo "<br>das wars jetzt aber, oder?";
?>
</body>
</html>
---------------------------------------
Warum Du keine Fehlermeldungen bekommst:
z.B. das Statement
if (!@include("../daten/laufschrift.inc.php"))
^^ ^
|| |
|| |
|| +--- relativer Pfad für die Datei
|+---automatische Fehlermeldung bei diesem Befehl unterdrücken
+--- NOT
Wenn Du nun die Scripte und die Einstellungen am Webserver testen willst, dann könntest Du die at-Zeichen in allen Scripten herausnehmen. Deine PHP-Engine produziert dann Fehlermeldungen, die du als nächstes hier posten könntest.
Dann sehen wir weiter
Hi Tom
Ich bin mittlerweile so weit, dass die Fehlermeldung "Datei konnte nicht geoeffnet werden. Schrift konnte nicht gesetzt werden" angezeigt wird *juhu*
was könnte jetzt noch falsch sein?
und was ist dieses wwwrun?
Piranha
Hi Tom
Ich bin mittlerweile so weit, dass die Fehlermeldung "Datei konnte nicht geoeffnet werden. Schrift konnte nicht gesetzt werden" angezeigt wird *juhu*
was könnte jetzt noch falsch sein?
und was ist dieses wwwrun?
Piranha
Hallo Piranha,
das ist doch schon ein Fortschritt auf der Suche nach dem Fehler.
Also funktioniert PHP jedenfalls schon mal auf Deinem SDerver!
Hast Du alle @-Zeichen vor den Dateifunktionen mal entfernt?
Ich vermute, dass Du das Daten-Verzeichnis noch nicht angelgt hast? Das muss dann außerdem dem wwwrun übertragen werden
chown wwwrun daten
Das ist der einfachste Weg.
Hast Du eigentlich einen eigenen Server oder arbeitest Du übers Netz bei einem Provider?
Gruß
Tom
Hi Tom
Die @ hatte ich noch nicht entfernt, werde ich umgehend machen.
Ich habe keinen eigenen server, nur webspace bei nem kostenlosen provider.
Piranha
Hi Tom
Die @ hatte ich noch nicht entfernt, werde ich umgehend machen.
Ich habe keinen eigenen server, nur webspace bei nem kostenlosen provider.
Piranha
Hallo Piranha,
wenn Ddu die @ weggenommen hast, wird Dir das integrierte Fehlersystem von PHP die passenden Meldungen präsentieren. Die sind meistens ganz aufschlußreich (mit Ausnahme der von MySQL weitergereichten).
Wie bekommst Du die Daten zu Deinem Provider?
Hast Du da neben der Dokument-Root noch ein Home-Directory?
Weißt Du, wie der PHP-User (für Dich) bei deinem Provider heißt?
Darfst Du das Kommando chown ausführen? (wenn es ein Unix-System ist...)
Ich muss zugeben, ich habe noch nie Sachen bei einem Provider untergebracht. Ich habe immer nur den eigenen Server gequält. Hat aber auch Nachteile.
<img src="http://bitworks.de/~images/Absturz.gif" border=0 alt="">
Gruß
Tom
Hi nochmal,
und was ist dieses wwwrun?
die Frage muss ja auch noch beantwortet werden.
wwwrun ist der Standardname, der dem Apache-Webserver euf einem Linux-Host gegeben wird. Das stellt man in der httpd.conf ein.
Unter diesem Namen arbeitet der Apache und damit PHP dann. Alle Verzeichnis -und Dateirechte laufen unter diesem Namen.
Es wird immer viel zu fahrlässig mit den Rechen umgegangen. Linux räumt von Haus aus erstmal Rechte für alle ein. Das muss man dann schnell korrigieren... Ist manchmal etwas nervig.
Gruß
Tom