Lauftext per PHP ändern

f3hler

Grünschnabel
Hallo zusammen,
meine Situation ist folgende: ich hab ein phpbb Board auf meinem Space das wir als Kollegstufenforum verwenden. In der overall_header.tpl hab ich einen <marquee> Tag, der Aktuelles und Wichtiges anzeigt. Nun ist es so das ich einzelnen Usern die Möglichkeit geben will diesen Text zu verändern. Allerdings sollen die natürlich keinen FTP Zugriff bekommen - nicht weil ich ihnen nicht traue, einfach weil die von sowas keine Ahnung haben.
Also brauch ich irgendein Script, dass es ihnen ermöglicht, einfach diesen Text zu verändern. Mein bisheriger Versuch war das hier:

test.php
Code:
<?php
	// by Firebird
	//
	
	// Hier nichts ändern
	// Einfach nur das Script hochladen und ihm chmod 666 (777) geben
	// Einbinden per require('marquee.php');
	//
	
	$lauftext = 'Dies ist ein Lauftext mit Stil';
	$passwort = '123';
	
	if(basename(__FILE__) == basename($_SERVER['PHP_SELF']))
	{
		if($_POST['pass'] == $passwort)
		{
			$text = preg_replace('/\$lauftext\s+=\s+\'(.+?)\';/', '$lauftext = \''.addslashes($_POST['text']).
				'\';', file_get_contents(__FILE__));
			fwrite(fopen(__FILE__, 'wb'), $text);
		}
		
		preg_match('/\$lauftext\s+=\s+\'(.+?)\';/', file_get_contents(__FILE__), $text);
		$text = $text[1];
		echo('<form method="post" action="'.$_SERVER['PHP_SELF'].'">'.
			'<label for="text">Text</label><input type="text" name="text" id="test" '.
			'value="'.$text.'"/><label for="pw" name="pass" id="pass">Passwort</label>'.
			'<input type="password" id="pass" name="pass"/><input type="submit"/>');
	}
	
	echo('<marquee>'.$text.'</marquee>');
?>


test2.php
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<? include('test.php') ?>
</body>
</html>

hier noch die Links zu meinem Space:
test.php
test2.php

wenn man sich bei der 2. den Quelltext anschaut sieht man das zumindest der <marquee> Teil stimmt, aber der Inhalt fehlt...die test.php hat natürlich als Permissions 777.

So, falls ihr den Fehler findet würde es mich echt freuen wenn ihr mir helft, aber ich bin für Vorschläge aller Art offen die dieses Problem lösen...

Danke euch schonmal im Vorraus,
gruß felix
 
Hallo Namensvetter.

Benutzt du Version 2 oder 3?

Wenn ich diese Info hätte, könnte ich dir fix was basteln.
 
Dann klick bitte noch unten auf "Erledigt".

Falls du die Lösung mit anderen teilen möchtest, bist du natürlich herzlich dazu eingeladen.
 
k, Datei für die eingabe:

eingabe.php
Code:
<html>
<head>
</head>
Die folgende Zeile wird auf der Hauptseite in einer Zeile angezeigt, sie kann auch leer sein. Geben Sie den text ein und klicken Sie auf "Speichern"
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input name="tigger" type="text" id="tigger" size="66" maxlength="66">
<input type="submit" name="Submit" value="Speichern">
</form>
<p>
<?php
if(isset($_POST['tigger'])) {
     $fp = fopen("DATEINAME","w");
     fwrite($fp, $_POST['tigger']);
     fclose($fp);
     echo "Die Datei wurde gespeichert";
 }
 ?>
 Diese Seite kann nun geschlossen werden ! </p>
</html><?php 
      $datei = "datei.txt"; 
      $inhalt = "Das ist der Inhalt der Datei"; 
      $handle = fopen($datei, "w"); // Öffnen der Datei mit dem Modus "w" 
      fwrite($handle, $inhalt);      // Der Inhalt wir geschrieben 
      fclose($handle);   // Datei wird geschlossen 
 ?>

ausgabe.php
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<?php
$text = file('DATEINAME');
echo('<marquee>'.$text[0].'</marquee>');
?>

</body>
</html>

und die eingabe.php braucht als Permissions 777, außerdem muss die ausgabe.php in die .tpl per { } eingegliedert werden, da die tpl's sonst die Ausgabedatei nicht laden.
 
Zurück