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