php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 27-09-2007, 16:48
f3hler
 Newbie
Links : Onlinestatus : f3hler ist offline
Registriert seit: Sep 2007
Beiträge: 7
f3hler ist zur Zeit noch ein unbeschriebenes Blatt
Standard Lauftext per php ändern

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
Mit Zitat antworten
  #2 (permalink)  
Alt 27-09-2007, 16:53
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich habe die Seite aufgerufen (test.php), das PW eigegeben und mein gewünschter Text wurde angezeigt.
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #3 (permalink)  
Alt 27-09-2007, 16:59
f3hler
 Newbie
Links : Onlinestatus : f3hler ist offline
Registriert seit: Sep 2007
Beiträge: 7
f3hler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja - der selbe Text sollte dann aber auch in der test2.php erscheinen!
Mit Zitat antworten
  #4 (permalink)  
Alt 27-09-2007, 17:04
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wenn du direkt die test2.php aufrufst trifft

PHP-Code:
if($_POST['pass'] == $passwort
nicht zu.

somit auch kein lauftext.

EDIT:
außerdem scheint mir dein ansatz falsch. ich glaube, du willst, dass spezielle user den text GLOBAL ändern können sollen, oder?

spricht, authorisierter user ändert, alle anderen lesen die neue marquee-zeile.

bei deinem beispiel test.php würde nur der, der den text ändert diese änderung lesen...
__________________
**********
arkos
**********

Geändert von arkos (27-09-2007 um 17:07 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 27-09-2007, 17:09
f3hler
 Newbie
Links : Onlinestatus : f3hler ist offline
Registriert seit: Sep 2007
Beiträge: 7
f3hler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

würde es gehen ohne wenn man die Passwortgeschichte weglässt? Wie sähe die test.php dann aus?
Mit Zitat antworten
  #6 (permalink)  
Alt 27-09-2007, 17:21
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

oh shit,
vergiss mein edit-einwand mal. hab völlig übersehen, dass du ja versuchst, eine datei anzulegen... ich muss noch mal genauer schauen. meld mich gleich

edit:
so, noch mal geschaut.

du musst die test, und die test2 mal im kopf ein wenig trennen. test ist die möglichkeit, die textdatei, die den marquee-text beinhaltet zu schreiben.

wenn die richtig angelegt ist auf dem server (das hast du sicher überprüft, oder?) dann lies die einfach in test2 aus...

also statt
PHP-Code:
include("test.php"); 
setz mal:
PHP-Code:
$fp fopen "deineTextdatei.txt"'r' );
$deinLauftext fread $fpfilesize "deineTextdatei.txt" ) );
echo(
'<marquee>'.$deinLauftext.'</marquee>'); 
__________________
**********
arkos
**********

Geändert von arkos (27-09-2007 um 17:27 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 27-09-2007, 17:33
f3hler
 Newbie
Links : Onlinestatus : f3hler ist offline
Registriert seit: Sep 2007
Beiträge: 7
f3hler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

mhm eigentlich nicht!
ich dachte das geht direkt ohne Zwischendatei...ich wollte gern dass ich mit der test.php einen Text festlegen kann der dann durch
<? include('test.php') ?>
in der test2.php angezeigt wird. Das funktioniert ja auch fast: in der test2.php steht ja nur
<? include('test.php') ?>
und im Quelltext über den Browser <marquee></marquee>. Das bedeutet das es funktioniert, aber der Text nicht übernommen wird.

Aber wenn du eine Methode kennst die funkioniert nehm ich die natürlich auch gern!
Mit Zitat antworten
  #8 (permalink)  
Alt 27-09-2007, 17:37
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

was denkst du, was die zeile
PHP-Code:
fwrite(fopen(__FILE__'wb'), $text); 
in test.php versucht?

sie versucht eine datei zu schreiben.

und wenn du erreichen willst, dass einer den text ändert, und alle diesen lesen können, kommst du nicht drum rum, diesen neuen text irgendwo abzulegen. also a) datenbank, oder b) wie es hier versucht wird in eine datei.
__________________
**********
arkos
**********
Mit Zitat antworten
  #9 (permalink)  
Alt 27-09-2007, 17:45
f3hler
 Newbie
Links : Onlinestatus : f3hler ist offline
Registriert seit: Sep 2007
Beiträge: 7
f3hler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ok, das versteh ich.
Wie müssten die Dateien denn aussehen? Hätte auch eine mysql DB falls es mit einer Datei zu umständlich würde
Mit Zitat antworten
  #10 (permalink)  
Alt 27-09-2007, 17:55
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
sie versucht eine datei zu schreiben.
Und wenn ich mich nicht irre versucht sie sogar sich selber zu schreiben.
PHP-Code:
//schreibe in Textdatei (test.php)
fwrite(fopen('deineTextDatei.txt''wb'), $text);
//und in test2.php wieder auslesen
$text file('deineTextDatei.txt');
echo(
'<marquee>'.$text[0].'</marquee>'); 
oder du speicherst es in eine DB. Ganz wie es dir beliebt.

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

Geändert von jahlives (27-09-2007 um 17:57 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 27-09-2007, 18:02
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von jahlives
Und wenn ich mich nicht irre versucht sie sogar sich selber zu schreiben.
ist mir in der raucherpause auch gerade aufgefallen

übernimmst du das, jah? bin auf für heute.... flasche leer
__________________
**********
arkos
**********
Mit Zitat antworten
  #12 (permalink)  
Alt 27-09-2007, 18:04
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
übernimmst du das, jah? bin auf für heute.... flasche leer
Wieso? Wenn der TS das trotz alle bisherigen Tipps nicht schafft, dann Prost Feierabend
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #13 (permalink)  
Alt 27-09-2007, 18:06
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wow, PROST..... da sagst du was... ich muss weg
__________________
**********
arkos
**********
Mit Zitat antworten
  #14 (permalink)  
Alt 27-09-2007, 18:10
f3hler
 Newbie
Links : Onlinestatus : f3hler ist offline
Registriert seit: Sep 2007
Beiträge: 7
f3hler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Teilerfolg:
hab eine ticker.txt hochgeladen und da was reingeschrieben - das wird jetzt in der test6.php angezeigt.

Was aber noch nicht klappt:
das beschreiben der tickert.txt...so sieht jetzt die test.php aus:

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('ticker.txt', '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>');
?>
habe auch mal testweise alle __FILE__ durch 'ticker.txt' ersetzt...
Mit Zitat antworten
  #15 (permalink)  
Alt 27-09-2007, 18:39
f3hler
 Newbie
Links : Onlinestatus : f3hler ist offline
Registriert seit: Sep 2007
Beiträge: 7
f3hler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

so erstmal ein RIESENDANKE für eure Geduld.

eine PHP Datei erstellt jetzt eine txt und die andere zeigt sie an - perfekt also.

Allerletzte Frage an euch:

$text = file('deineTextDatei.txt');
echo('<marquee>'.$text[0].'</marquee>');

funktioniert das auch innerhalb einer .tpl Datei?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:32 Uhr.