Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
09.10.2003, 15:22
Espy La Copa



Ja, das Topic sagt eigentlich schon alles. Ich bräuchte ein PHP-Script, mit dem ich online (also im Browser) normale Textdateien editieren kann. Die liegen auf meinem Server und dienen als Basis für ein Flash-Newsscript.

Kennt jemand sowas? Ich finde mit google nichts vernünftiges.

--

-[24fps.de]- | -[W.A.S.T.E.]- | -[Espys Platte der Woche: The Shins - Chutes too narrow]-

zum Seitenanfang zum Seitenende Profil || Suche
001
09.10.2003, 16:05
NewbZ



Ich habe da nen alten Code rumfliegen, weis nicht ob dir das hilft...
aber ich wills denoch mal posten...

Zitat:
<?php
$handle = fopen ("news.txt", "a+");

$buffer = fgets($handle, 4096);
echo $buffer;

fclose ($handle);
?>

Hiuer eine komplette datei zum öffnen einer news.txt :D
Zitat:
<b>News Editieren</b><br>
<FORM ACTION="save.php" METHOD=POST>
<TABLE>
<TR>
<TD><FONT SIZE=2 FACE="Verdana, Arial, Helvetica">Pw:</TD>
<TD><INPUT TYPE=TEXT NAME=pw SIZE=30 MAXLENGTH=50></TD>
</TR>

<TR>
<TD><FONT SIZE=2 FACE="Verdana, Arial, Helvetica">Text:</TD>
<TD><textarea name="inhalt" rows="30" cols="80"><?php
$handle = fopen ("news.txt", "a+");

$buffer = fgets($handle, 4096);
echo $buffer;

fclose ($handle);
?></textarea></TD>
</TR>

<TR>
<TD><FONT SIZE=2 FACE="Verdana, Arial, Helvetica"> </TD>
<!-- <TD><INPUT TYPE=IMAGE SRC="../img/absenden.gif" ALT="-=Editieren=-" BORDER=0></TD>-->
<TD><INPUT TYPE=SUBMIT VALUE="Eintragen" BORDER=0></TD>
</TR>

</TABLE>
</FORM>

Wenn ihrgendwas nicht geht...nicht mir die Schuld geben, ich bin kein php progger

warte am besten auf die Leute die das können...aber so wie ich es oben geschrieben habe, funktioniert es Simple

Ps. ich habe wenig Ahnung von PHP, also bitte...

--


Dieser Beitrag wurde am 09.10.2003 um 16:05 von NewbZ bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
09.10.2003, 17:33
Espy La Copa



Hua, nicht übel. Ich hab grad keine Zeit das zu testen, aber ich setzte mich heute Abend mal dran. Ich hab grad überlegt, daß ich das auch in Actionscript machen könnte, das geht glaube ich auch. Aber erstmal so.

Vielen Dank!

--

-[24fps.de]- | -[W.A.S.T.E.]- | -[Espys Platte der Woche: The Shins - Chutes too narrow]-

zum Seitenanfang zum Seitenende Profil || Suche
003
09.10.2003, 18:41
Onkel Dittmeyer



Mit ActionScript kannst du nichts auf den Server schreiben weils Client seitig "interpretiert" wird.

--

zum Seitenanfang zum Seitenende Profil || Suche
004
09.10.2003, 19:13
afrobnullsiebenelf



der Code oben is schon nicht schlecht, allerdings geht das imo auch einfacher mit require() oder include(). In der save.php musst dann halt mit fputs() die gonze scheiße aus der Edit-Box wieder auslesen und in die Datei schreiben. (mit $_POST['inhalt'] kannst auf den Inhalt zugreifen wenn du bei deinem Apache die REGISTER_GLOBALS abgestellt hast)

€: fputs() muss das heissen.

--

$> su -c "rm -rf /"
Tu es!


Dieser Beitrag wurde am 09.10.2003 um 20:57 von AFROB0711 bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
005
09.10.2003, 19:48
Espy La Copa



Tja, schön, nur kann ich kein PHP...

--

-[24fps.de]- | -[W.A.S.T.E.]- | -[Espys Platte der Woche: The Shins - Chutes too narrow]-

zum Seitenanfang zum Seitenende Profil || Suche
006
09.10.2003, 21:46
CN



ja wieso startest du dann so ein projekt?

newbz: naja..

--

zum Seitenanfang zum Seitenende Profil || Suche
007
09.10.2003, 21:54
chriss



rofl CN, f(l)achmann vom dienst -_-
was fürn projekt denn? er hat nach nem script gefragt mit dem man txt dateien ändern kann.

Zitat:
newbz: naja..
Natürlich ist das script von NewbZ nicht gut, ist ja nicht von dir..

abgesehen davon:

Zitat:
NewbZ:
Ps. ich habe wenig Ahnung von PHP, also bitte...

--


Dieser Beitrag wurde am 09.10.2003 um 21:55 von nox bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
008
10.10.2003, 06:33
CN



kindergarten..

--

zum Seitenanfang zum Seitenende Profil || Suche
009
10.10.2003, 08:41
chriss



Zitat:
CN:
ja wieso startest du dann so ein projekt?

newbz: naja..

Zitat:
CN (Again):
kindergarten..
jepp, genau meine meinung, da solltest du mal wieder hingehen..

--

zum Seitenanfang zum Seitenende Profil || Suche
010
10.10.2003, 09:34
Espy La Copa



@CN: ich starte kein Projekt, das Projekt ist schon fast fertig, und es funzt auch ohne dieses PHP-Ding wunderbar.

Es wäre nur mit viel bequemer.

Übrigens danke Dittmeyer, dann versuche ich das gar nicht erst.

--

-[24fps.de]- | -[W.A.S.T.E.]- | -[Espys Platte der Woche: The Shins - Chutes too narrow]-

zum Seitenanfang zum Seitenende Profil || Suche
011
10.10.2003, 14:55
NewbZ



Ist ja echt krass, man versucht zu helfen, dann kommen sofort wieder welche an mit ihrem blablabla...natürlich ist mein Script nicht gut, wobei es funktioniert, es ist halt simple ...

Anstatt große Töne zu spucken, solltet ihr lieber mal zeigen das ihrs besser könnt... ich versuche wenigstens zu helfen, doch wenn ich dafür dumm angemacht werde

Ob ers braucht oder nicht...ich habe es wenigstens versucht...

CN...hör besser auf Nox, ich kann dem nur zustimmen, denn du machst ja sogut wie jeden an (erinnere mich da an irc)
Von daher geh kacken!

Ich würde ja gerne nen heftigeren Ton einlegen, nur wäre ich dann nicht besser als du

Edit:
Nicht das ihr das falsch versteht, ich bin nicht so aufgebracht, weil ihr gesagt habt mein Script ist scheisse, sondern wegen CN weil er ständig die Klappe für nichts aufreisst, ausser Stress zu machen

--


Dieser Beitrag wurde am 10.10.2003 um 14:57 von NewbZ bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
012
10.10.2003, 15:26
Megge



PHP-Quellcode:<?php
/* ################## */
/* start login header */
/* ################## */
$_GP array_merge($_GET$_POST$_COOKIE$_SERVER$_FILES$_SESSION);
extract($_GP);
if (
$password != "meinefresse") {
  
?>
<form action="index.php" method=post>
passwort: <input type=password name="password"><br>
<input type=submit value="submit">
</form>
  <?php
  
exit; }
/* ################ */
/* end login header */
/* ################ */
function EditboxEncode($string)
{
    
$string str_replace('&''&amp;'$string);
    
$string str_replace('"''&quot;'$string);
    
$string str_replace('<''<'$string);
    
$string str_replace('>''>'$string);
    
    return 
$string;
}

function 
EditboxDecode($string)
{
    
$string str_replace('&amp;''&'$string);
    
$string str_replace('&quot;''"'$string);
    
$string str_replace('<''<'$string);
    
$string str_replace('>''>'$string);

    return 
$string;
}
function 
WriteAccess($file)
{
    
$fp = @fopen($file"a");
    if( !
$fp )
    {
        return 
FALSE;
    }
    else
    {
        
fclose($fp);
        return 
TRUE;
    }
}
if( 
$action == "load" )
{
    if( !
$name )
    {
        print 
'no file specified!';
    }
    else
    {
        if( !
file_exists('files/' $name) )
        {
            print 
'file ' $name ' does not exist!';
        }
        else
        {
            if( !
WriteAccess('files/' $name) )
            {
                print 
"<b>can't edit file '$name':</b><font color=red> no write permission (set chmod 666 or 777)";
            }
            else
            {
                if (
substr_count($name,"..") > 0)
                {
                    print 
"<b>can't edit file  '".$name."':</b><font color=red> no permission (cannot leave folder)";
                }
                else
                {
                    
$t_data = @implode("", (@file('files/' $name)));

                    print 
'<b>Edit File: "' $name '"</b><br><br>';
                    print 
'<form action="index.php" method="post">
<textarea wrap="OFF" name="content" cols="100" rows="32">' 
EditboxEncode($t_data) . '</textarea><br><br><br>
<input type="hidden" name="action" value="edit">
<input type="hidden" name="name" value="' 
$name '">
<input type="hidden" name="password" value="' 
$password '">
<input type="submit" name="Submit" value="Update File">
</form>'
;
                }
            }
        }
    }
}
?>
%teil 1/2

--

zum Seitenanfang zum Seitenende Profil || Suche
013
10.10.2003, 15:27
Megge



%teil 2/2
PHP-Quellcode:<?php
elseif( $action == "edit" )
{
    if( !
$name )
    {
        print 
'no file specified!';
    }
    else
    {
        
$fp fopen('files/' $name'w');
        if( !
$fp )
        {
            print 
'unable to open file "' $name '" for write access. check chmod! (should be 666 or 777)';
        }
        else
        {
            if (
substr_count($name,"..") > 0)
            {
                print 
"<b>can't edit file  '".$name."':</b><font color=red> no permission (cannot leave folder)";
            }
            else
            {
                
fwrite($fpstripslashes(EditboxDecode($content)));
                
fclose($fp);
        
                print 
'file has been updated!<br>click <a href="index.php?password='.$password.'">here</a> to continue.';
            }
        }
    }
}
elseif( 
$action == "list" || !$action )
{
    
$h opendir('files/');
    
$a_templates = array();
    while( 
$file readdir($h) )
    {
        if( 
substr($file, -4) == '.php' || substr($file, -5) == '.html' || substr($file, -4) == '.txt' )
        {
            
$a_templates[] = $file;
        }
    }
    while( list(
$k$file) = each($a_templates) )
    {
        echo 
$file;
        if( !
WriteAccess('files/' $file) )
        {
            echo 
" <font color="red">(can't edit: no write permission! set chmod 666 or 777)</font>";
        }
        else
        {
            echo 
" [ <a href="index.php?action=load&password=".$password."&name=".$file."">edit</a> ] ";
            echo 
" [ <a href="files/".$file."" target=_".$file.">execute</a> ]";
        }
        echo 
"<br>";
    }
    
?>
<br><hr size=2><br>
<form method=post action=index.php>
<input type=hidden name=password value="<?=$password?>">
<input type=hidden name=action value="addfile">
<b>Neues File anlegen</b><br><br>
Filename: <input type=text name=file><br><br>
<input type=submit value="anlegen">
</form>
    <?php
}
elseif( 
$action == "addfile" )
{
    
$legalchars "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ().-_";
    for( 
$i 0$i strlen($file); $i++ )
    {
        
$char substr($file$i1);
        if( !
strstr($legalchars$char) )
        {
            print 
"Der Dateinamen enthält ungültie Zeichen!<br><b>Folgende Zeichen sind erlaubt:</b><br><br>";
            print 
$legalchars;
            exit;
        }
    }
    if (
$file == ".htaccess" || $file == "" || substr_count($file,"..") > || strlen($file) < || substr_count($file,".") == || substr_count($file,"\/") > )
    {
        print 
"Dieser Dateiname ist ungültig<br>Korrektes Format: *.xxx<br>(min. 5 Zeichen inkl. endung)";
        exit;
    }
    if (
file_exists('files/' $file))
    {
        print 
"Dieser Dateiname existiert schon!";
        exit;
    }
    
$fp fopen("files/".$file"a+");
    print 
'<meta http-equiv="Refresh" content="2; URL=index.php?action=load&name='.$file.'&password='.$password.'">';
    print 
'<b>File created!</b><br>redirecting....';
}
?>
so halb von nem alten thwboard zusammengestiefelt, so halb selber gemacht.
ganz oben dein eigenes passwort einfügen und das array_merge zeug rausmachen...der sicherheit wegen...

#edit
müsstest noch ein par kleine sacen selber verändern...

--


Dieser Beitrag wurde am 10.10.2003 um 15:30 von Megge bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
014
10.10.2003, 15:41
Espy La Copa



€:

Gibt noch ein Problem. Innerhalb der .txts werden Variablen mit & eingegrenzt, damit Actionscript damit zurechtkommt. Ein < wird vom Script allerdings automatisch in ein < umgeändert, spätestens da wird dann das Auslesen der Variable abgebrochen, da das < dann auch als < abgespeichert wird und nicht als <. Flash kann nämlich seit MX gewisse html-tags auswerten (b,i,br,a=href, usw), und in den News sind halt ab und zu Links drin.

Kann man da irgendwas machen, daß <,>,& und alle Umlaute korrekt dargestellt und abgespeichert werden? Auch praktisch wäre wenn der Dateiinhalt am Rand des Forms umbrechen würde.

Abgesehen davon funzt das perfekt. Vielen vielen Dank Megge!

--

-[24fps.de]- | -[W.A.S.T.E.]- | -[Espys Platte der Woche: The Shins - Chutes too narrow]-


Dieser Beitrag wurde am 10.10.2003 um 16:00 von Espy La Copa bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
015
11.10.2003, 05:52
LePrau



Ja, du kannst einfach die Aufrufe von EditBoxEncode bzw. Decode weglassen.

Da die jedoch innerhalb von weiteren Funktionsaufrufen eingeklammert sind und damit das komplette entfernen für einen Nicht-PHPler eine ziemlich große Fehlerquelle bedeutet, reicht es auch, einfach jeweils die 4 Zeilen $string = str_replace ... in den beiden EditBox-Funktionen mit zwei Schrägstrichen ( // ) am Zeilenanfang auszukommentieren. (Also in beiden Funktionen jeweils 4 Zeilen ...)

Megge hat das vom ThW-Board übernommen, wo es den Zweck hat, die entsprechenden Stellen in die HTML-konformen Schreibweisen zu übersetzen. Da du ja nur .txt-Dateien editieren willst, bzw. beim HTML-Editieren sicher auch mit & < usw. arbeiten kannst erübrigt sich das in deinem Fall :)

(Die Funktion ist dafür hier im Board wichtig, damit man auch < und > verwenden kann, was ja sonst, ohne Umwandlung, Anzeichen für 'nen Tag wären, der garnicht existiert usw.)

--

voice - Ruhe in Frieden


Dieser Beitrag wurde am 11.10.2003 um 05:53 von LePrau bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
016
11.10.2003, 10:31
Espy La Copa



Merci, auf den Hint hab ich gewartet. Den Rest bekomme ich dann wohl alleine hin :)

Danke an NewbZ, Nox, LePrau und besonders Megge!

--

-[24fps.de]- | -[W.A.S.T.E.]- | -[Espys Platte der Woche: The Shins - Chutes too narrow]-

zum Seitenanfang zum Seitenende Profil || Suche
017
11.10.2003, 15:47
theDon



wobei das mit 2.82 leicht anders gelöst wird ;)

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before

zum Seitenanfang zum Seitenende Profil || Suche
018
25.10.2003, 02:14
Espy La Copa



Tach, ich bin's nochmal. Das mit den spitzen Klammer und so hab ich gelöst, aber die Umlaute machen noch Probs. Einen normalen Text mit Umlauten zeigt das Script so an:

&motd=I'd not roll my eyes so&
&inhalt= <br>Tja, das ist alles noch ein wenig unfertig, aber das bleibt jetzt mal so. Die Bilder (und später auch .swfs) da rechts bekommen noch einen Ladebalken, und wenn ich Zeit hab wird das ganz noch mit einem netten Loop und ein paar Knopfdrücksounds akustisch ...

Die werden dann in Flash korrekt angezeigt, aber ich kann die ja nicht immer so eintippen... also nehme ich an, daß ich beim encode einfach ü durch ü usw. ersetzte und das Problem ist gelöst? Oder gibt es da eine andere Methode, daß man einfach Umlaute irgendwie einschaltet? Oder ist das etwa schon die Methode? O_o

Und das hier am Anfang der Datei:  sollte auch nicht da sein, ändert aber an der Funktion gar nichts. Wird in Flash nicht angezeigt...

Danke schonmal. Und schönes Wochenende.

--

-[24fps.de]- | -[W.A.S.T.E.]- | -[Espys Platte der Woche: The Shins - Chutes too narrow]-


Dieser Beitrag wurde am 25.10.2003 um 02:16 von Espy La Copa bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
019
25.10.2003, 11:42
Chronial



das liegt nicht am php, sondern am html

Sieht so aus als würde dein Client dieses Form ohne Charset-Angabe als UTF-8 interpretieren,
Welchen Browser hast du?

also ich würde einfach mal das hier ganz oben in die Datei schreiben:
Quellcode:<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
*edit*
Jap, ist hundertprozentig der Browser, der das als UTF-8 abschickt. Könnt ja mal das Charset dieser Seite auf UTF-8 stellen und *Tada* - Jeder fragt sich, wo eigentlich sein Problem liegt, ist doch alles in Ordnung :D
würde mich jetzt wirklich mal interessieren welchen Client du benutz.
Und kannst du die URL des Scripts hier posten, oder hast du die Passwortanfrage entfernt?
Könnte nämlich auch am http-Header liegen

--

"tsuji-giri" (japanisch) - ein neues Schwert an einem Passanten ausprobieren


Dieser Beitrag wurde am 25.10.2003 um 11:45 von Chronial bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
020
26.10.2003, 01:48
Espy La Copa



/€: naaaaa, etwas zu früh gefreut. Das bringt leider nichts. Aber ich werde mal in die Richtung weiterexperimentieren. Zur not mach ich es mit der Ersetzten-Methode, das ist zwar nicht elegant, funktioniert aber.

Das einzige was jetzt noch fehlt ist ein code, der den client zwingt, die txts *nicht* aus dem Cache zu lesen sondern die jedesmal neu herunterzuladen...

--

-[24fps.de]- | -[W.A.S.T.E.]- | -[Espys Platte der Woche: The Shins - Chutes too narrow]-


Dieser Beitrag wurde am 26.10.2003 um 02:01 von Espy La Copa bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
021
26.10.2003, 09:56
Chronial



Du hast meine Frage nach dem Browser und der URL nicht beantwortet....

aber ich hab ne bessere Idee - setz doch einfach mal das Charset auf UTF-8, dann gibts keine Probleme mehr. Das einzige Problem ist ja, dass der Client die Datei nicht richtig anzeitg, was damit ja wohl geklärt wäre.

--

"tsuji-giri" (japanisch) - ein neues Schwert an einem Passanten ausprobieren

zum Seitenanfang zum Seitenende Profil || Suche
022
27.10.2003, 11:11
Espy La Copa



Hab ich seitdem auch so gemacht :)
Ich denke, dabei bleibt's erstmal.

Danke!

--

-[24fps.de]- | -[W.A.S.T.E.]- | -[Espys Platte der Woche: The Shins - Chutes too narrow]-

zum Seitenanfang zum Seitenende Profil || Suche